AlexSpl
О морали в Героях.
Вчера провёл анализ дизассемблированного экзешника hmm2pl.exe (v2.1, Gold от Буки). Вот какие результаты получены:
1) В начале битвы генерируется некоторое псевдослучайное число (зависит, скорее всего, от качественного и количественного состава армии, распределения стеков по слотам и т.п.). Это число не зависит от таймера и хранится в течение битвы по одному и тому же адресу! Далее, оно меняется в процессе битвы, но только в результате арифметических и логических операций (and, or, shl и т.п.). Т. е. если повторять одни и те же ходы (действия), картинка морали будет всегда одной и той же, что позволяет записать "нотацию" партии (подобно шахматам).
AlexSpl;189276О морали в Героях III...
Провёл анализ. Вот что удалось выяснить:
1) Условие выпадения морали такое же: mod(R, 24) + 1 <= m (в данном случае m - это мораль отряда);
2) R - псевдослучайное число - напрямую от таймера не зависит, но теория "задержек" ВЕРНА! Поясню: число R постоянно изменяется в некотором цикле, даже если игрок ничего не предпринимает. Далее, R изменяется довольно быстро, но неравномерно, рывками. Интересное наблюдение: скорость изменения числа R падает до единицы в секунду (примерно, конечно), если просматривать информацию об отряде (ещё одно подтверждение, что это число меняется в цикле анимации). Бывает и такое, что где-то секунду-две R не меняется вовсе...
3) Вывод: предсказать выпадение морали в Героях 3, IMHO, практически не возможно.
Т. о. можно вполне реально добиться выпадения морали (и, возможно, удачи) каждому своему отряду и притом не изменяя структуру игры. Есть над чем поразмыслить...
Не могли бы Вы провести такой же анализ по героям 1? Был бы крайне признателен.
P.S. Как я писал Выше (посты №452, №454), выпадение морали и удачи регламентированы (хотелось бы услышать мнение программиста), но в свете последних событий я уже не чему не буду удивлен.
С уважением, VDV_forever