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

[Spell] How can I apply this slow-debuff more reliable?

Status
Not open for further replies.
Level 12
Joined
May 16, 2020
Messages
660
Hi guys,

The following trigger should pick all units who have a specific debuff and then create a dummy to cast Frost Nova on them. However, for some reason the game doesn't pick every unit who has the debuff...

The trigger is based around two spells: One is Frostbreath (the ability that starts the trigger) and the other Breath of Fire (dummy ability to deal 2x the initial damage and add some cool effect). Once the spell enters the later stages, the game should pick units with the damage-debuff from Frostbreath, but doesn't work. Can anyone help me understand why and how I can make the slow from Frost Nova more reliable?

Attached the map from where I took the spell - it's called Dual Breath. Also attached 2 images which show that, although two units are affected by the Frostbreath debuff, only one of them has the slow from Frost Nova.

  • Dual Breath
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Dual Breath
    • Actions
      • Set VariableSet DB_Caster = (Triggering unit)
      • Set VariableSet DB_CasterPos = (Position of DB_Caster)
      • Unit - Create 1 Dummy for (Owner of DB_Caster) at DB_CasterPos facing Default building facing degrees
      • Unit - Add Dual Breath Fire to (Last created unit)
      • Unit - Set level of Dual Breath Fire for (Last created unit) to (Level of Dual Breath for DB_Caster)
      • Set VariableSet DB_TargetPos = (Target point of ability being cast)
      • Unit - Order (Last created unit) to Neutral Brewmaster - Breath Of Fire DB_TargetPos
      • Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
      • Wait 0.27 seconds
      • Set VariableSet DB_Group = (Units in (Playable map area) matching (((Matching unit) has buff Dual Breath ) Equal to True))
      • Unit Group - Pick every unit in DB_Group and do (Actions)
        • Loop - Actions
          • Unit - Create 1 Dummy for (Owner of DB_Caster) at DB_CasterPos facing Default building facing degrees
          • Unit - Add Dual Breath Slow to (Last created unit)
          • Unit - Order (Last created unit) to Undead Lich - Frost Nova (Picked unit)
          • Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
      • Custom script: call RemoveLocation (udg_DB_CasterPos)
      • Custom script: call DestroyGroup (udg_DB_Group)
Thanks!
 

Attachments

  • Jakiro - DotA Spellpack (by cr4xzZz) Dual Breath, Shadow Word, Vacuum, Dream Coil.w3x
    81.2 KB · Views: 25
  • WC3ScrnShot_061020_233708_001.png
    WC3ScrnShot_061020_233708_001.png
    6.6 MB · Views: 25
  • WC3ScrnShot_061020_233709_001.png
    WC3ScrnShot_061020_233709_001.png
    6.6 MB · Views: 21
Level 12
Joined
May 16, 2020
Messages
660
Definitely the dummy being used to cast the slow, lemme just find what stat is causing the issue.

Edit:
Movement speed on the Footman Dummy is 270, this oddly enough causes it to work if set to zero.

Mmm doesn't seem to work for me unfortunately. I still see some units with the debuff, but not slowed. I adjusted the map a bit for easier testing, but you can see I put the movement speed to zero.
 

Attachments

  • Jakiro - DotA Spellpack (by cr4xzZz) Dual Breath, Shadow Word, Vacuum, Dream Coil.w3x
    61.1 KB · Views: 27
Level 24
Joined
Feb 9, 2009
Messages
1,787
Ah I forgot the other step, try gutting all the jass crap from it, I couldn't start it without removing all that junk.
Leave only the triggers for Dual Breath, lastly what version of warcraft 3 are you using, I can't seem to open the new map you've posted.
 
Level 12
Joined
May 16, 2020
Messages
660
Yeah I did remove the JASS stuff. I'm using Reforged, latest patch.

What I did in the map which is attached to my last post:
1) Changed movement speed of the dummy unit to 0
2) Removed the Jass stuff
3) Cleared out some weather effects, so one can actually see something


With this I'm still getting units though who sometimes have the Frostbreath debuff, but not the Frost Nova debuff. Did you really manage to consistently apply the Frost Nova debuff just with lowering the Movement Speed to 0? It's so weird, I never had this issue before...
 
Level 24
Joined
Feb 9, 2009
Messages
1,787
I'm using the patch prior to reforged, either that or I'm still missing something, here's what I've got (slowed units have silenced buff to easily see it working.):

p.s. I also changed the wait to .5 as some units were still not getting hit near the edges of the cast.
 

Attachments

  • Jakiro - DotA Spellpack (by cr4xzZz) Dual Breath, Shadow Word, Vacuum, Dream Coil.w3x
    37.5 KB · Views: 24
Level 12
Joined
May 16, 2020
Messages
660
I'm using the patch prior to reforged, either that or I'm still missing something, here's what I've got (slowed units have silenced buff to easily see it working.):

p.s. I also changed the wait to .5 as some units were still not getting hit near the edges of the cast.

Thanks a lot and sorry for the late reply. It does work better indeed, but not 100% yet. Attached an image of a unit still having Frostbreath but not the slow (silence effect). Still not sure what is causing it... seems really not logical.

I btw adjusted the trigger a bit, because I don't think everything in there is necessary (for example why create a dummy in the middle of the map? Or why delete DB_Group twice).
  • Dual Breath
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Dual Breath
    • Actions
      • Set VariableSet DB_Caster = (Triggering unit)
      • Set VariableSet DB_CasterPos = (Position of DB_Caster)
      • Unit - Create 1 Dummy for (Owner of DB_Caster) at DB_CasterPos facing Default building facing degrees
      • Unit - Add Dual Breath Fire to (Last created unit)
      • Unit - Set level of Dual Breath Fire for (Last created unit) to (Level of Dual Breath for DB_Caster)
      • Set VariableSet DB_TargetPos = (Target point of ability being cast)
      • Unit - Order (Last created unit) to Neutral Brewmaster - Breath Of Fire DB_TargetPos
      • Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
      • Wait 0.50 seconds
      • Set VariableSet DB_Group = (Units in (Playable map area) matching (((Matching unit) has buff Dual Breath ) Equal to True))
      • Unit Group - Pick every unit in DB_Group and do (Actions)
        • Loop - Actions
          • Unit - Create 1 Dummy for (Owner of DB_Caster) at DB_CasterPos facing Default building facing degrees
          • Unit - Add Dual Breath Slow to (Last created unit)
          • Unit - Order (Last created unit) to Undead Lich - Frost Nova (Picked unit)
          • Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
      • Custom script: call RemoveLocation (udg_DB_CasterPos)
      • Custom script: call DestroyGroup (udg_DB_Group)
 

Attachments

  • WC3ScrnShot_061320_000224_001.png
    WC3ScrnShot_061320_000224_001.png
    5.7 MB · Views: 24
Level 4
Joined
Jun 10, 2019
Messages
69
I actually just posted a similar question, as I didn't see this post until now (should I delete mine?) - I'm also very interested in a solution, and I've also tried the things mentioned in this thread to avail.

I really feel like there should be an "Add Specific Buff" action in the world editor.

Any help would be greatly appreciated! Thanks!

Edit: I may have gotten it working - I found an old thread that suggested setting your dummy unit's "Art - Animation - Cast Backswing" and "Art - Animation - Cast Point" to zero.

I'm not sure what they do to be honest, but it seems to at least have a much higher success rate! :D
 
Last edited:
Level 24
Joined
Feb 9, 2009
Messages
1,787
Yes, the ring is just for testing to visualize the hit radius, however I'm still missing some key variables for what "Final Area" & "Area of effect" really mean in the data fields, since matching stats for mine and the vanilla spell don't match, units don't get hit in the same area as vanilla bof.

Simply compare the number of units hit in this vanilla bof's case:
https://www.hiveworkshop.com/attachments/breath-of-fire-gif.357410/
 
Status
Not open for further replies.
Top