- Joined
- Oct 16, 2011
- Messages
- 296
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
-
If - Conditions
- Custom script: call RemoveLocation(udg_BS_Point)
-
Events
-
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)
-
If - Conditions
- 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 - Conditions
-
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
-
If - Conditions
- 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
-
If - Conditions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
Loop - Actions
-
For each (Integer BS_Loop) from 1 to BS_Max, do (Actions)
-
Events
View attachment 148399
Last edited: