Решено Как сделать респавн игрока в 5 секунд(не через settings.lua), чтобы независимо от лвла был респавн.

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

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

Setinder

Пользователь
23 Авг 2022
28
1

​


Пытался сделать фиксированный респавн игрока, но получилось только сделать так, чтобы респавн был всегда 26 секунд. Как сделать меньше?
 
Lua:
GameRules:GetGameModeEntity():SetFixedRespawnTime(10) -- 10 секунд
Подключаешь слушатель к ивенту entity_killed, затем делаешь нужные проверки и через CDOTA_BaseNPC_Hero:SetTimeUntilRespawn(time: float) задаешь время
Lua:
function CAddonTemplateGameMode:InitGameMode()
    ListenToGameEvent("entity_killed", Dynamic_Wrap(self, "OnEntityKilled"), self)
end

function CAddonTemplateGameMode:OnEntityKilled(event)
    local killedUnit = EntIndexToHScript(event.entindex_killed)
    if killedUnit:IsRealHero() and killedUnit:GetLevel() < 10 then -- юнит герой и у него < 10 лвл
        killedUnit:SetTimeUntilRespawn(10) -- 10 секунд
    end
end
 
Реклама: