When the house dies the runner still spawns

Level 12
Joined
Aug 3, 2021
Messages
436
Hello its Pekisa7. I once again need help from you guys. I recently tested my map and destroyed the farm where the enemy runner spawns. But when I destory the farm the timer for the runner still goes of and the runner still spawns. Can someone help me to fix this? Here are the triggers:]
  • RunnerSpawnBuilding Dies
    • Events
      • Unit - A unit owned by Player 15 (Turquoise) Dies
    • Conditions
      • (Dying unit) Equal to RunnerSpawnBuilding
    • Actions
      • Set RunnerSpawnBuilding = (Random unit from (Units owned by Player 15 (Turquoise) matching ((((Picked unit) is alive) Equal to True) and (((Picked unit) is A structure) Equal to True))))
      • Region - Center RunnerStart <gen> on (Position of RunnerSpawnBuilding)
 
It should be (Matching unit), not (Picked unit).
You also do not check if RunnerSpawnBuilding != (No unit) - if no unit was picked, the region will be centered around center of map (at coords [0, 0])
RunnerSpawnBuilding = Farm is checked in inilzation of my map.
 
It should be (Matching unit), not (Picked unit).
You also do not check if RunnerSpawnBuilding != (No unit) - if no unit was picked, the region will be centered around center of map (at coords [0, 0])
I put matching unit as you said but the runner still spawns.
 
I think he wants to destroy/pause a Timer when the building dies, but his trigger is currently doing nothing of the sort.

@Pekisa7
Please explain in detail what "still spawns" means. Does it spawn at the dead building's position? Does it spawn at the new building's position? Do you want it to stop spawning entirely?

If you're using a Timer then you need to actually stop the timer when the building dies:
  • Actions
    • Set RunnerSpawnBuilding = (Random unit from (Units owned by Player 15 (Turquoise) matching ((((Matching unit) is alive) Equal to True) and (((Matching unit) is A structure) Equal to True))))
    • Region - Center RunnerStart <gen> on (Position of RunnerSpawnBuilding)
    • Special Effect - Create a special effect at (Position of RunnerSpawnBuilding) using Abilities\Spells\Other\Tornado\TornadoElementalSmall.mdl <--- Visualize the new position
    • Countdown Timer - Pause YourTimer <--- Stop the timer from running
If the trigger that spawns the Runner uses a Periodic Interval event then you need to change it to use a Timer:
  • Events
    • Time - Every 30.00 seconds of game time
  • Events
    • Time - YourTimer expires
Also, I think moving Regions is sort of a broken function. It also seems entirely unnecessary. I would just use a Point variable instead:
  • RunnerSpawnBuilding Dies
    • Events
      • Unit - A unit owned by Player 15 (Turquoise) Dies
    • Conditions
      • (Dying unit) Equal to RunnerSpawnBuilding
    • Actions
      • Set RunnerSpawnBuilding = (Random unit from (Units owned by Player 15 (Turquoise) matching ((((Matching unit) is alive) Equal to True) and (((Matching unit) is A structure) Equal to True))))
      • Set RunnerSpawnPosition = (Position of RunnerSpawnBuilding)
  • Actions
    • Unit - Create 1 Runner at RunnerSpawnPosition...
 
Last edited:
I think he wants to destroy/pause a Timer when the building dies, but his trigger is currently doing nothing of the sort.

@Pekisa7
Please explain in detail what "still spawns" means. Does it spawn at the dead building's position? Does it spawn at the new building's position? Do you want it to stop spawning entirely?

If you're using a Timer then you need to actually stop the timer when the building dies:
  • Actions
    • Set RunnerSpawnBuilding = (Random unit from (Units owned by Player 15 (Turquoise) matching ((((Matching unit) is alive) Equal to True) and (((Matching unit) is A structure) Equal to True))))
    • Region - Center RunnerStart <gen> on (Position of RunnerSpawnBuilding)
    • Special Effect - Create a special effect at (Position of RunnerSpawnBuilding) using Abilities\Spells\Other\Tornado\TornadoElementalSmall.mdl <--- Visualize the new position
    • Countdown Timer - Pause YourTimer <--- Stop the timer from running
If the trigger that spawns the Runner uses a Periodic Interval event then you need to change it to use a Timer:
  • Events
    • Time - Every 30.00 seconds of game time
  • Events
    • Time - YourTimer expires
Also, I think moving Regions is sort of a broken function. It also seems entirely unnecessary. I would just use a Point variable instead:
  • RunnerSpawnBuilding Dies
    • Events
      • Unit - A unit owned by Player 15 (Turquoise) Dies
    • Conditions
      • (Dying unit) Equal to RunnerSpawnBuilding
    • Actions
      • Set RunnerSpawnBuilding = (Random unit from (Units owned by Player 15 (Turquoise) matching ((((Matching unit) is alive) Equal to True) and (((Matching unit) is A structure) Equal to True))))
      • Set RunnerSpawnPosition = (Position of RunnerSpawnBuilding)
  • Events
    • Time - Every 30.00 seconds of game time
  • Conditions
  • Actions
    • Unit - Create 1 Runner at RunnerSpawnPosition...
Yes when the building dies the runner still spawns. How to fix that?
 
:goblin_boom:
(Read my last post)
Like this :
  • RunnerSpawnBuilding Dies
    • Events
      • Unit - A unit owned by Player 15 (Turquoise) Dies
    • Conditions
      • (Dying unit) Equal to Farm 2661 <gen>
      • (Dying unit) Equal to RunnerSpawnBuilding
    • Actions
      • Set RunnerSpawnBuilding = (Random unit from (Units owned by Player 15 (Turquoise) matching ((((Matching unit) is alive) Equal to True) and (((Matching unit) is A structure) Equal to True))))
      • Region - Center RunnerStart <gen> on (Position of RunnerSpawnBuilding)
      • Countdown Timer - Destroy RunnerTimerWindow
      • Countdown Timer - Pause TimerFirstMessenger
      • Countdown Timer - Pause TimerRunner
      • Countdown Timer - Pause RunnerTimer03
      • Countdown Timer - Pause RunnerTimer04
      • Countdown Timer - Pause RunnerTimer05
      • Countdown Timer - Pause RunnerTimer06
      • Countdown Timer - Pause RunnerTimer07
      • Countdown Timer - Pause RunnerTimer08
      • Countdown Timer - Pause RunnerTimer09
      • Countdown Timer - Pause RunnerTimer010
 
All Conditions must be true by default.

So if you want to check when two different Units die in the same trigger, you need to ask the question using an OR:
  • Conditions
    • Or - Any (Conditions) are true
      • Conditions
        • (Dying unit) Equal to Farm 2661 <gen>
        • (Dying unit) Equal to RunnerSpawnBuilding
Either Farm 2661 died OR RunnerSpawnBuilding died.

But I don't think you even need to ask that question. Isn't RunnerSpawnBuilding already set to Farm 2661? If they're the same then just do this:
  • RunnerSpawnBuilding Dies
    • Events
      • Unit - A unit owned by Player 15 (Turquoise) Dies
    • Conditions
      • (Dying unit) Equal to RunnerSpawnBuilding
    • Actions
      • Set RunnerSpawnBuilding = (Random unit from (Units owned by Player 15 (Turquoise) matching ((((Matching unit) is alive) Equal to True) and (((Matching unit) is A structure) Equal to True))))
      • Region - Center RunnerStart <gen> on (Position of RunnerSpawnBuilding)
      • Countdown Timer - Destroy RunnerTimerWindow
      • Countdown Timer - Pause TimerFirstMessenger
      • Countdown Timer - Pause TimerRunner
      • Countdown Timer - Pause RunnerTimer03
      • Countdown Timer - Pause RunnerTimer04
      • Countdown Timer - Pause RunnerTimer05
      • Countdown Timer - Pause RunnerTimer06
      • Countdown Timer - Pause RunnerTimer07
      • Countdown Timer - Pause RunnerTimer08
      • Countdown Timer - Pause RunnerTimer09
      • Countdown Timer - Pause RunnerTimer010
 
Last edited:
All Conditions must be true by default.

So if you want to check when two different Units die in the same trigger, you need to ask the question using an OR:
  • Conditions
    • Or - Any (Conditions) are true
      • Conditions
        • (Dying unit) Equal to Farm 2661 <gen>
        • (Dying unit) Equal to RunnerSpawnBuilding
Either Farm 2661 died OR RunnerSpawnBuilding died.

But I don't think you even need to ask that question. Isn't RunnerSpawnBuilding already set to Farm 2661? Just do this:
  • RunnerSpawnBuilding Dies
    • Events
      • Unit - A unit owned by Player 15 (Turquoise) Dies
    • Conditions
      • (Dying unit) Equal to RunnerSpawnBuilding
    • Actions
      • Set RunnerSpawnBuilding = (Random unit from (Units owned by Player 15 (Turquoise) matching ((((Matching unit) is alive) Equal to True) and (((Matching unit) is A structure) Equal to True))))
      • Region - Center RunnerStart <gen> on (Position of RunnerSpawnBuilding)
      • Countdown Timer - Destroy RunnerTimerWindow
      • Countdown Timer - Pause TimerFirstMessenger
      • Countdown Timer - Pause TimerRunner
      • Countdown Timer - Pause RunnerTimer03
      • Countdown Timer - Pause RunnerTimer04
      • Countdown Timer - Pause RunnerTimer05
      • Countdown Timer - Pause RunnerTimer06
      • Countdown Timer - Pause RunnerTimer07
      • Countdown Timer - Pause RunnerTimer08
      • Countdown Timer - Pause RunnerTimer09
      • Countdown Timer - Pause RunnerTimer010
Nope. It dosen't still work. The runner spawns again when the building dies.
 
Looking at your trigger, you never Pause RunnerTimer01 and RunnerTimer02. Are you sure you didn't miss them?

Anyway, this isn't that complicated.

You have triggers that create (spawn) the Runner. All you have to do is turn those triggers off. Or you can turn off their timers. Or you can add Conditions that prevent them from running.

But we don't know and cannot see your triggers so we can only guess. You have to show us how you're creating units in order for us to know how to stop creating them.
 
Last edited:
Looking at your trigger, you never Pause RunnerTimer01 and RunnerTimer02. Are you sure you didn't miss them?

Anyway, this isn't that complicated.

You have triggers that create (spawn) the Runner. All you have to do is turn those triggers off. Or you can turn off their timers. Or you can add Conditions that prevent them from running.

But we don't know and cannot see your triggers so we can only guess. You have to show us how you're creating units in order for us to know how to stop creating them.
Thank you. I fixed it.
 
Back
Top