NullAlex правильно написал нужно так как инструкция mov dword ptr [edi+18],(float)60 просто замораживает значение из-за того что игровая инструкция fld [edi+18] постоянно (т.е. часто) обращается к адресу. Т.е. код инъекции будет выглядеть примерно так: cmp [flag],1jne originalcodmov dword ptr [edi+18],(float)60mov [flag],0originalcod:fld [edi+18]jmp returnflag:dd 1 или, если хочешь, чтобы можно было менять начальное значение таймера, то так: cmp [flag],1jne originalcodmov [flag],0fld [TimerNew]jmp returnoriginalcod:fld [edi+18]jmp returnflag:dd 1TimerNew:dd (float)60 / вводим в таблице адрес с адресом и названием TimerNew и меняем на 2, 3 минуты и т.д.ЗЫ: Если дальше в игровом коде нету что-то типа: fstp [edi+18]то последний код нужно будет немного изменить. Скорее всего сам 'шанс критического удара' в игре - это константа. а меняются именно кол-во вложенных очков в это умение и игровой код умножает кол-во вложенных очков на константу. Соответственно нужно искать целое значение (скорее всего 4 байта), но для отсева нужно несколько очков умений, чтобы вложить.