Система Vitality

Изучение системы Vitality.

1. Зависимость от уровня или разницы в уровнях?
Для того чтобы ответить на этот вопрос был проведен следующий тест.
Первый, свежесозданный персонаж 1 уровня убивал одного Gremlin (1 lvl), становись 2 lvl, вкачивался квестом Supply Check до 6 уровня, и далее отправлялся бить мобов Elder Wolf (5 lvl) до падения Vitality с 4-го уровня (300%) до 3-го (250%). Подсчитывалось число мобов.
Второй, свежесозданный персонаж 1 уровня убивал одного Gremlin, становись 2 lvl, после чего сразу же отправлялся бить мобов Elder Wolf до падения Vitality с 4-го уровня до 3-го. Подсчитывалось число мобов.
Третий персонаж 21 уровня с полностью отрегенерированным Vitality убивал 1 Gremlin и далее Elder Wolf до падения Vitality с 4-го уровня до 3-го. Подсчитывалось число мобов.
Как вы видите, в первом случае уровень персонажа был в основном больше уровня мобов, во втором случае в основном меньше, в третьем случае намного выше.
Результат приведен в таблице 1.

Таблица 1.

Как видите для того, чтобы Vitality опустилось с 4-го уровня до 3-го всем трём персонажам потребовалось убить абсолютно одинаковое число мобов, а именно 1 Gremlin и 20 Elder Wolf. Отсюда сделан вывод, что расходование Vitality не зависит от разности в уровнях между персонажем и мобом, и постоянно для конкретного типа мобов.
(К сожалению, этот тест был проделан мной не первым, иначе я построил бы всю систему опытов иначе.)

2. Зависимость от множителя НР (иксовости) моба.
Для того чтобы ответить на этот вопрос был проведен следующий тест.
Первый персонаж 21 уровня с полностью отрегенерированным Vitality бил мобов Maille Lizarman Scout (22 lvl, 1/2x), и только их, до падения Vitality с 4-го уровня (300%) до 3-го (250%).
Второй персонаж 21 уровня с полностью отрегенерированным Vitality бил мобов Hallowed Seer (22 lvl, 4x), и только их, до падения Vitality с 4-го уровня (300%) до 3-го (250%).
Результаты в таблицах 2 и 3.

Таблица 2

Как вы можете видеть количества полученного базового, дополнительного, и полного exp за 1 уровень Vitality составили в первом случае соответственно 80 456, 161 025 и 241 481.
Во втором случае соответственно 80 850, 161 700, 242 550. Практически одинаковые цифры, небольшое расхождение (~0.5%) связано с тем, что во втором случае мобы гораздо крупнее и дают большую погрешность при попадании на границу перехода Vitality.
Таким образом можно считать, что количество exp получаемого на 1 единицу Vitality не зависит от множителя НР (иксовости) моба. Также отсюда можно сделать и такой вывод: расход Vitality не прямо пропорционален числу мобов. Т.к. в первом случае на одно и то же снижение уровня Vitality ушло 113 мобов, а во втором случае 33 моба. Очевидно есть некий коэффициент учитывающий приход опыта с одного моба.
Из опыта 1 и 2, вы можете сделать вывод, что расход Vitality прямо пропорционален полученному Exp. Но, не торопитесь, это был бы поспешный вывод. Далее будет продемонстрировано, что он верен только в случае когда сравниваются мобы одного уровня.

3. Взаимосвязь Vitality и получаемого опыта с уровнем моба.
Следующие три опыта (которые на самом деле были первыми) проводились с целью уловить зависимость прихода опыта на единицу потраченной Vitality от разницы в уровнях персонажа и моба. Но, т.к. теперь я точно знаю, что эти величины не зависят от разницы в уровнях, то эти данные будут использованы, чтобы продемонстрировать зависимость прихода опыта на единицу потраченной Vitality от уровня моба как такового.
Итак, первый персонаж бил мобов на 5 уровней меньше своего текущего, до полного исчерпания Vitality. Т.е. до появления сообщения “Your Vitality is fully exhausted”.
Второй персонаж бил мобов свого уровня, третий бил мобов на 5 уровней выше собственного. В начале все 3 персонажа имели 21 уровень и полностью восстановленную Vitality. По мере роста персонажей соответственно менялись мобы на более сильных. Подсчет количества мобов осуществлялся по контролю счетчика SP персонажа. Бились исключительно указанные мобы, если агрились посторонние мобы они уводились и сбрасывались через рестарт. В некоторых случаях получено число SP не кратное в точности числу мобов, это связано с тем, что кто-то начинал бить моего моба, либо же в локации бродил моб, которого уже пытались бить. Такое случалось достаточно редко, и в целом можно считать погрешность за счет этого незначительной. На протяжении всего опыта персонаж не выходил в оффлайн (не считая рестартов) и забегал в город только в случае крайней необходимости и ненадолго.
В таблицах фиксировались все события имевшие значение: повышение уровня персонажа, снижение уровня Vitality, а так же изучение скилов (ибо оно меняло значение SP).
Типы событий:
Повышение уровня персонажа обозначается, например: «lvl 21 -> 22» и т.п.
Снижение уровня Vitality обозначается, например: «Vit 4 -> 3», ну это то понятно, а вот «Vit 0 ->-"-» означает, что с уровнем Vitality=0 получено сообщение “Your Vitality is fully exhausted”. Столбцы lvl, %, SP относятся к моменту, когда произошло событие, это значение соответствующих счетчиков на момент события. А вот все последующие столбцы в строке соответствуют промежутку времени от предыдущего до указанного события.
Например, вторая строка в таблице 4 означает: Vitality снизилось с 4 на 3 уровень, чар 21 уровня, счетчик процентов установился на значении 83,42, счетчик SP на значении 97 293, избиение мобов с момента события Start и до текущего осуществлялось с множителем Vitality 3x (4-й уровень), бились мобы Gora Werewolf 16 lvl, дающие 582/23 Exp/SP (0,266% с моба) без учета Vitality и 1746/69 с ним. Убито 73 моба, получено 127 458 Exp всего, из них 84 972 за счет Vitality. Значения x и Sx я расшифрую вам позже.
Собственно результаты, таблицы 4-6:

Таблица 4

Таблица 5

Таблица 6

Из таблиц отчетливо видно, что чем выше уровень убиваемых мобов, тем больше опыта вы получите за единицу Vitality. За единицу считайте что угодно, например всю Vitality до полного истощения или один из ее уровней, или вообще какую-нибудь условную единицу. (Об условных единицах позже.)
В принципе такого вывода вполне достаточно для практика, если вас интересует только практика, можете дальше этот пункт не читать. Идите на максимально возможные для себя уровни мобов и будьте уверены, что извлечете из Vitality максимум выгоды. А для тех, кто подобно мне, интересуется тем, как именно это все работает, я напишу еще некоторые свои выкладки и формулы.
В предыдущих пунктах мы установили, что в случае, когда речь идет о мобах одного уровня, расход Vitality пропорционален полученному exp. Я бы даже сказал полученному базовому exp, т.к. расход Vitality идет даже тогда когда дополнительный exp не получается (т.е. на 0 уровне до сообщения “Your Vitality is fully exhausted”). Но, те из вас, коллеги-исследователи, кто капался в скриптах C4 PTS сервера возможно в курсе, что там нет такой величины как «базовый exp c моба» (в отличие от базового SP, указанного явно). Есть величина exp_rate указанная для каждого моба в npcdata.txt, а «базовый exp c моба» вычисляется как exp_rate*lvl^2, с округлением в меньшую сторону.
Сами понимаете, что для иксованных мобов этот коэффициент выше. Эта замечательная величина показалась мне отличным кандидатом на то, чтобы быть напрямую связанной со счетчиком Vitality. Поэтому я принял, что обозначу эту величину x и попробую сосчитать ее сумму по убитым мобам для каждого перехода уровня Vitality. Что я и проделал (смотри таблицу). Оказалось, что для любых тестированных мобов переходы уровней Vitality следущие:
4 -> 3 уровень – 165-167 единиц exp_rate (x).
3 -> 2 уровень – 328-333 единиц exp_rate (x).
2 -> 1 уровень – 1136-1191 единиц exp_rate (x).
1 -> 0 уровень – 143-147 единиц exp_rate (x).
0 -> -“- уровень – 21-23 единиц exp_rate (x).
В сумме все Vitality 1796-1859 единиц exp_rate (x).
Несмотря на кажущийся заметным разброс в цифрах, на самом деле он нигде не превышает 2,5% от среднего.
Смотрите таблицу 7 ниже:

Полученные мной соотношения уровней близки к данным, приводившимся в сообщениях:
http://www.l2guru.com/forum/showthread.php?t=111668
http://lineage2.gametsg.com/index.php?v … cleid=5770
http://forums.goha.ru/showpost.php?p=44 … tcount=147
Таким образом примерное количество конкретных мобов, которые посадят вам Vitality на 1 уровень и exp который вы при этом получите можете сосчитать по формулам.
4 -> 3 уровень – N = 166/exp_rate; Exp = 3*N*exp_rate*lvl^2 = 3*166*lvl^2
3 -> 2 уровень – N = 331/exp_rate; Exp = 2.5*N*exp_rate*lvl^2 = 2.5*331* lvl^2
2 -> 1 уровень – N = 1165/exp_rate; Exp = 2*N*exp_rate*lvl^2 = 2*1165*lvl^2
1 -> 0 уровень – N = 145/exp_rate; Exp = 1.5*N*exp_rate*lvl^2 = 1.5*145* lvl^2
0 -> -“- уровень – N = 22/exp_rate; Exp = N*exp_rate*lvl^2 = 22*lvl^2
В сумме все Vitality N = 1830/exp_rate; Exp = 2.075*N*exp_rate*lvl^2 = 3800*lvl^2
Можете сами попробовать проверить по имеющимся у вас данным, или по данным приводившимся в этом топике. Если у вас нет значений exp_rate, то вы можете получить их с достаточной точностью для конкретного моба поделив его базовый exp (который можно найти в базах данных и легко установить экспериментально) на квадрат его уровня. Если у вас есть файл npcdata.txt для С4 PTS, то вы можете взять их оттуда, только учтите, что в грации exp_rate мобов 1-20 остался таким же, а для мобов 21-40 увеличен в 1.2 раза. (Про мобов 40+ не в курсе, потом как-нибудь замеряю)

Для приблизительных расчетов вам это сгодится. Но, меня смущает то, что для перехода 2->1 уровень Vitality где число убитых мобов наибольшее, погрешность тоже самая значительная. По идее должно быть наоборот, возможно есть еще какое-то слагаемое связанное с числом мобов, но сколько я не пытался уловить его не смог.

4. Опыт по восполнению Vitality.

Проводил на чарах с полностью слитой Vitality до сообщения “Your Vitality is fully exhausted”.

Восстановление 0 -> 1 уровня в оффлайне (в городе) – ровно 1 час.
Восстановление 0 -> 1 уровня в онлайне (в городе) – ровно 4 часа.
Восстановление 1 -> 2 уровня в оффлайне (в городе) – 6 часов 30 минут (учена поправка на то, что последние 30 секунд персонаж уже был в онлайне, чтобы можно было засечь момент восстановления).
Это сходится c утверждением, что в онлайн вчетверо медленнее и с временем рассчитанным тут:
http://forums.goha.ru/showpost.php?p=44 … tcount=128
С той лишь разницей, что там 6 часов 25 минут рассчитанные из %% приведенных на корейском форуме (а у них там 7,7% и в итоге сумма 99,9 а не 100). А мои 6 часов 30 минут замерены экспериментально.
У меня есть основания подозревать, что на самом деле там цифры вроде таких:
9%, 18%, 64%, 7,8%, 1,2% в сумме 100.

Тогда получается так. Восстановление в оффлайн: (полужирным проверенное экспериментом.)
0 -> 1 уровень 1,2% – 60 минут (1 час)
1 -> 2 уровень 7,8% – 390 минут (6 1/2 часа)
2 -> 3 уровень 64% – 3200 минут (53 1/3 часов)
3 -> 4 уровень 18% – 900 минут (15 часов)
4 -> Full 9% – 450 минут (7,5 часов)
Полностью 0 -> Full – 5000 минут (83 и 1/3 часа, примерно 3 1/2 суток)
Восстановление в онлайн:
0 -> 1 уровень 1,2% – 240 минут (4 часа)
1 -> 2 уровень 7,8% – 1560 минут (26 часов)
2 -> 3 уровень 64% – 12800 минут (213 1/3 часов)
3 -> 4 уровень 18% – 3600 минут (60 часов)
4 -> Full 9% – 1800 минут (30 часов)
Полностью 0 -> Full – 20000 минут (333 и 1/3 часа, примерно 14 суток)

Чтобы перевести Vitality выраженное в минутах оффлайна в Vitality выраженное в единицах exp_rate вам нужно поделить эти значения на 2,7. Получается например как раз 0-1 уровень виталити равен 60 минут и равен 60/2,7 = 22,(2) единиц exp_rate, а 3-4 450/2,7=166,(6). Выходит примером моб Hangman Tree exp_rate=1,78 равен примерно 4,8 минут оффлайна, и соответственно 19,2 минутам онлайна в городе.

Уважуха тем кто все это осилил. Обсуждения приветствуются. Скачать мой файл с данными в формате xls можно здесь:
http://forums.goha.ru/attachment.php... … 224361759,
можете попытаться сами извлечь из него еще что-нибудь полезное.

(с) Dread Knight
Обсуждение на форуме: http://forums.goha.ru/showthread.php?t=293600