- 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)
-
-
-
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
-
-
-
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
-
-


-------- 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
-
-
-
-



Then - Actions
-




Set QJ_attackTypeID = 0
-
-



Else - Actions
-
-


-------- 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
-
-
-
-



Then - Actions
-




Set QJ_damageTypeID = 0
-
-



Else - Actions
-
-


-------- 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)
-
-
-


-------- 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
-
-


-------- 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
-
-


-------- 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
-
-


-------- 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)
-
-
-




-------- 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
-
-




-------- 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
-
-
-
-













Else - Actions
-














-------- No Damage if AoE off --------
-
-
-
-











Else - Actions
-












-------- If Pierce True, clear off Damaged Group --------
-












Unit Group - Remove all units from QJS_DamagedGroup
-












Custom script: call DestroyGroup(udg_QJS_DamagedGroup)
-
-
-










-------- 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
-
-










-------- 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 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
-
-
-












-------- 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
-
-














-------- 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)
-
-
-












-------- 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
-
-
-
-
-







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 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
-
-
-










-------- 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
-
-












-------- 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)
-
-
-










-------- 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
-
-
-
-






-------- 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
-
-
-












-------- 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
-
-












-------- Clear --------
-












Custom script: call DestroyGroup(udg_QJS_victimGroup)
-
-
-
-









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
-
-
-












-------- 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
-
-
-












-------- Clear --------
-












Custom script: call DestroyGroup(udg_QJS_victimGroup)
-
-
-
-
-
-







Else - Actions
-








-------- If Pierce True, clear off Damaged Group --------
-








Unit Group - Remove all units from QJS_DamagedGroup
-








Custom script: call DestroyGroup(udg_QJS_DamagedGroup)
-
-
-






-------- 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
-
-






-------- Clear Hash Table --------
-






Hashtable - Clear all child hashtables of child (Key (Picked unit)) in QJS_arrowTable
-
-
-




-------- Clear --------
-




Custom script: call RemoveLocation(udg_QJS_tempPos)
-
-
-
-

