После исправления бага для заклинания Dragon Slayer (ИИ) решил всерьез прошерстить систему заклинаний и в конечном счете написать 1 большой плагин с фиксами (+ еще один плагин для "улучшения" системы заклинаний касательно ИИ, чтобы геймплей был более разнообразным (а заодно уж и более эффективным) и не сводился к применению Blind или Paralize в 90% случаев).
На данный момент выяснилось, что при "взвешивании" заклинаний для ИИ перепутан знак для заклинаний Slow/Mass Slow (забыт минус). Из-за этого заклинание ИИ не применялось. Ну и дополнительно пофиксил расчет целевой координаты X при взвешивании Slow/Haste - имела место грубая ошибка.
Таким образом, в дополнение к Dragon Slayer, удалось вернуть в игру еще 4 заклинания, и каких ! (Slow, Mass Slow, Haste, Mass Haste).
Код для Буки:
- Код: Выделить всё
int __stdcall correctSlowWeightSign(LoHook* h, HookContext* c)
{
c->eax = c->eax * (-1);
return EXEC_DEFAULT;
}
int __stdcall correctTargetX(LoHook* h, HookContext* c)
{
army* targetStack = *(army**)(c->ebp + 8);
if(targetStack->owningSide == 0)
c->return_address = 0x4972A7;
else
c->return_address = 0x49729C;
return NO_EXEC_DEFAULT;
}
...
_PI->WriteLoHook(0x49664D, correctSlowWeightSign);
_PI->WriteLoHook(0x497293, correctTargetX);