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

  • Автор темы Автор темы NeedWay
  • Дата начала Дата начала
  • Официальное уведомление администрации CustomGames.RU
    В связи с масштабным техническим сбоем в инфраструктуре прежнего хостинг-провайдера (Beget), работа форума CustomGames.RU была оперативно перенесена на новую серверную площадку и развёрнута из резервной копии базы данных.

    • Безопасность данных: учётные записи и данные пользователей находятся в полной безопасности. Все пароли и защищаемые параметры хранятся исключительно в криптографически зашифрованном (хэшированном) виде — никаких критических инцидентов для аккаунтов пользователей не произошло.
    • Временные технические ограничения: на этапе синхронизации файлового хранилища часть статических материалов (пользовательские аватары и архивные вложения) временно недоступна. По мере получения доступа к файловым архивам все материалы будут восстановлены в полном объёме.

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)
Но выдает ошибки связанные ключами. В лисенерах еще не совсем разобрался, молю о помощи)
 
Сейчас переписал так:
Код:
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
 
Нужна помощь со слушателем убийства. Мне нужно, чтобы при убийстве босса-кентавра(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
 
Реклама: