Пробую сделать +1/+2/+3 скорости на 1й ход, для тактики, во время боя во всех банках (т.е. там где войска по центру)
Иду от простого к сложному. Пробую для любого боя, без учёта тактики сделать бонус к ходу
.text:00475A37 loc_00475A37: ; CODE XREF: sub_00475800+255j
.text:00475A37 cmp dword ptr [ecx+34h], 0FFFFFFFFh ; Compare Two Operands
.text:00475A3B jz short loc_00475A45 ; Jump if Zero (ZF=1)
.text:00475A3D call combatMonster_SetUpNewRound ; Call Procedure
.text:00475A42 mov ecx, [ebp-4]
Сюда мы попадаем когда начинается новый ход.
Здесь я должен убрать бонус к скорости, если он есть. Но лучшее решение - взять номер раунда, если 1й, тогда давать бонус, но временно...
В общем, пробую хоть что-то сделать, что бы работало. Т.е. язнаю что попадаю в блок выше (475A37) после 1го раунда
Делаю:
Код
int __stdcall setTacticsUnitSpeed(LoHook* h, HookContext* c)
{
//*(int*)(c->ecx +196) += 2;
*(int*)(c->ecx + 1224) += 2;
return EXEC_DEFAULT;
}
Код
_PI->WriteLoHook(0x475A37, setTacticsUnitSpeed);
Не работает. Итого вопрос - как более правильно задать скорость монстров, желательно на 1н ход. Какой адресс и edi/edx... юзать
И заодно, было бы здорово понять когда бой в банке, а когда обычный