Не ресает чела

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

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

BaByIIIka

Новичок
6 Ноя 2021
5
0
Проект
BountyArena
Всем привет. После попадания на хук, жертва (и сам пудж) тепается на спавн и ресается, но это работает только с ботом. (команда в консоли: dota_bot_populate). А если вместо бота реальный аккаунт, то это не работает. Жертва получает пуджа, и становится на точку спавна жертвы лол

Вот отрезок кода:
Код:
for nPlayerID = 0, DOTA_MAX_TEAM_PLAYERS-1 do 
            if nPlayerID == 0 then
                print("entered PID = 0")
                countPersons = countPersons + 1
                local hero = PlayerResource:GetSelectedHeroEntity(0)
                if (hero:IsAlive() == 0) then
                    hero:RespawnHero(false,false)
                else
                    if horn == true then
                           hero:EmitSound("DOTA_Item.ClarityPotion.Activate")
                           hero:EmitSound("GameStart.RadiantAncient")
                    end
                end
                local point = Entities:FindByName(nil, "start_good"):GetAbsOrigin()
                FindClearSpaceForUnit(hero, point, false)
                hero:EmitSound("Hero_Antimage.Blink_out")
                PlayerResource:ReplaceHeroWith(nPlayerID, goodHero, 0, 0)
            end
            if nPlayerID == 1 then
                print("entered PID = 1")
                countPersons = countPersons + 1
                local hero = PlayerResource:GetSelectedHeroEntity(1)
                if (hero:IsAlive() == 0) then
                    hero:RespawnHero(false,false)
                else
                    if horn == true then
                           hero:EmitSound("DOTA_Item.ClarityPotion.Activate")
                           hero:EmitSound("GameStart.RadiantAncient")
                    end
                end
                local point = Entities:FindByName(nil, "start_bad"):GetAbsOrigin()
                FindClearSpaceForUnit(hero, point, false)
                hero:EmitSound("Hero_Antimage.Blink_out")
                PlayerResource:ReplaceHeroWith(nPlayerID, badHero, 0, 0)
            end
    end

В коде, start_good и start_bad - точки спавна на карте
goodNum,goodHero,badNum,badHero я получаю после пика героя игроком, являются глобальными переменными
 
Нашел решение:

Код:
for i=2,3 do
        local Now_Point = Entities:FindByName(nil, Points[i-1]):GetAbsOrigin()
        local Now_PlayerID = PlayerResource:GetNthPlayerIDOnTeam(i, 1)
        local Now_Entity = PlayerResource:GetSelectedHeroEntity(Now_PlayerID)
            if Now_Entity and (not Now_Entity:IsNull()) then
                    if not Now_Entity:IsAlive() then
                       Timers:CreateTimer({ endTime = 0.3,
                    callback = function()
                    Now_Entity:RespawnHero(false, false)
                        PlayerResource:ReplaceHeroWith(Now_PlayerID, H_Hero[i-1], 0, 0)
                end })
             else
                FindClearSpaceForUnit(Now_Entity, Now_Point, false)
                PlayerResource:ReplaceHeroWith(Now_PlayerID, H_Hero[i-1], 0, 0)
            end
        end
    end

i = 2,3 - сила света и тьмы
H_Hero[] и Points[] заданы глобально и определяются после стадии пика
 
Реклама: