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

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

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

LOAD

Новичок
15 Июл 2019
3
0
Проект
DOTA EOF
Как добавить предмет всем героям после выбора персонажей?
 
Как добавить предмет всем героям после выбора персонажей?
Делаешь слушатель на 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
 
  • Нравится
Реакции: LuciFerka
Реклама: