• 🏆 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!

Want to play animations in specific order and for specific time

Level 2
Joined
Oct 29, 2011
Messages
13
So I am attempting to use Gluma's Rattling Gunner in a way, where upon attacking an enemy, I want to use its wind up animation (Stand Channel Alternate) for a few seconds without damaging the enemy at all, and then transition into using the full auto attack (Stand Channel) in a continuous damage for a few seconds. However, I am having trouble with getting the trigger to work.

This is what I have thus far:


  • Attack Ground
    • Events
      • Unit - A unit Is attacked
    • Conditions
      • (Attacking unit) Equal to Rattling Gunner 0071 <gen>
      • (((Triggering unit) is A ground unit) Equal to True) or (((Triggering unit) is A flying unit) Equal to True)
    • Actions
      • Animation - Play Rattling Gunner 0071 <gen>'s stand channel alternate animation
      • Wait 5.00 seconds
      • Animation - Play Rattling Gunner 0071 <gen>'s stand channel animation
What it does currently, is play the wind up animation for 5 seconds, and then it goes into doing the regular Attack 1 animation, skipping the full auto animation completely.
 
Level 18
Joined
Mar 16, 2008
Messages
721
two ideas:
1) put a cast time on the trigger, if that won't ruin the ability function, then play animation 1 "when start channeling ability" then play animation 2 "when start casting an ability".
2) try using queue animations, i think if you use the queue animation then they will play one after another.

just some ideas off the top of my head. haven't tested.
 
Level 2
Joined
Oct 29, 2011
Messages
13
two ideas:
1) put a cast time on the trigger, if that won't ruin the ability function, then play animation 1 "when start channeling ability" then play animation 2 "when start casting an ability".
2) try using queue animations, i think if you use the queue animation then they will play one after another.

just some ideas off the top of my head. haven't tested.

1) It's not an ability. I'm essentially trying to create a completely unique regular attack for the unit, so unless there is an option for that in "when starting an ability", it's not an option

2) I tried queuing the stand channel animation, but that didn't seem to work either, for some reason.
 

Uncle

Warcraft Moderator
Level 64
Joined
Aug 10, 2018
Messages
6,555
Here's one way of handling such an effect. Adjust the Follow Through Time of the Gatling Gunner (Channel - Attack) ability in order to change how long the attack lasts. Just remember that this value also takes into consideration the wind-up time so account for that.

My default settings are:
  • 2.00 second wind-up time.
  • The attack lasts forever (999999 follow through time).
  • Fires 10 shots per second, each dealing 5 chaos damage.
  • Has 500 attack range but can extend up to 750 once the attack starts.
 

Attachments

  • Ratling Gunner Demo MUI 1.w3m
    320.9 KB · Views: 1
Last edited:
Level 2
Joined
Oct 29, 2011
Messages
13
Here's one way of handling such an effect. Adjust the Follow Through Time of the Gatling Gunner (Channel - Attack) ability in order to change how long the attack lasts. Just remember that this value also takes into consideration the wind-up time so account for that.

My default settings are:
  • 2.00 second wind-up time.
  • The attack lasts forever (999999 follow through time).
  • Fires 10 shots per second, each dealing 5 chaos damage.
  • Has 500 attack range but can extend up to 750 once the attack starts.

Thanks for the info, but it seems like the attached map is corrupted.
 
Level 2
Joined
Oct 29, 2011
Messages
13
Here's one way of handling such an effect. Adjust the Follow Through Time of the Gatling Gunner (Channel - Attack) ability in order to change how long the attack lasts. Just remember that this value also takes into consideration the wind-up time so account for that.

My default settings are:
  • 2.00 second wind-up time.
  • The attack lasts forever (999999 follow through time).
  • Fires 10 shots per second, each dealing 5 chaos damage.
  • Has 500 attack range but can extend up to 750 once the attack starts.

Also, I'm somewhat new when it comes to editing stats beyond icons and models, so would you be able to provide a step-by-step of how to achieve that?
 
Level 2
Joined
Oct 29, 2011
Messages
13
You need to be on the latest version of Warcraft 3 to open my map. It's pretty complicated, I would try to learn the basics before trying to do something like this.
I just realized that you were talking about an ability? I don't want this effect on an ability, but rather on the regular attack of the Unit. Like, whenever the unit attacks an enemy there's a delay where the wind-up animation happens, and then the regular attack is the full auto animation.
 

Uncle

Warcraft Moderator
Level 64
Joined
Aug 10, 2018
Messages
6,555
I just realized that you were talking about an ability? I don't want this effect on an ability, but rather on the regular attack of the Unit. Like, whenever the unit attacks an enemy there's a delay where the wind-up animation happens, and then the regular attack is the full auto animation.
Yeah, that's not a thing though, it requires triggers and custom systems to do something like this. In my case I'm using a hidden ability that channels to create the desired behavior.
 
Level 2
Joined
Oct 29, 2011
Messages
13
Yeah, that's not a thing though, it requires triggers and custom systems to do something like this. In my case I'm using a hidden ability that channels to create the desired behavior.

Ah, I see! If I wanted to recreate the ability myself with the values you've given, is there a base ability I should start with?
 

Uncle

Warcraft Moderator
Level 64
Joined
Aug 10, 2018
Messages
6,555
The Channel ability is the go to for custom triggered spells.

Here are my triggers, maybe some of them can help you.
Note that these won't work properly without a Unit Indexer and the Relativistic Missile System copied into your Trigger Editor:
  • GG Attack Start
    • Events
      • Unit - A unit Is attacked
    • Conditions
      • (Level of Gatling Gunner (Channel - Attack) for (Attacking unit)) Greater than 0
    • Actions
      • -------- Order the Gatling Gunner to cast it's "hidden" channel ability on the target: --------
      • -------- --------
      • Unit - Order (Attacking unit) to Orc Far Seer - Chain Lightning (Attacked unit)
  • GG Channel Start
    • Events
      • Unit - A unit Begins casting an ability
    • Conditions
      • (Ability being cast) Equal to Gatling Gunner (Channel - Attack)
    • Actions
      • -------- Prepare the Gatling Gunner to begin firing: --------
      • -------- --------
      • Set VariableSet GG_Source = (Triggering unit)
      • Set VariableSet GG_CV = (Custom value of GG_Source)
      • -------- --------
      • Set VariableSet GG_Duration[GG_CV] = 0
      • Set VariableSet GG_Target[GG_CV] = (Target unit of ability being cast)
      • -------- --------
      • Animation - Add the alternate animation tag to GG_Source
      • -------- --------
      • Unit Group - Add GG_Source to GG_Group
      • Set VariableSet GG_Group_Size = (GG_Group_Size + 1)
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • GG_Group_Size Equal to 1
        • Then - Actions
          • Trigger - Turn on GG Channel Active <gen>
        • Else - Actions
  • GG Channel Stop
    • Events
      • Unit - A unit Stops casting an ability
    • Conditions
      • (Ability being cast) Equal to Gatling Gunner (Channel - Attack)
    • Actions
      • -------- Stop firing once the ability stops: --------
      • -------- --------
      • Set VariableSet GG_Source = (Triggering unit)
      • -------- --------
      • Animation - Remove the alternate animation tag to GG_Source
      • -------- --------
      • Unit Group - Remove GG_Source from GG_Group.
      • Set VariableSet GG_Group_Size = (GG_Group_Size - 1)
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • GG_Group_Size Equal to 0
        • Then - Actions
          • Trigger - Turn off GG Channel Active <gen>
        • Else - Actions
  • GG Channel Active
    • Events
      • Time - Every 0.02 seconds of game time
    • Conditions
    • Actions
      • -------- Manage all of our Gatling Gunner's attacks: --------
      • -------- --------
      • Unit Group - Pick every unit in GG_Group and do (Actions)
        • Loop - Actions
          • Set VariableSet GG_Source = (Picked unit)
          • Set VariableSet GG_CV = (Custom value of GG_Source)
          • -------- --------
          • Set VariableSet GG_Duration[GG_CV] = (GG_Duration[GG_CV] + 1)
          • -------- --------
          • -------- Rotate to face the target: --------
          • Unit - Make GG_Source face GG_Target[GG_CV] over 0.00 seconds
          • -------- --------
          • -------- Attempt to attack the target once enough time has passed: --------
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (GG_Target[GG_CV] is alive) Equal to True
            • Then - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • GG_Duration[GG_CV] Greater than or equal to 100
                • Then - Actions
                  • -------- Adjust the animation now that the attack is ready: --------
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • GG_Duration[GG_CV] Equal to 100
                    • Then - Actions
                      • Animation - Remove the alternate animation tag to GG_Source
                      • Animation - Play GG_Source's stand channel animation
                    • Else - Actions
                      • -------- Fire a shot every 0.10 seconds after the warm up phase has finished: --------
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • If - Conditions
                          • (GG_Duration[GG_CV] mod 5) Equal to 0
                        • Then - Actions
                          • -------- "Reset" the duration (optional): --------
                          • Set VariableSet GG_Duration[GG_CV] = 110
                          • -------- --------
                          • Set VariableSet GG_Point[0] = (Position of GG_Source)
                          • Set VariableSet GG_Point[1] = (Position of GG_Target[GG_CV])
                          • -------- --------
                          • -------- End early if the target is too far away: --------
                          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                            • If - Conditions
                              • (Distance between GG_Point[0] and GG_Point[1]) Greater than 750.00
                            • Then - Actions
                              • Unit - Order GG_Source to Stop.
                            • Else - Actions
                              • -------- Missile Properties: --------
                              • Set VariableSet MissileStart = (GG_Point[0] offset by 90.00 towards (Facing of GG_Source) degrees.)
                              • Set VariableSet MissileSource = GG_Source
                              • Set VariableSet MissileTarget = GG_Target[GG_CV]
                              • Set VariableSet MissileOwner = (Owner of MissileSource)
                              • Set VariableSet MissileModel = Shot II Green.mdx
                              • Set VariableSet MissileCollision = 25.00
                              • Set VariableSet MissileStartZ = 45.00
                              • Set VariableSet MissileFinishZ = 45.00
                              • Set VariableSet MissileSpeed = 1200.00
                              • -------- Arc should be between 0.00 and 80.00: --------
                              • Set VariableSet MissileArc = 0.00
                              • Set VariableSet MissileCurve = (Random real number between -3.00 and 3.00)
                              • -------- Missile Events: --------
                              • Set VariableSet Missile_onFinish = GG Missile Impact <gen>
                              • -------- Launch Missile: --------
                              • Trigger - Run MissileCreate <gen> (ignoring conditions)
                          • -------- --------
                          • Custom script: call RemoveLocation( udg_GG_Point[0] )
                          • Custom script: call RemoveLocation( udg_GG_Point[1] )
                        • Else - Actions
                • Else - Actions
            • Else - Actions
              • Unit - Order GG_Source to Stop.
  • GG Missile Impact
    • Events
    • Conditions
    • Actions
      • -------- Handle what happens when a Gatling Gunner missile hits an enemy unit (uses the Missile System): --------
      • -------- --------
      • Unit - Cause MissileSource to damage MissileTarget, dealing 5.00 damage of attack type Chaos and damage type Normal

gg ex.png
 
Top