Слушатель убийства

NeedWay

Активный
5 Сен 2017
128
9
steamcommunity.com
Проект
MIDDLE HERO WAR
Нужна помощь со слушателем убийства. Мне нужно, чтобы при убийстве босса-кентавра(centboss) определялся победитель - силы света.
Вот что я написал в function GameMode:OnGameInProgress():
Код:
 local killedUnit = EntIndexToHScript( keys.entindex_killed )
    local name = killedUnit:GetUnitName()
    if name == "centboss" then
    GameRules:SetGameWinner(DOTA_TEAM_GOODGUYS)
    end
и это в function Activate():
Код:
ListenToGameEvent('entity_killed', Dynamic_Wrap(GameWinner, 'OnEntityKilled'), self)
Но выдает ошибки связанные ключами. В лисенерах еще не совсем разобрался, молю о помощи)
 

NeedWay

Активный
5 Сен 2017
128
9
steamcommunity.com
Проект
MIDDLE HERO WAR
Сейчас переписал так:
Код:
if GameWinner == nil then 
_G.GameWinner = class({}) 
end
Код:
function GameWinner:OnEntityKilled( keys )
ListenToGameEvent('entity_killed', Dynamic_Wrap(GameWinner, 'OnEntityKilled'), self)
    local killedUnit = EntIndexToHScript( keys.entindex_killed )
    local name = killedUnit:GetUnitName()
    if name == "boss2" then
    GameRules:SetGameWinner(DOTA_TEAM_GOODGUYS)
    end
end
Все равно не работает, в консоли ошибок 0
 

HappyFeedFriends

Друзья CG
14 Авг 2017
540
32
Проект
Battle Heroes Arena
Нужна помощь со слушателем убийства. Мне нужно, чтобы при убийстве босса-кентавра(centboss) определялся победитель - силы света.
Вот что я написал в function GameMode:OnGameInProgress():
Код:
local killedUnit = EntIndexToHScript( keys.entindex_killed )
    local name = killedUnit:GetUnitName()
    if name == "centboss" then
    GameRules:SetGameWinner(DOTA_TEAM_GOODGUYS)
    end
и это в function Activate():
Код:
ListenToGameEvent('entity_killed', Dynamic_Wrap(GameWinner, 'OnEntityKilled'), self)
Но выдает ошибки связанные ключами. В лисенерах еще не совсем разобрался, молю о помощи)

Код:
 local killedUnit = EntIndexToHScript( keys.entindex_killed )
    local name = killedUnit:GetUnitName()
    local killer = EntIndexToHScript( event.entindex_attacker )
    if name == "centboss" and Killer:IsRealHero()  then
    GameRules:SetGameWinner(Killer:GetTeam()) -- вычесляешь команду убийцы.
    end
 
Реклама: