UPDATE: Here is how it works:
Since my map is a rainy map, I used the 'Crushing Wave' Special Effect, so when units are pushed back, their feet sliding against the water, it looks more realistic. You may switch this Special Effect out for a 'Dust-like' Special Effect, or whatever else you think is more fitting for your map.
The Configuration:
The Loop (make sure to un-check Initially ON for this trigger)
============================================
There is a spell in my game called 'Thunder Slam' and I cannot get it to push back all units surrounding the unit casting my 'Thunder Slam' spell.
I read a couple guides on this kind of thing for GUI, but the guy said there was a lag issue (not a leak issue,) because the skill relied on Event - Game Time - Every X Seconds of Game Time, then IF and Actions, which I want to avoid. The guy then said vJASS is required so it wouldn't do this, and I have not an inkling of knowledge in it.
All I have is this, and even in the first action line, I was told by someone in Hive's Chat that it leaks (or lags, I cannot remember which one.) However, it's not to my knowledge why. I didn't get his explanation(s).
P.S. In one big failing attempt I did something to my trigger and it made all the units go to the center of the map, even though nothing in my action lines told them to. I have since erased all of what was in that code of fail-whaleness. It was weird.
Since my map is a rainy map, I used the 'Crushing Wave' Special Effect, so when units are pushed back, their feet sliding against the water, it looks more realistic. You may switch this Special Effect out for a 'Dust-like' Special Effect, or whatever else you think is more fitting for your map.
The Configuration:
-
Thunder Slam Config
-
Events
- Unit - A unit Starts the effect of an ability
-
Conditions
- (Ability being cast) Equal to Thunder Slam
-
Actions
- Environment - Stop all active terrain deformations instantly
- Set tempUnit = (Triggering unit)
- Set Abil = (Ability being cast)
- Set AbilLvl = (Level of Abil for tempUnit)
- Set PushDist = 200.00
- Set tempPoint = (Position of tempUnit)
- Custom script: set bj_wantDestroyGroup = true
-
Unit Group - Pick every unit in (Units within 315.00 of tempPoint) and do (Actions)
-
Loop - Actions
- Set tempUnit = (Picked unit)
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- (tempUnit is A structure) Equal to False
- (tempUnit is alive) Equal to True
- (tempUnit belongs to an enemy of (Triggering player)) Equal to True
-
Then - Actions
- Set tempPoint2 = (Position of tempUnit)
- Set PushAngle = (Angle from tempPoint to tempPoint2)
- Custom script: set udg_Handle2 = GetHandleId(udg_tempUnit)
- Custom script: call SaveReal(udg_Hash, udg_Handle2, 0, udg_PushDist)
- Custom script: call SaveReal(udg_Hash, udg_Handle2, 1, udg_PushAngle)
- Unit Group - Add (Picked unit) to PushedUnits
- Custom script: call RemoveLocation(udg_tempPoint2)
- Else - Actions
-
If - Conditions
-
Loop - Actions
- Trigger - Turn on Thunder Slam Pushback <gen>
- Custom script: call RemoveLocation(udg_tempPoint)
-
Events
-
Thunder Slam Pushback
-
Events
- Time - Every 0.03 seconds of game time
- Conditions
-
Actions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- (Number of units in PushedUnits) Greater than 0
-
Then - Actions
-
Unit Group - Pick every unit in PushedUnits and do (Actions)
-
Loop - Actions
- Set tempUnit = (Picked unit)
- Set tempPoint = (Position of tempUnit)
- Custom script: set udg_Handle2 = GetHandleId(udg_tempUnit)
- Custom script: set udg_PushDist = LoadReal(udg_Hash, udg_Handle2, 0)
- Custom script: set udg_PushAngle = LoadReal(udg_Hash, udg_Handle2, 1)
- Set tempPoint2 = (tempPoint offset by 5.00 towards PushAngle degrees)
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- PushDist Greater than 0.00
-
Then - Actions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- (Random integer number between 1 and 2) Equal to 1
-
Then - Actions
- Special Effect - Create a special effect at tempPoint2 using Abilities\Spells\Other\CrushingWave\CrushingWaveDamage.mdl
- Special Effect - Destroy (Last created special effect)
- Else - Actions
-
If - Conditions
- Unit - Move tempUnit instantly to tempPoint2
- Custom script: call SaveReal(udg_Hash, udg_Handle2, 0, udg_PushDist-5)
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
Else - Actions
- Unit Group - Remove tempUnit from PushedUnits
- Custom script: call SaveReal(udg_Hash, udg_Handle2, 0, 0)
- Custom script: call SaveReal(udg_Hash, udg_Handle2, 1, 0)
-
If - Conditions
- Custom script: call RemoveLocation(udg_tempPoint)
- Custom script: call RemoveLocation(udg_tempPoint2)
-
Loop - Actions
-
Unit Group - Pick every unit in PushedUnits and do (Actions)
-
Else - Actions
- Trigger - Turn off (This trigger)
-
If - Conditions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
Events
There is a spell in my game called 'Thunder Slam' and I cannot get it to push back all units surrounding the unit casting my 'Thunder Slam' spell.
I read a couple guides on this kind of thing for GUI, but the guy said there was a lag issue (not a leak issue,) because the skill relied on Event - Game Time - Every X Seconds of Game Time, then IF and Actions, which I want to avoid. The guy then said vJASS is required so it wouldn't do this, and I have not an inkling of knowledge in it.
All I have is this, and even in the first action line, I was told by someone in Hive's Chat that it leaks (or lags, I cannot remember which one.) However, it's not to my knowledge why. I didn't get his explanation(s).
-
Thunder Slam
-
Events
- Unit - A unit Begins casting an ability
-
Conditions
- (Ability being cast) Equal to Thunder Slam
-
Actions
- Unit - Cause (Casting unit) to damage circular area after 0.00 seconds of radius 315.00 at (Position of (Casting unit)), dealing 0.00 damage of attack type Normal and damage type Normal
- Environment - Stop all active terrain deformations instantly
-
Events
P.S. In one big failing attempt I did something to my trigger and it made all the units go to the center of the map, even though nothing in my action lines told them to. I have since erased all of what was in that code of fail-whaleness. It was weird.
Last edited: