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

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. Как не давать спавнится новым крипам, если предыдущая пачка жива?
 

vulkantsk

Супермодератор
Команда форума
21 Июн 2017
1,147
196
www.dotabuff.com
Проект
Roshan defense
Делаю спавн крипов по триггеру. Крипы спавнятся, но:
1. Крипы спавнятся, даже если герой покинул триггер
2. Как не давать спавнится новым крипам, если предыдущая пачка жива?
1) ParticleThink - запускает таймер, который срабатывает каждые 2 сек
вместо функции ParticleThink используй UnitsDoSpawn
2) нужно сделать таблицу, в которую ты будешь записывать юнитов + таймер с провкрой жи вы ли крипы в пачке, также необходима проверка при в UnitsDoSpawn
 
Реклама: