• 🏆 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!
  • 🏆 Hive's 6th HD Modeling Contest: Mechanical is now open! Design and model a mechanical creature, mechanized animal, a futuristic robotic being, or anything else your imagination can tinker with! 📅 Submissions close on June 30, 2024. Don't miss this opportunity to let your creativity shine! Enter now and show us your mechanical masterpiece! 🔗 Click here to enter!

[Spell] Wind walk that no stop?

Status
Not open for further replies.
Level 5
Joined
Jul 31, 2020
Messages
103
Shift-click the Transition Time of Wind Walk in the object editor, and set it to 99999. This will give the unit using it the movement speed bonus, and will remove its collision with other units. However, the buff will not be removed on attacking, and no backstab damage will be dealt to attacked enemies. From here on, you can use triggers to apply whatever logic you want to the ability, including removing the buff when you cast a spell.
 
Level 24
Joined
Jun 26, 2020
Messages
1,853
Shift-click the Transition Time of Wind Walk in the object editor, and set it to 99999. This will give the unit using it the movement speed bonus, and will remove its collision with other units. However, the buff will not be removed on attacking, and no backstab damage will be dealt to attacked enemies. From here on, you can use triggers to apply whatever logic you want to the ability, including removing the buff when you cast a spell.
Ok, you clearly didn't understand what I said.
 
Level 5
Joined
Jul 31, 2020
Messages
103
Ok, you clearly didn't understand what I said.

You were looking for a way to make Wind Walk not turn your unit invisible, but still allow it to pass through units, and not be removed on attack. This is exactly what the method in my previous reply achieves. And if this is not what you wanted, you could try explaining what it is instead of posting a passive aggressive comeback attempt.
 
Level 24
Joined
Jun 26, 2020
Messages
1,853
You were looking for a way to make Wind Walk not turn your unit invisible, but still allow it to pass through units, and not be removed on attack. This is exactly what the method in my previous reply achieves. And if this is not what you wanted, you could try explaining what it is instead of posting a passive aggressive comeback attempt.
I said I already did that, but the problem is that can be stopped by casting a spell, so need other method to do the intangibility of the wind walk (I think I should say "created" instead of "create").
 
Level 5
Joined
Jul 31, 2020
Messages
103
I said I already did that, but the problem is that can be stopped by casting a spell, so need other method to do the intangibility of the wind walk (I think I should say "created" instead of "create").

I see. You don't want to imitate the behaviour of having no collision with only units, but retaining it with other objects and cliffs. It's sort of possible to do, but takes an extremely large amount of time, effort, and it will still be far from seamless (it's basically just bad). You definitely want to stick with the Wind Walk method.

As for retaining the effect of the ability after casting something, that's doable. It's going to have one side effect which you might or might not like.
  • Keep track of the duration of your Wind Walk-based ability in a variable.
  • Keep track of its cooldown.
  • Have a periodic check running to see if the buff got removed prematurely by another ability being cast.
  • If this happens, finish the cooldown of Wind Walk, set its mana cost to 0, make the unit cast it.
  • Immediately set the mana cost back to what it should be, and start the ability's cooldown over as many seconds as there was left, since you're keeping track of that too.
The side effect is only visual; the cooldown graphic (that light blue tint over the button) will appear as if Wind Walk's cooldown just started from its full duration.
 
Level 24
Joined
Jun 26, 2020
Messages
1,853
I see. You don't want to imitate the behaviour of having no collision with only units, but retaining it with other objects and cliffs. It's sort of possible to do, but takes an extremely large amount of time, effort, and it will still be far from seamless (it's basically just bad). You definitely want to stick with the Wind Walk method.

As for retaining the effect of the ability after casting something, that's doable. It's going to have one side effect which you might or might not like.
  • Keep track of the duration of your Wind Walk-based ability in a variable.
  • Keep track of its cooldown.
  • Have a periodic check running to see if the buff got removed prematurely by another ability being cast.
  • If this happens, finish the cooldown of Wind Walk, set its mana cost to 0, make the unit cast it.
  • Immediately set the mana cost back to what it should be, and start the ability's cooldown over as many seconds as there was left, since you're keeping track of that too.
The side effect is only visual; the cooldown graphic (that light blue tint over the button) will appear as if Wind Walk's cooldown just started from its full duration.
Ok, sadly that looks like a solution for recent versions, and I make my map in 1.26, still thanks.
 
Level 24
Joined
Jun 26, 2020
Messages
1,853
I tried something like this:
  • Pseudo Wind Walk
    • Events
      • Time - Every 0.01 seconds of game time
    • Conditions
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • ("Unit" has buff "Wind walk") Equal to True
        • Then - Actions
          • Set Temp_Loc = (Position of "Unit")
          • Set Temp_Group= (Units within 128.00 of Temp_Loc matching ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) is An air unit) Eeual to False) and ((Matching unit) Not Equal to "Unit"))))
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Temp_Group is empty) Equal to False
            • Then - Actions
              • Unit - Turn collision for "Unit" Off
            • Else - Actions
              • Unit - Turn collision for "Unit" On
          • Custom script: call DestroyGroup(udg_Temp_Group)
          • Custom script: call RemoveLocation(udg_Temp_Loc)
        • Else - Actions
But it can be bugged.
Edit: I think 112 is a ideal range
 
Last edited:
Level 24
Joined
Jun 26, 2020
Messages
1,853
Creating and destroying a unit group every 0.01 seconds is REALLY bad. Increase the periodic timer and create a group on initialization, where you just add and remove units
Question: Is remove locations equal to heavy to destroy groups? Beacause if thats the plan I have to compare distances for every unit in that group to do what you said and for that I have to use points.
And It is not like that will always on, just only for the duration for all the casters.
 
Level 24
Joined
Jun 26, 2020
Messages
1,853
It does make perfectly sense, you just didnt understand or read.

You have to create one group on map initialization, and add/remove units periodically
Question, how do you think can I add and remove units of that group? better, how do you think I reffer to that units? because in "Add <<Unit>> to <<Group>>" to reffer to that unit I have to use "Add (Random unit from (Units in Range of...)) to <<Group>>", or what? Have I to create to group for all the units in the map and then compare distances and that means I have to compare distances for all the units in the map (and that means I have to use points) and that's not efficient and that group can vary, so it's not an option.

So what?, Did I miss something?
 
Level 17
Joined
Mar 21, 2011
Messages
1,597
I think the parameters say it all.
JASS:
group whichGroup // the group you want to manipulate
real x // x coordinate of your point
real y // y coordinate of your point
real radius // the distance
boolexpr filter // conditions
Personally, i'd set no filter and set conditions inside the loop
 
Status
Not open for further replies.
Top