Перейти к содержимому

Фотография

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


  • Пожалуйста, авторизуйтесь, чтобы ответить
11 ответов в этой теме

#1
Dagot_Prolaps

Dagot_Prolaps
  • Гвардеец

Уровень: 1280
  • Группа:Граждане
  • сообщений:721
  • Регистрация:24-Декабрь 17

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

 

http://www.fullrest....straining/files

 

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

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

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

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

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

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

 

Сообщение изменено: Dagot_Prolaps, 02 Август 2019 - 04:42 .


#2
Муурн Шепард

Муурн Шепард
  • Котосумрак

Уровень: 1280
  • Группа:Граждане
  • сообщений:3 870
  • Регистрация:31-Октябрь 10
  • Город:Лунная Тень

Потому что марш учить типы.

Создатели аэдра -- мы даэдра.
Размещенное изображение

#3
Dagot_Prolaps

Dagot_Prolaps
  • Гвардеец

Уровень: 1280
  • Группа:Граждане
  • сообщений:721
  • Регистрация:24-Декабрь 17

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


#4
-=ChieF=-

-=ChieF=-
  • Паладин

Уровень: 1280
  • Группа:Адаптаторы
  • сообщений:1 405
  • Регистрация:19-Май 08
  • Город:Минск

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

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

 

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

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

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


#5
Dagot_Prolaps

Dagot_Prolaps
  • Гвардеец

Уровень: 1280
  • Группа:Граждане
  • сообщений:721
  • Регистрация:24-Декабрь 17

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

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

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

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

Сообщение изменено: Dagot_Prolaps, 24 Май 2019 - 12:25 .


#6
Dagot_Prolaps

Dagot_Prolaps
  • Гвардеец

Уровень: 1280
  • Группа:Граждане
  • сообщений:721
  • Регистрация:24-Декабрь 17

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

 

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

Как показали на примере нового плагина 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, 28 Июль 2019 - 12:29 .


#7
-=ChieF=-

-=ChieF=-
  • Паладин

Уровень: 1280
  • Группа:Адаптаторы
  • сообщений:1 405
  • Регистрация:19-Май 08
  • Город:Минск

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

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

 

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


#8
Dagot_Prolaps

Dagot_Prolaps
  • Гвардеец

Уровень: 1280
  • Группа:Граждане
  • сообщений:721
  • Регистрация:24-Декабрь 17

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

 

http://www.fullrest....straining/files


#9
-=ChieF=-

-=ChieF=-
  • Паладин

Уровень: 1280
  • Группа:Адаптаторы
  • сообщений:1 405
  • Регистрация:19-Май 08
  • Город:Минск

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

 

http://www.fullrest....straining/files

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

 

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

Сообщение изменено: -=ChieF=-, 02 Август 2019 - 10:36 .


#10
Dagot_Prolaps

Dagot_Prolaps
  • Гвардеец

Уровень: 1280
  • Группа:Граждане
  • сообщений:721
  • Регистрация:24-Декабрь 17

Значит так.

 

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

 

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

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

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

 

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

 

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

 

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

 

 

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

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

 

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

 

 

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

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

Сообщение изменено: Dagot_Prolaps, 03 Август 2019 - 10:27 .


#11
Муурн Шепард

Муурн Шепард
  • Котосумрак

Уровень: 1280
  • Группа:Граждане
  • сообщений:3 870
  • Регистрация:31-Октябрь 10
  • Город:Лунная Тень

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

Сообщение изменено: Муурн Шепард, 03 Август 2019 - 10:45 .

Создатели аэдра -- мы даэдра.
Размещенное изображение

#12
Dagot_Prolaps

Dagot_Prolaps
  • Гвардеец

Уровень: 1280
  • Группа:Граждане
  • сообщений:721
  • Регистрация:24-Декабрь 17

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

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

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

 

 

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

http://www.fullrest....straining/files

 

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

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

 

 

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

 

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

 

http://yotx.ru/#!1/3...I8HjMeD3f2tfQE=

Сообщение изменено: Dagot_Prolaps, 04 Август 2019 - 01:53 .



Посетителей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных пользователей

Top.Mail.Ru