-- всё в addon_game_mode
-- Что-то подобное у тебя должно уже быть
-- Используй своё имя класса вместо YourGameMode
if YourGameMode == nil then
YourGameMode = class({})
end
-------------------------------------------------------
-- добавляем эту строку в YourGameMode:InitGameMode()
ListenToGameEvent('dota_player_used_ability', Dynamic_Wrap(YourGameMode, 'on_player_used_ability'), self)
-- функция ListenToGameEvent ждёт событие 'dota_player_used_ability' и запускает функцию 'on_player_used_ability' каждый раз, когда игрок использует какую-либо способность у любого из юнитов
-- событие срабатывает только если абилку юзнул игрок, если надо отследить использование, например, от нейтралов. то используй событие 'dota_non_player_used_ability'
-- полный список событий, которые можно отследить ищи тут https://moddota.com/api/#!/events
-- имя запускаемой функции "on_player_used_ability" можешь задать любое
-- сама функция сброса кулдауна, запускающаяся по событию, добавь в конец addon_game_mode
function YourGameMode:on_player_used_ability( kv )
local hAbility = EntIndexToHScript(kv.caster_entindex):FindAbilityByName( kv.abilityname )
hAbility:EndCooldown()
end