Спавнер перестарался

  • Автор темы Автор темы METABYTE
  • Дата начала Дата начала

METABYTE

Пользователь
26 Фев 2023
25
0
function ArcSpawnerStart(trigger)
local caller = trigger.caller
local caster = trigger.activator
if caster == nil then
return
end
if caster:IsRealHero() then
PracticeThink(caller, caster)
end
end

function PracticeThink(caller)
Timers:CreateTimer(1, function()
UnitsDoSpawn(caller)
return 2
end)
end

function UnitsDoSpawn(caller)
for i = 1, 10 do
local unitName = 'npc_line_creep_1'
local point = caller:GetAbsOrigin()
local unit = CreateUnitByName(unitName, point+RandomVector(RandomInt(300,300)), true, nil, nil, DOTA_TEAM_NEUTRALS)
end
end

function ArcSpawnerEnd(trigger)

end
Делаю спавн крипов по триггеру. Крипы спавнятся, но:
1. Крипы спавнятся, даже если герой покинул триггер
2. Как не давать спавнится новым крипам, если предыдущая пачка жива?
 
Делаю спавн крипов по триггеру. Крипы спавнятся, но:
1. Крипы спавнятся, даже если герой покинул триггер
2. Как не давать спавнится новым крипам, если предыдущая пачка жива?
1) ParticleThink - запускает таймер, который срабатывает каждые 2 сек
вместо функции ParticleThink используй UnitsDoSpawn
2) нужно сделать таблицу, в которую ты будешь записывать юнитов + таймер с провкрой жи вы ли крипы в пачке, также необходима проверка при в UnitsDoSpawn
 
Реклама: