Igor_Z
You can change this now in User CP.
- Reaction score
- 61
Hmm. I made a spell that ensnares many units in the area. The spell works perfectly but there is a small issue. When my hero ensnares many units, more than 5 to be exact it causes some lag. Does anyone have an idea on how to fix that? I don't know if it can be fixed to work flawlessly but I think it can be improved a little bit...
Triggers:
Triggers:
Trigger:
- Ensnare AoE
- Events
- Unit - A unit Starts the effect of an ability
- Conditions
- (Ability being cast) Equal to Mass Ensnare
- Actions
- Set Mass_Ensnare_Units[1] = (Triggering unit)
- Set Mass_Ensnare_Points[1] = (Position of Mass_Ensnare_Units[1])
- Set Mass_Ensnare_Points[2] = (Target point of ability being cast)
- Unit - Create 1 Ensnare Moving Dummy for (Owner of Mass_Ensnare_Units[1]) at Mass_Ensnare_Points[1] facing Default building facing degrees
- Set Mass_Ensnare_Units[2] = (Last created unit)
- Unit - Turn collision for Mass_Ensnare_Units[2] Off
- Custom script: call RemoveLocation(udg_Mass_Ensnare_Points[1])
- Trigger - Turn on Ensnare Move <gen>
- Events
Trigger:
- Ensnare Move
- Events
- Time - Every 0.03 seconds of game time
- Conditions
- Actions
- Set Mass_Ensnare_Points[3] = (Position of Mass_Ensnare_Units[2])
- Set Mass_Ensnare_Points[4] = (Mass_Ensnare_Points[3] offset by 35.00 towards (Angle from Mass_Ensnare_Points[3] to Mass_Ensnare_Points[2]) degrees)
- Unit - Move Mass_Ensnare_Units[2] instantly to Mass_Ensnare_Points[4]
- If (All Conditions are True) then do (Then Actions) else do (Else Actions)
- If - Conditions
- (Integer((Distance between Mass_Ensnare_Points[3] and Mass_Ensnare_Points[2]))) Less than or equal to 50
- Then - Actions
- Unit - Remove Mass_Ensnare_Units[2] from the game
- Set Mass_Ensnare_Group = (Units within 375.00 of Mass_Ensnare_Points[2] matching ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) is Magic Immune) Equal to False) and (((Matching unit) belongs to an enemy of (Owner of Mass_Ensnare_Units[1])) Equal to True))))
- Unit Group - Pick every unit in Mass_Ensnare_Group and do (Actions)
- Loop - Actions
- Unit - Create 1 Ensnare Dummy for (Owner of Mass_Ensnare_Units[1]) at Mass_Ensnare_Points[2] facing Default building facing degrees
- Set Mass_Ensnare_Units[3] = (Last created unit)
- Unit - Add Mass Ensnare (Dummy Cast) to Mass_Ensnare_Units[3]
- Unit - Set level of Mass Ensnare (Dummy Cast) for Mass_Ensnare_Units[3] to (Level of Mass Ensnare for Mass_Ensnare_Units[1])
- Unit - Order Mass_Ensnare_Units[3] to Orc Raider - Ensnare (Picked unit)
- Unit - Add a 1.20 second Generic expiration timer to Mass_Ensnare_Units[3]
- Loop - Actions
- Custom script: set udg_Mass_Ensnare_Units[1] = null
- Custom script: set udg_Mass_Ensnare_Units[2] = null
- Custom script: set udg_Mass_Ensnare_Units[3] = null
- Custom script: call RemoveLocation(udg_Mass_Ensnare_Points[2])
- Custom script: call DestroyGroup(udg_Mass_Ensnare_Group)
- Trigger - Turn off (This trigger)
- Else - Actions
- If - Conditions
- Custom script: call RemoveLocation(udg_Mass_Ensnare_Points[3])
- Custom script: call RemoveLocation(udg_Mass_Ensnare_Points[4])
- Events