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

WoW Arena-like shock system

Status
Not open for further replies.
Level 6
Joined
Sep 9, 2006
Messages
92
If you've played WoW Arena lately as an enhance shaman you've noticed that when you use a shock spell the abilities are literally removed from the "ability bar" thing for 6 seconds. I was trying to replicate that system, but its not working properly; maybe they use a different way than i'm trying. Here's my triggers:

  • Earth Shock
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Earth Shock
    • Actions
      • Unit - Create 1 Dummy for (Owner of (Triggering unit)) at (Position of (Triggering unit)) facing Default building facing (270.0) degrees
      • Unit - Add Silence Dummy (2 seconds) to (Last created unit)
      • Unit - Add a 0.50 second Generic expiration timer to (Last created unit)
      • Unit - Order (Last created unit) to Neutral Dark Ranger - Silence (Position of (Target unit of ability being cast))
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • AllCounter[11] Equal to 0
        • Then - Actions
          • Trigger - Turn on ES Periodic <gen>
        • Else - Actions
      • Set AllCounter[11] = (AllCounter[11] + 1)
      • Set AllCounter[12] = (AllCounter[12] + 1)
      • Set ES_Caster[AllCounter[12]] = (Triggering unit)
      • Set ES_Timer[AllCounter[12]] = 60
      • Unit - Cause (Triggering unit) to damage (Target unit of ability being cast), dealing (60.00 + (Real((Agility of (Triggering unit) (Include bonuses))))) damage of attack type Spells and damage type Normal
      • Set ES_Level[AllCounter[12]] = (Level of Earth Shock for (Triggering unit))
      • Unit - Remove Earth Shock from (Triggering unit)
And for adding again:
  • ES Periodic
  • Events
    • Time - Every 0.10 seconds of game time
  • Conditions
  • Actions
    • For each (Integer A) from 1 to AllCounter[12], do (Actions)
      • Loop - Actions
        • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          • If - Conditions
            • ES_Timer[(Integer A)] Greater than 0
          • Then - Actions
            • Set ES_Timer[(Integer A)] = (ES_Timer[(Integer A)] - 1)
          • Else - Actions
            • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              • If - Conditions
                • ES_Level[(Integer A)] Greater than 0
              • Then - Actions
                • Unit - Add Earth Shock to ES_Caster[(Integer A)]
                • Unit - Set level of Earth Shock for ES_Caster[(Integer A)] to ES_Level[(Integer A)]
              • Else - Actions
            • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              • If - Conditions
                • AllCounter[11] Equal to 0
              • Then - Actions
                • Set AllCounter[12] = 0
                • Trigger - Turn off (This trigger)
              • Else - Actions
Currently this system DOES remove and add abilities properly HOWEVER, when it removes it the "+" icon for learning new abilities pops up and the "Earth Shock" ability is there..

Edit: Perhaps their system switches the unit out with another unit without the spells..?
 
Level 2
Joined
Mar 25, 2009
Messages
13
There's an action under player to remove select abilities. The simple version is that when the unit casts the ability, pick the owner of that unit and disable all the shock abilities for that player, then re-enable them whenever you want the cooldown to be up.

  • Shocks
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • Or - Any (Conditions) are true
        • Conditions
          • (Ability being cast) Equal to (Any of your shock abilities)
    • Actions
      • Player - Disable (All of your shock abilities) for (Owner of (Casting unit))
      • Wait 6.00 seconds
      • Player - Disable (All of your shock abilities) for (Owner of (Casting unit))
You probably want to use variables for this (and arrays+integers if you want it to be MUI) but the simple version is here.
 
Status
Not open for further replies.
Top