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

NeedWay

Активный
5 Сен 2017
104
5
18
17
steamcommunity.com
Проект
Dota 2 PUBG
Реакции
5 0 0
#1
Нужна помощь со слушателем убийства. Мне нужно, чтобы при убийстве босса-кентавра(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
104
5
18
17
steamcommunity.com
Проект
Dota 2 PUBG
Реакции
5 0 0
#4
Сейчас переписал так:
Код:
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
 
20 Дек 2016
491
61
28
10
Проект
DI:LS
Реакции
77 0 0
#5
Реклама:

NeedWay

Активный
5 Сен 2017
104
5
18
17
steamcommunity.com
Проект
Dota 2 PUBG
Реакции
5 0 0
#7
14 Авг 2017
415
19
18
17
Проект
Battle Heroes Arena
Реакции
26 0 0
#8
Нужна помощь со слушателем убийства. Мне нужно, чтобы при убийстве босса-кентавра(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
 
Реклама: