Triggering a Patrol action?

Sajberhippie

New Member
Reaction score
30
In my creep spawning system, I've included an order for created units to Patrol to a random location in the map. I want this to be a real patrol route, with the creeps going back and forth. What they do is however the following: They go to the location, turn around, go back, and when they are back at the original place they just stand there. Are there any good ways to solve this? I don't want to use the Wander ability since it's individual, and I prefer to keep them in groups...
 

simonake

New Member
Reaction score
72
You could do a trigger like this one. It's leakless.
Trigger:
  • Spawn
    • Events
      • Time - Every 20 seconds of game-time
    • Conditions
      • none
    • Actions
      • Set TempLoc1 = (Center of (<region>))
      • Set TempLoc2 = (Random point in (Playable map area))
      • Unit - Create 1 Footmen for Joueur 1 (Red) at TempLoc1 facing TempLoc1
      • Unit - Issue (Last Created Unit) to Move-Attack to TempLoc2
      • Custom Script: call RemoveLocation( udg_TempLoc1)
      • Custom Script: call RemoveLocation( udg_TempLoc2)


This would be for the spawn.
 

Sajberhippie

New Member
Reaction score
30
You could do a trigger like this one. It's leakless.
Trigger:
  • Spawn
    • Events
      • Time - Every 20 seconds of game-time
    • Conditions
      • none
    • Actions
      • Set TempLoc1 = (Center of (<region>))
      • Set TempLoc2 = (Random point in (Playable map area))
      • Unit - Create 1 Footmen for Joueur 1 (Red) at TempLoc1 facing TempLoc1
      • Unit - Issue (Last Created Unit) to Move-Attack to TempLoc2
      • Custom Script: call RemoveLocation( udg_TempLoc1)
      • Custom Script: call RemoveLocation( udg_TempLoc2)


This would be for the spawn.

Yes, but they still only go one-way. They'll move to TempLoc2 and stay there. My current trigger looks like this:
Trigger:
  • Creeps
    • Events
      • Time - Every 6.00 seconds of game time
    • Conditions
      • Or - Any (Conditions) are true
        • Conditions
          • (Random integer number between 1 and 300) Greater than or equal to (Count non-structure units controlled by Neutral Hostile (Exclude incomplete units))
          • (Random integer number between 1 and 1000) Equal to 1
    • Actions
      • Set SettingPoint = (Random point in (Playable map area))
      • For each (Integer A) from 1 to 60, do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • Or - Any (Conditions) are true
                • Conditions
                  • (SettingPoint is visible to Player 1 (Red)) Equal to True
                  • (SettingPoint is visible to Player 2 (Blue)) Equal to True
                  • (SettingPoint is visible to Player 3 (Teal)) Equal to True
                  • (SettingPoint is visible to Player 4 (Purple)) Equal to True
                  • (SettingPoint is visible to Player 5 (Yellow)) Equal to True
                  • (SettingPoint is visible to Player 6 (Orange)) Equal to True
                  • (SettingPoint is visible to Player 7 (Green)) Equal to True
                  • (SettingPoint is visible to Player 8 (Pink)) Equal to True
            • Then - Actions
              • Set SettingPoint = (Random point in (Playable map area))
            • Else - Actions
      • -------- Grass --------
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Terrain type at SettingPoint) Equal to Lordaeron Summer - Grass
          • (Random integer number between 1 and 4) Equal to 1
        • Then - Actions
          • Game - Display to (All players) the text: Creeps have spawned...
          • -------- Bandit --------
          • Unit - Create (Random integer number between 1 and 2) Bandit for Neutral Hostile at SettingPoint facing Default building facing degrees
          • Unit - Create (Random integer number between 0 and (Min(10, ((Execution count of (This trigger)) / 20)))) Bandit for Neutral Hostile at SettingPoint facing Default building facing degrees
          • Unit - Create (Random integer number between 0 and (Min(10, ((Execution count of (This trigger)) / 40)))) Bandit for Neutral Hostile at SettingPoint facing Default building facing degrees
          • Unit - Create (Random integer number between 0 and (Min(10, ((Execution count of (This trigger)) / 60)))) Bandit for Neutral Hostile at SettingPoint facing Default building facing degrees
          • -------- Highwayman --------
          • Unit - Create (Random integer number between 0 and 1) Highwayman for Neutral Hostile at SettingPoint facing Default building facing degrees
          • Unit - Create (Random integer number between 0 and (Min(10, ((Execution count of (This trigger)) / 20)))) Highwayman for Neutral Hostile at SettingPoint facing Default building facing degrees
          • Unit - Create (Random integer number between 0 and (Min(10, ((Execution count of (This trigger)) / 60)))) Highwayman for Neutral Hostile at SettingPoint facing Default building facing degrees
          • -------- Lawless --------
          • Unit - Create ((Random integer number between 1 and 3) - 2) Lawless for Neutral Hostile at SettingPoint facing Default building facing degrees
          • Unit - Create (Random integer number between 0 and (Min(10, ((Execution count of (This trigger)) / 40)))) Lawless for Neutral Hostile at SettingPoint facing Default building facing degrees
          • -------- Criminal --------
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Random integer number between 1 and 3) Equal to 1
            • Then - Actions
              • Unit - Create ((Random integer number between 1 and 5) - 2) Criminal for Neutral Hostile at SettingPoint facing Default building facing degrees
              • Unit - Create ((Random integer number between 1 and 5) - 2) Criminal for Neutral Hostile at SettingPoint facing Default building facing degrees
              • Unit - Create ((Random integer number between 1 and 5) - 2) Criminal for Neutral Hostile at SettingPoint facing Default building facing degrees
            • Else - Actions
          • -------- Ambusher --------
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Random integer number between 1 and 3) Equal to 1
            • Then - Actions
              • Unit - Create (Random integer number between 0 and 1) Ambusher for Neutral Hostile at SettingPoint facing Default building facing degrees
              • Unit - Create (Random integer number between 0 and (Min(10, ((Execution count of (This trigger)) / 40)))) Ambusher for Neutral Hostile at SettingPoint facing Default building facing degrees
              • Unit - Create (Random integer number between 0 and (Min(10, ((Execution count of (This trigger)) / 60)))) Ambusher for Neutral Hostile at SettingPoint facing Default building facing degrees
            • Else - Actions
          • -------- Bandit Lord --------
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Random integer number between 1 and ((Execution count of (This trigger)) / 20)) Greater than or equal to 10
            • Then - Actions
              • Unit - Create (Random integer number between 0 and (Min(3, ((Execution count of (This trigger)) / 60)))) Ambusher for Neutral Hostile at SettingPoint facing Default building facing degrees
            • Else - Actions
          • -------- Bandit Mage --------
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Random integer number between 1 and ((Execution count of (This trigger)) / 20)) Greater than or equal to 8
            • Then - Actions
              • Unit - Create (Random integer number between 0 and (Min(3, ((Execution count of (This trigger)) / 60)))) Ambusher for Neutral Hostile at SettingPoint facing Default building facing degrees
            • Else - Actions
          • -------- Lawless Crossbowman --------
          • Unit - Create ((Random integer number between 1 and 3) - 1) Lawless Crossbowman for Neutral Hostile at SettingPoint facing Default building facing degrees
          • Unit - Create (Random integer number between 0 and (Min(10, ((Execution count of (This trigger)) / 40)))) Lawless Crossbowman for Neutral Hostile at SettingPoint facing Default building facing degrees
        • Else - Actions
      • Set TempPoint = (Random point in (Playable map area))
      • Set SettingGroup = (Units within 150.00 of SettingPoint matching ((Owner of (Matching unit)) Equal to Neutral Hostile))
      • Unit Group - Order SettingGroup to Patrol To TempPoint
      • Custom script: call RemoveLocation(udg_TempPoint)
      • Custom script: call DestroyGroup (udg_SettingGroup)
      • Custom script: call RemoveLocation(udg_SettingPoint)
 

emilemil1

New Member
Reaction score
20
Since it is creeps i guess you are using Neutral Hostile right?

Make sure to change the guard return distance on gameplay constants, it usually messes these kind of actions up.
 

Sajberhippie

New Member
Reaction score
30
Since it is creeps i guess you are using Neutral Hostile right?

Make sure to change the guard return distance on gameplay constants, it usually messes these kind of actions up.

DINGDINGDINGDING You found it! Mehehehe, I'm a happy little mapper now :)
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      The Helper Discord

      Members online

      No members online now.

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top