[SD/Modeling] Looking for a basic AOE contracting/inward pull effect

Level 5
Joined
Mar 18, 2023
Messages
52
Hello Hiveworkshop folks. I'm looking something like this but having it be the opposite. I want it to start in a large circle that contracts inward. I don't mind it being basic and looking like the exact example I posted, but I do wish its color to be brown or orange if possible. Thank you ahead of time if someone can help me!
 
Level 5
Joined
Mar 18, 2023
Messages
52
Apologies for the disturbance but can you share the triggers? I'm interested too!
Hey there. So I'm just attaching the AOE model to a dummy unit and then using Animation Speed to change how fast it animates. Then I use Expiration Timer to change how long I want it to last for

  • Untitled Trigger 001
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Animate Dead
    • Actions
      • Set VariableSet TempPoint[0] = (Position of (Triggering unit))
      • Unit - Create 1 Orange Contract AOE (Godzilla W) for (Owner of (Triggering unit)) at TempPoint[0] facing Default building facing degrees
      • Animation - Change (Last created unit)'s animation speed to 165.00% of its original speed
      • Unit - Add a 3.40 second Generic expiration timer to (Last created unit)
      • Custom script: call RemoveLocation (udg_TempPoint[0])
 

Uncle

Warcraft Moderator
Level 73
Joined
Aug 10, 2018
Messages
7,866
^ You can also use Special Effects, which is recommended if you care about performance. Gets rid of the overhead that comes with spawning in an entire Unit along with avoiding bloat in the Object Editor. To destroy the effect after a delay (like your expiration timer) you could setup a rather simple system that relies on Waits or Timers if you want exact precision.
 
Level 18
Joined
Dec 20, 2012
Messages
269
Hey there. So I'm just attaching the AOE model to a dummy unit and then using Animation Speed to change how fast it animates. Then I use Expiration Timer to change how long I want it to last for

  • Untitled Trigger 001
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Animate Dead
    • Actions
      • Set VariableSet TempPoint[0] = (Position of (Triggering unit))
      • Unit - Create 1 Orange Contract AOE (Godzilla W) for (Owner of (Triggering unit)) at TempPoint[0] facing Default building facing degrees
      • Animation - Change (Last created unit)'s animation speed to 165.00% of its original speed
      • Unit - Add a 3.40 second Generic expiration timer to (Last created unit)
      • Custom script: call RemoveLocation (udg_TempPoint[0])
Thanks! Also I thought this was a w3x file, not an mdx one. Sorry for the confusion!
 
Level 5
Joined
Mar 18, 2023
Messages
52
^ You can also use Special Effects, which is recommended if you care about performance. Gets rid of the overhead that comes with spawning in an entire Unit along with avoiding bloat in the Object Editor. To destroy the effect after a delay (like your expiration timer) you could setup a rather simple system that relies on Waits or Timers if you want exact precision.
Unfortunately, I didn't know about Special Effects till much later and wasn't able to find the universal dummy.mdx. I exported mine recently from an unprotected map. I do intend on revisting all my dummies and clearing them up, with the exception of a few due to specific mechanics
 

Uncle

Warcraft Moderator
Level 73
Joined
Aug 10, 2018
Messages
7,866
Unfortunately, I didn't know about Special Effects till much later and wasn't able to find the universal dummy.mdx. I exported mine recently from an unprotected map. I do intend on revisting all my dummies and clearing them up, with the exception of a few due to specific mechanics
Another thing about Dummy units that most get wrong - If your Dummy unit doesn't act like a Missile (another obsolete mechanic) then it should be setup as follows: Copy and paste the Locust -> Set Movement Type = None, Speed Base = 0, Attacks Enabled = None, Model = None, Shadow = None.

That allows it to cast spells "instantly", assuming the spell is setup to be requirement-free.

Also, just to clarify on the trigger:
  • Actions
    • Set VariableSet TempPoint[0] = (Position of (Triggering unit))
    • Special Effect - Create a special effect at TempPoint[0] using AOE.mdx
    • Custom script: call RemoveLocation( udg_TempPoint[0] )
    • Special Effect - Set Time Scale of (Last created special effect) to 1.65
    • Set VariableSet SFX_Destroy_After = 1.40
    • Trigger - Run SFX_Destroy_System (ignoring conditions)
The last bit is an example system to handle destroying it, which would either run a Jass function or another trigger that runs some Jass code that detects the (Last created special effect), stores it in a Hashtable along with a Timer, starts the Timer, and Destroys both when the Timer expires.
 
Level 5
Joined
Mar 18, 2023
Messages
52
Another thing about Dummy units that most get wrong - If your Dummy unit doesn't act like a Missile (another obsolete mechanic) then it should be setup as follows: Copy and paste the Locust -> Set Movement Type = None, Speed Base = 0, Attacks Enabled = None, Model = None, Shadow = None.

That allows it to cast spells "instantly", assuming the spell is setup to be requirement-free.

Also, just to clarify on the trigger:
  • Actions
    • Set VariableSet TempPoint[0] = (Position of (Triggering unit))
    • Special Effect - Create a special effect at TempPoint[0] using AOE.mdx
    • Custom script: call RemoveLocation( udg_TempPoint[0] )
    • Special Effect - Set Time Scale of (Last created special effect) to 1.65
    • Set VariableSet SFX_Destroy_After = 1.40
    • Trigger - Run SFX_Destroy_System (ignoring conditions)
The last bit is an example system to handle destroying it, which would either run a Jass function or another trigger that runs some Jass code that detects the (Last created special effect), stores it in a Hashtable along with a Timer, starts the Timer, and Destroys both when the Timer expires.
This going to be bad, but I haven't used any hashtables yet, despite knowing it too :xxd:. My mate already used 1. So far for me, there isn't a need for it (for now), but I know I'll use it in future. For what you posted here, I SSed it and will try it when I can. I'm more motivated for stuff like this since its not as time consuming as having to go back and updating a buncha stuff haha
 
Top