Listen to a special audio message from Bill Roper to the Hive Workshop community (Bill is a former Vice President of Blizzard Entertainment, Producer, Designer, Musician, Voice Actor) 🔗Click here to hear his message!
It's several triggers actually in folders: CAVALRY ATTACK FOLDER and maybe this one TO DETERMINE ANIMATION INDEX (NOT NECESSARY). It's the map I uploaded here.
-------- DAMAGE WHILE COLLIDES WITH ENEMY UNITS --------
Set CAVDamage[1] = 99999.00
Set CAVDamage[2] = 99999.00
Set CAVDamage[3] = 99999.00
-------- COEFFICIENT OF DAMAGE WHILE HIT ALREADY STUNNED ENEMY --------
Set CAVDamagecCoef[1] = 2.00
Set CAVDamagecCoef[2] = 2.30
Set CAVDamagecCoef[3] = 2.50
-------- HIT AREA --------
Set CAVHitArea[1] = 80.00
Set CAVHitArea[2] = 80.00
Set CAVHitArea[3] = 80.00
-------- DURATION OF EFFECT (IF UNIT IS STUCKED) --------
Set CAVChargeTime[1] = 3.00
Set CAVChargeTime[2] = 3.00
Set CAVChargeTime[3] = 3.00
-------- ANIMATION SPEED --------
Set CAVAnimationSpeed[1] = 150.00
Set CAVAnimationSpeed[2] = 170.00
Set CAVAnimationSpeed[3] = 185.00
-------- DISTANCE OF ENDING CHARGE (STOPS CHARGING WHILE REACHING THE POINT BUT THE UNIT HAVE DISTANCE FROM IT) --------
Set CAVDistanceOfEnding[1] = 50.00
Set CAVDistanceOfEnding[2] = 50.00
Set CAVDistanceOfEnding[3] = 50.00
-------- ACCELERATION DISTANCE (% OF TOTAL DISTANCE WHERE STUN DURATION AND DAMAGE WERE DECREASED) --------
Set CAVAccDistance[1] = 30.00
Set CAVAccDistance[2] = 25.00
Set CAVAccDistance[3] = 20.00
-------- ACCELERATION PENALTY (% OF TOTAL DURATION AND DAMAGE WHILE ACCELERATING) --------
-------- FOR EXAMPLE YOU HAVE TOTAL DAMAGE CAVDamage BUT IF UNIT IS ACCELERATING THEN THE CASTER HITS ENEMY DEALING (CAVAccPenalty / 100) x CAVDamage --------
Set CAVAccPenalty[1] = 100.00
Set CAVAccPenalty[2] = 100.00
Set CAVAccPenalty[3] = 100.00
-------- ACCELERATION RESTORE RATE (HOW FAST THE CASTER ACCELERATES THEIR MOVEMENT SPEED TO NORMAL PARAMATERS) --------
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Number of units in CAVResetGroup) Greater than 0
Then - Actions
-------- // --------
-------- This value must equal to preiodic event timer --------
-------- // --------
Set CAVreal[0] = 0.05
Unit Group - Pick every unit in CAVResetGroup and do (Actions)
Loop - Actions
Set CAVtemp_unit = (Picked unit)
Custom script: set udg_CAVinteger = GetHandleIdBJ( udg_CAVtemp_unit)
-------- // --------
-------- This value 10 as CAVInteger removes the unit from ResetGroup. It is needed for group cast of cavalry attack --------
-------- // --------
Hashtable - Save ((Load 10 of CAVinteger from HASHCAVALRY) - CAVreal[0]) as 10 of CAVinteger in HASHCAVALRY
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
Or - Any (Conditions) are true
Conditions
(Load 10 of CAVinteger from HASHCAVALRY) Less than or equal to 0.00
(CAVtemp_unit is alive) Not equal to True
(CAVtemp_unit is hidden) Equal to True
Then - Actions
Unit Group - Remove CAVtemp_unit from CAVResetGroup
Else - Actions
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Number of units in CAVStunGroup) Greater than 0
Then - Actions
-------- // --------
-------- This value must equal to preiodic event timer --------
-------- // --------
Set CAVreal[0] = 0.05
Unit Group - Pick every unit in CAVStunGroup and do (Actions)
Loop - Actions
Set CAVtemp_unit = (Picked unit)
Custom script: set udg_CAVinteger = GetHandleIdBJ( udg_CAVtemp_unit)
-------- // --------
-------- 17 as CAVInteger counts the time until Stun effect will removed. --------
-------- // --------
Set CAVreal[1] = (Load 17 of CAVinteger from HASHCAVALRY)
Set CAVreal[1] = (CAVreal[1] - CAVreal[0])
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
Or - Any (Conditions) are true
Conditions
(CAVtemp_unit has buff Stunned (Pause)) Not equal to True
(CAVtemp_unit is alive) Not equal to True
CAVreal[1] Less than or equal to 0.00
(CAVtemp_unit is hidden) Equal to True
Then - Actions
Set CAVreal[1] = 0.00
Unit - Remove Stunned (Pause) buff from CAVtemp_unit
Unit Group - Remove CAVtemp_unit from CAVStunGroup
Else - Actions
Hashtable - Save CAVreal[1] as 17 of CAVinteger in HASHCAVALRY
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Number of units in CAVKnockbackGroup) Greater than 0
Then - Actions
-------- // --------
-------- This value must equal to preiodic event timer --------
-------- // --------
Set CAVreal[0] = 0.05
Unit Group - Pick every unit in CAVKnockbackGroup and do (Actions)
Loop - Actions
Set CAVtemp_unit = (Picked unit)
Custom script: set udg_CAVinteger = GetHandleIdBJ( udg_CAVtemp_unit)
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
Or - Any (Conditions) are true
Conditions
(CAVtemp_unit is alive) Not equal to True
(CAVtemp_unit is hidden) Equal to True
Then - Actions
Unit - Turn collision for CAVtemp_unit On
Unit Group - Remove CAVtemp_unit from CAVKnockbackGroup
Hashtable - Clear all child hashtables of child CAVinteger in HASHCAVALRY
Else - Actions
-------- // --------
-------- 20 as CAVInteger counts the time until the unti stop the knockback --------
-------- // --------
Hashtable - Save ((Load 20 of CAVinteger from HASHCAVALRY) - CAVreal[0]) as 20 of CAVinteger in HASHCAVALRY
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Load 20 of CAVinteger from HASHCAVALRY) Greater than 0.00
Then - Actions
-------- // --------
-------- group4 detect buildings one the way --------
-------- // --------
Set CAVpoint[0] = (Position of CAVtemp_unit)
Set CAVpoint[1] = (CAVpoint[0] offset by ((Load 21 of CAVinteger from HASHCAVALRY) x CAVreal[0]) towards (Load 22 of CAVinteger from HASHCAVALRY) degrees)
Set CAVgroup4 = (Units within (1.50 x (Load 9 of CAVinteger from HASHCAVALRY)) of CAVpoint[1] matching (((((Matching unit) is alive) Equal to True) and (((Matching unit) is in CAVgroup3) Not equal to True)) and (((Matching unit) is A structure) Equal to True)))
-------- // --------
-------- CHECK PATHING --------
-------- // --------
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
Or - Any (Conditions) are true
Conditions
(Terrain pathing at CAVpoint[1] of type Walkability is off) Equal to True
(Number of units in CAVgroup4) Greater than 0
Then - Actions
Unit - Turn collision for CAVtemp_unit On
Unit Group - Remove CAVtemp_unit from CAVKnockbackGroup
Hashtable - Clear all child hashtables of child CAVinteger in HASHCAVALRY
-------- CAVPOINT[2] is taget point of ability being cast it has coordinates X,Y --------
-------- CAVPOINT[3] is taget point of the caster when it starts charging --------
-------- CAVPOINT[3] and CAVPOINT[2] helps with ACCELERATION EVENT --------
-------- // --------
Set CAVpoint[0] = (Position of CAVtemp_unit)
Set CAVpoint[2] = (Point((Load 3 of CAVinteger from HASHCAVALRY), (Load 4 of CAVinteger from HASHCAVALRY)))
Set CAVpoint[3] = (Point((Load 13 of CAVinteger from HASHCAVALRY), (Load 14 of CAVinteger from HASHCAVALRY)))
-------- // --------
-------- CAVreal[3] is effciency value. It helps for ACCELERATING (if 1 then ACCELERATION is gone and unti moves with normal speed) --------
-------- it also inflicts on animation speed (8 as CAVInteger) --------
-------- // --------
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Distance between CAVpoint[0] and CAVpoint[3]) Greater than or equal to (((Load 12 of CAVinteger from HASHCAVALRY) / 100.00) x (Distance between CAVpoint[2] and CAVpoint[3]))
Then - Actions
Set CAVreal[3] = 1.00
Else - Actions
Hashtable - Save ((Load 15 of CAVinteger from HASHCAVALRY) + (Load 16 of CAVinteger from HASHCAVALRY)) as 15 of CAVinteger in HASHCAVALRY
Set CAVreal[3] = ((Load 15 of CAVinteger from HASHCAVALRY) / 100.00)
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Set CAVpoint[1] = (CAVpoint[0] offset by (CAVreal[3] x (Load 0 of CAVinteger from HASHCAVALRY)) towards (Load 6 of CAVinteger from HASHCAVALRY) degrees)
-------- // --------
-------- group4 detects buildings --------
-------- // --------
Set CAVgroup4 = (Units within (1.50 x (Load 9 of CAVinteger from HASHCAVALRY)) of CAVpoint[1] matching (((((Matching unit) is alive) Equal to True) and (((Matching unit) is in CAVgroup3) Not equal to True)) and (((Matching unit) is A structure) Equal to True)))
-------- CHECK PATHING --------
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
Or - Any (Conditions) are true
Conditions
(Terrain cliff level at CAVpoint[0]) Not equal to (Terrain cliff level at CAVpoint[1])
(Terrain pathing at CAVpoint[0] of type Walkability is off) Equal to True
(Terrain pathing at CAVpoint[1] of type Walkability is off) Equal to True
(Number of units in CAVgroup4) Greater than 0
Then - Actions
Unit - Turn collision for CAVtemp_unit On
Set CAVpoint[4] = (Position of CAVtemp_unit)
Set CAVpoint[5] = (CAVpoint[4] offset by (CAVreal[3] x (Load 0 of CAVinteger from HASHCAVALRY)) towards (180.00 + (Load 6 of CAVinteger from HASHCAVALRY)) degrees)
Set CAVgroup3 = (Load 0 of CAVinteger in HASHCAVALRY)
Custom script: call DestroyGroup( udg_CAVgroup3 )
Animation - Reset CAVtemp_unit's animation
Unit Group - Remove CAVtemp_unit from CAVDetectGroup
Animation - Change CAVtemp_unit's animation speed to 100.00% of its original speed
Hashtable - Clear all child hashtables of child CAVinteger in HASHCAVALRY
Else - Actions
Unit - Turn collision for CAVtemp_unit Off
Animation - Change CAVtemp_unit's animation speed to (CAVreal[3] x (Load 8 of CAVinteger from HASHCAVALRY))% of its original speed
Unit - Move CAVtemp_unit instantly to CAVpoint[1], facing (Load 6 of CAVinteger from HASHCAVALRY) degrees
Set CAVreal[2] = (Distance between CAVpoint[1] and CAVpoint[2])
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
CAVreal[2] Greater than or equal to (Load 2 of CAVinteger from HASHCAVALRY)
Then - Actions
Set CAVgroup3 = (Load 0 of CAVinteger in HASHCAVALRY)
Set CAVgroup2 = (Units within (Load 9 of CAVinteger from HASHCAVALRY) of CAVpoint[1] matching (((((Matching unit) is alive) Equal to True) and (((Matching unit) is in CAVgroup3) Not equal to True)) and (((((Matching unit) is A flying unit) Not equal to True) and ((((Matching
Unit Group - Pick every unit in CAVgroup2 and do (Actions)
-------- If unit is stunned when it deals multiple damage x ( 18 as CAVInteger) --------
-------- // --------
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Level of AA Spell Immune to Death Aura for CAVtemp_unit2) Equal to 0
Then - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
Or - Any (Conditions) are true
Conditions
(CAVtemp_unit2 has buff Stunned (Pause)) Equal to True
(CAVtemp_unit2 has buff Stunned) Equal to True
(CAVtemp_unit2 has buff Volcano) Equal to True
(CAVtemp_unit2 has buff Impale) Equal to True
(CAVtemp_unit2 has buff Cluster Rockets) Equal to True
Then - Actions
Unit - Cause CAVtemp_unit to damage CAVtemp_unit2, dealing (((Load 18 of CAVinteger from HASHCAVALRY) x CAVreal[3]) x (Load 5 of CAVinteger from HASHCAVALRY)) damage of attack type CAVAttackType and damage type CAVDamageType
Else - Actions
Unit - Cause CAVtemp_unit to damage CAVtemp_unit2, dealing (CAVreal[3] x (Load 5 of CAVinteger from HASHCAVALRY)) damage of attack type CAVAttackType and damage type CAVDamageType
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(CAVtemp_unit2 is alive) Equal to True
(Integer((CAVreal[3] x (Load 11 of CAVinteger from HASHCAVALRY)))) Greater than 0
(Integer((1.00 x (Load 11 of CAVinteger from HASHCAVALRY)))) Greater than 0
Then - Actions
Unit - Create 1 CAVDummyUnitType for (Owner of CAVtemp_unit2) at CAVpoint[3] facing Default building facing degrees
Unit - Set the custom value of (Last created unit) to (Integer((CAVreal[3] x (Load 11 of CAVinteger from HASHCAVALRY))))
Unit - Add a 2.00 second Water Elemental expiration timer to (Last created unit)
Unit - Make (Last created unit) Explode on death
Unit - Add CAVStunAbility to (Last created unit)
Unit - Order (Last created unit) to Human Mountain King - Storm Bolt CAVtemp_unit2
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Load 18 of CAVinteger from HASHCAVALRY) Greater than 0.00
(Load 19 of CAVinteger from HASHCAVALRY) Greater than 0.00
(CAVtemp_unit2 is in CAVKnockbackGroup) Not equal to True
(CAVtemp_unit2 is in CAVDetectGroup) Not equal to True
Then - Actions
-------- // --------
-------- Knockbacked unit stores duration and speedrate --------
-------- and aslo angle between the caster and the unit --------
-------- // --------
Unit Group - Add CAVtemp_unit2 to CAVKnockbackGroup
Custom script: set udg_CAVinteger3 = GetHandleIdBJ( udg_CAVtemp_unit2)
Hashtable - Save (CAVreal[3] x (Load 18 of CAVinteger from HASHCAVALRY)) as 20 of CAVinteger3 in HASHCAVALRY
Hashtable - Save (CAVreal[3] x (Load 19 of CAVinteger from HASHCAVALRY)) as 21 of CAVinteger3 in HASHCAVALRY
Hashtable - Save (Distance between CAVpoint[1] and CAVpoint[3]) as 22 of CAVinteger3 in HASHCAVALRY
Set CAVpoint[5] = (CAVpoint[4] offset by (CAVreal[3] x (Load 0 of CAVinteger from HASHCAVALRY)) towards (180.00 + (Load 6 of CAVinteger from HASHCAVALRY)) degrees)
Set CAVgroup3 = (Load 0 of CAVinteger in HASHCAVALRY)
Custom script: call DestroyGroup( udg_CAVgroup3 )
Animation - Reset CAVtemp_unit's animation
Unit Group - Remove CAVtemp_unit from CAVDetectGroup
Animation - Change CAVtemp_unit's animation speed to 100.00% of its original speed
Hashtable - Clear all child hashtables of child CAVinteger in HASHCAVALRY
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
Or - Any (Conditions) are true
Conditions
(Number of units in CAVDetectGroup) Greater than 0
(Number of units in CAVKnockbackGroup) Greater than 0
(Number of units in CAVStunGroup) Greater than 0
(Number of units in CAVResetGroup) Greater than 0
Then - Actions
Else - Actions
Trigger - Turn off (This trigger)
CAV USE ABILITY
Events
Unit - A unit Starts the effect of an ability
Conditions
Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Ability being cast) Equal to CAVMainAbility
Then - Actions
Set CAVtemp_unit2 = (Triggering unit)
Set CAVAbiLevel = (Level of CAVMainAbility for CAVtemp_unit2)
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(CAVtemp_unit2 is in CAVResetGroup) Not equal to True
Then - Actions
Set CAVtemp_unit2 = (Triggering unit)
Set CAVpoint[0] = (Position of CAVtemp_unit2)
Set CAVpoint[1] = (Target point of ability being cast)
Set CAVreal[0] = 0.00
Set CAVreal[1] = 0.00
-------- SQAUD ENGAGE RANGE --------
Set CAVreal[2] = CAVSquadEngage[CAVAbiLevel]
Set CAVgroup = (Units within CAVreal[2] of CAVpoint[0] matching (((((Matching unit) is in CAVDetectGroup) Not equal to True) and ((((Matching unit) is in CAVResetGroup) Not equal to True) and (((Matching unit) is alive) Equal to True))) and (((Level of CAVMainAbility for (M
Set CAVinteger2 = CAVAbiLevel
Unit - Remove CAVMainAbility from CAVtemp_unit2
Unit - Add CAVMainAbility to CAVtemp_unit2
Unit - Set level of CAVMainAbility for CAVtemp_unit2 to CAVinteger2
Unit Group - Pick every unit in CAVgroup and do (Actions)
Loop - Actions
Set CAVtemp_unit = (Picked unit)
Set CAVpoint[3] = (Position of CAVtemp_unit)
Set CAVreal[0] = (CAVreal[0] + (X of CAVpoint[3]))
Set CAVreal[1] = (CAVreal[1] + (Y of CAVpoint[3]))
Ok, when the hero death knight uses the trample ability he will do an animation (the death coil throw i think). I want him to just do like the others which is to do the trample ability right away.
Btw the version i uploaded first the hero death knight didnt have the ability, reuploaded with the version where he has the ability.
The trigger works correctly, and the death knight animation index is shared with the unit version of the hero.
In order to fix the issue with the death coil animation, you can either set the cast point for the hero in the object editor to 0, or you can create a trigger that uses the
Unit - A unit Begins casting an ability
event. This event will fire when the unit begins casting the ability, and will allow you to create an action to change the animation to the walk animation. Though, without setting the cast point to 0 the death knight will be running in place.
This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
By continuing to use this site, you are consenting to our use of cookies.