Спавнеры

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

rodor03

Пользователь
12 Июл 2018
61
0
Проект
Убей босса и выиграй
Как сделать чтобы спавнеры перестовали спавнится допустим на 10 минуте.Вот в этом коде:

Timers:CreateTimer(start_after, function()
SpawnEasyCreepsRadiant()
return repeat_interval
end)

function SpawnEasyCreepsRadiant()
local point = Entities:FindByName( nil, "SpawnEasyCreepsRadiantsw"):GetAbsOrigin()
local waypoint = Entities:FindByName(nil, "SpawnEasyCreepsRadianttsa"):GetAbsOrigin()
local units_to_spawn = 6
for i=1, units_to_spawn do
Timers:CreateTimer(function()
local unit = CreateUnitByName("npc_dota_neutral_mud_golem_split_doom", point+RandomVector(RandomInt(100,200)), true, nil, nil, DOTA_TEAM_NEUTRALS)
ExecuteOrderFromTable({ UnitIndex = unit:GetEntityIndex(),
OrderType = DOTA_UNIT_ORDER_MOVE_TO_POSITION,
Position = waypoint, Queue = true} )
print("Move ",unit:GetEntityIndex()," to ", waypoint)
end)
end
end
 
Как сделать чтобы спавнеры перестовали спавнится допустим на 10 минуте.Вот в этом коде:

Timers:CreateTimer(start_after, function()
SpawnEasyCreepsRadiant()
return repeat_interval
end)

function SpawnEasyCreepsRadiant()
local point = Entities:FindByName( nil, "SpawnEasyCreepsRadiantsw"):GetAbsOrigin()
local waypoint = Entities:FindByName(nil, "SpawnEasyCreepsRadianttsa"):GetAbsOrigin()
local units_to_spawn = 6
for i=1, units_to_spawn do
Timers:CreateTimer(function()
local unit = CreateUnitByName("npc_dota_neutral_mud_golem_split_doom", point+RandomVector(RandomInt(100,200)), true, nil, nil, DOTA_TEAM_NEUTRALS)
ExecuteOrderFromTable({ UnitIndex = unit:GetEntityIndex(),
OrderType = DOTA_UNIT_ORDER_MOVE_TO_POSITION,
Position = waypoint, Queue = true} )
print("Move ",unit:GetEntityIndex()," to ", waypoint)
end)
end
end
local _G.Timer = Timers:CreateTimer( Timers:CreateTimer(start_after, function() -- записать таймер
if GameRules:GetGameTime() >= 600 then Timers:RemoveTimer(_G.Timer) -- если 600 сек прошло удалить таймер
 
local _G.Timer = Timers:CreateTimer( Timers:CreateTimer(start_after, function() -- записать таймер
if GameRules:GetGameTime() >= 600 then Timers:RemoveTimer(_G.Timer) -- если 600 сек прошло удалить таймер
Так?
Timers:CreateTimer(start_after, function()
SpawnEasyCreepsRadiant()
return repeat_interval
if GameRules:GetGameTime() >= 600 then
Timers:RemoveTimer(_G.Timer) -- если 600 сек прошло удалить таймер
 
_G.timer_spavner = Timers:CreateTimer(start_after, function()
SpawnEasyCreepsRadiant()
if GameRules:GetGameTime() >= 600 then --если прошло 600 секунд
Timers:RemoveTimer(_G.timer_spavner)
end
return repeat_interval
end)

function SpawnEasyCreepsRadiant()
local point = Entities:FindByName( nil, "SpawnEasyCreepsRadiantsw"):GetAbsOrigin()
local waypoint = Entities:FindByName(nil, "SpawnEasyCreepsRadianttsa"):GetAbsOrigin()
local units_to_spawn = 6
for i=1, units_to_spawn do
Timers:CreateTimer(function()
local unit = CreateUnitByName("npc_dota_neutral_mud_golem_split_doom", point+RandomVector(RandomInt(100,200)), true, nil, nil, DOTA_TEAM_NEUTRALS)
ExecuteOrderFromTable({ UnitIndex = unit:GetEntityIndex(),
OrderType = DOTA_UNIT_ORDER_MOVE_TO_POSITION,
Position = waypoint, Queue = true} )
print("Move ",unit:GetEntityIndex()," to ", waypoint)
end)
end
end
 
_G.timer_spavner = Timers:CreateTimer(start_after, function()
SpawnEasyCreepsRadiant()
if GameRules:GetGameTime() >= 600 then --если прошло 600 секунд
Timers:RemoveTimer(_G.timer_spavner)
end
return repeat_interval
end)

function SpawnEasyCreepsRadiant()
local point = Entities:FindByName( nil, "SpawnEasyCreepsRadiantsw"):GetAbsOrigin()
local waypoint = Entities:FindByName(nil, "SpawnEasyCreepsRadianttsa"):GetAbsOrigin()
local units_to_spawn = 6
for i=1, units_to_spawn do
Timers:CreateTimer(function()
local unit = CreateUnitByName("npc_dota_neutral_mud_golem_split_doom", point+RandomVector(RandomInt(100,200)), true, nil, nil, DOTA_TEAM_NEUTRALS)
ExecuteOrderFromTable({ UnitIndex = unit:GetEntityIndex(),
OrderType = DOTA_UNIT_ORDER_MOVE_TO_POSITION,
Position = waypoint, Queue = true} )
print("Move ",unit:GetEntityIndex()," to ", waypoint)
end)
end
end
Lua:
                                                                                  _G.timer_test = Timers:CreateTimer(start_after, function()
    SpawnLvlTwoEasy()
    if GameRules:GetGameTime() >= 900 then
      Timers:RemoveTimer(_G.timer_test)
    end
      return repeat_interval
    end)

Правильно отсортировал?
 
Вообще должен удалиться, но если ты создашь несколько таймеров и все сохранишь в эту переменную, то удалится только последний.
В коллбэкэ таймера просто return nil пишешь и таймер больше исполнятся не будет.
Timers:RemoveTimer используют когда нужно прервать выполнение таймера извне.
 
Последнее редактирование:
Вообще должен удалиться, но если ты создашь несколько таймеров и все сохранишь в эту переменную, то удалится только последний.
В коллбэкэ таймера просто return nil пишешь и таймер больше исполнятся не будет.
Timers:RemoveTimer используют когда нужно прервать выполнение таймера извне.
Напиши код пж
 
Вообще должен удалиться, но если ты создашь несколько таймеров и все сохранишь в эту переменную, то удалится только последний.
В коллбэкэ таймера просто return nil пишешь и таймер больше исполнятся не будет.
Timers:RemoveTimer используют когда нужно прервать выполнение таймера извне.
не удаляется.
 
Timers:CreateTimer(start_after, function()
SpawnEasyCreepsRadiant()
if GameRules:GetGameTime() <=600 then
return repeat_interval end
end)
 
  • Нравится
Реакции: Дикий Пёс
Код:
                                                                                                         Timers:CreateTimer(start_after,
    function()
    SpawnEasyCreepsTest()
    if GameRules:GetGameTime() <=150 then
      return repeat_interval end
    end)
Так?
Тебе же скинули,с таймером. Возвращая repeat_interval,твой таймер будет идти снова. Если его нужно остановить,возвращай nil.
 
Реклама: