diff --git a/mods/ra/maps/allies-03a/allies03a.lua b/mods/ra/maps/allies-03a/allies03a.lua index 6445ac8a13..fa9edad3e9 100644 --- a/mods/ra/maps/allies-03a/allies03a.lua +++ b/mods/ra/maps/allies-03a/allies03a.lua @@ -16,7 +16,13 @@ else ChangeStance = true end -IdleHunt = function(actor) Trigger.OnIdle(actor, actor.Hunt) end +IdleHunt = function(actor) + Trigger.OnIdle(actor, function(a) + if a.IsInWorld then + a.Hunt() + end + end) +end ProduceUnits = function(factory, count) if ussr.IsProducing("e1") then diff --git a/mods/ra/maps/allies-03b/allies03b.lua b/mods/ra/maps/allies-03b/allies03b.lua index 6067316ad4..ceea0b2135 100644 --- a/mods/ra/maps/allies-03b/allies03b.lua +++ b/mods/ra/maps/allies-03b/allies03b.lua @@ -27,7 +27,13 @@ else ChangeStance = true end -IdleHunt = function(actor) Trigger.OnIdle(actor, actor.Hunt) end +IdleHunt = function(actor) + Trigger.OnIdle(actor, function(a) + if a.IsInWorld then + a.Hunt() + end + end) +end Tick = function() if TeleportJeepCamera and Jeep.IsInWorld then diff --git a/mods/ra/maps/desert-shellmap/desert-shellmap.lua b/mods/ra/maps/desert-shellmap/desert-shellmap.lua index 34efded0f9..41f612277f 100644 --- a/mods/ra/maps/desert-shellmap/desert-shellmap.lua +++ b/mods/ra/maps/desert-shellmap/desert-shellmap.lua @@ -36,9 +36,17 @@ ParadropWaypoints = { Paradrop1, Paradrop2, Paradrop3, Paradrop4, Paradrop5, Par BindActorTriggers = function(a) if a.HasProperty("Hunt") then if a.Owner == allies then - Trigger.OnIdle(a, a.Hunt) + Trigger.OnIdle(a, function(a) + if a.IsInWorld then + a.Hunt() + end + end) else - Trigger.OnIdle(a, function(a) a.AttackMove(AlliedTechnologyCenter.Location) end) + Trigger.OnIdle(a, function(a) + if a.IsInWorld then + a.AttackMove(AlliedTechnologyCenter.Location) + end + end) end end diff --git a/mods/ra/maps/intervention/intervention.lua b/mods/ra/maps/intervention/intervention.lua index 34257899eb..a4030baddc 100644 --- a/mods/ra/maps/intervention/intervention.lua +++ b/mods/ra/maps/intervention/intervention.lua @@ -60,7 +60,11 @@ ParadropSovietUnits = function() local units = powerproxy.SendParatroopers(MCVDeployLocation.CenterPosition, false, 256 - 53) Utils.Do(units, function(a) - Trigger.OnIdle(a, a.Hunt) + Trigger.OnIdle(a, function(actor) + if actor.IsInWorld then + actor.Hunt() + end + end) end) powerproxy.Destroy() diff --git a/mods/ra/maps/survival01/survival01.lua b/mods/ra/maps/survival01/survival01.lua index e4229fcf47..9c4cf41b0f 100644 --- a/mods/ra/maps/survival01/survival01.lua +++ b/mods/ra/maps/survival01/survival01.lua @@ -185,7 +185,11 @@ SendSovietParadrops = function(table) local units = powerproxy.SendParatroopers(table[2].CenterPosition, false, table[1]) Utils.Do(units, function(unit) - Trigger.OnIdle(unit, unit.Hunt) + Trigger.OnIdle(unit, function(a) + if a.IsInWorld then + a.Hunt() + end + end) end) end diff --git a/mods/ra/maps/survival02/survival02.lua b/mods/ra/maps/survival02/survival02.lua index c196631e48..1eb612cea8 100644 --- a/mods/ra/maps/survival02/survival02.lua +++ b/mods/ra/maps/survival02/survival02.lua @@ -35,7 +35,13 @@ ParaWaves = { AttackTicks * 3, { "SovietSquad", SovietParaDrop1 } } } -IdleHunt = function(unit) Trigger.OnIdle(unit, unit.Hunt) end +IdleHunt = function(unit) + Trigger.OnIdle(unit, function(a) + if a.IsInWorld then + a.Hunt() + end + end) +end GuardHarvester = function(unit, harvester) if not unit.IsDead then