• 🏆 Texturing Contest #33 is OPEN! Contestants must re-texture a SD unit model found in-game (Warcraft 3 Classic), recreating the unit into a peaceful NPC version. 🔗Click here to enter!
  • It's time for the first HD Modeling Contest of 2024. Join the theme discussion for Hive's HD Modeling Contest #6! Click here to post your idea!

[Trigger] Bladestorm (Spinning Effect)

Status
Not open for further replies.
Level 14
Joined
Oct 16, 2011
Messages
296
Hello guys. I really need some help right now.
I'm trying to create a Sfx for Bladestorm, where any unit who doesn't have any spinning animation will be able to spin using a trigger. It works fine when the Speed of the rotation is +10 degrees counter-clockwise every 0.03 seconds, but the spin looks awful because it's too slow so I tried increasing it. But when I tried to increase it, there's some instance where the unit suddenly turns clockwise for a short time, and the higher the angle turn is, the more it will occur. I have a guess that the reason is the turn rate, but I still not sure yet. Please help me fix this.

  • Bladestorm
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Bladestorm
      • (Unit-type of (Triggering unit)) Equal to Jaina
    • Actions
      • Set OrcAbilityBS_Max = (OrcAbilityBS_Max + 1)
      • Set OrcAbilityBS_Caster[OrcAbilityBS_Max] = (Triggering unit)
      • Set OrcAbilityBS_Angle[OrcAbilityBS_Max] = (Facing of OrcAbilityBS_Caster[OrcAbilityBS_Max])
      • Set OrcAbilityBS_Duration[OrcAbilityBS_Max] = 7.00
      • Set Global_Point[0] = (Position of OrcAbilityBS_Caster[OrcAbilityBS_Max])
      • Unit - Create 1 Dummy (Bladestorm, Jaina) for (Owner of OrcAbilityBS_Caster[OrcAbilityBS_Max]) at Global_Point[0] facing OrcAbilityBS_Angle[OrcAbilityBS_Max] degrees
      • Set OrcAbilityBS_Dummy[OrcAbilityBS_Max] = (Last created unit)
      • Special Effect - Create a special effect attached to the origin of OrcAbilityBS_Dummy[OrcAbilityBS_Max] using war3mapImported\Bladestorm.mdx
      • Animation - Change OrcAbilityBS_Dummy[OrcAbilityBS_Max]'s animation speed to 200.00% of its original speed
      • Animation - Play OrcAbilityBS_Dummy[OrcAbilityBS_Max]'s spell animation
      • Animation - Change OrcAbilityBS_Caster[OrcAbilityBS_Max]'s vertex coloring to (100.00%, 100.00%, 100.00%) with 100.00% transparency
      • Custom script: call RemoveLocation(udg_Global_Point[0])
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • OrcAbilityBS_Max Equal to 1
        • Then - Actions
          • Trigger - Turn on Bladestorm Loop <gen>
        • Else - Actions
  • Bladestorm Loop
    • Events
      • Time - Every 0.03 seconds of game time
    • Conditions
    • Actions
      • For each (Integer OrcAbilityBS_Loop) from 1 to OrcAbilityBS_Max, do (Actions)
        • Loop - Actions
          • Set OrcAbilityBS_Duration[OrcAbilityBS_Loop] = (OrcAbilityBS_Duration[OrcAbilityBS_Loop] - 0.03)
          • Set OrcAbilityBS_Angle[OrcAbilityBS_Loop] = (OrcAbilityBS_Angle[OrcAbilityBS_Loop] + 20.00)
          • Set Global_Point[0] = (Position of OrcAbilityBS_Caster[OrcAbilityBS_Loop])
          • Set TempUnit = OrcAbilityBS_Dummy[OrcAbilityBS_Loop]
          • Custom script: call SetUnitFacing(udg_OrcAbilityBS_Dummy[udg_OrcAbilityBS_Loop], udg_OrcAbilityBS_Angle[udg_OrcAbilityBS_Loop])
          • Unit - Move OrcAbilityBS_Dummy[OrcAbilityBS_Loop] instantly to Global_Point[0]
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • OrcAbilityBS_Duration[OrcAbilityBS_Loop] Less than or equal to 6.40
            • Then - Actions
              • Animation - Change OrcAbilityBS_Dummy[OrcAbilityBS_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
              • Or - Any (Conditions) are true
                • Conditions
                  • (OrcAbilityBS_Caster[OrcAbilityBS_Loop] is dead) Equal to True
                  • OrcAbilityBS_Duration[OrcAbilityBS_Loop] Less than or equal to 0.00
            • Then - Actions
              • Animation - Change OrcAbilityBS_Caster[OrcAbilityBS_Loop]'s vertex coloring to (100.00%, 100.00%, 100.00%) with 0.00% transparency
              • Unit - Remove OrcAbilityBS_Dummy[OrcAbilityBS_Loop] from the game
              • Set OrcAbilityBS_Caster[OrcAbilityBS_Loop] = OrcAbilityBS_Caster[OrcAbilityBS_Max]
              • Set OrcAbilityBS_Caster[OrcAbilityBS_Max] = No unit
              • Set OrcAbilityBS_Dummy[OrcAbilityBS_Loop] = OrcAbilityBS_Dummy[OrcAbilityBS_Max]
              • Set OrcAbilityBS_Dummy[OrcAbilityBS_Max] = No unit
              • Set OrcAbilityBS_Duration[OrcAbilityBS_Loop] = OrcAbilityBS_Duration[OrcAbilityBS_Max]
              • Set OrcAbilityBS_Angle[OrcAbilityBS_Loop] = OrcAbilityBS_Angle[OrcAbilityBS_Max]
              • Set OrcAbilityBS_Max = (OrcAbilityBS_Max - 1)
              • Set OrcAbilityBS_Loop = (OrcAbilityBS_Loop - 1)
            • Else - Actions
          • Custom script: call RemoveLocation(udg_Global_Point[0])
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • OrcAbilityBS_Max Equal to 0
            • Then - Actions
              • Trigger - Turn off (This trigger)
            • Else - Actions
Here's the map:
 

Attachments

  • Bladestorm v1.0.w3x
    35 KB · Views: 32
Status
Not open for further replies.
Top