• 🏆 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] Breaking Windwalk?

Status
Not open for further replies.
Level 3
Joined
Nov 11, 2007
Messages
39
Hi, im having a problem ordering a unit to attack while windwalked.

The spell is basically moving the unit next to a random enemy unit, windwalking and then using windwalk to do bonus damage to the enemy unit. The trigger works flawlessly without the windwalk but the unit refuses to break out of windwalk to attack.

Omni = 300% attack speed Berzerk ability.
Omnibonus is a windwalk ability that is placed on the unit through the unit editor.


  • Omni New
    • Events
      • Unit - A unit Begins casting an ability
    • Conditions
      • (Ability being cast) Equal to Omni
    • Actions
      • Unit - Make (Casting unit) Invulnerable
      • Unit - Set (Casting unit) acquisition range to 0.00
      • For each (Integer A) from 1 to 8, do (Actions)
        • Loop - Actions
          • Unit Group - Pick every unit in (Units within 512.00 of (Position of (Casting unit)) matching ((((Matching unit) belongs to an enemy of (Owner of (Casting unit))) Equal to True) and (((Matching unit) is alive) Equal to True))) and do (Actions)
            • Loop - Actions
              • Unit Group - Add (Picked unit) to Omni
          • Set OmniTarget = (Random unit from Omni)
          • Unit Group - Remove all units from Omni
          • Set OmniSource = (Position of (Casting unit))
          • Unit - Move (Casting unit) instantly to (Position of OmniTarget), facing (Position of OmniTarget)
          • Special Effect - Create a special effect attached to the origin of (Casting unit) using Abilities\Spells\NightElf\Blink\BlinkCaster.mdl
          • Special Effect - Create a special effect at OmniSource using Abilities\Spells\NightElf\Blink\BlinkCaster.mdl
          • Unit - Order (Casting unit) to Orc Blademaster - Wind Walk
          • Wait 0.10 seconds
          • Unit - Order (Casting unit) to Attack OmniTarget
          • Wait 0.40 seconds
      • Unit - Make (Casting unit) Vulnerable
      • Unit - Set (Casting unit) acquisition range to 500.00

I realize this spell still has some holes in it such as when no units are in range, but ill clean those up later. Also its very fussy about being invunrable? not sure why.
 
Level 29
Joined
Jul 29, 2007
Messages
5,174
Ok, firstly and mostly important, destroy the group to prevent leaks.
Now, why did you do Integar A from 1 to 8... you don't need it.
And about the wind walk, why would you need wind walk for 0.10 seconds ? just for the effects ? ^^
I think you should remove the wind walk and do Blink to OmniTarget but don't listen to me... its your map :)
Now the wind walk really works to you ? just tried to make a little dummy map and it didn't did any wind walk at all so don't know how to disable it lol.
And of course... ye the Invurable is a little stupid but again... its your map :p
 
Level 11
Joined
Aug 25, 2006
Messages
971
The problem is that the function (Casting Unit) doesn't (always) work after a 'wait' function. To get around this set a variable to equal (Casting Unit) and use the variable instead. Also the minimum wait is .29 (I'm pretty sure) Meaning no matter what you set the wait to, it'll still wait at least .29 seconds.
 
Level 3
Joined
Nov 11, 2007
Messages
39
Hey thanks for the imput guys! Im going to try it out tonight. I know its a pretty rough looking trigger still but ill work on it.

The integer 1-8 is the number of jumps the skill performs.

Thx again!

Edit: The wait command seems to have an effect with such small values.
 
Level 11
Joined
Aug 25, 2006
Messages
971
Ok heres a little proof to my statement.

Open this map, look at the 'Wait' Trigger, it has a .01
Before the .01 wait it turns on a trigger, after the .01 it turns that trigger off.
That trigger just adds .001 to a variable every .001 seconds.
Then it displays the counter after the .01 wait. So this means it should display .01 every time RIGHT? Wrong, it displays .100 or .125 almost every time. So .29 wasn't right, it appears to be around .1 or .125
 

Attachments

  • JactiksDtest.w3m
    12.4 KB · Views: 41
Level 3
Joined
Nov 11, 2007
Messages
39
Yea, I tried your map there and I see what you mean. I was getting Values between 0.1 and 0.2. Funny bit was i was getting them in in nice .025 increments so that would leave me to believe that its .025? Maybe the time is specific to the computers performance? Anyhow finnaly got that trigger working as i had hoped. I know it leaks a bit but ill fix that later

  • OmniFinal
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Omni
    • Actions
      • Set OmniCaster = (Casting unit)
      • Game Cache - Store OmniCaster as OmniCaster of Units in GameCache
      • Special Effect - Create a special effect attached to the origin of OmniCaster using Abilities\Spells\Undead\Cripple\CrippleTarget.mdl
      • Set OmniEffect = (Last created special effect)
      • Custom script: call UnitAddAbilityBJ( 'Aloc', udg_OmniCaster )
      • Animation - Change OmniCaster's animation speed to 600.00% of its original speed
      • Unit - Make OmniCaster Invulnerable
      • Unit - Set OmniCaster acquisition range to 0.00
      • For each (Integer A) from 1 to 8, do (Actions)
        • Loop - Actions
          • Set OmniTarget = No unit
          • Unit Group - Pick every unit in (Units within 512.00 of (Position of OmniCaster) matching ((((Matching unit) belongs to an enemy of (Owner of OmniCaster)) Equal to True) and (((Matching unit) is alive) Equal to True))) and do (Actions)
            • Loop - Actions
              • Unit Group - Add (Picked unit) to OmniTargets
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (OmniTargets is empty) Equal to False
            • Then - Actions
              • Set OmniTarget = (Random unit from OmniTargets)
              • Unit Group - Remove all units from OmniTargets
              • Special Effect - Create a special effect at (Position of OmniCaster) using Abilities\Spells\NightElf\Blink\BlinkCaster.mdl
              • Special Effect - Create a special effect attached to the origin of OmniCaster using Abilities\Spells\NightElf\Blink\BlinkCaster.mdl
              • Unit - Move OmniCaster instantly to (Position of OmniTarget), facing (Position of OmniTarget)
              • Animation - Play OmniCaster's attack,slam animation
              • Unit - Cause OmniCaster to damage OmniTarget, dealing 250.00 damage of attack type Hero and damage type Normal
              • Wait 0.20 seconds
              • Floating Text - Create floating text that reads 250! at (Position of OmniCaster) with Z offset 0.00, using font size 10.00, color (100.00%, 0.00%, 0.00%), and 0.00% transparency
              • Floating Text - Change (Last created floating text): Disable permanence
              • Floating Text - Change the lifespan of (Last created floating text) to 2.00 seconds
              • Floating Text - Set the velocity of (Last created floating text) to 64.00 towards 90.00 degrees
              • Wait 0.30 seconds
            • Else - Actions
              • Unit Group - Remove all units from OmniTargets
      • Special Effect - Destroy OmniEffect
      • Unit - Remove OmniCaster from the game
      • Game Cache - Restore OmniCaster of Units from GameCache for (Owner of OmniCaster) at (Position of OmniCaster) facing (Position of OmniTarget)
      • Set OmniCaster = (Last restored unit)
      • Selection - Select OmniCaster for (Owner of OmniCaster)
Also still have to adjust the damage dealt with a ability level formula.

Turns out windwalk wasn't even worth it.:con:
 
Status
Not open for further replies.
Top