- Joined
- Jul 14, 2011
- Messages
- 3,213
Hi!
I'm trying to make a Triggered Bash, but isn't working. Bash has 0 duration (infinite) but is never removed.
I_DS = Damage Source ID
I_DU = Damaged Unit ID
Edit: Updated to the already working trigger.
- Changed the cast of Stormbolt for Passive Bash with 1 hour duration (Long enough). Stormbolt had a 0.27 casting time.
- Changed order from "Cast Stormbolt" to "Attack"
- The dummy just attacks once. Dummy attack has 0.1s speed, but 2 seg cooldown.
- Using "Key(Unit)" wasn't working. Worked when used GetHandleId
- Excluded the Dummy Unit from triggering the damage.
- Hero data = Player Data. Creeps data = Unit-Type data.
I checked the system you made for me, but it requires JNPG and mine doesn't work with hashtables. Thanks a lot.
I'm trying to make a Triggered Bash, but isn't working. Bash has 0 duration (infinite) but is never removed.
I_DS = Damage Source ID
I_DU = Damaged Unit ID
-
Damage Itself
-
Events
- Game - GDD_Event becomes Equal to 0.00
-
Conditions
- (Unit-type of GDD_DamageSource) Not equal to DUMMY
-
Actions
- Set FontSize = 8.00
- -------- DamagedUnit and DamageSource Id's --------
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- (GDD_DamagedUnit is A Hero) Equal to True
-
Then - Actions
- Set I_DU = (Player number of (Triggering player))
-
Else - Actions
- Custom script: set udg_I_DU = GetUnitTypeId(udg_GDD_DamagedUnit)
-
If - Conditions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- (GDD_DamageSource is A Hero) Equal to True
-
Then - Actions
- Set I_DS = (Player number of (Owner of GDD_DamageSource))
-
Else - Actions
- Custom script: set udg_I_DS = GetUnitTypeId(udg_GDD_DamageSource)
-
If - Conditions
- Set BashChance = (Load 15 of I_DS from DamageHash)
- Set BashDuration = (Load 16 of I_DS from DamageHash)
- -------- Bash Chance --------
- Custom script: if udg_BashChance > 0 and GetRandomReal(0,1) <= udg_BashChance then
- Custom script: set udg_i = GetHandleId(udg_GDD_DamagedUnit)
- Set BashDur = ((Load 17 of i from DamageHash) + BashDuration)
- Custom script: if udg_BashDur > 2.5 then
- Custom script: set udg_BashDur = 2.5
- Custom script: endif
- Hashtable - Save BashDur as 17 of i in DamageHash
- Set Point = (Position of GDD_DamagedUnit)
- Unit - Create 1 DUMMY for (Owner of GDD_DamageSource) at Point facing Point
- Unit - Order (Last created unit) to Attack GDD_DamagedUnit
- Unit - Add a 0.20 second Generic expiration timer to (Last created unit)
- Unit Group - Add GDD_DamagedUnit to StunGroup
- Trigger - Turn on StunGroup <gen>
- Custom script: call RemoveLocation(udg_Point)
- Custom script: endif
-
Events
-
StunGroup
-
Events
- Time - Every 0.03 seconds of game time
- Conditions
-
Actions
-
Unit Group - Pick every unit in StunGroup and do (Actions)
-
Loop - Actions
- Custom script: set udg_i = GetHandleId(GetEnumUnit())
- Set BashDur = ((Load 17 of i from DamageHash) - 0.03)
- Hashtable - Save BashDur as 17 of i in DamageHash
- Game - Display to (All players) the text: (String(BashDur)) <- Testing Purposes
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- BashDur Less than or equal to 0.00
-
Then - Actions
- Hashtable - Save 0.00 as 17 of i in DamageHash
- Unit - Remove Stunned (Pause) buff from (Picked unit)
- Unit Group - Remove (Picked unit) from StunGroup
- Else - Actions
-
If - Conditions
-
Loop - Actions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- (Number of units in StunGroup) Equal to 0
-
Then - Actions
- Trigger - Turn off (This trigger)
- Else - Actions
-
If - Conditions
-
Unit Group - Pick every unit in StunGroup and do (Actions)
-
Events
Edit: Updated to the already working trigger.
- Changed the cast of Stormbolt for Passive Bash with 1 hour duration (Long enough). Stormbolt had a 0.27 casting time.
- Changed order from "Cast Stormbolt" to "Attack"
- The dummy just attacks once. Dummy attack has 0.1s speed, but 2 seg cooldown.
- Using "Key(Unit)" wasn't working. Worked when used GetHandleId
- Excluded the Dummy Unit from triggering the damage.
- Hero data = Player Data. Creeps data = Unit-Type data.
I checked the system you made for me, but it requires JNPG and mine doesn't work with hashtables. Thanks a lot.
Last edited: