Как добавить предмет всем героям после выбора персонажей?

LOAD

Новичок
15 Июл 2019
2
0
Проект
DOTA EOF
Как добавить предмет всем героям после выбора персонажей?
 

SniperX

Друзья CG
26 Фев 2018
534
92
steamcommunity.com
Проект
Dota 2 Classic 6.84
Как добавить предмет всем героям после выбора персонажей?
Делаешь слушатель на game_rules_state_change, затем проверяешь текущую стадию игры с помощью GameRules:State_Get(), как я полагаю. Если у тебя есть Pre Game стадия, то тебе нужен DOTA_GAMERULES_STATE_PRE_GAME, а если нету Pre Game, то DOTA_GAMERULES_STATE_GAME_IN_PROGRESS, вот список всех стадий игры.

Затем проходишь по всем возможным Player ID, если Player ID действительный, и у него есть герой, то выдаешь герою предмет.
Lua:
function CAddonTemplateGameMode:InitGameMode()
    ListenToGameEvent("game_rules_state_change", Dynamic_Wrap(CAddonTemplateGameMode, "OnStateChanged"), CAddonTemplateGameMode) -- создаем слушатель
end
function CAddonTemplateGameMode:OnStateChanged() -- функция слушателя
    if GameRules:State_Get() == DOTA_GAMERULES_STATE_PRE_GAME then -- если сейчас стадия Pre Game
        for i=0, DOTA_MAX_TEAM_PLAYERS do -- проходимся по всем возможным Player ID
            if PlayerResource:IsValidPlayerID(i) then -- если Player ID действителен
                local hero = PlayerResource:GetSelectedHeroEntity(i) -- находим его героя
                if hero and IsValidEntity(hero) then -- если герой действителен/существует
                    hero:AddItemByName("item_blink") -- выдаем ему блинк
                end
            end
        end
    end
end
 
Реклама: