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

Need some Help with Elune mechanic.

Status
Not open for further replies.
Level 3
Joined
Jul 18, 2013
Messages
32
Hello Hive!

Im a amateur with the editor who is trying to add a mechanic to a map that I love in WC3.

I want to make an ELune mechanic that works in the sense that Elune is an inaccesible unit sitting in a corner of the map and regenrating Mana slowly. The only way Elune can interact with the world is via 3-4 buff spells like Big bad voodo, the ability to heal units, reveal and possibly the ability to spawn a few primal Moonkins to aid the Night Elves.

Now for the catch. Since Elune's High Priest is Tyrande,I want all abilties to go through her. The big bad voodo ELune casts? Should make all units in a region around Tyrande (And her) invulnerable for 10 sec. The heal? Should be like a scoll of healing near Tyrande.

The reveal and spawn Moonkins is alot more simple for a noob like me to make but the rest is abit tricky trigger wise.

Can one of the brave souls of Hive help me to trigger/do it?
 
Level 26
Joined
Sep 26, 2009
Messages
2,427
I would do it through a dummy unit (that's an invisible unit (as in it has no model set) with locust ability, which makes it also invulnerable and untargetable, among other things that it has to have set), make it cast Big Bad Voodoo and through a trigger which fires every 0,03 seconds, move that unit to position of Tyrande with custom script "set unitX" and "set unitY", since these move unit,but do not interrupt its current order (in other words it won't stop channeling the spell).
Similarly to AoE heal.
Or in case of AoE heal, you could just trigger the whole thing, since spells like these are easy to trigger.



Edit
Something like this:
  • Big Bad Voodoo
    • Events
      • Unit - Elune Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Big Bad Voodoo (Elune Version)
    • Actions
      • Set loc = (Position of Tyrande)
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • Elune_Dummy Equal to No unit
        • Then - Actions
          • Unit - Create 1 Generic_Dummy_Unit for (Triggering player) at loc facing Default building facing degrees
          • Set Elune_Dummy = (Last created unit)
        • Else - Actions
          • Unit - Move Elune_Dummy instantly to loc
      • Custom script: call RemoveLocation(udg_loc)
      • Unit - Add Big Bad Voodoo to Elune_Dummy
      • Unit - Order Elune_Dummy to Orc Shadow Hunter - Big Bad Voodoo
      • Trigger - Turn on Big Bad Loop <gen>
This will create the dummy if it has not been created yet, else it will use the already created dummy unit, move it to Tyrande and make it cast Big Bad Voodoo

  • Big Bad Loop
    • Events
      • Time - Every 0.03 seconds of game time
    • Conditions
    • Actions
      • Set loc = (Position of Tyrande)
      • Custom script: call SetUnitX(udg_Elune_Dummy, GetLocationX(udg_loc))
      • Custom script: call SetUnitY(udg_Elune_Dummy, GetLocationY(udg_loc))
      • Custom script: call RemoveLocation(udg_loc)
      • Custom script: set udg_loc = null
This just periodically moves the dummy unit to position of Tyrande, without interrupting Big Bad Voodoo

  • Big Bad Stop
    • Events
      • Unit - A unit Stops casting an ability
    • Conditions
      • (Triggering unit) Equal to Elune_Dummy
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Ability being cast) Equal to Big Bad Voodoo
        • Then - Actions
          • Trigger - Turn off Big Bad Loop <gen>
        • Else - Actions
      • Unit - Remove (Ability being cast) from Elune_Dummy
This trigger will remove ability, that the dummy finished casting, and if it stopped channeling Big Bad Voodoo, it will also turn off Big Bad Loop trigger

loc = point variable
Elune_Dummy = unit variable
 
Last edited:
Status
Not open for further replies.
Top