- Joined
- Feb 28, 2013
- Messages
- 1,898
Hello, I made this trigger not so long ago where the traveller unit should get to the nearest waypoint unit when the trigger detects that the traveller unit is idle. Unfortunately it is causing lags recently due to massive amounts of traveller units and waypoint units I created (256 WP units, 50 travellers). Is there any way to optimize this so it picks lesser units?
Get closer waypoint units triggers
Get closer waypoint units triggers
-
Trave Init Timer
-
Events
-
Map initialization
-
-
Conditions
-
Actions
-
Countdown Timer - Start Travel_CheckTimer as a Repeating timer that will expire in 2.00 seconds
-
-
-
Travel Unit Stopped
-
Events
-
Time - Travel_CheckTimer expires
-
-
Conditions
-
Actions
-
Unit Group - Pick every unit in Travel_GroupTest and do (Actions)
-
Loop - Actions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
(Current order of (Picked unit)) Equal to (Order(stand down))
-
((Picked unit) is alive) Equal to True
-
-
Then - Actions
-
Game - Display to (All players) the text: Traveller is IDLE!
-
Set Travel_IdleUnit = (Picked unit)
-
Trigger - Run Travel Get Nearest Waypoint <gen> (ignoring conditions)
-
-
Else - Actions
-
Do nothing
-
-
-
-
-
-
-
Travel Get Nearest Waypoint
-
Events
-
Conditions
-
Actions
-
Set Travel_HighestReal = 1000000000.00
-
Set Travel_ClosestWaypointUnit = No unit
-
Set Travel_IdleUnitLoc = (Position of Travel_IdleUnit)
-
-------- - --------
-
For each (Integer A) from 1 to Travel_WaypointUnitCount, do (Actions)
-
Loop - Actions
-
Set Travel_WaypointUnitLoc = (Position of Travel_WaypointUnitArray[(Integer A)])
-
Set Travel_WaypointDistanceReal = (Distance between (Position of Travel_IdleUnit) and Travel_WaypointUnitLoc)
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
Travel_WaypointDistanceReal Less than Travel_HighestReal
-
-
Then - Actions
-
Set Travel_HighestReal = (Distance between Travel_IdleUnitLoc and Travel_WaypointUnitLoc)
-
Set Travel_ClosestWaypointUnit = Travel_WaypointUnitArray[(Integer A)]
-
-
Else - Actions
-
Do nothing
-
-
-
Custom script: call RemoveLocation(udg_Travel_WaypointUnitLoc)
-
-
-
Custom script: call RemoveLocation(udg_Travel_IdleUnitLoc)
-
Unit - Order Travel_IdleUnit to Move To (Position of Travel_ClosestWaypointUnit)
-
-
-
Travel Set Waypoint Units To Regions Init
-
Events
-
Map initialization
-
-
Conditions
-
Actions
-
-------- --------
-
Set Travel_WaypointUnitMaxIndex = 0
-
Set Travel_WaypointUnitOwner = Neutral Passive
-
Set Travel_WaypointUnitType = Wisp
-
-------- --------
-
Trigger - Run Travel Set Waypoint Units To Regions Part 1 <gen> (ignoring conditions)
-
Trigger - Run Travel Set Waypoint Units To Regions Part 2 <gen> (ignoring conditions)
-
Trigger - Run Travel Set Waypoint Units To Regions Part 3 <gen> (ignoring conditions)
-
Trigger - Run Travel Set Waypoint Units To Regions Part 4 <gen> (ignoring conditions)
-
Trigger - Run Travel Set Waypoint Units To Regions Part 5 <gen> (ignoring conditions)
-
Trigger - Run Travel Create Waypoint Units To Regions <gen> (ignoring conditions)
-
-
-
Travel Set Waypoint Units To Regions Part 1
-
Events
-
Conditions
-
Actions
-
Set Travel_WaypointUnitMaxIndex = (Travel_WaypointUnitMaxIndex + 1)
-
Set Travel_WaypointRegionArray[Travel_WaypointUnitMaxIndex] = Travel Waypoint 001 <gen>
-
-------- --------
-
Set Travel_WaypointUnitMaxIndex = (Travel_WaypointUnitMaxIndex + 1)
-
Set Travel_WaypointRegionArray[Travel_WaypointUnitMaxIndex] = Travel Waypoint 002 <gen>
-
-------- --------
-
Set Travel_WaypointUnitMaxIndex = (Travel_WaypointUnitMaxIndex + 1)
-
Set Travel_WaypointRegionArray[Travel_WaypointUnitMaxIndex] = Travel Waypoint 003 <gen>
-
-------- --------
-
Set Travel_WaypointUnitMaxIndex = (Travel_WaypointUnitMaxIndex + 1)
-
Set Travel_WaypointRegionArray[Travel_WaypointUnitMaxIndex] = Travel Waypoint 004 <gen>
-
-------- --------
-
Set Travel_WaypointUnitMaxIndex = (Travel_WaypointUnitMaxIndex + 1)
-
Set Travel_WaypointRegionArray[Travel_WaypointUnitMaxIndex] = Travel Waypoint 005 <gen>
-
-------- --------
-
Set Travel_WaypointUnitMaxIndex = (Travel_WaypointUnitMaxIndex + 1)
-
Set Travel_WaypointRegionArray[Travel_WaypointUnitMaxIndex] = Travel Waypoint 006 <gen>
-
-------- --------
-
Set Travel_WaypointUnitMaxIndex = (Travel_WaypointUnitMaxIndex + 1)
-
Set Travel_WaypointRegionArray[Travel_WaypointUnitMaxIndex] = Travel Waypoint 007 <gen>
-
-------- --------
-
Set Travel_WaypointUnitMaxIndex = (Travel_WaypointUnitMaxIndex + 1)
-
Set Travel_WaypointRegionArray[Travel_WaypointUnitMaxIndex] = Travel Waypoint 007 <gen>
-
-------- --------
-
Set Travel_WaypointUnitMaxIndex = (Travel_WaypointUnitMaxIndex + 1)
-
Set Travel_WaypointRegionArray[Travel_WaypointUnitMaxIndex] = Travel Waypoint 008 <gen>
-
-------- --------
-
Set Travel_WaypointUnitMaxIndex = (Travel_WaypointUnitMaxIndex + 1)
-
Set Travel_WaypointRegionArray[Travel_WaypointUnitMaxIndex] = Travel Waypoint 009 <gen>
-
-------- --------
-
Set Travel_WaypointUnitMaxIndex = (Travel_WaypointUnitMaxIndex + 1)
-
Set Travel_WaypointRegionArray[Travel_WaypointUnitMaxIndex] = Travel Waypoint 010 <gen>
-
-------- --------
-
Set Travel_WaypointUnitMaxIndex = (Travel_WaypointUnitMaxIndex + 1)
-
Set Travel_WaypointRegionArray[Travel_WaypointUnitMaxIndex] = Travel Waypoint 011 <gen>
-
-------- --------
-
Set Travel_WaypointUnitMaxIndex = (Travel_WaypointUnitMaxIndex + 1)
-
Set Travel_WaypointRegionArray[Travel_WaypointUnitMaxIndex] = Travel Waypoint 012 <gen>
-
-------- --------
-
Set Travel_WaypointUnitMaxIndex = (Travel_WaypointUnitMaxIndex + 1)
-
Set Travel_WaypointRegionArray[Travel_WaypointUnitMaxIndex] = Travel Waypoint 013 <gen>
-
-------- --------
-
Set Travel_WaypointUnitMaxIndex = (Travel_WaypointUnitMaxIndex + 1)
-
Set Travel_WaypointRegionArray[Travel_WaypointUnitMaxIndex] = Travel Waypoint 014 <gen>
-
-------- --------
-
Set Travel_WaypointUnitMaxIndex = (Travel_WaypointUnitMaxIndex + 1)
-
Set Travel_WaypointRegionArray[Travel_WaypointUnitMaxIndex] = Travel Waypoint 015 <gen>
-
-------- --------
-
Set Travel_WaypointUnitMaxIndex = (Travel_WaypointUnitMaxIndex + 1)
-
Set Travel_WaypointRegionArray[Travel_WaypointUnitMaxIndex] = Travel Waypoint 016 <gen>
-
-------- --------
-
Set Travel_WaypointUnitMaxIndex = (Travel_WaypointUnitMaxIndex + 1)
-
Set Travel_WaypointRegionArray[Travel_WaypointUnitMaxIndex] = Travel Waypoint 017 <gen>
-
-------- --------
-
Set Travel_WaypointUnitMaxIndex = (Travel_WaypointUnitMaxIndex + 1)
-
Set Travel_WaypointRegionArray[Travel_WaypointUnitMaxIndex] = Travel Waypoint 018 <gen>
-
-------- --------
-
Set Travel_WaypointUnitMaxIndex = (Travel_WaypointUnitMaxIndex + 1)
-
Set Travel_WaypointRegionArray[Travel_WaypointUnitMaxIndex] = Travel Waypoint 019 <gen>
-
-------- --------
-
Set Travel_WaypointUnitMaxIndex = (Travel_WaypointUnitMaxIndex + 1)
-
Set Travel_WaypointRegionArray[Travel_WaypointUnitMaxIndex] = Travel Waypoint 020 <gen>
-
-------- --------
-
Set Travel_WaypointUnitMaxIndex = (Travel_WaypointUnitMaxIndex + 1)
-
Set Travel_WaypointRegionArray[Travel_WaypointUnitMaxIndex] = Travel Waypoint 021 <gen>
-
-------- --------
-
Set Travel_WaypointUnitMaxIndex = (Travel_WaypointUnitMaxIndex + 1)
-
Set Travel_WaypointRegionArray[Travel_WaypointUnitMaxIndex] = Travel Waypoint 022 <gen>
-
-------- --------
-
Set Travel_WaypointUnitMaxIndex = (Travel_WaypointUnitMaxIndex + 1)
-
Set Travel_WaypointRegionArray[Travel_WaypointUnitMaxIndex] = Travel Waypoint 023 <gen>
-
-------- --------
-
Set Travel_WaypointUnitMaxIndex = (Travel_WaypointUnitMaxIndex + 1)
-
Set Travel_WaypointRegionArray[Travel_WaypointUnitMaxIndex] = Travel Waypoint 024 <gen>
-
-------- --------
-
Set Travel_WaypointUnitMaxIndex = (Travel_WaypointUnitMaxIndex + 1)
-
Set Travel_WaypointRegionArray[Travel_WaypointUnitMaxIndex] = Travel Waypoint 025 <gen>
-
-------- --------
-
Set Travel_WaypointUnitMaxIndex = (Travel_WaypointUnitMaxIndex + 1)
-
Set Travel_WaypointRegionArray[Travel_WaypointUnitMaxIndex] = Travel Waypoint 026 <gen>
-
-------- --------
-
Set Travel_WaypointUnitMaxIndex = (Travel_WaypointUnitMaxIndex + 1)
-
Set Travel_WaypointRegionArray[Travel_WaypointUnitMaxIndex] = Travel Waypoint 027 <gen>
-
-------- --------
-
Set Travel_WaypointUnitMaxIndex = (Travel_WaypointUnitMaxIndex + 1)
-
Set Travel_WaypointRegionArray[Travel_WaypointUnitMaxIndex] = Travel Waypoint 028 <gen>
-
-------- --------
-
Set Travel_WaypointUnitMaxIndex = (Travel_WaypointUnitMaxIndex + 1)
-
Set Travel_WaypointRegionArray[Travel_WaypointUnitMaxIndex] = Travel Waypoint 029 <gen>
-
-------- --------
-
Set Travel_WaypointUnitMaxIndex = (Travel_WaypointUnitMaxIndex + 1)
-
Set Travel_WaypointRegionArray[Travel_WaypointUnitMaxIndex] = Travel Waypoint 030 <gen>
-
-------- --------
-
Set Travel_WaypointUnitMaxIndex = (Travel_WaypointUnitMaxIndex + 1)
-
Set Travel_WaypointRegionArray[Travel_WaypointUnitMaxIndex] = Travel Waypoint 031 <gen>
-
-------- --------
-
Set Travel_WaypointUnitMaxIndex = (Travel_WaypointUnitMaxIndex + 1)
-
Set Travel_WaypointRegionArray[Travel_WaypointUnitMaxIndex] = Travel Waypoint 032 <gen>
-
-------- --------
-
Set Travel_WaypointUnitMaxIndex = (Travel_WaypointUnitMaxIndex + 1)
-
Set Travel_WaypointRegionArray[Travel_WaypointUnitMaxIndex] = Travel Waypoint 033 <gen>
-
-------- --------
-
Set Travel_WaypointUnitMaxIndex = (Travel_WaypointUnitMaxIndex + 1)
-
Set Travel_WaypointRegionArray[Travel_WaypointUnitMaxIndex] = Travel Waypoint 034 <gen>
-
-------- --------
-
Set Travel_WaypointUnitMaxIndex = (Travel_WaypointUnitMaxIndex + 1)
-
Set Travel_WaypointRegionArray[Travel_WaypointUnitMaxIndex] = Travel Waypoint 035 <gen>
-
-------- --------
-
Set Travel_WaypointUnitMaxIndex = (Travel_WaypointUnitMaxIndex + 1)
-
Set Travel_WaypointRegionArray[Travel_WaypointUnitMaxIndex] = Travel Waypoint 036 <gen>
-
-------- --------
-
Set Travel_WaypointUnitMaxIndex = (Travel_WaypointUnitMaxIndex + 1)
-
Set Travel_WaypointRegionArray[Travel_WaypointUnitMaxIndex] = Travel Waypoint 037 <gen>
-
-------- --------
-
Set Travel_WaypointUnitMaxIndex = (Travel_WaypointUnitMaxIndex + 1)
-
Set Travel_WaypointRegionArray[Travel_WaypointUnitMaxIndex] = Travel Waypoint 038 <gen>
-
-------- --------
-
Set Travel_WaypointUnitMaxIndex = (Travel_WaypointUnitMaxIndex + 1)
-
Set Travel_WaypointRegionArray[Travel_WaypointUnitMaxIndex] = Travel Waypoint 039 <gen>
-
-------- --------
-
Set Travel_WaypointUnitMaxIndex = (Travel_WaypointUnitMaxIndex + 1)
-
Set Travel_WaypointRegionArray[Travel_WaypointUnitMaxIndex] = Travel Waypoint 040 <gen>
-
-------- --------
-
Set Travel_WaypointUnitMaxIndex = (Travel_WaypointUnitMaxIndex + 1)
-
Set Travel_WaypointRegionArray[Travel_WaypointUnitMaxIndex] = Travel Waypoint 041 <gen>
-
-------- --------
-
Set Travel_WaypointUnitMaxIndex = (Travel_WaypointUnitMaxIndex + 1)
-
Set Travel_WaypointRegionArray[Travel_WaypointUnitMaxIndex] = Travel Waypoint 042 <gen>
-
-------- --------
-
Set Travel_WaypointUnitMaxIndex = (Travel_WaypointUnitMaxIndex + 1)
-
Set Travel_WaypointRegionArray[Travel_WaypointUnitMaxIndex] = Travel Waypoint 043 <gen>
-
-------- --------
-
Set Travel_WaypointUnitMaxIndex = (Travel_WaypointUnitMaxIndex + 1)
-
Set Travel_WaypointRegionArray[Travel_WaypointUnitMaxIndex] = Travel Waypoint 044 <gen>
-
-------- --------
-
Set Travel_WaypointUnitMaxIndex = (Travel_WaypointUnitMaxIndex + 1)
-
Set Travel_WaypointRegionArray[Travel_WaypointUnitMaxIndex] = Travel Waypoint 045 <gen>
-
-------- --------
-
Set Travel_WaypointUnitMaxIndex = (Travel_WaypointUnitMaxIndex + 1)
-
Set Travel_WaypointRegionArray[Travel_WaypointUnitMaxIndex] = Travel Waypoint 046 <gen>
-
-------- --------
-
Set Travel_WaypointUnitMaxIndex = (Travel_WaypointUnitMaxIndex + 1)
-
Set Travel_WaypointRegionArray[Travel_WaypointUnitMaxIndex] = Travel Waypoint 047 <gen>
-
-------- --------
-
Set Travel_WaypointUnitMaxIndex = (Travel_WaypointUnitMaxIndex + 1)
-
Set Travel_WaypointRegionArray[Travel_WaypointUnitMaxIndex] = Travel Waypoint 048 <gen>
-
-------- --------
-
Set Travel_WaypointUnitMaxIndex = (Travel_WaypointUnitMaxIndex + 1)
-
Set Travel_WaypointRegionArray[Travel_WaypointUnitMaxIndex] = Travel Waypoint 049 <gen>
-
-------- --------
-
Set Travel_WaypointUnitMaxIndex = (Travel_WaypointUnitMaxIndex + 1)
-
Set Travel_WaypointRegionArray[Travel_WaypointUnitMaxIndex] = Travel Waypoint 050 <gen>
-
-
-
This goes up to 210...
-
Travel Create Waypoint Units To Regions
-
Events
-
Conditions
-
Actions
-
Set Travel_WaypointUnitCount = 0
-
For each (Integer A) from 1 to Travel_WaypointUnitMaxIndex, do (Actions)
-
Loop - Actions
-
Set Travel_SpawnPointTemp = (Center of Travel_WaypointRegionArray[Travel_WaypointUnitCount])
-
Set Travel_WaypointUnitCount = (Travel_WaypointUnitCount + 1)
-
Unit - Create 1 Travel_WaypointUnitType for Travel_WaypointUnitOwner at Travel_SpawnPointTemp facing 0.00 degrees
-
Set Travel_WaypointUnitArray[Travel_WaypointUnitCount] = (Last created unit)
-
Unit Group - Add (Last created unit) to Travel_WaypointUnitGroup
-
Unit - Hide (Last created unit)
-
Custom script: call UnitAddAbility(GetLastCreatedUnit(),'Aloc')
-
Custom script: call RemoveLocation(udg_Travel_SpawnPointTemp)
-
-
-
-
-
Travel Spawn Test
-
Events
-
Player - Player 1 (Red) skips a cinematic sequence
-
-
Conditions
-
Actions
-
Set Travel_SpawnPointTemp = (Center of Travel Waypoint 001 <gen>)
-
Unit - Create 1 Village Civilian - Male for Player 2 (Blue) at (Center of Travel Waypoint 001 <gen>) facing Default building facing degrees
-
Unit Group - Add (Last created unit) to Travel_GroupTest
-
Custom script: call RemoveLocation(udg_Travel_SpawnPointTemp)
-
-
There are about 210 triggers similar to this
-
Travel Waypoint 1
-
Events
-
Unit - A unit enters Travel Waypoint 001 <gen>
-
-
Conditions
-
Actions
-
Set Travel_ChoiceMaxIndex = 0
-
-------- - --------
-
Set Travel_ChoiceMaxIndex = (Travel_ChoiceMaxIndex + 1)
-
Set Travel_WaypointPointArray[Travel_ChoiceMaxIndex] = (Center of Travel Waypoint 002 <gen>)
-
-------- - --------
-
Set Travel_ChoiceMaxIndex = (Travel_ChoiceMaxIndex + 1)
-
Set Travel_WaypointPointArray[Travel_ChoiceMaxIndex] = (Center of Travel Waypoint 004 <gen>)
-
-------- - --------
-
Set Travel_ChoiceMaxIndex = (Travel_ChoiceMaxIndex + 1)
-
Set Travel_WaypointPointArray[Travel_ChoiceMaxIndex] = (Center of Travel Waypoint 006 <gen>)
-
-------- - --------
-
Set Travel_ChoiceMaxIndex = (Travel_ChoiceMaxIndex + 1)
-
Set Travel_WaypointPointArray[Travel_ChoiceMaxIndex] = (Center of Travel Waypoint 008 <gen>)
-
-------- - --------
-
Trigger - Run Travel Actions <gen> (ignoring conditions)
-
-------- - --------
-
For each (Integer A) from 1 to Travel_ChoiceMaxIndex, do (Actions)
-
Loop - Actions
-
Custom script: call RemoveLocation(udg_Travel_WaypointPointArray[udg_Travel_ChoiceMaxIndex])
-
-
-
-
-
Travel Actions
-
Events
-
Conditions
-
Actions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
And - All (Conditions) are true
-
Conditions
-
(Unit-type of (Entering unit)) Not equal to Travel_WaypointUnitType
-
(Owner of (Entering unit)) Not equal to Player 1 (Red)
-
-
-
-
Then - Actions
-
Set Travel_ChoiceRandomizer = (Random integer number between 1 and Travel_ChoiceMaxIndex)
-
Unit - Order (Entering unit) to Attack-Move To Travel_WaypointPointArray[Travel_ChoiceRandomizer]
-
-
Else - Actions
-
Do nothing
-
-
-
-
-
Travel Get Nearest Waypoint Teleport
-
Events
-
Conditions
-
Actions
-
-------- --------
-
-------- Temporary was added intentionally to avoid units getting stucked at STOP order --------
-
Set Travel_GroupTestSpawnPoint = (Center of Travel Waypoint 001 <gen>)
-
Set Travel_SpawnTemp = (Center of (Playable map area))
-
Unit - Move Travel_IdleUnit instantly to Travel_SpawnTemp
-
Unit - Move Travel_IdleUnit instantly to Travel_GroupTestSpawnPoint
-
Custom script: call RemoveLocation(udg_Travel_GroupTestSpawnPoint)
-
Custom script: call RemoveLocation(udg_Travel_SpawnTemp)
-
-
-
Travel Unit Stopped
-
Events
-
Time - Global_TickTimer expires
-
-
Conditions
-
Actions
-
Unit Group - Pick every unit in Travel_GroupTest and do (Actions)
-
Loop - Actions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
(Current order of (Picked unit)) Equal to (Order(stand down))
-
-
Then - Actions
-
Game - Display to (All players) the text: Traveller is IDLE!
-
Set Travel_IdleUnit = (Picked unit)
-
Trigger - Run Travel Get Nearest Waypoint Teleport <gen> (ignoring conditions)
-
-
Else - Actions
-
Do nothing
-
-
-
-
-
-
-
Travel Unit Died
-
Events
-
Unit - A unit Dies
-
-
Conditions
-
((Dying unit) is in Travel_GroupTest) Equal to True
-
-
Actions
-
Unit Group - Remove (Dying unit) from Travel_GroupTest
-
-
-
Travel Spawn Test
-
Events
-
Player - Player 1 (Red) skips a cinematic sequence
-
-
Conditions
-
Actions
-
Set Travel_SpawnPointTemp = (Center of Travel Waypoint 001 <gen>)
-
Unit - Create 1 Rebel Mercenary - Axe for Player 2 (Blue) at (Center of Travel Waypoint 001 <gen>) facing Default building facing degrees
-
Unit Group - Add (Last created unit) to Travel_GroupTest
-
Custom script: call RemoveLocation(udg_Travel_SpawnPointTemp)
-
-
Last edited: