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

Mass Tele

Status
Not open for further replies.
Oh right, sorry, ok, I made a custom Mass Teleport for you:
  • Melee Initialization
    • Events
      • Map initialization
    • Conditions
    • Actions
      • -------- ------------ --------
      • Custom script: set udg_Hash = InitHashtable()
      • -------- ------------ --------
      • -------- The area of effect: how close units will be picked to be teleported. --------
      • Set Range = 700.00
      • -------- ChannelingTime defines after how long the teleport will trigger. --------
      • Set ChannelingTime = 3.00
      • -------- MaximumUnits defines how many units can be teleported. --------
      • Set MaximumUnits = 14
      • -------- ------------ --------
  • Mass Teleport
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Mass Teleport
    • Actions
      • Special Effect - Create a special effect attached to the origin of (Triggering unit) using Abilities\Spells\Human\MassTeleport\MassTeleportTo.mdl
      • Hashtable - Save Handle Of(Last created special effect) as (Key sfx) of (Key (Triggering unit)) in Hash
      • Hashtable - Save ChannelingTime as (Key time) of (Key (Triggering unit)) in Hash
      • Hashtable - Save MaximumUnits as (Key count) of (Key (Triggering unit)) in Hash
      • Hashtable - Save Handle Of(Target unit of ability being cast) as (Key target) of (Key (Triggering unit)) in Hash
      • Special Effect - Create a special effect attached to the origin of (Target unit of ability being cast) using Abilities\Spells\Human\MassTeleport\MassTeleportTo.mdl
      • Hashtable - Save Handle Of(Last created special effect) as (Key sfx1) of (Key (Triggering unit)) in Hash
      • Unit Group - Add (Triggering unit) to TPGroup
      • Trigger - Turn on Mass Teleport 1 <gen>
  • Mass Teleport 1
    • Events
      • Time - Every 1.00 seconds of game time
    • Conditions
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (TPGroup is empty) Equal to False
        • Then - Actions
          • Unit Group - Pick every unit in TPGroup and do (Actions)
            • Loop - Actions
              • Set TimeCount = (Load (Key time) of (Key (Picked unit)) from Hash)
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • TimeCount Greater than 0.00
                • Then - Actions
                  • Hashtable - Save (TimeCount - 1.00) as (Key time) of (Key (Picked unit)) in Hash
                • Else - Actions
                  • Unit Group - Remove (Picked unit) from TPGroup
                  • Special Effect - Destroy (Load (Key sfx) of (Key (Picked unit)) in Hash)
                  • Special Effect - Destroy (Load (Key sfx1) of (Key (Picked unit)) in Hash)
                  • Set TPTarget = (Load (Key target) of (Key (Picked unit)) in Hash)
                  • Set Points[1] = (Position of (Picked unit))
                  • Set Points[2] = (Position of TPTarget)
                  • Special Effect - Create a special effect attached to the origin of (Picked unit) using Abilities\Spells\Human\MassTeleport\MassTeleportCaster.mdl
                  • Special Effect - Destroy (Last created special effect)
                  • Set TempGroup1 = (Units within Range of Points[1] matching ((((Matching unit) is A structure) Equal to False) and (((((Matching unit) is alive) Equal to True) and ((Matching unit) Not equal to (Picked unit))) and (((Matching unit) belongs to an ally of (Owner of (Picked unit)
                  • Set TempGroup2 = (Random (Load (Key count) of (Key (Picked unit)) from Hash) units from TempGroup1)
                  • Unit Group - Pick every unit in TempGroup2 and do (Actions)
                    • Loop - Actions
                      • Special Effect - Create a special effect attached to the origin of (Picked unit) using Abilities\Spells\Human\MassTeleport\MassTeleportTarget.mdl
                      • Special Effect - Destroy (Last created special effect)
                      • Unit - Move (Picked unit) instantly to Points[2]
                  • Unit - Move (Picked unit) instantly to Points[2]
                  • Hashtable - Clear all child hashtables of child (Key (Picked unit)) in Hash
                  • Custom script: call RemoveLocation (udg_Points[1])
                  • Custom script: call RemoveLocation (udg_Points[2])
                  • Custom script: call DestroyGroup (udg_TempGroup1)
                  • Custom script: call DestroyGroup (udg_TempGroup2)
        • Else - Actions
          • Trigger - Turn off (This trigger)
  • Mass Teleport 2
    • Events
      • Unit - A unit Is issued an order targeting an object
      • Unit - A unit Is issued an order targeting a point
      • Unit - A unit Is issued an order with no target
    • Conditions
      • ((Triggering unit) is in TPGroup) Equal to True
    • Actions
      • Unit Group - Remove (Triggering unit) from TPGroup
      • Special Effect - Destroy (Load (Key sfx) of (Key (Triggering unit)) in Hash)
      • Special Effect - Destroy (Load (Key sfx1) of (Key (Triggering unit)) in Hash)
      • Hashtable - Clear all child hashtables of child (Key (Triggering unit)) in Hash
NOTE: If you change the channeling time in the first trigger, make sure you change the Data - Follow Through Time in the custom Mass Teleport ability too, to the same value.
 

Attachments

  • Custom Mass Teleport.w3x
    23.2 KB · Views: 40
Status
Not open for further replies.
Top