• Check out the results of the Techtree Contest #19!
  • Listen to a special audio message from Bill Roper to the Hive Workshop community (Bill is a former Vice President of Blizzard Entertainment, Producer, Designer, Musician, Voice Actor) 🔗Click here to hear his message!
  • Read Evilhog's interview with Gregory Alper, the original composer of the music for WarCraft: Orcs & Humans 🔗Click here to read the full interview.
  • Create a void inspired texture for Warcraft 3 and enter Hive's 34th Texturing Contest: Void! Click here to enter!
  • The Hive's 22nd Icon Contest: Creep Abilities is now concluded, time to vote for your favourite set of icons! Click here to vote!

Runner Redirect Third Time

Level 12
Joined
Aug 3, 2021
Messages
434
Hello its Pekisa7. I've recently added some events to runner redirect but it kicks me out of the game and the screen becomes black . So Should i add some other events? Can somone help here are the triggers? Here are the triggers:
  • RandomizePath For Runner
    • Events
      • Unit - A unit owned by Player 15 (Turquoise) Is issued an order targeting a point
    • Conditions
      • (Triggering unit) Equal to Runner
    • Actions
      • Set VariableSet RandomInit = (Random integer number between 1 and 2)
      • Set VariableSet CV = (Custom value of Runner)
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • RandomInit Equal to 1
        • Then - Actions
          • Set VariableSet RunnerPoint[CV] = (Center of RedirectEast <gen>)
        • Else - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • RandomInit Equal to 2
            • Then - Actions
              • Set VariableSet RunnerPoint[CV] = (Center of RedirectWest <gen>)
            • Else - Actions
      • Unit - Order Runner to Move To RunnerPoint[CV]
 
From what I see, your event will trigger whenever this trigger gets to the end - since at the end the Runner gets an order, and you give him a new order if he is given an order (as complicated as it sounds).
So you are giving him an infinite amount of orders infinitely fast - and that leads to the game crashing.

If you want to fix it, I'd use event "Unit enters Region" - that way it will only trigger once.
 
From what I see, your event will trigger whenever this trigger gets to the end - since at the end the Runner gets an order, and you give him a new order if he is given an order (as complicated as it sounds).
So you are giving him an infinite amount of orders infinitely fast - and that leads to the game crashing.

If you want to fix it, I'd use event "Unit enters Region" - that way it will only trigger once.
I made the event enter region the runner just stops in place when he enters a region. And it kicks me out again.
 
Last edited:
You are encountering endless loop, which crashes your game.
Simply put Runner is ordered to move to a location => this starts your "RandomizePath For Runner" trigger as the event and condition are satisfied => this trigger orders Runner to move to a location => this starts your "RandomizePath For Runner" trigger as the event and condition are satisfied => this trigger orders Runner to move to a location => endlessly repeating like that until game crashes.

A solution could be, for example, to wrap the action that orders Runner to move somewhere with "Trigger - Turn off/on (this trigger)"
  • Trigger - Turn off (this trigger)
  • Unit - Order Runner to Move To RunnerPoint[CV]
  • Trigger - Turn on (this trigger)
This would prevent game crash, but not sure if it will resolve whatever issues you have with your runner.
 
You are encountering endless loop, which crashes your game.
Simply put Runner is ordered to move to a location => this starts your "RandomizePath For Runner" trigger as the event and condition are satisfied => this trigger orders Runner to move to a location => this starts your "RandomizePath For Runner" trigger as the event and condition are satisfied => this trigger orders Runner to move to a location => endlessly repeating like that until game crashes.

A solution could be, for example, to wrap the action that orders Runner to move somewhere with "Trigger - Turn off/on (this trigger)"
  • Trigger - Turn off (this trigger)
  • Unit - Order Runner to Move To RunnerPoint[CV]
  • Trigger - Turn on (this trigger)
This would prevent game crash, but not sure if it will resolve whatever issues you have with your runner.
It worked he walk the other path! But I've got another problem. When when he gets to redirect east he stops.
 
It worked he walk the other path! But I've got another problem. When when he gets to redirect east he stops.
My friend, please understand this:

1) Please no more threads about this. You should update this thread from here on out, otherwise I'll have to start closing them.

2) You need to explain in detail and most importantly show your triggers.
What is a runner? What is redirect east? Your map could be a 2d mario platformer for all we know.

Some of us have a decent understanding based on what we've talked about in previous threads, but there could be 20 different people viewing this thread right now, some of whom might be willing to help if they're given more information. It'd also be much more convenient for everyone if this was all contained within one thread.
 
Last edited:
My friend, please understand this:

1) Please no more threads about this. You should update this thread from here on out, otherwise I'll have to start closing them.

2) You need to explain in detail and most importantly show your triggers.
What is a runner? What is redirect east? Your map could be a 2d mario platformer for all we know.

Some of us have a decent understanding based on what we've talked about in previous threads, but there could be 20 different people viewing this thread right now, some of whom might be willing to help if they're given more information. It'd also be much more convenient for everyone if this was all contained within one thread.
  • RandomizePath For Runner
    • Events
      • Unit - A unit enters RedirectEast <gen>
    • Conditions
      • (Entering unit) Equal to Runner
    • Actions
      • Set RandomInit = (Random integer number between 1 and 2)
      • Set CV = (Custom value of Runner)
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • RandomInit Equal to 1
        • Then - Actions
          • Set RunnerPoint[CV] = (Center of RedirectEast <gen>)
        • Else - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • RandomInit Equal to 2
            • Then - Actions
              • Set RunnerPoint[CV] = (Center of RedirectWest <gen>)
            • Else - Actions
      • Trigger - Turn off (This trigger)
      • Unit - Order Runner to Move To RunnerPoint[CV]
      • Trigger - Turn on (This trigger)
 
  • RandomizePath For Runner
    • Events
      • Unit - A unit enters RedirectEast <gen>
    • Conditions
      • (Entering unit) Equal to Runner
    • Actions
      • Set RandomInit = (Random integer number between 1 and 2)
      • Set CV = (Custom value of Runner)
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • RandomInit Equal to 1
        • Then - Actions
          • Set RunnerPoint[CV] = (Center of RedirectEast <gen>)
        • Else - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • RandomInit Equal to 2
            • Then - Actions
              • Set RunnerPoint[CV] = (Center of RedirectWest <gen>)
            • Else - Actions
      • Trigger - Turn off (This trigger)
      • Unit - Order Runner to Move To RunnerPoint[CV]
      • Trigger - Turn on (This trigger)
Of course the unit can stop if he enters RedirectEast region.
Let's review what is happening:

Runner has entered RedirectEast region.
With 50% chance, he is ordered to go to the same region (RedirectEast).
Since he is already in it, he will go to its center and stop. No new order is given because he is inside the region, and can't enter it.

What you need:
Instead of ordering it to go to RedirectEast, order it to go to a different region.

For reference, see how moving of such units is done in Undead05 for runners, or UndeadX01 for refugees. When a unit enters region, he is never ordered to go to the same region he just entered.
 
Of course the unit can stop if he enters RedirectEast region.
Let's review what is happening:

Runner has entered RedirectEast region.
With 50% chance, he is ordered to go to the same region (RedirectEast).
Since he is already in it, he will go to its center and stop. No new order is given because he is inside the region, and can't enter it.

What you need:
Instead of ordering it to go to RedirectEast, order it to go to a different region.

For reference, see how moving of such units is done in Undead05 for runners, or UndeadX01 for refugees. When a unit enters region, he is never ordered to go to the same region he just entered.
So do I copy runner redirect for the second and third runner?
 
So do I copy runner redirect for the second and third runner?
1. I do not see how this question is related to the matter at hand. The issue was the runner stopping in a region and not going anywhere else - for which I gave you the solution of changing the target region.

2. From what I see in your other threads, copying it is not necessary because you only have one runner at a time. You are just ordering the current runner to go to a random point from a set of regions when he enters one of your waypoints.

For example, let's say you have this path (check on PC - not sure how it will display on phone):

_____________-4
_________- 2 - 5
Start - 1_________ - Finish
_________- 3 - 6
_____________-7
(lines are to allow proper alignment, you only need the start, finish and the numbers)

So, you have a trigger that creates him and sends him to waypoint 1. What you need is (pseudocode follows):

Trigger 1
Event - Runner enters Region 1.
Actions:
Set RandomValue to (random integer between 1 and 2).
If RandomValue=1, order Runner to go to Region 2.
If RandomValue=2, order Runner to go to Region 3.

Trigger 2
Event - Runner enters Region 2.
Actions:
Set RandomValue to (random integer between 1 and 2).
If RandomValue=1, order Runner to go to Region 4.
If RandomValue=2, order Runner to go to Region 5.

Trigger 3
Event - Runner enters Region 3.
Actions:
Set RandomValue to (random integer between 1 and 2).
If RandomValue=1, order Runner to go to Region 6.
If RandomValue=2, order Runner to go to Region 7.

Trigger 4
Events:
Runner enters Region 4.
Runner enters Region 5.
Runner enters Region 6.
Runner enters Region 7.
(this is done so he goes to finish on any case when he reaches
Actions:
Order Runner to go to Region Finish.

Trigger 5
Event - Runner enters Region Finish.
Actions:
Do stuff related to runner reaching his destination.

=== You may ignore the following if it is too hard for you ===
If you have several runners at the same time or they have different routes planned - you may have to create several variables and assign to each runner a different variable, and check which of the runners enters the region:

If Triggering unit = Runner1
Then Do stuff for Runner1
Else If Triggering unit = Runner2
Then Do stuff for Runner2
...
(don't overdo it here - there is a limit to how many Elses deep you can go)
 
1. I do not see how this question is related to the matter at hand. The issue was the runner stopping in a region and not going anywhere else - for which I gave you the solution of changing the target region.

2. From what I see in your other threads, copying it is not necessary because you only have one runner at a time. You are just ordering the current runner to go to a random point from a set of regions when he enters one of your waypoints.

For example, let's say you have this path (check on PC - not sure how it will display on phone):

_____________-4
_________- 2 - 5
Start - 1_________ - Finish
_________- 3 - 6
_____________-7
(lines are to allow proper alignment, you only need the start, finish and the numbers)

So, you have a trigger that creates him and sends him to waypoint 1. What you need is (pseudocode follows):

Trigger 1
Event - Runner enters Region 1.
Actions:
Set RandomValue to (random integer between 1 and 2).
If RandomValue=1, order Runner to go to Region 2.
If RandomValue=2, order Runner to go to Region 3.

Trigger 2
Event - Runner enters Region 2.
Actions:
Set RandomValue to (random integer between 1 and 2).
If RandomValue=1, order Runner to go to Region 4.
If RandomValue=2, order Runner to go to Region 5.

Trigger 3
Event - Runner enters Region 3.
Actions:
Set RandomValue to (random integer between 1 and 2).
If RandomValue=1, order Runner to go to Region 6.
If RandomValue=2, order Runner to go to Region 7.

Trigger 4
Events:
Runner enters Region 4.
Runner enters Region 5.
Runner enters Region 6.
Runner enters Region 7.
(this is done so he goes to finish on any case when he reaches
Actions:
Order Runner to go to Region Finish.

Trigger 5
Event - Runner enters Region Finish.
Actions:
Do stuff related to runner reaching his destination.

=== You may ignore the following if it is too hard for you ===
If you have several runners at the same time or they have different routes planned - you may have to create several variables and assign to each runner a different variable, and check which of the runners enters the region:

If Triggering unit = Runner1
Then Do stuff for Runner1
Else If Triggering unit = Runner2
Then Do stuff for Runner2
...
(don't overdo it here - there is a limit to how many Elses deep you can go
I changed the region the runner enters its redirect West as you said . I just asked do I copy redirect runner for other runners or not.
 
I changed the region the runner enters its redirect West as you said . I just asked do I copy redirect runner for other runners or not.
Regarding your question - no. You only have one runner at a time, and they all have the same rules that they follow, so this set of triggers will work for all of them. No need to copy for every runner separately.
 
Regarding your question - no. You only have one runner at a time, and they all have the same rules that they follow, so this set of triggers will work for all of them. No need to copy for every runner separately.
Okay. But I've got a problem. I've tested my map and all my runners enter the same path redirect east and they don't change paths. How do I fix that?
 
Please show us the triggers after the changes.
  • RandomizePath For Runner
    • Events
      • Unit - A unit enters RedirectWest <gen>
    • Conditions
      • (Entering unit) Equal to Runner
    • Actions
      • Set RandomInit = (Random integer number between 1 and 2)
      • Set CV = (Custom value of Runner)
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • RandomInit Equal to 1
        • Then - Actions
          • Set RunnerPoint[CV] = (Center of RedirectEast <gen>)
        • Else - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • RandomInit Equal to 2
            • Then - Actions
              • Set RunnerPoint[CV] = (Center of RedirectWest <gen>)
            • Else - Actions
      • Trigger - Turn off (This trigger)
      • Unit - Order Runner to Move To RunnerPoint[CV]
      • Trigger - Turn on (This trigger)
 
  • RandomizePath For Runner
    • Events
      • Unit - A unit enters RedirectWest <gen>
    • Conditions
      • (Entering unit) Equal to Runner
    • Actions
      • Set RandomInit = (Random integer number between 1 and 2)
      • Set CV = (Custom value of Runner)
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • RandomInit Equal to 1
        • Then - Actions
          • Set RunnerPoint[CV] = (Center of RedirectEast <gen>)
        • Else - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • RandomInit Equal to 2
            • Then - Actions
              • Set RunnerPoint[CV] = (Center of RedirectWest <gen>)
            • Else - Actions
      • Trigger - Turn off (This trigger)
      • Unit - Order Runner to Move To RunnerPoint[CV]
      • Trigger - Turn on (This trigger)
Okay, one issue at a time it is.
Do you have a trigger that will tell them to go somewhere when they enter "RedirectEast"?
 
Okay, one issue at a time it is.
Do you have a trigger that will tell them to go somewhere when they enter "RedirectEast"?
I only have this waypoint trigger
  • Waypoints B
    • Events
      • Unit - A unit enters RedirectEast <gen>
    • Conditions
      • (Entering unit) Equal to Runner
    • Actions
      • Set WS_Unit = Runner
      • Set WS_TotalWayPoints = 9
      • Set WS_Waypoints[1] = (Center of RedirectEast <gen>)
      • Set WS_Waypoints[2] = (Center of PathB01 <gen>)
      • Set WS_Waypoints[3] = (Center of PathB02 <gen>)
      • Set WS_Waypoints[4] = (Center of PathB03 <gen>)
      • Set WS_Waypoints[5] = (Center of PathB04 <gen>)
      • Set WS_Waypoints[6] = (Center of PathB05 <gen>)
      • Set WS_Waypoints[7] = (Center of PathB06 <gen>)
      • Set WS_Waypoints[8] = (Center of CenterPath <gen>)
      • Set WS_Waypoints[9] = (Center of RunnerMoveTeleport <gen>)
      • Trigger - Run WS Order Unit To Move <gen> (checking conditions)
      • Trigger - Turn off (This trigger)
 
I only have this waypoint trigger
  • Waypoints B
    • Events
      • Unit - A unit enters RedirectEast <gen>
    • Conditions
      • (Entering unit) Equal to Runner
    • Actions
      • Set WS_Unit = Runner
      • Set WS_TotalWayPoints = 9
      • Set WS_Waypoints[1] = (Center of RedirectEast <gen>)
      • Set WS_Waypoints[2] = (Center of PathB01 <gen>)
      • Set WS_Waypoints[3] = (Center of PathB02 <gen>)
      • Set WS_Waypoints[4] = (Center of PathB03 <gen>)
      • Set WS_Waypoints[5] = (Center of PathB04 <gen>)
      • Set WS_Waypoints[6] = (Center of PathB05 <gen>)
      • Set WS_Waypoints[7] = (Center of PathB06 <gen>)
      • Set WS_Waypoints[8] = (Center of CenterPath <gen>)
      • Set WS_Waypoints[9] = (Center of RunnerMoveTeleport <gen>)
      • Trigger - Run WS Order Unit To Move <gen> (checking conditions)
      • Trigger - Turn off (This trigger)
Delete the last action (Trigger - Turn off (This trigger)).
 
1. Does this happen during cinematic or during gameplay?
2. If this is happening during gameplay - run the level through the game (not through "Test Map" button) and try it on 100 runners without leaving the level.
Nope not during a cinematic but trough gameplay. I've tried it on all of my runner they still go trought the same path.
 
Show me the trigger that creates the runner, and the trigger that gives the runner his first order.
  • InitialTimerExpiresMessage
    • Events
    • Conditions
      • (QuestRunner is failed) Equal to False
      • RunnerActive Equal to True
      • GameOver Equal to False
    • Actions
      • Trigger - Run CreateLeaderboard <gen> (checking conditions)
      • Trigger - Run CreateTimerWindow <gen> (ignoring conditions)
      • Sound - Setup all volume channels for speech
      • Cinematic - Send transmission to (All players) from a Player 5 (Yellow) Footman named Footman at (Player 5 (Yellow) start location): Play Warn_the_king_Line_02 <gen> and display Send in the runner..... Modify duration: Add 0.00 seconds and Wait
      • If (RunnerRandomLine Less than or equal to 1.00) then do (Cinematic - Send transmission to Player Group - Player 4 (Purple) from a Player 4 (Purple) Necromancer named Necromancer at (Player 4 (Purple) start location): Play Runner_Must_be_stopped <gen> and display Humans have sent ou.... Modify duration: Add 0.00 se) else do (Cinematic - Send transmission to (All players) from a Player 4 (Purple) Necromancer named Necromancer at (Player 4 (Purple) start location): Play King_Arthas_humans_have_sent_a_runner_to_the_Cpaital_City <gen> and display King Arthas, Humans.... Modify durat)
      • Sound - Reset all volume channels to 100%
      • Unit - Create 1 Runner for Player 15 (Turquoise) at (Center of RunnerStart <gen>) facing 270.00 degrees
      • Set Runner = (Last created unit)
      • Unit - Set Runner movement speed to ((Default movement speed of Runner) - RunnerMovmentSpeed)
      • Unit - Order Runner to Move To (Center of RunnerMoveTeleport <gen>)
      • Cinematic - Ping minimap for Player Group - Player 4 (Purple) at (Center of RunnerStart <gen>) for 2.00 seconds
      • Camera - Set a spacebar-point for Player 4 (Purple) at (Center of RunnerStart <gen>)
      • Player - For Player 15 (Turquoise), turn Shared vision On toward Player 4 (Purple)
      • Trigger - Remove (This trigger) from the trigger queue
  • WS Order Unit To Move
    • Events
    • Conditions
    • Actions
      • Unit - Add Waypoint to WS_Unit
      • -------- -------- --------
      • Hashtable - Save WS_TotalWayPoints as -1 of (Key WS_Unit_Handle) in WS_Hastable
      • Hashtable - Save 1 as 0 of (Key WS_Unit_Handle) in WS_Hastable
      • -------- --------- --------
      • For each (Integer WS_Index) from 1 to WS_TotalWayPoints, do (Actions)
        • Loop - Actions
          • Set WS_Waypoints[0] = (Load WS_Index of (Key WS_Unit_Handle) in WS_Hastable)
          • Hashtable - Save Handle OfWS_Waypoints[WS_Index] as WS_Index of (Key WS_Unit_Handle) in WS_Hastable
          • -------- --------- --------
          • Unit - Order WS_Unit to Neutral Fire Lord - Volcano WS_Waypoints[1]
  • Waypoints A 02
    • Events
      • Unit - A unit enters RedirectWest <gen>
    • Conditions
      • Runner_Number Equal to 2
    • Actions
      • Set WS_Unit = Runner
      • Set WS_TotalWayPoints = 9
      • Set WS_Waypoints[1] = (Center of RedirectWest <gen>)
      • Set WS_Waypoints[2] = (Center of PathA01 <gen>)
      • Set WS_Waypoints[3] = (Center of PathA02 <gen>)
      • Set WS_Waypoints[4] = (Center of PathA03 <gen>)
      • Set WS_Waypoints[5] = (Center of PathA04 <gen>)
      • Set WS_Waypoints[6] = (Center of PathA05 <gen>)
      • Set WS_Waypoints[7] = (Center of PathA06 <gen>)
      • Set WS_Waypoints[8] = (Center of CenterPath <gen>)
      • Set WS_Waypoints[9] = (Center of RunnerMoveTeleport <gen>)
      • Trigger - Run WS Order Unit To Move <gen> (checking conditions)
      • Trigger - Turn off (This trigger)
  • Waypoints B 02
    • Events
      • Unit - A unit enters RedirectEast <gen>
    • Conditions
      • Runner_Number Equal to 2
    • Actions
      • Set WS_Unit = Runner
      • Set WS_TotalWayPoints = 9
      • Set WS_Waypoints[1] = (Center of RedirectEast <gen>)
      • Set WS_Waypoints[2] = (Center of PathB01 <gen>)
      • Set WS_Waypoints[3] = (Center of PathB02 <gen>)
      • Set WS_Waypoints[4] = (Center of PathB03 <gen>)
      • Set WS_Waypoints[5] = (Center of PathB04 <gen>)
      • Set WS_Waypoints[6] = (Center of PathB05 <gen>)
      • Set WS_Waypoints[7] = (Center of PathB06 <gen>)
      • Set WS_Waypoints[8] = (Center of CenterPath <gen>)
      • Set WS_Waypoints[9] = (Center of RunnerMoveTeleport <gen>)
      • Trigger - Run WS Order Unit To Move <gen> (checking conditions)
      • Trigger - Turn off (This trigger)
 
Send me:
  • a screenshot of the map that shows regions RunnerStart, RunnerMoveTeleport, RedirectEast, RedirectWest.
  • trigger that reacts to unit entering RunnerMoveTeleport.
  • trigger that creates a hashtable and sets WSHasthable to last created hashtable.
1754387237985.png

1754387262549.png

1754387295560.png

1754387307166.png


  • RunnerReaches Capital City
    • Events
      • Unit - A unit enters RunnerMoveTeleport <gen>
    • Conditions
      • (Entering unit) Equal to Runner
      • (Owner of Runner) Equal to Player 15 (Turquoise)
      • ExitCinematicRunning Equal to False
    • Actions
      • Trigger - Turn off (This trigger)
      • Trigger - Add RunnerReachesCapitalCityMessage <gen> to the trigger queue (Checking conditions)
  • RunnerReachesCapitalCityMessage
    • Events
      • Unit - A unit enters RunnerMoveTeleport <gen>
    • Conditions
      • (Entering unit) Equal to Runner
      • ExitCinematicRunning Equal to False
      • GameOver Equal to False
    • Actions
      • Leaderboard - Hide RunnerLeaderboard
      • Countdown Timer - Hide RunnerTimerWindow
      • Sound - Setup all volume channels for speech
      • Cinematic - Send transmission to Player Group - Player 4 (Purple) from a Player 4 (Purple) Necromancer named Necromancer at (Player 4 (Purple) start location): Play Expect_an_attack_soon_Line_02 <gen> and display King Arthas, the me.... Modify duration: Add 0.00 seconds and Don't wait
      • Sound - Reset all volume channels to 100%
      • Cinematic - Ping minimap for Player Group - Player 4 (Purple) at (Center of RunnerMoveTeleport <gen>) for 2.00 seconds
      • Unit - Hide Runner
      • Set RunnerActive = False
      • Quest - Mark QuestRunner as Failed
      • Trigger - Run AI 02 <gen> (checking conditions)
      • Quest - Display to Player Group - Player 4 (Purple) the Quest Failed message: |cffffcc00OPTIONAL ...
      • Wait Campaign quest delay seconds
      • Trigger - Remove (This trigger) from the trigger queue
  • WS Initizaize
    • Events
      • Time - Elapsed game time is 0.00 seconds
    • Conditions
    • Actions
      • Hashtable - Create a hashtable
      • Set WS_Hastable = (Last created hashtable)
  • WS Get Next Waypoint
    • Events
      • Unit - A unit Begins casting an ability
    • Conditions
      • (Ability being cast) Equal to Waypoint
    • Actions
      • Set WS_Unit = Runner
      • -------- ----------- --------
      • Unit - Remove Waypoint from Runner
      • -------- ------------ --------
      • Set WS_TotalWayPoints = (Load -1 of (Key WS_Unit_Handle) from WS_Hastable)
      • Set WS_Index = (Load 0 of (Key WS_Unit_Handle) from WS_Hastable)
      • Set WS_Index = (WS_Index + 1)
      • Hashtable - Save WS_Index as 0 of (Key WS_Unit_Handle) in WS_Hastable
      • -------- ----------- --------
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • WS_Index Less than or equal to WS_TotalWayPoints
        • Then - Actions
          • Unit - Add Waypoint to WS_Unit
          • Set WS_Waypoints[0] = (Load WS_Index of (Key WS_Unit_Handle) in WS_Hastable)
          • Unit - Order WS_Unit to Neutral Fire Lord - Volcano WS_Waypoints[0]
        • Else - Actions
          • For each (Integer WS_Index) from 1 to WS_TotalWayPoints, do (Actions)
            • Loop - Actions
              • Set WS_Waypoints[0] = (Load WS_Index of (Key WS_Unit_Handle) in WS_Hastable)
              • Hashtable - Clear all child hashtables of child (Key WS_Unit_Handle) in WS_Hastable
 

Attachments

  • 1754387363169.png
    1754387363169.png
    769.3 KB · Views: 31
1. I don't see locations on the map where the regions RunnerStart, RunnerMoveTeleport, RedirectEast, RedirectWest are.
2. In relation to that and the issue you are having, what I see currently is:

You create a runner at RunnerStart and order it to move to RunnerMoveTeleport.
When he enters RunnerMoveTeleport, he is moved to region RunnerToKing and removed.

Between these two points in time, I have no clear indication as to runner going to either RedirectWest or RedirectEast.

When creating the runner (in all triggers that create the runners), instead of action "Order Runner to go to RunnerMoveTeleport", do this:

Set RandomValue to (random integer between 1 and 2).
If RandomValue=1, order Runner to go to RedirectEast.
If RandomValue=2, order Runner to go to RedirectWest.

Also, delete the trigger "RandomizePath For Runner" - it will conflict with the trigger that sets waypoints (and it is also very faulty).
 
1. I don't see locations on the map where the regions RunnerStart, RunnerMoveTeleport, RedirectEast, RedirectWest are.
2. In relation to that and the issue you are having, what I see currently is:

You create a runner at RunnerStart and order it to move to RunnerMoveTeleport.
When he enters RunnerMoveTeleport, he is moved to region RunnerToKing and removed.

Between these two points in time, I have no clear indication as to runner going to either RedirectWest or RedirectEast.

When creating the runner (in all triggers that create the runners), instead of action "Order Runner to go to RunnerMoveTeleport", do this:

Set RandomValue to (random integer between 1 and 2).
If RandomValue=1, order Runner to go to RedirectEast.
If RandomValue=2, order Runner to go to RedirectWest.

Also, delete the trigger "RandomizePath For Runner" - it will conflict with the trigger that sets waypoints (and it is also very faulty).
Upps sorry
1754388324401.png

1754388341919.png
 
1. I don't see locations on the map where the regions RunnerStart, RunnerMoveTeleport, RedirectEast, RedirectWest are.
2. In relation to that and the issue you are having, what I see currently is:

You create a runner at RunnerStart and order it to move to RunnerMoveTeleport.
When he enters RunnerMoveTeleport, he is moved to region RunnerToKing and removed.

Between these two points in time, I have no clear indication as to runner going to either RedirectWest or RedirectEast.

When creating the runner (in all triggers that create the runners), instead of action "Order Runner to go to RunnerMoveTeleport", do this:

Set RandomValue to (random integer between 1 and 2).
If RandomValue=1, order Runner to go to RedirectEast.
If RandomValue=2, order Runner to go to RedirectWest.

Also, delete the trigger "RandomizePath For Runner" - it will conflict with the trigger that sets waypoints (and it is also very faulty).
1. My advice from part 2 of the quoted post still stands.

2. On the images - which region there is which?
 
1. My advice from part 2 of the quoted post still stands.

2. On the images - which region there is which?
On the images the big region on top is redirect west and the lower big region is redirect east. Did I do this right and should i add this to the second and third runners?:
  • InitialTimerExpiresMessage
    • Events
    • Conditions
      • (QuestRunner is failed) Equal to False
      • RunnerActive Equal to True
      • GameOver Equal to False
    • Actions
      • Trigger - Run CreateLeaderboard <gen> (checking conditions)
      • Trigger - Run CreateTimerWindow <gen> (ignoring conditions)
      • Sound - Setup all volume channels for speech
      • Cinematic - Send transmission to (All players) from a Player 5 (Yellow) Footman named Footman at (Player 5 (Yellow) start location): Play Warn_the_king_Line_02 <gen> and display Send in the runner..... Modify duration: Add 0.00 seconds and Wait
      • If (RunnerRandomLine Less than or equal to 1.00) then do (Cinematic - Send transmission to Player Group - Player 4 (Purple) from a Player 4 (Purple) Necromancer named Necromancer at (Player 4 (Purple) start location): Play Runner_Must_be_stopped <gen> and display Humans have sent ou.... Modify duration: Add 0.00 se) else do (Cinematic - Send transmission to (All players) from a Player 4 (Purple) Necromancer named Necromancer at (Player 4 (Purple) start location): Play King_Arthas_humans_have_sent_a_runner_to_the_Cpaital_City <gen> and display King Arthas, Humans.... Modify durat)
      • Sound - Reset all volume channels to 100%
      • Unit - Create 1 Runner for Player 15 (Turquoise) at (Center of RunnerStart <gen>) facing 270.00 degrees
      • Set Runner = (Last created unit)
      • Unit - Set Runner movement speed to ((Default movement speed of Runner) - RunnerMovmentSpeed)
      • Set Random_Value = (Random integer number between 1 and 2)
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • Random_Value Equal to 1
        • Then - Actions
          • Unit - Order Runner to Move To (Center of RedirectEast <gen>)
        • Else - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • Random_Value Equal to 2
            • Then - Actions
              • Unit - Order Runner to Move To (Center of RedirectWest <gen>)
            • Else - Actions
              • Do nothing
      • Cinematic - Ping minimap for Player Group - Player 4 (Purple) at (Center of RunnerStart <gen>) for 2.00 seconds
      • Camera - Set a spacebar-point for Player 4 (Purple) at (Center of RunnerStart <gen>)
      • Player - For Player 15 (Turquoise), turn Shared vision On toward Player 4 (Purple)
      • Trigger - Remove (This trigger) from the trigger queue
 
On the images the big region on top is redirect west and the lower big region is redirect east. Did I do this right and should i add this to the second and third runners?:
  • InitialTimerExpiresMessage
    • Events
    • Conditions
      • (QuestRunner is failed) Equal to False
      • RunnerActive Equal to True
      • GameOver Equal to False
    • Actions
      • Trigger - Run CreateLeaderboard <gen> (checking conditions)
      • Trigger - Run CreateTimerWindow <gen> (ignoring conditions)
      • Sound - Setup all volume channels for speech
      • Cinematic - Send transmission to (All players) from a Player 5 (Yellow) Footman named Footman at (Player 5 (Yellow) start location): Play Warn_the_king_Line_02 <gen> and display Send in the runner..... Modify duration: Add 0.00 seconds and Wait
      • If (RunnerRandomLine Less than or equal to 1.00) then do (Cinematic - Send transmission to Player Group - Player 4 (Purple) from a Player 4 (Purple) Necromancer named Necromancer at (Player 4 (Purple) start location): Play Runner_Must_be_stopped <gen> and display Humans have sent ou.... Modify duration: Add 0.00 se) else do (Cinematic - Send transmission to (All players) from a Player 4 (Purple) Necromancer named Necromancer at (Player 4 (Purple) start location): Play King_Arthas_humans_have_sent_a_runner_to_the_Cpaital_City <gen> and display King Arthas, Humans.... Modify durat)
      • Sound - Reset all volume channels to 100%
      • Unit - Create 1 Runner for Player 15 (Turquoise) at (Center of RunnerStart <gen>) facing 270.00 degrees
      • Set Runner = (Last created unit)
      • Unit - Set Runner movement speed to ((Default movement speed of Runner) - RunnerMovmentSpeed)
      • Set Random_Value = (Random integer number between 1 and 2)
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • Random_Value Equal to 1
        • Then - Actions
          • Unit - Order Runner to Move To (Center of RedirectEast <gen>)
        • Else - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • Random_Value Equal to 2
            • Then - Actions
              • Unit - Order Runner to Move To (Center of RedirectWest <gen>)
            • Else - Actions
              • Do nothing
      • Cinematic - Ping minimap for Player Group - Player 4 (Purple) at (Center of RunnerStart <gen>) for 2.00 seconds
      • Camera - Set a spacebar-point for Player 4 (Purple) at (Center of RunnerStart <gen>)
      • Player - For Player 15 (Turquoise), turn Shared vision On toward Player 4 (Purple)
      • Trigger - Remove (This trigger) from the trigger queue
Regarding the trigger: your changes seem correct.
Regarding the question: From what I see in other threads, your runners are created by separate triggers. Thus, you need to add the If part to those triggers instead of ordering them to go to RunnerMoveTeleport.

Regarding the regions:
Solution: move region RedirectWest and the smaller region inside it a bit to the top-left side, so regions RedirectEast and RedirectWest don't intersect.

Reason: The intersection of regions RedirectWest and RedirectEast, as well as the fact that RedirectWest takes almost all road, lead to conflicts - even if Runner enters RedirectEast and gets his orders, he then enters intersecting RedirectWest and gets a different set of orders, making all runners go the same way.
 
Regarding the trigger: your changes seem correct.
Regarding the question: From what I see in other threads, your runners are created by separate triggers. Thus, you need to add the If part to those triggers instead of ordering them to go to RunnerMoveTeleport.

Regarding the regions:
Solution: move region RedirectWest and the smaller region inside it a bit to the top-left side, so regions RedirectEast and RedirectWest don't intersect.

Reason: The intersection of regions RedirectWest and RedirectEast, as well as the fact that RedirectWest takes almost all road, lead to conflicts - even if Runner enters RedirectEast and gets his orders, he then enters intersecting RedirectWest and gets a different set of orders, making all runners go the same way.
Just like this:
1754390186700.png
 
Back
Top