• 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 faction for Warcraft 3 and enter Hive's 19th Techtree Contest: Co-Op Commanders! Click here to enter!
  • Create a void inspired texture for Warcraft 3 and enter Hive's 34th Texturing Contest: Void! Click here to enter!
  • The Hive's 21st Texturing Contest: Upgrade is now concluded, time to vote for your favourite set of icons! Click here to vote!

Runner dosen't walk on the road

Level 6
Joined
Aug 3, 2021
Messages
120
Hello its Pekisa7 again. Its about the runner again. He just dosen't run to the region i triggerd him to run to. When he gets to the redirect eas or redirect west he just goes and than stops near a tree or a cliff then goes back to were he came from. I created bread crubs for him but that dosen't work. Can someone help. Here are the triggers :
  • PathARedirect
    • Events
      • Unit - A unit enters RedirectWest <gen>
    • Conditions
      • (Entering unit) Equal to Runner
      • ExitCinematicRunning Equal to False
    • Actions
      • Set RunnerVariableTarget = RedirectWest <gen>
      • Unit - Order Runner to Move To (Center of RunnerVariableTarget)
      • Unit - Order Runner to Move To (Center of PathA01 <gen>)
      • Unit - Order Runner to Move To (Center of PathA02 <gen>)
      • Unit - Order Runner to Move To (Center of PathA03 <gen>)
      • Unit - Order Runner to Move To (Center of PathA04 <gen>)
      • Unit - Order Runner to Move To (Center of PathA05 <gen>)
      • Unit - Order Runner to Move To (Center of PathA06 <gen>)
      • Unit - Order Runner to Move To (Center of CenterPath <gen>)
      • Unit - Order Runner to Move To (Center of RunnerMoveTeleport <gen>)
      • For each (Integer A) from 1 to 8, do (Unit - Order Runner to Move To (Center of RunnerMoveTeleport <gen>))
      • Wait 2.00 seconds
      • Trigger - Turn off (This trigger)

  • PathBRedirect
    • Events
      • Unit - A unit enters RedirectEast <gen>
    • Conditions
      • (Entering unit) Equal to Runner
      • ExitCinematicRunning Equal to False
    • Actions
      • Set RunnerVariableTarget = RedirectEast <gen>
      • Unit - Order Runner to Move To (Center of RunnerVariableTarget)
      • Unit - Order Runner to Move To (Center of PathB01 <gen>)
      • Unit - Order Runner to Move To (Center of PathB02 <gen>)
      • Unit - Order Runner to Move To (Center of PathB03 <gen>)
      • Unit - Order Runner to Move To (Center of PathB04 <gen>)
      • Unit - Order Runner to Move To (Center of PathB05 <gen>)
      • Unit - Order Runner to Move To (Center of PathB06 <gen>)
      • Unit - Order Runner to Move To (Center of PathB07 <gen>)
      • Unit - Order Runner to Move To (Center of PathB08 <gen>)
      • Unit - Order Runner to Move To (Center of PathB09 <gen>)
      • Unit - Order Runner to Move To (Center of PathB010 <gen>)
      • Unit - Order Runner to Move To (Center of CenterPath <gen>)
      • Unit - Order Runner to Move To (Center of RunnerMoveTeleport <gen>)
      • For each (Integer A) from 1 to 12, do (Unit - Order Runner to Move To (Center of RunnerMoveTeleport <gen>))
      • Wait 2.00 seconds
      • Trigger - Turn off (This trigger)
 
Level 69
Joined
Jun 2, 2008
Messages
12,887
Im not a trigger head but doesn't it need if the runner goes to region 1, shouldn't there be a trigger after stating "then move to region 2" and so on.. because it seems that hes just moving towards one of them and then returning to his current location and not moving towards all the other paths you made.

I may be wrong but who knows.. I know theres ways you can make it be vJASS and LUA but im not sure how to do all that.

Im also thinking the runner just gets confused as there is so many regions to move to and no intervals in-between each of them.
 
Level 6
Joined
Aug 3, 2021
Messages
120
you are not queueing orders, you are overwriting single order. Runner will move to RunnerMoveTeleport <gen> as that is the last command you are issuing.
I deleted all path b and a triggers and left runner move teleport . He just stands there by a cliff and goes back.
 
Level 6
Joined
Aug 3, 2021
Messages
120
Im not a trigger head but doesn't it need if the runner goes to region 1, shouldn't there be a trigger after stating "then move to region 2" and so on.. because it seems that hes just moving towards one of them and then returning to his current location and not moving towards all the other paths you made.

I may be wrong but who knows.. I know theres ways you can make it be vJASS and LUA but im not sure how to do all that.

Im also thinking the runner just gets confused as there is so many regions to move to and no intervals in-between each of them.
How to do those intevals and i dont think there are from to triggers.
 
Level 69
Joined
Jun 2, 2008
Messages
12,887
How to do those intevals and i dont think there are from to triggers.
Please put all your reply's in one post. But, im not too sure how to do it without being on ur map or on the editor as im at work at the moment. You could open a test map and implement those triggers into it and mess around with movement triggers are right now hes just going to 1 region and then returning to his original position it seems. You are missing the triggers that state " Go here" and/then "Once he hits region 1 then/move to region 2" and so on.
 

Uncle

Warcraft Moderator
Level 74
Joined
Aug 10, 2018
Messages
7,965
Here's a very basic system for creating "Waypoints" that a Unit will move between (Point 1 -> Point 2 -> Point 3, etc).
  • WS Initialize
    • Events
      • Time - Elapsed game time is 0.00 seconds
    • Conditions
    • Actions
      • Hashtable - Create a hashtable
      • Set WS_Hashtable = (Last created hashtable)
  • WS Get Next Waypoint
    • Events
      • Unit - A unit Begins casting an ability
    • Conditions
      • (Ability being cast) Equal to Move To Waypoint
    • Actions
      • Set WS_Unit = (Triggering unit)
      • Custom script: set udg_WS_Unit_Handle = udg_WS_Unit
      • -------- --------
      • Unit - Remove Move To Waypoint from WS_Unit
      • -------- --------
      • Set WS_Total_Waypoints = (Load -1 of (Key WS_Unit_Handle.) from WS_Hashtable.)
      • Set WS_Index = (Load 0 of (Key WS_Unit_Handle.) from WS_Hashtable.)
      • Set WS_Index = (WS_Index + 1)
      • Hashtable - Save WS_Index as 0 of (Key WS_Unit_Handle.) in WS_Hashtable.
      • -------- --------
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • WS_Index Less than or equal to WS_Total_Waypoints
        • Then - Actions
          • Unit - Add Move To Waypoint to WS_Unit
          • Set WS_Waypoints[0] = (Load WS_Index of (Key WS_Unit_Handle.) in WS_Hashtable.)
          • Unit - Order WS_Unit to Neutral Fire Lord - Volcano WS_Waypoints[0]
        • Else - Actions
          • For each (Integer WS_Index) from 1 to WS_Total_Waypoints, do (Actions)
            • Loop - Actions
              • Set WS_Waypoints[0] = (Load WS_Index of (Key WS_Unit_Handle.) in WS_Hashtable.)
              • Custom script: call RemoveLocation( udg_WS_Waypoints[0] )
          • Hashtable - Clear all child hashtables of child (Key WS_Unit_Handle.) in WS_Hashtable.
  • WS Order Unit To Move
    • Events
    • Conditions
    • Actions
      • Custom script: set udg_WS_Unit_Handle = udg_WS_Unit
      • -------- --------
      • Unit - Add Move To Waypoint to WS_Unit
      • -------- --------
      • Hashtable - Save WS_Total_Waypoints as -1 of (Key WS_Unit_Handle.) in WS_Hashtable.
      • Hashtable - Save 1 as 0 of (Key WS_Unit_Handle.) in WS_Hashtable.
      • -------- --------
      • For each (Integer WS_Index) from 1 to WS_Total_Waypoints, do (Actions)
        • Loop - Actions
          • Set WS_Waypoints[0] = (Load WS_Index of (Key WS_Unit_Handle.) in WS_Hashtable.)
          • Custom script: call RemoveLocation( udg_WS_Waypoints[0] )
          • Hashtable - Save Handle OfWS_Waypoints[WS_Index] as WS_Index of (Key WS_Unit_Handle.) in WS_Hashtable.
      • -------- --------
      • Unit - Order WS_Unit to Neutral Fire Lord - Volcano WS_Waypoints[1]
1752001178098.png

Here's an example of how to use the system:
  • Demo
    • Events
      • Player - Player 1 (Red) types a chat message containing test as An exact match
    • Conditions
    • Actions
      • Set WS_Unit = Runner
      • Set WS_Total_Waypoints = 4
      • Set WS_Waypoints[1] = (Center of PathB01 <gen>)
      • Set WS_Waypoints[2] = (Center of PathB02 <gen>)
      • Set WS_Waypoints[3] = (Center of PathB03 <gen>)
      • Set WS_Waypoints[4] = (Center of PathB04 <gen>)
      • Trigger - Run WS Order Unit To Move <gen> (ignoring conditions)
Here's the ability used in the triggers, it's based on the Channel ability.
1752001254907.png

The attached map requires the latest version of Warcraft 3 to open, but these triggers should work on just about any version.
 

Attachments

  • Simple Waypoint System 1.w3m
    19.8 KB · Views: 1
Last edited:
Level 6
Joined
Aug 3, 2021
Messages
120
Here's a very basic system for creating "Waypoints" for a Unit to move between (Point 1 -> Point 2 -> Point 3, etc).
  • WS Initialize
    • Events
      • Time - Elapsed game time is 0.00 seconds
    • Conditions
    • Actions
      • Hashtable - Create a hashtable
      • Set WS_Hashtable = (Last created hashtable)
  • WS Get Next Waypoint
    • Events
      • Unit - A unit Begins casting an ability
    • Conditions
      • (Ability being cast) Equal to Move To Waypoint
    • Actions
      • Set WS_Unit = (Triggering unit)
      • Custom script: set udg_WS_Unit_Handle = udg_WS_Unit
      • -------- --------
      • Unit - Remove Move To Waypoint from WS_Unit
      • -------- --------
      • Set WS_Total_Waypoints = (Load -1 of (Key WS_Unit_Handle.) from WS_Hashtable.)
      • Set WS_Index = (Load 0 of (Key WS_Unit_Handle.) from WS_Hashtable.)
      • Set WS_Index = (WS_Index + 1)
      • Hashtable - Save WS_Index as 0 of (Key WS_Unit_Handle.) in WS_Hashtable.
      • -------- --------
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • WS_Index Less than or equal to WS_Total_Waypoints
        • Then - Actions
          • Unit - Add Move To Waypoint to WS_Unit
          • Set WS_Waypoints[0] = (Load WS_Index of (Key WS_Unit_Handle.) in WS_Hashtable.)
          • Unit - Order WS_Unit to Neutral Fire Lord - Volcano WS_Waypoints[0]
        • Else - Actions
          • For each (Integer WS_Index) from 1 to WS_Total_Waypoints, do (Actions)
            • Loop - Actions
              • Set WS_Waypoints[0] = (Load WS_Index of (Key WS_Unit_Handle.) in WS_Hashtable.)
              • Custom script: call RemoveLocation( udg_WS_Waypoints[0] )
          • Hashtable - Clear all child hashtables of child (Key WS_Unit_Handle.) in WS_Hashtable.
  • WS Order Unit To Move
    • Events
    • Conditions
    • Actions
      • Custom script: set udg_WS_Unit_Handle = udg_WS_Unit
      • -------- --------
      • Unit - Add Move To Waypoint to WS_Unit
      • -------- --------
      • Hashtable - Save WS_Total_Waypoints as -1 of (Key WS_Unit_Handle.) in WS_Hashtable.
      • Hashtable - Save 1 as 0 of (Key WS_Unit_Handle.) in WS_Hashtable.
      • -------- --------
      • For each (Integer WS_Index) from 1 to WS_Total_Waypoints, do (Actions)
        • Loop - Actions
          • Set WS_Waypoints[0] = (Load WS_Index of (Key WS_Unit_Handle.) in WS_Hashtable.)
          • Custom script: call RemoveLocation( udg_WS_Waypoints[0] )
          • Hashtable - Save Handle OfWS_Waypoints[WS_Index] as WS_Index of (Key WS_Unit_Handle.) in WS_Hashtable.
      • -------- --------
      • Unit - Order WS_Unit to Neutral Fire Lord - Volcano WS_Waypoints[1]
View attachment 540643
Here's an example of how to use the system:
  • Demo
    • Events
      • Player - Player 1 (Red) types a chat message containing test as An exact match
    • Conditions
    • Actions
      • Set WS_Unit = Runner
      • Set WS_Total_Waypoints = 4
      • Set WS_Waypoints[1] = (Center of PathB01 <gen>)
      • Set WS_Waypoints[2] = (Center of PathB02 <gen>)
      • Set WS_Waypoints[3] = (Center of PathB03 <gen>)
      • Set WS_Waypoints[4] = (Center of PathB04 <gen>)
      • Trigger - Run WS Order Unit To Move <gen> (ignoring conditions)
Here's the ability used in the triggers, it's based on the Channel ability.
View attachment 540644
Thank you so much! I will check this out.
 
Level 30
Joined
Sep 26, 2009
Messages
2,626
@Pekisa7 I tried to open your map, but it just crashes my editor. I am on latest version. Are you on latest version? Do you use some other editor than the default blizzard one?

I deleted all path b and a triggers and left runner move teleport . He just stands there by a cliff and goes back.
Does the runner even see the target location? If it is too far through black fog of war, then the pathing engine won't know how to navigate the runner
 
Level 6
Joined
Aug 3, 2021
Messages
120
@Pekisa7 I tried to open your map, but it just crashes my editor. I am on latest version. Are you on latest version? Do you use some other editor than the default blizzard one?


Does the runner even see the target location? If it is too far through black fog of war, then the pathing engine won't know how to navigate the runner
I am on patch 1.31
 
Level 6
Joined
Aug 3, 2021
Messages
120
Strange, I would've expected to be able to open it normally. But Blizz being Blizz, I can't say if the issue is in something in map, or Blizzard broke backward compatibility
Strange, I would've expected to be able to open it normally. But Blizz being Blizz, I can't say if the issue is in something in map, or Blizzard broke backward compatibility
Typical Blizzard Entertaiment . They always manage to break something.
 
Level 6
Joined
Aug 3, 2021
Messages
120
Here's a very basic system for creating "Waypoints" that a Unit will move between (Point 1 -> Point 2 -> Point 3, etc).
  • WS Initialize
    • Events
      • Time - Elapsed game time is 0.00 seconds
    • Conditions
    • Actions
      • Hashtable - Create a hashtable
      • Set WS_Hashtable = (Last created hashtable)
  • WS Get Next Waypoint
    • Events
      • Unit - A unit Begins casting an ability
    • Conditions
      • (Ability being cast) Equal to Move To Waypoint
    • Actions
      • Set WS_Unit = (Triggering unit)
      • Custom script: set udg_WS_Unit_Handle = udg_WS_Unit
      • -------- --------
      • Unit - Remove Move To Waypoint from WS_Unit
      • -------- --------
      • Set WS_Total_Waypoints = (Load -1 of (Key WS_Unit_Handle.) from WS_Hashtable.)
      • Set WS_Index = (Load 0 of (Key WS_Unit_Handle.) from WS_Hashtable.)
      • Set WS_Index = (WS_Index + 1)
      • Hashtable - Save WS_Index as 0 of (Key WS_Unit_Handle.) in WS_Hashtable.
      • -------- --------
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • WS_Index Less than or equal to WS_Total_Waypoints
        • Then - Actions
          • Unit - Add Move To Waypoint to WS_Unit
          • Set WS_Waypoints[0] = (Load WS_Index of (Key WS_Unit_Handle.) in WS_Hashtable.)
          • Unit - Order WS_Unit to Neutral Fire Lord - Volcano WS_Waypoints[0]
        • Else - Actions
          • For each (Integer WS_Index) from 1 to WS_Total_Waypoints, do (Actions)
            • Loop - Actions
              • Set WS_Waypoints[0] = (Load WS_Index of (Key WS_Unit_Handle.) in WS_Hashtable.)
              • Custom script: call RemoveLocation( udg_WS_Waypoints[0] )
          • Hashtable - Clear all child hashtables of child (Key WS_Unit_Handle.) in WS_Hashtable.
  • WS Order Unit To Move
    • Events
    • Conditions
    • Actions
      • Custom script: set udg_WS_Unit_Handle = udg_WS_Unit
      • -------- --------
      • Unit - Add Move To Waypoint to WS_Unit
      • -------- --------
      • Hashtable - Save WS_Total_Waypoints as -1 of (Key WS_Unit_Handle.) in WS_Hashtable.
      • Hashtable - Save 1 as 0 of (Key WS_Unit_Handle.) in WS_Hashtable.
      • -------- --------
      • For each (Integer WS_Index) from 1 to WS_Total_Waypoints, do (Actions)
        • Loop - Actions
          • Set WS_Waypoints[0] = (Load WS_Index of (Key WS_Unit_Handle.) in WS_Hashtable.)
          • Custom script: call RemoveLocation( udg_WS_Waypoints[0] )
          • Hashtable - Save Handle OfWS_Waypoints[WS_Index] as WS_Index of (Key WS_Unit_Handle.) in WS_Hashtable.
      • -------- --------
      • Unit - Order WS_Unit to Neutral Fire Lord - Volcano WS_Waypoints[1]
View attachment 540643
Here's an example of how to use the system:
  • Demo
    • Events
      • Player - Player 1 (Red) types a chat message containing test as An exact match
    • Conditions
    • Actions
      • Set WS_Unit = Runner
      • Set WS_Total_Waypoints = 4
      • Set WS_Waypoints[1] = (Center of PathB01 <gen>)
      • Set WS_Waypoints[2] = (Center of PathB02 <gen>)
      • Set WS_Waypoints[3] = (Center of PathB03 <gen>)
      • Set WS_Waypoints[4] = (Center of PathB04 <gen>)
      • Trigger - Run WS Order Unit To Move <gen> (ignoring conditions)
Here's the ability used in the triggers, it's based on the Channel ability.
View attachment 540644
The attached map requires the latest version of Warcraft 3 to open, but these triggers should work on just about any version.
Do I set Ws Waypoints for Path A too?
 
Level 6
Joined
Aug 3, 2021
Messages
120
Here's a very basic system for creating "Waypoints" that a Unit will move between (Point 1 -> Point 2 -> Point 3, etc).
  • WS Initialize
    • Events
      • Time - Elapsed game time is 0.00 seconds
    • Conditions
    • Actions
      • Hashtable - Create a hashtable
      • Set WS_Hashtable = (Last created hashtable)
  • WS Get Next Waypoint
    • Events
      • Unit - A unit Begins casting an ability
    • Conditions
      • (Ability being cast) Equal to Move To Waypoint
    • Actions
      • Set WS_Unit = (Triggering unit)
      • Custom script: set udg_WS_Unit_Handle = udg_WS_Unit
      • -------- --------
      • Unit - Remove Move To Waypoint from WS_Unit
      • -------- --------
      • Set WS_Total_Waypoints = (Load -1 of (Key WS_Unit_Handle.) from WS_Hashtable.)
      • Set WS_Index = (Load 0 of (Key WS_Unit_Handle.) from WS_Hashtable.)
      • Set WS_Index = (WS_Index + 1)
      • Hashtable - Save WS_Index as 0 of (Key WS_Unit_Handle.) in WS_Hashtable.
      • -------- --------
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • WS_Index Less than or equal to WS_Total_Waypoints
        • Then - Actions
          • Unit - Add Move To Waypoint to WS_Unit
          • Set WS_Waypoints[0] = (Load WS_Index of (Key WS_Unit_Handle.) in WS_Hashtable.)
          • Unit - Order WS_Unit to Neutral Fire Lord - Volcano WS_Waypoints[0]
        • Else - Actions
          • For each (Integer WS_Index) from 1 to WS_Total_Waypoints, do (Actions)
            • Loop - Actions
              • Set WS_Waypoints[0] = (Load WS_Index of (Key WS_Unit_Handle.) in WS_Hashtable.)
              • Custom script: call RemoveLocation( udg_WS_Waypoints[0] )
          • Hashtable - Clear all child hashtables of child (Key WS_Unit_Handle.) in WS_Hashtable.
  • WS Order Unit To Move
    • Events
    • Conditions
    • Actions
      • Custom script: set udg_WS_Unit_Handle = udg_WS_Unit
      • -------- --------
      • Unit - Add Move To Waypoint to WS_Unit
      • -------- --------
      • Hashtable - Save WS_Total_Waypoints as -1 of (Key WS_Unit_Handle.) in WS_Hashtable.
      • Hashtable - Save 1 as 0 of (Key WS_Unit_Handle.) in WS_Hashtable.
      • -------- --------
      • For each (Integer WS_Index) from 1 to WS_Total_Waypoints, do (Actions)
        • Loop - Actions
          • Set WS_Waypoints[0] = (Load WS_Index of (Key WS_Unit_Handle.) in WS_Hashtable.)
          • Custom script: call RemoveLocation( udg_WS_Waypoints[0] )
          • Hashtable - Save Handle OfWS_Waypoints[WS_Index] as WS_Index of (Key WS_Unit_Handle.) in WS_Hashtable.
      • -------- --------
      • Unit - Order WS_Unit to Neutral Fire Lord - Volcano WS_Waypoints[1]
View attachment 540643
Here's an example of how to use the system:
  • Demo
    • Events
      • Player - Player 1 (Red) types a chat message containing test as An exact match
    • Conditions
    • Actions
      • Set WS_Unit = Runner
      • Set WS_Total_Waypoints = 4
      • Set WS_Waypoints[1] = (Center of PathB01 <gen>)
      • Set WS_Waypoints[2] = (Center of PathB02 <gen>)
      • Set WS_Waypoints[3] = (Center of PathB03 <gen>)
      • Set WS_Waypoints[4] = (Center of PathB04 <gen>)
      • Trigger - Run WS Order Unit To Move <gen> (ignoring conditions)
Here's the ability used in the triggers, it's based on the Channel ability.
View attachment 540644
The attached map requires the latest version of Warcraft 3 to open, but these triggers should work on just about any version.
Ehhh.... He just spawn and after 4 seconds he dissapears and he teleport to the region. How to fix this? And is the demo just a debug?
 
Top