(15.02.2023 08:21)Archer30 Wrote: It resets AI heroes every X day with the function !!SN:E5081488/(CALLCONV_THISCALL)/(heroPtr)/(hero); to remove some unimportant data so that the AI could start moving instead of being stuck in a place for minutes. I don't know the details of this function, but it just works. The AI heroes do have a shorter time of responding.
Единственное, что увидел в этой функции, влияющее на ИИ, это сброс множителя агрессии героя на дефолтное значение и сброс координат карты, в которые идёт ИИ. И то, и другое можно устанавливать вручную с помощью нескольких строк, без вызова функции по 5081488, т.е. без костылей в сотни ERM-строк, замедляющих игру. НО:
1. Сброс координат заставит ИИ поменять цель визита на карте, что, возможно, сделает его тупее.
2. Сброс агрессии так же может превратить героя в тряпку и лёгкую мешень для человека.
3. Можно конечно сбрасывать счётчики телепортации и городского портала, но так ИИ так же не сможет пользоваться данными заклинаниями на 1 ход, т.е. ещё сильнее оглупеет.
Алгоритмы поведения ИИ с помощью кастылей всё же советую не менять - они написаны достаточно неплохо и работают быстро на картах стандартных размеров. Да, на картах гигантсткого размера ИИ долго думает, но это решается только увеличением тактовой частоты процессора - по коду игры радикальных оптимизаций написать за 20 лет пока ни у кого не получилось. Костыли в виде отупляющих ИИ ERM-скриптов - не выход.