При смерти команды побеждает другая

SniperX

Друзья CG
26 Фев 2018
539
100
Проект
Dota 2x4
Как вообщем триггерить когда умирает вся тима?
 

SniperX

Друзья CG
26 Фев 2018
539
100
Проект
Dota 2x4
Это изи оказывается

Lua:
function CAddonTemplateGameMode:CheckForDefeat()
    if GameRules:State_Get() ~= DOTA_GAMERULES_STATE_GAME_IN_PROGRESS then
        return
    end
    local bAllPlayersDead = true
    for nPlayerID = 0, DOTA_MAX_TEAM_PLAYERS-1 do
        if PlayerResource:GetTeam( nPlayerID ) == DOTA_TEAM_GOODGUYS then
            if not PlayerResource:HasSelectedHero( nPlayerID ) then
                bAllPlayersDead = false
            else
                local hero = PlayerResource:GetSelectedHeroEntity( nPlayerID )
                if hero and hero:IsAlive() then
                    bAllPlayersDead = false
                end
            end
        end
    end
    if bAllPlayersDead then
        GameRules:SetGameWinner( DOTA_TEAM_BADGUYS )
        return
    end
end
Lua:
function CAddonTemplateGameMode:OnThink()
    if GameRules:State_Get() == DOTA_GAMERULES_STATE_GAME_IN_PROGRESS then
    self:CheckForDefeat()
    elseif GameRules:State_Get() >= DOTA_GAMERULES_STATE_POST_GAME then
        return nil
    end
    return 1
end
 
20 Дек 2016
892
170
if not PlayerResource:HasSelectedHero( nPlayerID ) then bAllPlayersDead = false else
Советую заменить эту часть просто на
Код:
if PlayerResource:HasSelectedHero( nPlayerID ) then
иначе команда, в которой кто-то не взял героя никогда не проиграет.
Еще в начале перебора на всякий случай есть смысл делать проверку на IsValidPlayerID
 

SniperX

Друзья CG
26 Фев 2018
539
100
Проект
Dota 2x4
Советую заменить эту часть просто на
Код:
if PlayerResource:HasSelectedHero( nPlayerID ) then
иначе команда, в которой кто-то не взял героя никогда не проиграет.
Еще в начале перебора на всякий случай есть смысл делать проверку на IsValidPlayerID
У меня в начале игры всем даётся висп, а команде тьмы даётся ликан. Так что таких багов не будет
 
Реклама: