- Joined
- May 8, 2016
- Messages
- 112
How can i in
1- Add attack animation to when this skill is cast
1- Add attack animation to when this skill is cast
-
QJS Hash Table
-
Events
- Map initialization
- Conditions
-
Actions
- Hashtable - Create a hashtable
- Set QJS_arrowTable = (Last created hashtable)
-
Events
-
QJS AttackDamageType
-
Events
- Time - Elapsed game time is 0.00 seconds
- Conditions
-
Actions
- -------- Attack Type Presets --------
- Set QJS_atkTypePreset[0] = Spells
- Set QJS_atkTypePreset[1] = Normal
- Set QJS_atkTypePreset[2] = Pierce
- Set QJS_atkTypePreset[3] = Siege
- Set QJS_atkTypePreset[4] = Magic
- Set QJS_atkTypePreset[5] = Chaos
- Set QJS_atkTypePreset[6] = Hero
- -------- Damage Type Presets --------
- Set QJS_dmgTypePreset[0] = Unknown
- Set QJS_dmgTypePreset[1] = Normal
- Set QJS_dmgTypePreset[2] = Enhanced
- Set QJS_dmgTypePreset[3] = Fire
- Set QJS_dmgTypePreset[4] = Cold
- Set QJS_dmgTypePreset[5] = Lightning
- Set QJS_dmgTypePreset[6] = Poison
- Set QJS_dmgTypePreset[7] = Disease
- Set QJS_dmgTypePreset[8] = Divine
- Set QJS_dmgTypePreset[9] = Magic
- Set QJS_dmgTypePreset[10] = Sonic
- Set QJS_dmgTypePreset[11] = Acid
- Set QJS_dmgTypePreset[12] = Force
- Set QJS_dmgTypePreset[13] = Death
- Set QJS_dmgTypePreset[14] = Mind
- Set QJS_dmgTypePreset[15] = Plant
- Set QJS_dmgTypePreset[16] = Defensive
- Set QJS_dmgTypePreset[17] = Demolition
- Set QJS_dmgTypePreset[18] = Slow Poison
- Set QJS_dmgTypePreset[19] = Spirit Link
- Set QJS_dmgTypePreset[20] = Shadow Strike
- Set QJS_dmgTypePreset[21] = Universal
-
Events
-
Arrow Create
- Events
- Conditions
-
Actions
- Set QJS_tempPos = (Position of QJ_Caster)
- -------- Create Arrow Unit for Caster --------
- Unit - Create 1 QJ_Model for (Owner of QJ_Caster) at QJS_tempPos facing QJ_TargetPoint
- Animation - Change (Last created unit)'s size to ((100.00 x QJ_Size)%, (100.00 x QJ_Size)%, ((100.00 x QJ_Size) + 1.00)%) of its original size
- -------- Homing Limit for Target Unit only --------
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- QJ_TargetUnit Equal to No unit
-
Then - Actions
- Set QJ_Homing = False
- Else - Actions
-
If - Conditions
- -------- Attack Type ID Limit --------
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
Or - Any (Conditions) are true
-
Conditions
- QJ_attackTypeID Greater than 6
- QJ_attackTypeID Less than 0
-
Conditions
-
Or - Any (Conditions) are true
-
Then - Actions
- Set QJ_attackTypeID = 0
- Else - Actions
-
If - Conditions
- -------- Damage Type Limit --------
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
Or - Any (Conditions) are true
-
Conditions
- QJ_damageTypeID Greater than 21
- QJ_attackTypeID Less than 0
-
Conditions
-
Or - Any (Conditions) are true
-
Then - Actions
- Set QJ_damageTypeID = 0
- Else - Actions
-
If - Conditions
- -------- Save stuff to hashtable of Arrow System --------
- -------- Target Unit or Target Position --------
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- QJ_TargetUnit Equal to No unit
-
Then - Actions
- -------- Target Point --------
- -------- Calculate Distance and Angle --------
- Set QJS_Angle = (Angle from QJS_tempPos to QJ_TargetPoint)
- Set QJS_Distance = 1300.00
-
Else - Actions
- Set QJS_tempPos_Target = (Position of QJ_TargetUnit)
- -------- Target Unit --------
- Set QJS_Angle = (Angle from QJS_tempPos to QJS_tempPos_Target)
- Set QJS_Distance = (Distance between QJS_tempPos and QJS_tempPos_Target)
- -------- Save Victim --------
- Hashtable - Save Handle OfQJ_TargetUnit as (Key victim) of (Key (Last created unit)) in QJS_arrowTable
- -------- Clear --------
- Custom script: call RemoveLocation(udg_QJS_tempPos_Target)
-
If - Conditions
- -------- Save Caster --------
- Hashtable - Save Handle OfQJ_Caster as (Key caster) of (Key (Last created unit)) in QJS_arrowTable
- -------- Save if Homing is False --------
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- QJ_Homing Equal to False
-
Then - Actions
- -------- Save Angle --------
- Hashtable - Save QJS_Angle as (Key angle) of (Key (Last created unit)) in QJS_arrowTable
- -------- Save Distance --------
- Hashtable - Save QJS_Distance as (Key dist) of (Key (Last created unit)) in QJS_arrowTable
- Else - Actions
-
If - Conditions
- -------- Save Damage --------
- Hashtable - Save QJ_Damage as (Key dmg) of (Key (Last created unit)) in QJS_arrowTable
- -------- Save Speed --------
- Hashtable - Save QJ_Speed as (Key spd) of (Key (Last created unit)) in QJS_arrowTable
- -------- Save Attack Type ID --------
- Hashtable - Save QJ_attackTypeID as (Key atkid) of (Key (Last created unit)) in QJS_arrowTable
- -------- Save Damage Type ID --------
- Hashtable - Save QJ_damageTypeID as (Key dmgid) of (Key (Last created unit)) in QJS_arrowTable
- -------- Collision --------
- Hashtable - Save QJ_Collision as (Key collision) of (Key (Last created unit)) in QJS_arrowTable
- -------- Homing --------
- Hashtable - Save QJ_Homing as (Key homing) of (Key (Last created unit)) in QJS_arrowTable
- -------- AoE --------
- Hashtable - Save QJ_AoE as (Key aoe) of (Key (Last created unit)) in QJS_arrowTable
- -------- Save AoE Radius / AoE Effect --------
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- QJ_AoE Equal to True
-
Then - Actions
- -------- Save AoE Radius --------
- Hashtable - Save QJ_AoERadius as (Key aoeradius) of (Key (Last created unit)) in QJS_arrowTable
- -------- Save AoE Effect --------
- Hashtable - Save QJ_AoESFX as (Key aoesfx) of (Key (Last created unit)) in QJS_arrowTable
- Else - Actions
-
If - Conditions
- -------- Pierce --------
- Hashtable - Save QJ_Pierce as (Key pierce) of (Key (Last created unit)) in QJS_arrowTable
- -------- Save Pierce Damaged Group (Empty) --------
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- QJ_Pierce Equal to True
-
Then - Actions
- Custom script: set udg_QJS_DamagedGroup = CreateGroup()
- Hashtable - Save Handle OfQJS_DamagedGroup as (Key dgroup) of (Key (Last created unit)) in QJS_arrowTable
- Else - Actions
-
If - Conditions
- -------- Turn Collision for Arrow Off --------
- Unit - Turn collision for (Last created unit) Off
- -------- Add arrow unit to group --------
- Unit Group - Add (Last created unit) to QJS_arrowGroup
- -------- Turn On Move --------
- Trigger - Turn on Arrow Move <gen>
- -------- Clear --------
- Custom script: call RemoveLocation(udg_QJS_tempPos)
-
Arrow Move
-
Events
- Time - Every 0.03 seconds of game time
- Conditions
-
Actions
- -------- Pick every unit in arrow group --------
-
Unit Group - Pick every unit in QJS_arrowGroup and do (Actions)
-
Loop - Actions
- -------- Load values --------
- -------- Load Caster --------
- Set QJ_Caster = (Load (Key caster) of (Key (Picked unit)) in QJS_arrowTable)
- -------- Load Victim --------
- Set QJ_TargetUnit = (Load (Key victim) of (Key (Picked unit)) in QJS_arrowTable)
- -------- Load Damage --------
- Set QJ_Damage = (Load (Key dmg) of (Key (Picked unit)) from QJS_arrowTable)
- -------- Load Speed --------
- Set QJ_Speed = (Load (Key spd) of (Key (Picked unit)) from QJS_arrowTable)
- -------- Load Attack Type ID --------
- Set QJ_attackTypeID = (Load (Key atkid) of (Key (Picked unit)) from QJS_arrowTable)
- -------- Load Damage Type ID --------
- Set QJ_damageTypeID = (Load (Key dmgid) of (Key (Picked unit)) from QJS_arrowTable)
- -------- Load Collision --------
- Set QJ_Collision = (Load (Key collision) of (Key (Picked unit)) from QJS_arrowTable)
- -------- Load AoE --------
- Set QJ_AoE = (Load (Key aoe) of (Key (Picked unit)) from QJS_arrowTable)
- -------- Load Homing --------
- Set QJ_Homing = (Load (Key homing) of (Key (Picked unit)) from QJS_arrowTable)
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- QJ_Homing Equal to True
-
Then - Actions
- -------- Set Position --------
- Set QJS_arrowPos = (Position of (Picked unit))
- Set QJS_victimPos = (Position of QJ_TargetUnit)
- -------- Update Angle & Distance --------
- Set QJS_Angle = (Angle from QJS_arrowPos to QJS_victimPos)
- Set QJS_Distance = (Distance between QJS_arrowPos and QJS_victimPos)
- -------- Distance - 50 if not Bug --------
- Set QJS_Distance = (QJS_Distance - 50.00)
- -------- Clear --------
- Custom script: call RemoveLocation(udg_QJS_arrowPos)
- Custom script: call RemoveLocation(udg_QJS_victimPos)
-
Else - Actions
- -------- Load Angle --------
- Set QJS_Angle = (Load (Key angle) of (Key (Picked unit)) from QJS_arrowTable)
- -------- Load Distance --------
- Set QJS_Distance = (Load (Key dist) of (Key (Picked unit)) from QJS_arrowTable)
-
If - Conditions
- -------- Load Pierce --------
- Set QJ_Pierce = (Load (Key pierce) of (Key (Picked unit)) from QJS_arrowTable)
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- QJ_Pierce Equal to True
-
Then - Actions
- Set QJS_DamagedGroup = (Load (Key dgroup) of (Key (Picked unit)) in QJS_arrowTable)
- Else - Actions
-
If - Conditions
- -------- Movement --------
- Set QJS_tempPos = (Position of (Picked unit))
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- QJS_Distance Greater than 0.00
-
Then - Actions
- -------- Move Position --------
- Set QJS_movePos = (QJS_tempPos offset by QJ_Speed towards QJS_Angle degrees)
- -------- Collision --------
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- QJ_Collision Equal to True
-
Then - Actions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- (Terrain pathing at QJS_movePos of type Walkability is off) Equal to True
-
Then - Actions
- -------- Hit Cliff/Rock --------
- Floating Text - Create floating text that reads Hit Obstacle! at QJS_movePos with Z offset 0.00, using font size 10.00, color (100.00%, 0.00%, 0.00%), and 0.00% transparency
- Floating Text - Set the velocity of (Last created floating text) to 64.00 towards 90.00 degrees
- Floating Text - Change (Last created floating text): Disable permanence
- Floating Text - Change the fading age of (Last created floating text) to 1.00 seconds
- Floating Text - Change the lifespan of (Last created floating text) to 1.50 seconds
- -------- If Pierce = False --------
- -------- Don't Do damage as pierce arrow will do damage while moving. --------
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- QJ_Pierce Equal to False
-
Then - Actions
- -------- Deal Damage If AoE is On --------
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- QJ_AoE Equal to True
-
Then - Actions
- -------- Attack Type ID Coversion --------
- Set QJS_AttackType = QJS_atkTypePreset[QJ_attackTypeID]
- -------- Damage Type ID Coversion --------
- Set QJS_DamageType = QJS_dmgTypePreset[QJ_damageTypeID]
- -------- Load AoE Radius --------
- Set QJ_AoERadius = (Load (Key aoeradius) of (Key (Picked unit)) from QJS_arrowTable)
- -------- Load Effect --------
- Set QJ_AoESFX = (Load (Key aoesfx) of (Key (Picked unit)) from QJS_arrowTable)
- -------- Create AoE Effect --------
- Special Effect - Create a special effect at QJS_movePos using QJ_AoESFX
- Special Effect - Destroy (Last created special effect)
- -------- Set Victim Group in AoE Range --------
- Set QJS_victimGroup = (Units within QJ_AoERadius of QJS_movePos matching ((((Matching unit) is alive) Equal to True) and (((Matching unit) belongs to an enemy of (Owner of QJ_Caster)) Equal to True)))
- -------- Damage --------
-
Unit Group - Pick every unit in QJS_victimGroup and do (Actions)
-
Loop - Actions
- Unit - Cause QJ_Caster to damage (Picked unit), dealing QJ_Damage damage of attack type QJS_AttackType and damage type QJS_DamageType
-
Loop - Actions
-
Else - Actions
- -------- No Damage if AoE off --------
-
If - Conditions
-
Else - Actions
- -------- If Pierce True, clear off Damaged Group --------
- Unit Group - Remove all units from QJS_DamagedGroup
- Custom script: call DestroyGroup(udg_QJS_DamagedGroup)
-
If - Conditions
- -------- Turn Collision for Arrow On --------
- Unit - Turn collision for (Picked unit) On
- -------- Kill Arrow --------
- Unit - Kill (Picked unit)
- -------- Remove from Arrow Group --------
- Unit Group - Remove (Picked unit) from QJS_arrowGroup
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- (Number of units in QJS_arrowGroup) Equal to 0
-
Then - Actions
- Trigger - Turn off (This trigger)
- Else - Actions
-
If - Conditions
- -------- Clear Hash Table --------
- Hashtable - Clear all child hashtables of child (Key (Picked unit)) in QJS_arrowTable
- -------- Clear --------
- Custom script: call RemoveLocation(udg_QJS_movePos)
-
Else - Actions
- -------- Move Arrow --------
- Unit - Move (Picked unit) instantly to QJS_movePos, facing QJS_Angle degrees
- -------- Update Distance --------
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- QJ_Homing Equal to False
-
Then - Actions
- Hashtable - Save (QJS_Distance - QJ_Speed) as (Key dist) of (Key (Picked unit)) in QJS_arrowTable
- Else - Actions
-
If - Conditions
- -------- If Pierce = True --------
- -------- Do Damage --------
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- QJ_Pierce Equal to True
-
Then - Actions
- -------- Attack Type ID Coversion --------
- Set QJS_AttackType = QJS_atkTypePreset[QJ_attackTypeID]
- -------- Damage Type ID Coversion --------
- Set QJS_DamageType = QJS_dmgTypePreset[QJ_damageTypeID]
- -------- Check for AoE --------
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- QJ_AoE Equal to True
-
Then - Actions
- -------- Load AoE Radius --------
- Set QJ_AoERadius = (Load (Key aoeradius) of (Key (Picked unit)) from QJS_arrowTable)
- -------- Load Effect --------
- Set QJ_AoESFX = (Load (Key aoesfx) of (Key (Picked unit)) from QJS_arrowTable)
-
Else - Actions
- -------- AoE Radius = Default, 150 --------
- Set QJ_AoERadius = 150.00
-
If - Conditions
- -------- Set Victim Group --------
- Set QJS_victimGroup = (Units within QJ_AoERadius of QJS_movePos matching ((((Matching unit) is alive) Equal to True) and ((((Matching unit) belongs to an enemy of (Owner of QJ_Caster)) Equal to True) and (((Matching unit) is in QJS_DamagedGroup) Equal to False))))
-
Unit Group - Pick every unit in QJS_victimGroup and do (Actions)
-
Loop - Actions
- Set QJS_victimPos = (Position of (Picked unit))
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- QJ_AoE Equal to True
-
Then - Actions
- -------- Create AoE Effect --------
- Special Effect - Create a special effect at QJS_victimPos using QJ_AoESFX
- Special Effect - Destroy (Last created special effect)
- Else - Actions
-
If - Conditions
- -------- Damage --------
- Unit - Cause QJ_Caster to damage (Picked unit), dealing QJ_Damage damage of attack type QJS_AttackType and damage type QJS_DamageType
- -------- Damage Text --------
- Floating Text - Create floating text that reads Hit! at QJS_victimPos with Z offset 0.00, using font size 10.00, color (100.00%, 0.00%, 0.00%), and 0.00% transparency
- Floating Text - Set the velocity of (Last created floating text) to 64.00 towards 90.00 degrees
- Floating Text - Change (Last created floating text): Disable permanence
- Floating Text - Change the fading age of (Last created floating text) to 1.00 seconds
- Floating Text - Change the lifespan of (Last created floating text) to 1.50 seconds
- -------- Add to Damage Group --------
- Unit Group - Add (Picked unit) to QJS_DamagedGroup
- -------- Clear --------
- Custom script: call RemoveLocation(udg_QJS_victimPos)
-
Loop - Actions
- -------- Update Damaged Group in Hash Table --------
- Hashtable - Save Handle OfQJS_DamagedGroup as (Key dgroup) of (Key (Picked unit)) in QJS_arrowTable
- -------- Clear --------
- Custom script: call DestroyGroup(udg_QJS_victimGroup)
- Else - Actions
-
If - Conditions
-
If - Conditions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
Else - Actions
- -------- Move Arrow --------
- Unit - Move (Picked unit) instantly to QJS_movePos, facing QJS_Angle degrees
- -------- Update Distance --------
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- QJ_Homing Equal to False
-
Then - Actions
- Hashtable - Save (QJS_Distance - QJ_Speed) as (Key dist) of (Key (Picked unit)) in QJS_arrowTable
- Else - Actions
-
If - Conditions
- -------- If Pierce = True --------
- -------- Do Damage --------
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- QJ_Pierce Equal to True
-
Then - Actions
- -------- Attack Type ID Coversion --------
- Set QJS_AttackType = QJS_atkTypePreset[QJ_attackTypeID]
- -------- Damage Type ID Coversion --------
- Set QJS_DamageType = QJS_dmgTypePreset[QJ_damageTypeID]
- -------- Check for AoE --------
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- QJ_AoE Equal to True
-
Then - Actions
- -------- Load AoE Radius --------
- Set QJ_AoERadius = (Load (Key aoeradius) of (Key (Picked unit)) from QJS_arrowTable)
- -------- Load Effect --------
- Set QJ_AoESFX = (Load (Key aoesfx) of (Key (Picked unit)) from QJS_arrowTable)
-
Else - Actions
- -------- AoE Radius = Default, 150 --------
- Set QJ_AoERadius = 150.00
-
If - Conditions
- -------- Set Victim Group --------
- Set QJS_victimGroup = (Units within QJ_AoERadius of QJS_movePos matching ((((Matching unit) is alive) Equal to True) and ((((Matching unit) belongs to an enemy of (Owner of QJ_Caster)) Equal to True) and (((Matching unit) is in QJS_DamagedGroup) Equal to False))))
-
Unit Group - Pick every unit in QJS_victimGroup and do (Actions)
-
Loop - Actions
- Set QJS_victimPos = (Position of (Picked unit))
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- QJ_AoE Equal to True
-
Then - Actions
- -------- Create AoE Effect --------
- Special Effect - Create a special effect at QJS_victimPos using QJ_AoESFX
- Special Effect - Destroy (Last created special effect)
- Else - Actions
-
If - Conditions
- -------- Damage --------
- Unit - Cause QJ_Caster to damage (Picked unit), dealing QJ_Damage damage of attack type QJS_AttackType and damage type QJS_DamageType
- -------- Damage Text --------
- Floating Text - Create floating text that reads Hit! at QJS_victimPos with Z offset 0.00, using font size 10.00, color (100.00%, 0.00%, 0.00%), and 0.00% transparency
- Floating Text - Set the velocity of (Last created floating text) to 64.00 towards 90.00 degrees
- Floating Text - Change (Last created floating text): Disable permanence
- Floating Text - Change the fading age of (Last created floating text) to 1.00 seconds
- Floating Text - Change the lifespan of (Last created floating text) to 1.50 seconds
- -------- Add to Damage Group --------
- Unit Group - Add (Picked unit) to QJS_DamagedGroup
- -------- Clear --------
- Custom script: call RemoveLocation(udg_QJS_victimPos)
-
Loop - Actions
- -------- Update Damaged Group in Hash Table --------
- Hashtable - Save Handle OfQJS_DamagedGroup as (Key dgroup) of (Key (Picked unit)) in QJS_arrowTable
- -------- Clear --------
- Custom script: call DestroyGroup(udg_QJS_victimGroup)
- Else - Actions
-
If - Conditions
-
If - Conditions
- -------- Clear --------
- Custom script: call RemoveLocation(udg_QJS_movePos)
-
Else - Actions
- -------- End --------
- -------- Pierce = False --------
- -------- Remove End Damage as Moving will do Damage --------
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- QJ_Pierce Equal to False
-
Then - Actions
- -------- Attack Type ID Coversion --------
- Set QJS_AttackType = QJS_atkTypePreset[QJ_attackTypeID]
- -------- Damage Type ID Coversion --------
- Set QJS_DamageType = QJS_dmgTypePreset[QJ_damageTypeID]
- -------- Position of Arrow --------
- Set QJS_arrowPos = (Position of (Picked unit))
- -------- Deal Damage --------
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- QJ_TargetUnit Equal to No unit
-
Then - Actions
- -------- Target Point --------
- -------- Check for AoE or Single Target --------
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- QJ_AoE Equal to True
-
Then - Actions
- -------- AOE --------
- -------- Load AoE Radius --------
- Set QJ_AoERadius = (Load (Key aoeradius) of (Key (Picked unit)) from QJS_arrowTable)
- -------- Load Effect --------
- Set QJ_AoESFX = (Load (Key aoesfx) of (Key (Picked unit)) from QJS_arrowTable)
- -------- Create AoE Effect --------
- Special Effect - Create a special effect at QJS_arrowPos using QJ_AoESFX
- Special Effect - Destroy (Last created special effect)
- -------- Set Victim Group in AoE Range --------
- Set QJS_victimGroup = (Units within QJ_AoERadius of QJS_arrowPos matching ((((Matching unit) is alive) Equal to True) and (((Matching unit) belongs to an enemy of (Owner of QJ_Caster)) Equal to True)))
- -------- Damage --------
-
Unit Group - Pick every unit in QJS_victimGroup and do (Actions)
-
Loop - Actions
- Unit - Cause QJ_Caster to damage (Picked unit), dealing QJ_Damage damage of attack type QJS_AttackType and damage type QJS_DamageType
-
Loop - Actions
- -------- Clear --------
- Custom script: call DestroyGroup(udg_QJS_victimGroup)
-
Else - Actions
- -------- Single Target --------
- -------- Set Victim Group --------
- Set QJS_victimGroup = (Units within 150.00 of QJS_arrowPos matching ((((Matching unit) is alive) Equal to True) and (((Matching unit) belongs to an enemy of (Owner of QJ_Caster)) Equal to True)))
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- (Number of units in QJS_victimGroup) Greater than 0
-
Then - Actions
- Unit - Cause QJ_Caster to damage (Random unit from QJS_victimGroup), dealing QJ_Damage damage of attack type QJS_AttackType and damage type QJS_DamageType
- Else - Actions
-
If - Conditions
- -------- Clear --------
- Custom script: call DestroyGroup(udg_QJS_victimGroup)
-
If - Conditions
-
Else - Actions
- -------- Target Unit --------
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- QJ_AoE Equal to True
-
Then - Actions
- -------- AOE --------
- -------- Load AoE Radius --------
- Set QJ_AoERadius = (Load (Key aoeradius) of (Key (Picked unit)) from QJS_arrowTable)
- -------- Load Effect --------
- Set QJ_AoESFX = (Load (Key aoesfx) of (Key (Picked unit)) from QJS_arrowTable)
- -------- Create AoE Effect --------
- Special Effect - Create a special effect at QJS_arrowPos using QJ_AoESFX
- Special Effect - Destroy (Last created special effect)
- -------- Set Victim Group in AoE Range --------
- Set QJS_victimGroup = (Units within QJ_AoERadius of QJS_arrowPos matching ((((Matching unit) is alive) Equal to True) and (((Matching unit) belongs to an enemy of (Owner of QJ_Caster)) Equal to True)))
- -------- Damage --------
-
Unit Group - Pick every unit in QJS_victimGroup and do (Actions)
-
Loop - Actions
- Unit - Cause QJ_Caster to damage (Picked unit), dealing QJ_Damage damage of attack type QJS_AttackType and damage type QJS_DamageType
-
Loop - Actions
- -------- Clear --------
- Custom script: call DestroyGroup(udg_QJS_victimGroup)
-
Else - Actions
- -------- Single Target --------
- -------- Set Victim Group --------
- Set QJS_victimGroup = (Units within 150.00 of QJS_arrowPos matching ((Matching unit) Equal to QJ_TargetUnit))
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- (QJ_TargetUnit is alive) Equal to True
- (Number of units in QJS_victimGroup) Greater than 0
-
Then - Actions
- Unit - Cause QJ_Caster to damage QJ_TargetUnit, dealing QJ_Damage damage of attack type QJS_AttackType and damage type QJS_DamageType
-
Else - Actions
- -------- Miss. --------
- Floating Text - Create floating text that reads Miss! at QJS_arrowPos with Z offset 0.00, using font size 10.00, color (100.00%, 0.00%, 0.00%), and 0.00% transparency
- Floating Text - Set the velocity of (Last created floating text) to 64.00 towards 90.00 degrees
- Floating Text - Change (Last created floating text): Disable permanence
- Floating Text - Change the fading age of (Last created floating text) to 1.00 seconds
- Floating Text - Change the lifespan of (Last created floating text) to 1.50 seconds
-
If - Conditions
- -------- Clear --------
- Custom script: call DestroyGroup(udg_QJS_victimGroup)
-
If - Conditions
-
If - Conditions
-
Else - Actions
- -------- If Pierce True, clear off Damaged Group --------
- Unit Group - Remove all units from QJS_DamagedGroup
- Custom script: call DestroyGroup(udg_QJS_DamagedGroup)
-
If - Conditions
- -------- Clear --------
- Custom script: call RemoveLocation(udg_QJS_arrowPos)
- -------- Turn Collision for Arrow On --------
- Unit - Turn collision for (Picked unit) On
- -------- Kill Arrow --------
- Unit - Kill (Picked unit)
- -------- Remove from Arrow Group --------
- Unit Group - Remove (Picked unit) from QJS_arrowGroup
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- (Number of units in QJS_arrowGroup) Equal to 0
-
Then - Actions
- Trigger - Turn off (This trigger)
- Else - Actions
-
If - Conditions
- -------- Clear Hash Table --------
- Hashtable - Clear all child hashtables of child (Key (Picked unit)) in QJS_arrowTable
-
If - Conditions
- -------- Clear --------
- Custom script: call RemoveLocation(udg_QJS_tempPos)
-
Loop - Actions
-
Events