- Joined
- May 20, 2009
- Messages
- 822
So, there appears to be more lag issues with this spell. This is the last time I'm going to deal with it and if I can't fix it now then it won't be worth using. It lags still even if it's just 1-2 units being "Detected" although it's such a small amount that it's almost unnoticeable. But when it starts to get to 6, 10, 15 units being detected, there is an EXTREMELY noticeable slow down.
Here are the triggers:
Here are the triggers:
-
Sensing Unit Enters
-
Events
- Unit - A unit enters (Playable map area)
- Conditions
-
Actions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- (Unit-type of (Triggering unit)) Equal to Archer
-
Then - Actions
- Set SenseUnitMaxIndex = (SenseUnitMaxIndex + 1)
- Set SenseUnit[SenseUnitMaxIndex] = (Entering unit)
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- (Sense Calc <gen> is on) Equal to False
-
Then - Actions
- Trigger - Turn on Sense Calc <gen>
- Else - Actions
-
If - Conditions
- Else - Actions
-
If - Conditions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
Events
-
Sensing Unit Dies
-
Events
- Unit - A unit Dies
-
Conditions
- (Unit-type of (Dying unit)) Equal to Archer
-
Actions
-
For each (Integer SenseUnitDiesInit) from 1 to SenseUnitMaxIndex, do (Actions)
-
Loop - Actions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- (Triggering unit) Equal to SenseUnit[SenseUnitDiesInit]
-
Then - Actions
- Set SenseUnit[SenseUnitDiesInit] = SenseUnit[SenseUnitMaxIndex]
- Set SenseUnit[SenseUnitMaxIndex] = No unit
- Set SenseUnitPoint[SenseUnitDiesInit] = SenseUnitPoint[SenseUnitMaxIndex]
- Set SenseRange[SenseUnitDiesInit] = SenseRange[SenseUnitMaxIndex]
- Set SenseRange[SenseUnitMaxIndex] = 0.00
- Custom script: set udg_SenseUnitPoint[udg_SenseUnitMaxIndex] = null
- Set SenseUnitMaxIndex = (SenseUnitMaxIndex - 1)
- Else - Actions
-
If - Conditions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
Loop - Actions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- (Sense Calc <gen> is on) Equal to False
-
Then - Actions
- Trigger - Turn on Sense Calc <gen>
- Else - Actions
-
If - Conditions
-
For each (Integer SenseUnitDiesInit) from 1 to SenseUnitMaxIndex, do (Actions)
-
Events
-
Sense Calc
-
Events
- Time - Every 0.50 seconds of game time
- Conditions
-
Actions
-
For each (Integer SenseInit) from 1 to SenseUnitMaxIndex, do (Actions)
-
Loop - Actions
- Set SenseUnitPoint[SenseInit] = (Position of SenseUnit[SenseInit])
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- (Level of Sense for SenseUnit[SenseInit]) Equal to 1
-
Then - Actions
- Set SenseRange[SenseInit] = 1200.00
-
Else - Actions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- (Level of Sense for SenseUnit[SenseInit]) Equal to 2
-
Then - Actions
- Set SenseRange[SenseInit] = 1700.00
- Else - Actions
-
If - Conditions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- Custom script: set bj_wantDestroyGroup = true
-
Unit Group - Pick every unit in (Units within SenseRange[SenseInit] of SenseUnitPoint[SenseInit]) and do (Actions)
-
Loop - Actions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- ((Picked unit) has buff Sense ) Equal to True
- ((Picked unit) is A structure) Equal to False
- ((Picked unit) is alive) Equal to True
- ((Picked unit) belongs to an ally of (Owner of SenseUnit[SenseInit])) Equal to False
- ((Picked unit) is A structure) Equal to False
-
Or - Any (Conditions) are true
-
Conditions
- ((Picked unit) belongs to an enemy of (Owner of SenseUnit[SenseInit])) Equal to True
- (Owner of (Picked unit)) Equal to Neutral Hostile
- (Owner of (Picked unit)) Equal to Neutral Victim
- (Owner of (Picked unit)) Equal to Neutral Extra
- (Owner of (Picked unit)) Equal to Neutral Passive
-
Conditions
-
Then - Actions
- Set SensedPointMaxIndex = (SensedPointMaxIndex + 1)
- Set SensedUnit[SensedPointMaxIndex] = (Picked unit)
- Set SensedUnitPoint[SensedPointMaxIndex] = (Position of SensedUnit[SenseInit])
- Unit - Create 1 Dummy Sense Unit for (Owner of SenseUnit[SenseInit]) at SensedUnitPoint[SenseInit] facing SensedUnitPoint[SenseInit]
- Unit - Add a 0.50 second Generic expiration timer to (Last created unit)
- Custom script: call RemoveLocation(udg_SensedUnitPoint[udg_SenseInit])
- Set SensedUnitPoint[SenseInit] = SensedUnitPoint[SensedPointMaxIndex]
- Custom script: set udg_SensedUnitPoint[udg_SensedPointMaxIndex] = null
- Set SensedUnit[SenseInit] = SensedUnit[SensedPointMaxIndex]
- Set SensedUnit[SensedPointMaxIndex] = No unit
- Set SensedPointMaxIndex = (SensedPointMaxIndex - 1)
- Else - Actions
-
If - Conditions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
Loop - Actions
-
Loop - Actions
-
For each (Integer SenseInit) from 1 to SenseUnitMaxIndex, do (Actions)
-
Events