Добавлен ClotPh
Перезарядить отдельную абилу (втч геройскую) можно так: запомнить ее уровень и равкод в переменные, сремувить ее (геройская ремувится, только она там, по-моему, остаётся в списке возможных для выучивания и попадает в невыученные, но это никто заметить не успеет), немедленно вернуть, задать бывший уровень. Работает отлично.
А как перезарядить отдельный предмет, не перезаряжая всего остального?
Принятый ответ
function StartAbilityCooldown takes unit whichUnit, integer abilityId, real cd returns boolean
local integer pAbility = 0
if whichUnit == null or GetUnitAbilityLevel( whichUnit, abilityId ) < 1 or cd == 0.00 then
return false
endif
set pAbility = GetUnitAbility(whichUnit, abilityId)
if pAbility < 1 then
return false
else
if ReadRealMemory( pAbility+0x134 ) != 0 or ReadRealMemory( pAbility+0x138 ) != 0 then
call WriteRealMemory( pAbility+0x134,0 )
call WriteRealMemory( pAbility+0x138,0 )
endif
set Memory[pReserverdIntArg1 / 4] = SetRealIntoMemory(cd)
call CallThisCallWith2Args( pStartAbilityCD, pAbility, pReserverdIntArg1 )
return IsAbilityOnCooldown( pAbility )
endif
return false
endfunction
0
quq_CCCP
7 лет назад
0
очень просто - StartAbilityCooldown ( unit, id, -1.00 ), функцию я прикладывал в теме про мемхак, как и проверку на фатал блинка.
0
ClotPh
7 лет назад
0
Тогда если не лень, кинь плз сюда ссылку на пост с рабочим не фаталящим втч на блинках StartAbilityCooldown, чтобы мне по всей теме там не искать
4
quq_CCCP
7 лет назад
4
Принятый ответ
0
ClotPh
7 лет назад
0
Благодарю. Можно закрывать.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.