Random regions teleport

Konstantin011

New Member
Reaction score
0
Hi all :)
So the idea is i have a computer player that i dont want to be destroyed during the game, so i hide his producing structure that will send forces on a player. that barracks is beyond reach without flying units. so what i need is to give order to units that will be attacking the player, to step in a small area also where their producing structure is and then the script will move units (instantly) to a one of the few random points on the map. i done some of the scripting, but its obviously wrong so i dont know how to make it work properly .
 

Attachments

  • 1.png
    1.png
    19.6 KB · Views: 331
  • 2.png
    2.png
    12.4 KB · Views: 320

Accname

2D-Graphics enthusiast
Reaction score
1,462
I think what you are looking for is a trigger like this:
Trigger:
  • TeleportUnits
    • Events
      • Unit - A unit enters SomeArea <gen>
    • Conditions
    • Actions
      • Set Temp_Point = (Center of SomeOtherArea <gen>)
      • Unit - Move (Triggering unit) instantly to Temp_Point
      • Custom script: call RemoveLocation (udg_Temp_Point)

If you want a random location I would suggest you save all areas, where units are supposed to be teleported to, into an array, then you set some integer variable to a random value between 0 and the number of areas you got.

For example:
Trigger:
  • TeleportUnits
    • Events
      • Unit - A unit enters SomeArea <gen>
    • Conditions
    • Actions
      • Set Temp_Point = (Random point in Destination_Areas[(Random integer number between 0 and Destination_Count)])
      • Unit - Move (Triggering unit) instantly to Temp_Point
      • Custom script: call RemoveLocation (udg_Temp_Point)

Trigger:
  • Setup
    • Events
      • Map initialization
    • Conditions
    • Actions
      • Set Destination_Areas[0] = SomeArea 000 <gen>
      • Set Destination_Areas[1] = SomeArea 001 <gen>
      • Set Destination_Areas[2] = SomeArea 002 <gen>
      • Set Destination_Areas[3] = SomeArea 003 <gen>
      • Set Destination_Count = 4
 

Konstantin011

New Member
Reaction score
0
thank you for the fast response, and it works like charm :) tho in some occasions he teleports a unit at the center of the map for some reason. and one more thing attached to this, is lets say can it be done to make some birth animation at that point ex. like zombies in wc3 original campaign to attach some effects with delay birth u know .
 

Accname

2D-Graphics enthusiast
Reaction score
1,462
Oh, my bad, I had remembered the Math.random function of wc3 incorrectly.
What you need to do is to set the variable "Destination_Count" to the number of areas minus one.
So in my example it would be 3 because it uses the areas 0, 1, 2, 3.

For the effect you simply add a special effect at the location:
Trigger:
  • Actions
    • Special Effect - Create a special effect at Temp_Point using Abilities\Spells\Undead\RaiseSkeletonWarrior\RaiseSkeleton.mdl
    • Special Effect - Destroy (Last created special effect)

Add these lines to the "TeleportUnits" trigger above.
 

Octavia63

Member
Reaction score
0
  • Set Temp_Point = (Random point in Destination_Areas[(Random integer number between 0 and Destination_Count)])
Ive been trying to recreate these triggers but I can't see how you got this line of code 2 work. I have been able to do have the rest though.

Set Temp_Point = (Random point in Destination_Areas)

the only option I see is the hash table but it says load :/
nvm figured out what I was doing wrong
 
Last edited:
General chit-chat
Help Users
  • No one is chatting at the moment.

      The Helper Discord

      Members online

      No members online now.

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top