Перейти к содержанию

Реалистичный рост навыков


Рекомендуемые сообщения

Плагин первой версии готов!

 

http://www.fullrest.ru/files/4nm_skillstraining/files

 

Математически выверенная нелинейная формула прироста опыта:

(Манакост*5) / (Манакост + 80 )

Это +1 опыта за каст спелла на 20 маны,

+2 - за каст на около 50 маны

+3 - за каст на 120 маны

+5 - недостижимый предел

 
Изменено пользователем Dagot_Prolaps
Ссылка на комментарий
Поделиться на другие сайты

Бетаверсия готова. Нуждается в тесте. Особо обратите внимание на спеллы изменения и комбинированные спеллы. Новый скрипт выверен, но мне кажется, что сама мвсешная функция имеет погрешность для школы изменения.

Ссылка на комментарий
Поделиться на другие сайты

  • 1 месяц спустя...

Бетаверсия готова. Нуждается в тесте. Особо обратите внимание на спеллы изменения и комбинированные спеллы. Новый скрипт выверен, но мне кажется, что сама мвсешная функция имеет погрешность для школы изменения.

Короче, я с ним бегаю сразу, как ты сделал мод, но с изменениями не особо заметил разницу. Тем не менее, чем-то калькуляция все же различается.

 

Так, кастуя заклинание "Перышко" стоимостью 20 маны я получаю +5 ед. к опыту Изменений (Изменения в главных навыках).

То же самое со школой Колдовства: выхов Духа предков 20 маны - это +5 к Колдовству (навык важный).

Используя заклинание Разрушения стоимостью 30 маны получают +4 к навыку (в главных).

Ссылка на комментарий
Поделиться на другие сайты

А сколько был навык Изменений, Колдовства и Разрушений на момент каста?

Тут важно учитывать текущий уровень навыка. Вот эта фиговина: player->xModProgressSkill 

измеряет прирост опыта в неких попугаях, точное число которых неизвестно для каждого уровня навыка.

То есть при касте одного и того же спелла при 5 скилле мы получим +5 в шкалу прогресса, а при 50 скилле - уже гораздо меньше.

Изменено пользователем Dagot_Prolaps
Ссылка на комментарий
Поделиться на другие сайты

  • 2 месяца спустя...

Появилась идея во-первых довести до ума плагин с помощью луа-скриптов, вызывая формулу рассчёта прироста опыта при обработке события каста безо всякой возни со звуками.

 

И во-вторых, дополнить плагин также и продвинутыми формулами прироста к оружейным и доспешным навыкам.

Как показали на примере нового плагина NGC, в луа есть функция обработки события ударов - как от ГГ по врагам, так и врагов по ГГ. То есть остаётся дополнить фичи перерасчёта урона при ударе ещё и вызовом мвсешной функции заполнения прогресс-бара соответсвующего скила. Скила оружия при ударе ГГ по врагу и скила доспехов при ударе по ГГ.

 

Справедливая формула набора опыта для оружия:

 

1 экспы =  ((((Уровень врага) - (Уровень навыка / 10)) * 3) / Уровень врага) * (Урон / Х)

Где Х - это подгоночный коэффициент, который мы вычислим при тесте мода, чтобы было реалистично.

И если в итоге выйдет отрицательное знаечние, то само собой, приравнять к нулю.

 

Такая формула позволит сделать 2 важные вещи:

Во-первых, ГГ может качаться только на достойных врагах, представляющих опасность и вызов. Лишь самый зелёный новичок может избивать манекен 1 уровня, повышая скилл на халяву до 10 уровня. И только до 30 уровня навыка можно будет качаться на скампах 3 уровня. А вот если на 30 уровне навыка найти святошу 20 лвл, то коэффициент прогресса резко скаканёт до (20 - 3)*3 / 20 = х2.55, и такая битва будет прекрасной тренировкой если Нереварин выживет.

Во-вторых, ГГ не сможет абузить деревянные мечи на сильных врагах. Для набора опыта придётся наносить урон. Наносишь много урона - получаешь много опыта, но и врагов придётся искать заново.

 

 

Аналогично можно вывести справедливую формулу обучения доспешным навыкам:

 

1 экспы =  ((((Уровень врага) - (Уровень навыка / 10)) * 3) / Уровень врага) * (Полученный урон / Х)

 

Получаем укусы от крысы - почти не учимся, а после 30 вообще не учимся. Получаем кулаком от огрима - прекрасно учимся!

При этом чем в более отвратительной броне вы будете получать удары, тем меньше у вас будет класс брони, а значит больше пройдёт и получаемого урона - Нереварину придётся сильнее изгаляться чтобы выжить, значит и набор опыта пойдёт быстрее.

 

Зы: переименуйте тему в "Реалистичный рост навыков".

 

__________

Написал автору, ответил:

 

Thanks for the formula suggestions, customizable skill gain will be coming in the next release.

Изменено пользователем Dagot_Prolaps
Ссылка на комментарий
Поделиться на другие сайты

Во-первых, ГГ может качаться только на достойных врагах, представляющих опасность и вызов. Лишь самый зелёный новичок может избивать манекен 1 уровня, повышая скилл на халяву до 10 уровня. И только до 30 уровня навыка можно будет качаться на скампах 3 уровня. А вот если на 30 уровне навыка найти святошу 20 лвл, то коэффициент прогресса резко скаканёт до (20 - 3)*3 / 20 = х2.55, и такая битва будет прекрасной тренировкой если Нереварин выживет. Во-вторых, ГГ не сможет абузить деревянные мечи на сильных врагах. Для набора опыта придётся наносить урон. Наносишь много урона - получаешь много опыта, но и врагов придётся искать заново.

Очень разумные рассуждения!

 

Здорово, что продолжаешь чинить геймплей в Морровинде.

Ссылка на комментарий
Поделиться на другие сайты

Качайте, тестируте:

 

http://www.fullrest.ru/files/4nm_skillstraining/files

Хм... Правильно ли я понял из краткого описания, что пока речь только о магических навыках?

 

Какое-то влияние нахождение школы в главных / важных навыках оказывает на скорость роста?

Изменено пользователем -=ChieF=-
Ссылка на комментарий
Поделиться на другие сайты

Значит так.


 


Магия. У меня всё работает как надо


 


Маловажный навык 20 - каст на 30 маны = +12 столба


Главный навык 20 - каст на 30 маны = + 25 столба


Главный навык 30 - каст на 30 маны = + 17 столба


 


Боевые навыки. Код написан и внедрён в NGC-мод, так как требует обработку события урона. Автор оставила у себя обычный множитель опыта, то же самое можно было сделать через гмст. Поэтому будет вилка - я выпущу свою версию этого мода, в котором помимо реалистичного опыта будут более продвинутые формулы расчёта урона.


 


Касательно опыта. Оружейные навыки. Тут всё работает идеально. Нанёс удар - получил опыт:


 


Опыт за удар = (((Уровень врага - (Уровень ГГ / 5)) * 5) / (Уровень врага + 20)) * (Урон * 0.05)


 


 


А вот с доспешными навыками всё работает немного через жёппу. Сначала вычисляет событие попадания по ГГ, затем даёт опыт, и только потом считает урон. В результате сам опыт будет доходить до Нереварина с небольшой задержкой, равной одному удару. Получаем плюху - узнаём сколько опыта получим при следующей плюхе - получаем следующую плюху - получаем рассчитанный ранее опыт - узнаём сколько опыта получим при следующей плюхе - и так далее...


Думаю, эти издержки можно перетерпеть, они по сути ни на что не влияют. Формулу предлагаю такую же, но Х опыта тут будет получаться за 10 урона, а не за 20 как в оружейных навыках. 


 


Опыт за удар = (((Уровень врага - (Уровень ГГ / 5)) * 5) / (Уровень врага + 20)) * (Урон * 0.1)


 


 


И да, открыв луа-скрипт в блокноте, вы сможете легко менять формулы насколько фантазии хватит (используя те же переменные).


Не забывайте: сначала степени/корни, затем умножение/деление, и наконец плюс/минус. Если всё же забыли - используйте скобки - они не подведут)


Изменено пользователем Dagot_Prolaps
Ссылка на комментарий
Поделиться на другие сайты

А если команду event.register("exerciseSkill", onExerciseSkill) запихнуть в конец функции OnDamage(e), ничего не поменяется?

Изменено пользователем Муурн Шепард
Ссылка на комментарий
Поделиться на другие сайты

Нет, не поменяется.

Есть способ: вообще игнорировать событие exerciseSkill для доспешных навыков, а вместо этого принудительно повышать опыт при событии получения урона. Но для этого придётся исписать совершенно невменяемую простыню кода, да и не факт что при ттаком повышении скилов будут учтены множители главных, важных и специлизационных навыков.

Так что пусть лучше изящные 8 строк рабочего кода, но с небольшим временным сдвигом обучения.

 

 

Всё же добавлю пока чистую версию с ростом всех навыков:

http://www.fullrest.ru/files/4nm_skillstraining/files

 

Если поставить совместно с плагином на боёвку, то я не уверен, какая функция возьмёт приоритет, и по какому урону будет рассчитываться опыт - по стандартному или изменённому.

Завтра возможно будет выпущена новая версия боевого плагина, вот тогда я ей и займусь.

 

 

Перезалил, исправил баг с отрицательным опытом и изменил коэфы: 50 урона для оружия и 20 урона для брони.

 

График коэфов опыта для оружия и доспехов:

 

http://yotx.ru/#!1/3_5/A1BfKRsBZZI%40wf7O8c7BsxhP%401/fM9wP7B/sG%40n5Ra298429s8293e2IPuHOzuH%40yTaNiNnVPG4%40kW43Hr8mJ3f2t/42xvc%40tgd3tjD7pzsLt/sE%40iYTdAB4zHHdAW4xF0sLu/tb9xtre5c7C7vbEH3TnY3T/YJ9GwGztnO4zHna0DxuPO7v7W/sbZ3ubFwe72xh5052B3/2CfRMNu7JydMR63ti4Zj1uI3f2t/Y2zvc2zg93tjT3ozsHu/sE%40iYbd2IIhGI8HjMeD3f2tfQE=

Изменено пользователем Dagot_Prolaps
Ссылка на комментарий
Поделиться на другие сайты

Пожалуйста, войдите, чтобы комментировать

Вы сможете оставить комментарий после входа в



Войти
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...