- Joined
- May 7, 2008
- Messages
- 330
Aye it's me again, back with another question ^^
I have a code which I downloaded from one of the Hive users and it's working absolutely fine, however once the unit starts spinning I can't cast spells, which I would prefer if I could whilst spinning.
Basically this is a spell like in Dota from Moghul Kahn called Counter Helix.
Any help is greatly appreciated!
I have a code which I downloaded from one of the Hive users and it's working absolutely fine, however once the unit starts spinning I can't cast spells, which I would prefer if I could whilst spinning.
Basically this is a spell like in Dota from Moghul Kahn called Counter Helix.
-
Counter Helix Setup
-
Events
- Map initialization
- Conditions
-
Actions
- -------- // --------
- Custom script: set udg_CH_Hash = InitHashtable()
- -------- // --------
- -------- Ability Counter Helix: --------
- Set VariableSet CH_Ability = Backlash
- -------- // --------
- -------- Ability that allows Mogul Kahn to rotate: --------
- Set VariableSet CH_Ability_Spin = Spin (Effect)
- -------- // --------
- -------- You want to see flotation texts what indicate how much the spell Counter Helix caused? If yes, maintain Boolean below as true: --------
- Set VariableSet CH_Allow_Text = False
- -------- If you doesn't want to view flotation texts, set the booelan above has FALSE. --------
- -------- // --------
- -------- To destroy trees, mark the variable below as true: --------
- Set VariableSet CH_Allow_Tree = False
- -------- For the spell not to destroy trees, configure the variable above as false. --------
- -------- // --------
- -------- Counter Helix's Buff: --------
- Set VariableSet CH_Buff = Backlash
- -------- // --------
- -------- Area of Effect: --------
- Set VariableSet CH_AoE[1] = 300.00
- Set VariableSet CH_AoE[2] = 325.00
- Set VariableSet CH_AoE[3] = 350.00
- -------- Note: area of effect per level. --------
- -------- // --------
- -------- Chance of executing this spell: --------
- Set VariableSet CH_Chance[1] = 8
- Set VariableSet CH_Chance[2] = 10
- Set VariableSet CH_Chance[3] = 12
- -------- Note: chance to spin per level. --------
- -------- // --------
- -------- Damage caused by this spell per level: --------
- Set VariableSet CH_Damage[1] = 50.00
- Set VariableSet CH_Damage[2] = 75.00
- Set VariableSet CH_Damage[3] = 100.00
- -------- // --------
- -------- Maximum duration that Mogul Kahn can rotate: --------
- Set VariableSet CH_Spin_Max = 0.65
- -------- Note: 0.65 are equal to 0.65 seconds. --------
- -------- // --------
- -------- Name of the Model of the Effect Special servant when an unit is punished by the Mogul kahn: --------
- Set VariableSet CH_Model = Abilities\Spells\Other\Stampede\StampedeMissileDeath.mdl
- -------- // --------
- -------- Angle that the flotation text will be guided: --------
- Set VariableSet CH_Text_Angle = 90.00
- -------- Time (in Real) that the text takes to disappear of their views: --------
- Set VariableSet CH_Text_FadingAge = 1.50
- -------- Time (in Real) that the flotation text takes to disappear definitively: --------
- Set VariableSet CH_Text_LifeSpan = 2.00
- -------- Text size for the message that will be created: --------
- Set VariableSet CH_Text_Size = 11.50
- -------- // --------
- -------- Attack type caused by this spell: --------
- Set VariableSet CH_Type_Attack = Hero
- -------- Damage type caused by this spell: --------
- Set VariableSet CH_Type_Damage = Universal
- -------- // --------
- -------- Type of responsible unit for destroying trees: --------
- Set VariableSet CH_Type_Dummy = Dummy
- -------- // --------
- -------- To destroy trees: --------
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- CH_Allow_Tree Equal to True
-
Then - Actions
- -------- // --------
- Set VariableSet CH_Point = (Center of (Playable map area))
- Unit - Create 1 CH_Type_Dummy for Neutral Passive at CH_Point facing Default building facing degrees
- Set VariableSet CH_Dummy = (Last created unit)
- -------- // --------
- -------- Destroy Leak: --------
- Custom script: call RemoveLocation(udg_CH_Point)
- -------- // --------
- Else - Actions
-
If - Conditions
- -------- // --------
- -------- To reduce the leg that can cause Trigger, use the following custom script: --------
- Custom script: call DestroyTrigger (GetTriggeringTrigger())
- -------- // --------
-
Events
-
Counter Helix Loop
-
Events
- Time - Every 0.05 seconds of game time
- Conditions
-
Actions
-
Unit Group - Pick every unit in CH_Group[1] and do (Actions)
-
Loop - Actions
- -------- // --------
- -------- Caster: --------
- Set VariableSet CH_Caster = (Picked unit)
- -------- // --------
- -------- Caster's Handle: --------
- Set VariableSet CH_Handle = (Picked unit)
- -------- // --------
- -------- Time that remains for Mogul Kahn to stop rotating: --------
- Set VariableSet CH_Spin_Current = (Load 1 of (Key CH_Handle.) from CH_Hash.)
- -------- // --------
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
Or - Any (Conditions) are true
-
Conditions
- CH_Spin_Current Greater than or equal to CH_Spin_Max
- (CH_Caster has buff Stunned (Pause)) Equal to True
- (CH_Caster has buff Stunned) Equal to True
- (CH_Caster is Stunned) Equal to True
- (CH_Caster is paused) Equal to True
- (CH_Caster is dead) Equal to True
-
Conditions
-
Or - Any (Conditions) are true
-
Then - Actions
- -------- Remove the ability that allows Caster to spin: --------
- Unit - Remove CH_Ability_Spin from CH_Caster
- -------- // --------
- -------- Clean Mogul Kahn's saved data: --------
- Hashtable - Clear all child hashtables of child (Key CH_Handle.) in CH_Hash.
- -------- // --------
- -------- When he stops rotating, remove of the group: --------
- Unit Group - Remove CH_Caster from CH_Group[1].
- -------- // --------
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- (CH_Group[1] is empty) Equal to True
-
Then - Actions
- -------- If the group (CH_Group[1]) is empty, turn OFF this trigger: --------
- Trigger - Turn off (This trigger)
- Else - Actions
-
If - Conditions
- -------- // --------
-
Else - Actions
- -------- Increase the variable so that Mogul Kahn stops spinning: --------
- Hashtable - Save (CH_Spin_Current + 0.05) as 1 of (Key CH_Handle.) in CH_Hash.
- -------- // --------
- -------- Level of Spell Counter Helix for Caster: --------
- Set VariableSet CH_Level = (Level of CH_Ability for CH_Caster)
- -------- // --------
- -------- To Destroy/Kill Trees: --------
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- CH_Allow_Tree Equal to True
-
Then - Actions
- -------- Position of Caster: --------
- Set VariableSet CH_Point = (Position of CH_Caster)
- -------- // --------
-
Destructible - Pick every destructible within CH_AoE[CH_Level] of CH_Point and do (Actions)
-
Loop - Actions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- ((Picked destructible) is alive) Equal to True
-
Then - Actions
- -------- // --------
- -------- Order the dummy to harvest the picked destructible: --------
- Unit - Order CH_Dummy to Harvest (Picked destructible)
- -------- // --------
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- (Current order of CH_Dummy) Equal to (Order(harvest))
-
Then - Actions
- -------- If the destructible is a tree, destroy: --------
- Destructible - Kill (Picked destructible)
- Else - Actions
-
If - Conditions
- -------- // --------
- -------- Order that Dummy stops: --------
- Unit - Order CH_Dummy to Stop.
- -------- // --------
- Else - Actions
-
If - Conditions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
Loop - Actions
- -------- // --------
- -------- Destroy/Remove any leak(s): --------
- Custom script: call RemoveLocation(udg_CH_Point)
- -------- // --------
- Else - Actions
-
If - Conditions
- -------- // --------
-
If - Conditions
- -------- --------------------------- --------
-
Loop - Actions
-
Unit Group - Pick every unit in CH_Group[1] and do (Actions)
-
Events
-
Counter Helix
-
Events
- Unit - A unit Is attacked
-
Conditions
- ((Triggering unit) has buff Stunned (Pause)) Equal to False
- (Level of CH_Ability for (Triggering unit)) Greater than 0
- ((Triggering unit) has buff Stunned) Equal to False
- ((Triggering unit) has buff CH_Buff) Equal to True
- ((Triggering unit) is Stunned) Equal to False
- ((Triggering unit) is paused) Equal to False
- ((Triggering player) is an enemy of (Owner of (Attacking unit)).) Equal to True
-
Actions
- -------- // --------
- -------- Level of Spell Counter Helix for Caster: --------
- Set VariableSet CH_Level = (Level of CH_Ability for CH_Caster)
- -------- // --------
- -------- CH_Chance[0] it is to verify the probability of CH_Caster to rotate: --------
- Set VariableSet CH_Chance[0] = (Random integer number between 1 and 100)
- -------- // --------
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- CH_Chance[0] Less than or equal to CH_Chance[CH_Level]
-
Then - Actions
- -------- // --------
- -------- Set the unit will go rotate: --------
- Set VariableSet CH_Caster = (Triggering unit)
- -------- // --------
- -------- Caster's Handle: --------
- Set VariableSet CH_Handle = (Triggering unit)
- -------- // --------
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- (CH_Caster is in CH_Group[1].) Equal to True
-
Then - Actions
- -------- // --------
- -------- Time that remains for Mogul Kahn to stop rotating: --------
- Set VariableSet CH_Spin_Current = (Load 1 of (Key CH_Handle.) from CH_Hash.)
- -------- Save - 0.05 for Mogul Kahn whenever he rotates: --------
- Hashtable - Save (CH_Spin_Current - 0.05) as 1 of (Key CH_Handle.) in CH_Hash.
- -------- // --------
-
Else - Actions
- -------- // --------
- -------- Save 0.05 for Mogul Kahn whenever he rotates: --------
- Hashtable - Save 0.00 as 1 of (Key CH_Handle.) in CH_Hash.
- -------- // --------
- -------- Add the ability that will allow Caster to rotate: --------
- Unit - Add CH_Ability_Spin to CH_Caster
- -------- // --------
- -------- Order that Caster works the ability wins: --------
- Unit - Order CH_Caster to Orc Blademaster - Bladestorm.
- -------- // --------
- -------- Add Caster for the group: --------
- Unit Group - Add CH_Caster to CH_Group[1]
- -------- // --------
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- (Counter Helix Loop <gen> is on) Equal to True
- Then - Actions
-
Else - Actions
- -------- Turn ON the fallowing Trigger: --------
- Trigger - Turn on Counter Helix Loop <gen>
-
If - Conditions
- -------- // --------
-
If - Conditions
- -------- // --------
- -------- Point of CH_Caster: --------
- Set VariableSet CH_Point = (Position of CH_Caster)
- -------- // --------
- -------- Group of Units to be punished by CH_Caster: --------
- Set VariableSet CH_Group[2] = (Units within CH_AoE[CH_Level] of CH_Point.)
- -------- // --------
- -------- Use the two lines below to remove mistakes: --------
- Custom script: call RemoveLocation(udg_CH_Point)
- Custom script: set bj_wantDestroyGroup = true
- -------- // --------
- -------- Catch the units of the group: --------
-
Unit Group - Pick every unit in CH_Group[2] and do (Actions)
-
Loop - Actions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- ((Picked unit) belongs to an enemy of (Owner of CH_Caster).) Equal to True
- ((Picked unit) is A town-hall-type unit) Equal to False
- ((Picked unit) is Mechanical) Equal to False
- ((Picked unit) is A structure) Equal to False
- ((Picked unit) is Ethereal) Equal to False
- ((Picked unit) is hidden) Equal to False
- ((Picked unit) is dead) Equal to False
-
Then - Actions
- -------- // --------
- -------- Target that will be punished: --------
- Set VariableSet CH_Target = (Picked unit)
- -------- // --------
- -------- Special effect created in the target: --------
- Special Effect - Create a special effect attached to the origin of CH_Target using CH_Model
- Special Effect - Destroy (Last created special effect)
- -------- The last created special effect was destroyed to remove any leaks. --------
- -------- // --------
- -------- Damage the affected target for this spell: --------
- Unit - Cause CH_Caster to damage CH_Target, dealing CH_Damage[CH_Level] damage of attack type CH_Type_Attack and damage type CH_Type_Damage
- -------- // --------
- -------- In the next part it consists of the visualization of flotation texts. --------
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- CH_Allow_Text Equal to True
-
Then - Actions
- -------- // --------
- Set VariableSet CH_Text_Player = (Player group((Owner of CH_Caster)))
- -------- // --------
- Floating Text - Create floating text that reads (|cffFF2B2B- + (String((Integer(CH_Damage[CH_Level]))))) above (Picked unit) with Z offset 0.00, using font size 10.00, color (100.00%, 100.00%, 100.00%), and 0.00% transparency
- Floating Text - Hide (Last created floating text) for (All players)
- Floating Text - Show (Last created floating text) for CH_Text_Player
- Floating Text - Change (Last created floating text): Disable permanence
- Floating Text - Change the lifespan of (Last created floating text) to CH_Text_LifeSpan seconds
- Floating Text - Change the fading age of (Last created floating text) to CH_Text_FadingAge seconds
- Floating Text - Set the velocity of (Last created floating text) to 100.00 towards CH_Text_Angle degrees
- -------- // --------
- -------- Destroy/Remove any leak(s): --------
- Custom script: call DestroyForce(udg_CH_Text_Player)
- Custom script: set udg_CH_Text_Player = null
- -------- // --------
- Else - Actions
-
If - Conditions
- -------- // --------
- Else - Actions
-
If - Conditions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
Loop - Actions
- -------- // --------
- Else - Actions
-
If - Conditions
- -------- // --------
-
Events
Any help is greatly appreciated!