- Joined
- May 7, 2008
- Messages
- 346
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
-
-
-------- // --------
-
-------- To reduce the leg that can cause Trigger, use the following custom script: --------
-
Custom script: call DestroyTrigger (GetTriggeringTrigger())
-
-------- // --------
-
-
-
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
-
-
-
-
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
-
-
-------- // --------
-
-
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
-
-
-------- // --------
-
-------- Order that Dummy stops: --------
-
Unit - Order CH_Dummy to Stop.
-
-------- // --------
-
-
Else - Actions
-
-
-
-
-------- // --------
-
-------- Destroy/Remove any leak(s): --------
-
Custom script: call RemoveLocation(udg_CH_Point)
-
-------- // --------
-
-
Else - Actions
-
-
-------- // --------
-
-
-
-------- --------------------------- --------
-
-
-
-
-
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>
-
-
-
-------- // --------
-
-
-
-------- // --------
-
-------- 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
-
-
-------- // --------
-
-
Else - Actions
-
-
-
-
-------- // --------
-
-
Else - Actions
-
-
-------- // --------
-
-
Any help is greatly appreciated!