Общие принципы, по которым в оригинальной игре рассчитываются AI_Value, я показывал здесь viewtopic.php?f=39&t=195&start=85 а также несколькими постами ранее этого на примере Героев 2. Правда, обнаружилась существенная разница. В Героях 2 AI_Value тесно связана с последующим расчетом показателя "выгодности" покупки существ, поэтому в Двоечных AI_Value фигурирует слагаемое, связанное с вероятностью сохранения в живых верхнего существа в отряде (несмотря на неполное здоровье). В Героях 3 такого слагаемого нет, там AI_Value отражает полезность существа для победы здесь и сейчас, в данном конкретном бою.
Что удалось уточнить по сравнению с постом viewtopic.php?f=39&t=195&start=85 ?
Естественно, величину бонусных коэффициентов для различных абилок, а также - формулы бонусов за скорость.
Расчет бонуса для "рукопашников":
Fight_value * 0,1 * sqrt (Скорость - 5)
Расчет бонуса для "летунов":
Fight_value * 0,1 * sqrt (Скорость - 6)
Расчет бонуса для стрелков:
Fight_value * 0,1 * sqrt (Скорость - 4)
Добавим в этом контексте, что "летуны" еще имеют дополнительный бонус с коэффициентом 0,1 за способность летать (о чем уже было упомянуто в viewtopic.php?f=39&t=195&start=85)
Для "рукопашников" также имеет место отрицательный бонус (то есть штраф), если скорость меньше 5. Лично я с ней не согласен , но она примерно такая:
-Fight_value * 0,2 * ((5 - Скорость) ^ 0,66)
Исправления пришлось вводить для существ, не вписывающихся в данную модель (разница 15-20% и более). Предположу, однако, что не вписываются они не потому что модель не верна, а потому что в оригинальной игре значения были рассчитаны небрежно. Например, после усиления в аддонах таких существ, как Цербер, Летучий змий, Ящер, Ящер-воин AI_Value не были скорректированы. Возможно, что по ходу разработки самой RoE имели место такие же ошибки, то есть подправлялись боевые параметры существ (разработчики искали баланс), а AI_Value затем не корректировались.
Также исправление делалось мною в том случае, если у неулучшенного варианта существа значительное отклонение от расчета имело место в одну сторону, а для улучшенного - в другую (разность между AI_value улучшенного и неулучшенного варианта существа важна, например, для расчета необходимости "апгрейда", производимого компьютерным игроком).
В некоторых очень редких случаях (например, для Магога) причина исправления заключалась в сильном расхождении моего мнения с разработчиками по поводу степени полезности той или иной абилки.
По итогам моей работы были исправлены AI_Value для Крестоносцев, Монахов, Магогов, Церберов, Султанов-Эфритов, Лордов-Вампиров, Мантикор, Гноллов, Ящеров, Ящеров-Воинов, Могучих Горгон, Летучих Змиев, Алмазных Големов, Волшебных Элементалов, Лазурных Драконов, Кристальных Драконов.
Естественно, в идеале стоило бы вывести правильные и абсолютно надежные формулы для всех существ и скорректировать все. Но, полагаю, точечные корректировки имеют право на существование и сделают игру лучше оригинальной. Уточню, что итоговые значения были рассчитаны как среднеарифметические между "своими" и значениями NWC.
Исправленные значения (в скобках - старые оригинальные значения):
AI_Value | Fight_Value | |
Крестоносец | 630(588) | 588(588) |
Монах | 535(485) | 485(485) |
Дендроид | 568(517) | 690(690) |
Джинн-повелитель | 1031(942) | 798(748) |
Магог | 217 (240) | 194(210) |
Цербер | 439(392) | 361(308) |
Султан-Эфр. | 1985(1848) | 1584(1584) |
Лорд-вампир | 930(783) | 749(652) |
Мантикора | 1458(1547) | 1178(1215) |
Гнолл | 63(56) | 79(70) |
Ящер | 140(126) | 128(115) |
Ящер-воин | 188(156) | 156(130) |
Могучий горг. | 1157(1028) | 1099(1028) |
Летуч.змий | 346(312) | 265(250) |
Виверн-монарх | 1663(1518) | 1274(1181) |
Алмаз.голем | 863(775) | 863(775) |
Элем.магмы | 538(490) | 511(490) |
Волшеб.элем. | 2342(2012) | 1975(1724) |
Лазур.Драк. | 66746(78845) | 46485(56315) |
Кристал.Драк. | 32815(39338) | 25002(30260) |
Планирую при случае написать плагин, который вводит эти исправления в игру.