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

[General] Aura flickering

Status
Not open for further replies.
Level 8
Joined
Mar 30, 2013
Messages
180
So i have a unit that casts a spell (Bladedance) as base, 0 duration etc, and it adds a spellbook with 2 auras, evasion and trueshot to him for the duration, the evasion works perfectly fine however the trueshot appears for about .1 second, disappears and then appears again for 2 seconds AFTER i removed the spellbook.

I've tried many things, removing all other passive abilites from the hero, removing the evasion, changing the base ability to no avail.

This is also a problem with another aura i have, say every time my unit hits the target it will decrease the armor of the target by -1, this is done by initially adding the aura to the target and then leveling it every time it gets hit, it's in a spellbook too of course.

So i really need help, always had conflicts with auras in the past, if anyone could help and give me further pointers on aura usage just comment!

Please and Thanks ~10th

(If you need any further info just ask and i'll post asap)
 
Level 8
Joined
Mar 30, 2013
Messages
180
aura effect of trueshot get fastly removed on apply, and only returns when you remove aura itself?
did you try another base (fan of knives) for spell? bladedance have many bad sides
Yes like i said i changed the source spell to another to no avail

Further testing shows that this happens when the unit casts ANY SPELL, i put the aura on the unit by default and it worked fine, but the moment i casted a spell with him it glitched out, maybe something in the unit settings...
 
Level 19
Joined
Dec 12, 2010
Messages
2,069
if you want it to be single unit only set targets as self, vuln, invul, and you're done.
dont forget that aura always applies as level 1 and get re-checked few seconds later. so if you wanna give +100 you'll end up with +40 for 2-4 seconds and only then +100. its better to use few auras instead of single due to this reason.
 
Level 8
Joined
Mar 30, 2013
Messages
180
if you want it to be single unit only set targets as self, vuln, invul, and you're done.
dont forget that aura always applies as level 1 and get re-checked few seconds later. so if you wanna give +100 you'll end up with +40 for 2-4 seconds and only then +100. its better to use few auras instead of single due to this reason.
Okay, i'll make multiple auras for the different levels then, still have the problem though it still occurs at level 1

I wasn't intending to make this a triggering help request since it's in the wrong section but i'll have to, further testing shows that if i disable the trigger linking to the spell, meaning the spell is just cast vanilla, nothing happens and the aura remains, which means something is making the aura glitch.

IStart
Events
Unit - A unit Starts the effect of an ability
Conditions
(Ability being cast) Equal to Ippo_Q
Actions
Set Ippo = (Triggering unit)
Set IppoPoints[1] = (Position of Ippo)
Set IppoPoints[2] = (Target point of ability being cast)
Set IppoInt[1] = 0
Unit - Create 1 Dust for (Owner of Ippo) at IppoPoints[1] facing IppoPoints[2]
Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
Unit - Turn collision for Ippo Off
Unit Group - Add Ippo to ChannelGroup
Set AnimateUnit = Ippo
Custom script: call SetUnitAnimationByIndex(udg_AnimateUnit,5)
Trigger - Turn on SI <gen>

SI
Events
Time - Every 0.03 seconds of game time
Conditions
Actions
Set IppoInt[1] = (IppoInt[1] + 1)
Set IppoPoints[3] = (Position of Ippo)
Set IppoPoints[4] = (IppoPoints[3] offset by 40.00 towards (Angle from IppoPoints[1] to IppoPoints[2]) degrees)
Unit - Create 1 IppoDummy for (Owner of Ippo) at IppoPoints[3] facing IppoPoints[4]
Unit - Add a 0.20 second Generic expiration timer to (Last created unit)
Set AnimateUnit = (Last created unit)
Custom script: call SetUnitAnimationByIndex(udg_AnimateUnit,5)
Animation - Change (Last created unit)'s animation speed to 200.00% of its original speed
Animation - Change (Last created unit)'s vertex coloring to (100.00%, 100.00%, 100.00%) with 70.00% transparency
Set Group_Temp = (Units within 30.00 of IppoPoints[4] matching ((((Matching unit) belongs to an enemy of (Owner of Ippo)) Equal to True) and ((((Matching unit) is A Hero) Equal to True) and (((Matching unit) is alive) Equal to True))))
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Number of units in Group_Temp) Greater than 0
Then - Actions
Unit - Create 1 Dust for (Owner of Ippo) at IppoPoints[4] facing IppoPoints[1]
Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
Special Effect - Create a special effect at IppoPoints[4] using Abilities\Spells\Human\ThunderClap\ThunderClapCaster.mdl
Special Effect - Destroy (Last created special effect)
Unit - Cause Ippo to damage (Picked unit), dealing (80.00 x (Real((Level of Ippo_Q for Ippo)))) damage of attack type Hero and damage type Normal
Unit - Create 1 Ippo_Stun for (Owner of Ippo) at IppoPoints[3] facing IppoPoints[4]
Unit - Set level of IppoStun (Neutral Hostile) for (Last created unit) to (Level of Ippo_Q for Ippo)
Unit - Add a 0.50 second Generic expiration timer to (Last created unit)
Unit Group - Pick every unit in (Random 1 units from Group_Temp) and do (Actions)
Loop - Actions
Unit - Order (Last created unit) to Neutral - Firebolt (Picked unit)
Custom script: call RemoveLocation(udg_IppoPoints[2])
Custom script: call RemoveLocation(udg_IppoPoints[1])
Unit Group - Remove Ippo from ChannelGroup
Unit - Turn collision for Ippo On
Animation - Reset Ippo's animation
Trigger - Turn off (This trigger)
Else - Actions
Unit - Move Ippo instantly to IppoPoints[4]
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
Or - Any (Conditions) are true
Conditions
(Distance between IppoPoints[4] and IppoPoints[2]) Less than 20.00
(Ippo is in ChannelGroup) Equal to False
Then - Actions
Unit - Create 1 Dust for (Owner of Ippo) at IppoPoints[4] facing IppoPoints[1]
Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
Custom script: call RemoveLocation(udg_IppoPoints[2])
Custom script: call RemoveLocation(udg_IppoPoints[1])
Unit Group - Remove Ippo from ChannelGroup
Unit - Turn collision for Ippo On
Animation - Reset Ippo's animation
Trigger - Turn off (This trigger)
Else - Actions
Custom script: call RemoveLocation(udg_IppoPoints[4])
Custom script: call RemoveLocation(udg_IppoPoints[3])
 
Last edited:
Level 10
Joined
Sep 16, 2016
Messages
269
Did you mean Bladestorm? I don't recall any ability named Bladedance in WE. IIRC, aura check every 0.5s stays for 2s even after. It seems the problems is hard-coded. I dont recommend this but removing specific buff might help.

Since your auras in only 1 - affected - target, why don't you just base them on item bonus abilities like Item armor bonus and Item Damage Bonus?
 
Level 8
Joined
Mar 30, 2013
Messages
180
Okay problem sorta solved
Not sure if this glitch is known or a reason for it is out there already, but spawning the dummy units for the player causes interference in the aura, however spawning them for neutral hostile makes the auras work 100% fine, figures.

@DracoL1ch
Thanks for the help anyway i'll use the suggestion about having multiple abilities instead of levels

@Athur12A2 Yeah i'll probably do that for future spells
 
Last edited:
Level 11
Joined
Jun 2, 2004
Messages
849
Yeah that's known. Auras are recalculated whenever an allied unit spawns, and this has a bit of a delay. It's most noticeable in maps with constant spawns, but it can even be seen in melee when a new unit is trained. Mostly negligible except when spawning allied dummy units at the same time, as you've just experienced.
 
Level 8
Joined
Mar 30, 2013
Messages
180
Yeah that's known. Auras are recalculated whenever an allied unit spawns, and this has a bit of a delay. It's most noticeable in maps with constant spawns, but it can even be seen in melee when a new unit is trained. Mostly negligible except when spawning allied dummy units at the same time, as you've just experienced.
Ah I see thanks I'll keep that in mind
 
Level 13
Joined
May 10, 2009
Messages
868
Since you only need to add damage to a single unit, and it's flat bonus. Why not use the Item damage bonus ability instead? It doesn't have any delay when adding/removing it.

EDIT: Oh well, I just read what Athur said. Never mind.
 
Status
Not open for further replies.
Top