- Joined
- Oct 16, 2011
- Messages
- 308
Hi guys. I'm trying to make a Bladestorm for those people who are dreaming of making their unit spin similar to a Blademaster's animation. But I'm having a problem with it. Whenever I set the BS_Speed variable to more than 6.00, the spin looks weird that sometimes the caster reverse-rotates for a short time and the speed doesn't really increase its spin speed. Also, help me improve this spell for those who wants to. Thanks 
This is the map of the spell:
View attachment 148399

-
Bladestorm
-
Events
-
Unit - A unit Starts the effect of an ability
-
-
Conditions
-
(Ability being cast) Equal to Bladestorm
-
-
Actions
-
Set BS_Max = (BS_Max + 1)
-
Set BS_Caster[BS_Max] = (Triggering unit)
-
Set BS_Ability = (Ability being cast)
-
Set BS_Duration[BS_Max] = 7.00
-
Set BS_Point = (Position of BS_Caster[BS_Max])
-
Set BS_Angle[BS_Max] = (Facing of BS_Caster[BS_Max])
-
Set BS_Speed = 6.00
-
Animation - Change BS_Caster[BS_Max]'s vertex coloring to (100.00%, 100.00%, 100.00%) with 100.00% transparency
-
Unit - Create 1 Bladestorm for (Owner of BS_Caster[BS_Max]) at BS_Point facing BS_Angle[BS_Max] degrees
-
Set BS_Dummy[BS_Max] = (Last created unit)
-
Animation - Change BS_Dummy[BS_Max]'s animation speed to 200.00% of its original speed
-
Animation - Play BS_Dummy[BS_Max]'s attack animation
-
Unit - Add Bladestorm (Effect) to BS_Dummy[BS_Max]
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
BS_Max Equal to 1
-
-
Then - Actions
-
Trigger - Turn on Bladestorm Loop <gen>
-
-
Else - Actions
-
-
Custom script: call RemoveLocation(udg_BS_Point)
-
-
-
Bladestorm Loop
-
Events
-
Time - Every 0.02 seconds of game time
-
-
Conditions
-
Actions
-
For each (Integer BS_Loop) from 1 to BS_Max, do (Actions)
-
Loop - Actions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
BS_Angle[BS_Loop] Greater than or equal to 360.00
-
-
Then - Actions
-
Set BS_Angle[BS_Loop] = (BS_Angle[BS_Loop] - (360.00 - BS_Speed))
-
-
Else - Actions
-
Set BS_Angle[BS_Loop] = (BS_Angle[BS_Loop] + BS_Speed)
-
-
-
Set BS_Point = (Position of BS_Caster[BS_Loop])
-
Unit - Move BS_Dummy[BS_Loop] instantly to BS_Point, facing BS_Angle[BS_Loop] degrees
-
Set BS_Duration[BS_Loop] = (BS_Duration[BS_Loop] - 0.02)
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
BS_Duration[BS_Loop] Less than or equal to 6.90
-
-
Then - Actions
-
Animation - Change BS_Dummy[BS_Loop]'s animation speed to 0.00% of its original speed
-
-
Else - Actions
-
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
BS_Duration[BS_Loop] Less than or equal to 0.00
-
-
Then - Actions
-
Animation - Change BS_Caster[BS_Loop]'s vertex coloring to (100.00%, 100.00%, 100.00%) with 0.00% transparency
-
Unit - Kill BS_Dummy[BS_Loop]
-
Set BS_Caster[BS_Loop] = BS_Caster[BS_Max]
-
Set BS_Caster[BS_Max] = No unit
-
Set BS_Dummy[BS_Loop] = BS_Dummy[BS_Max]
-
Set BS_Dummy[BS_Max] = No unit
-
Set BS_Duration[BS_Loop] = BS_Duration[BS_Max]
-
Set BS_Angle[BS_Loop] = BS_Angle[BS_Max]
-
Set BS_Max = (BS_Max - 1)
-
Set BS_Loop = (BS_Loop - 1)
-
-
Else - Actions
-
-
Custom script: call RemoveLocation(udg_BS_Point)
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
BS_Max Equal to 0
-
-
Then - Actions
-
Trigger - Turn off (This trigger)
-
-
Else - Actions
-
-
-
-
-
View attachment 148399
Last edited: