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

Problem with AoE Slowing Effect

Status
Not open for further replies.
Level 2
Joined
Aug 17, 2007
Messages
6
Hello

I'm doing a WoW Emulator and I'm working on Mage spells right now
I have problem with adding the chill(slow) effect to Blizzard I have such trigger:

Blizzard Gain

Events
Unit - A unit Begins casting an ability

Conditions
(Ability being cast) Equal to Blizzard [Mage]

Actions
Unit Group - Pick every unit in (Units in (Playable map area) matching ((Picked unit) Equal to (Target unit of ability being cast))) and do (Actions)
Loop - Actions
Unit Group - Add (Picked unit) to Spell_Blizzard_UnitGroup
Unit - Set (Picked unit) movement speed to 0.35
Animation - Change (Picked unit)'s vertex coloring to (50.00%, 50.00%, 100.00%) with 0.00% transparency
Wait 1.00 seconds

<<There's an if here which reruns the trigger if the caster still casts the Blizzard spell>>

End of trigger

My problem is with the red colored part part. As you can see the trigger is supposed to run if blizzard is cast and runs as long as blizzard is cast (works) and then find every unit on the map which has the Blizzard buff which the spell gives (Here I don't know, cuz it's the first time I work with AoE spell buff and in the game, the units actually have the buff on them, but no units seem to be picked by this trigger) and then there are some actions done for these units.

So my problem is : How do I pick each and every unit that has a certain buff on them? Cuz this doesn't work

If this is of any help the blizzard spell has :
Stat - Buffs = Blizzard [Mage]
Duration - Hero = 1.50
Duration - Normal = 2.50

I see no reasons to give any other spell details.
 
You are doing everything wrong:
Here is the correct trigger:

Event
A Unit Starts the EFFECT of an ability
Conditions
Ability being cast equal to Blizzard
Action
Pick every unit within (200 range of (target point of ability being cast)) and do multiple actions:
Create a Dummy Unit at position of picked unit
Add 2 seconds expiration timer to last created unit
Add frost dummy nova to last created unit
Set level of frost dummy nova for Last created unit to Level of blizzard for Casting unit
Order last created unit to Undead Linch - Forst nova Picked unit

The end =)

To do what you want you must use a dummy unit. You must also create a dummy spell for your unit with no mana cost.
This shows how to make an AoE MUI spellwith 3 or more levels.
You can change the damage and effects of the dummy frost nova.
To change the movement speed and attack rate, together with the blue effect, i suggest the ice slow, that frost nova has.

If you don't want that, well, here is another suggestion:

A Unit Starts the EFFECT of an ability
Conditions
Ability being cast equal to Blizzard
Action
Pick every unit within (200 range of (target point of ability being cast)) and do multiple actions:
Create a Dummy Unit at position of picked unit
Add 2 seconds expiration timer to last created unit
Add frost dummy nova to last created unit
Set level of frost dummy nova for Last created unit to Level of blizzard for Casting unit
Order last created unit to Undead Linch - Forst nova Picked unit
Animation - Change (Picked unit)'s vertex coloring to (50.00%, 50.00%, 100.00%) with 0.00% transparency

The end =)

Using the Event i suggest is highly recommended. The event you use starts the trigger before the caster starts doing the spell. This way, the trigger will only be activated when the caster looses the mana and the spell's cold down are fired.

I also suggest you to see the Daelin's tutorial about Making GUI spells at this website: http://www.hiveworkshop.com/forums/showthread.php?t=7334

Hope i helped, good luck with your spell.
Give credit =P lol (kiding, but you can if you want to)
 
Level 2
Joined
Aug 17, 2007
Messages
6
Edit:

Ok everything works fine:)

I didn't use the dummy unit tho:p

Blizzard Gain

Events
Unit - A unit Starts the effect of an ability

Conditions

(Ability being cast) Equal to Blizzard [Mage]

Actions
Unit Group - Pick every unit in (Units within 300.00 of (Target point of ability being cast)) and do (Actions)
Loop - Actions
Unit Group - Add (Picked unit) to Spell_Blizzard_UnitGroup
Unit - Set (Picked unit) movement speed to (0.35 x (Default movement speed of (Triggering unit)))
Animation - Change (Picked unit)'s vertex coloring to (50.00%, 50.00%, 100.00%) with 0.00% transparency
Wait 1.00 seconds

<<If for rerunning trigger if spell is still being cast>>

End of Trigger

And there's another trigger for unfreezing units who loose blizzard buff:
Blizzard Loose

Events
Map initialization
Conditions
Actions
Unit Group - Pick every unit in Spell_Blizzard_UnitGroup and do (Actions)
Loop - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
((Picked unit) has buff Blizzard [Mage]) Equal to False
Then - Actions
Unit - Set (Picked unit) movement speed to (Default movement speed of (Picked unit))
Animation - Change (Picked unit)'s vertex coloring to (100.00%, 100.00%, 100.00%) with 0.00% transparency
Unit Group - Remove (Picked unit) from Spell_Blizzard_UnitGroup
Else - Actions
Wait 1.00 seconds
Trigger - Run (This trigger) (checking conditions)

And it works now :)

But I wander... I know that checking if the unit has the Blizzard Buff works cuz the second trigger for unfreezing works, so why won't it work for me in my original trigger? The one where I pick only units who match condition : have buff?
 
Last edited:
Good work, still "Target Unit Of Ability Being Cast" works fine in every spell.
I also think you should change the event of the second trigger to Timer - Every 1 seconds. This way every 1 seconds the trigger will check if the unit is in the group and it will help you removing it. Another thing is that your spell is not MUI and that you should nullify your variables in order to avoid memory leaks in the game.
 
Status
Not open for further replies.
Top