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

Teleporting Trap Spell

Status
Not open for further replies.
Level 8
Joined
Oct 8, 2005
Messages
409
This spell summons a chamber of Ice that is invisible to enemies.

When an enemy accidentaly walks into the chamber, they are instantly teleported to the mighty hero that summoned the chamber.

The base spell for this spell is "Item Place Goblin Land Mine"

The chamber has the spells:
-Locust
-ghost

The map it is going into has 2 teams:
-players 1,3,4,5,6,7
-players 2,8,9,10,11,12

Players 1 and 2 will never use this spell, because they are computers

Why is my spell not working ?

I made it on another map and got the teleporting triggers to work, but then I imported it to the map I was going to use it on and now it does not work anymore.

Set Varibles
  • Ice Chamber Initialization
    • Events
      • Time - Elapsed game time is 5.00 seconds
    • Conditions
    • Actions
      • Set Dypoint[1] = Dummy Dyport 0303 <gen>
      • Set Dypoint[2] = Dummy Dyport 0305 <gen>
      • Set Dypoint[3] = Dummy Dyport 0304 <gen>
      • Set Dypoint[4] = Dummy Dyport 0308 <gen>
      • Set Dypoint[5] = Dummy Dyport 0306 <gen>
      • Set Dypoint[6] = Dummy Dyport 0307 <gen>
      • Set Dypoint[7] = Dummy Dyport 0312 <gen>
      • Set Dypoint[8] = Dummy Dyport 0309 <gen>
      • Set Dypoint[9] = Dummy Dyport 0310 <gen>
      • Set Dypoint[10] = Dummy Dyport 0311 <gen>
      • Set Dypoint[11] = Dummy Dyport 0314 <gen>
      • Set Dypoint[12] = Dummy Dyport 0313 <gen>
      • Set dypoints = (Units in Dypoints <gen>)
      • Unit Group - Pick every unit in dypoints and do (Actions)
        • Loop - Actions
          • Unit - Hide (Picked unit)
Finish Casting
  • Ice Chamber Finishes Casting
    • Events
      • Unit - A unit Spawns a summoned unit
    • Conditions
      • (Unit-type of (Summoned unit)) Equal to Ice Chamber
    • Actions
      • Unit - Kill ICeChamber[(Player number of (Owner of (Summoning unit)))]
      • Unit - Unhide Dypoint[(Player number of (Owner of (Summoning unit)))]
      • Set ICeChamber[(Player number of (Owner of (Casting unit)))] = (Summoned unit)
      • Unit - Move Dypoint[(Player number of (Owner of (Summoning unit)))] instantly to (Position of ICeChamber[(Player number of (Owner of (Summoned unit)))])
      • Set Wendigo[(Player number of (Owner of (Summoning unit)))] = (Summoning unit)
Chamber Dies
  • Ice Chamber Dies
    • Events
      • Unit - A unit Dies
    • Conditions
      • (Dying unit) Equal to ICeChamber[(Player number of (Owner of (Dying unit)))]
    • Actions
      • Unit - Hide Dypoint[(Player number of (Owner of (Dying unit)))]
Trigger Trap
  • Ice Chamber Destination Copy 3
    • Events
      • Unit - A unit comes within 300.00 of Dummy Dyport 0304 <gen>
    • Conditions
      • ((Entering unit) is A Hero) Equal to False
    • Actions
      • For each (Integer A) from 8 to 12, do (Actions)
        • Loop - Actions
          • If ((Owner of (Triggering unit)) Equal to (Player((Integer A)))) then do (Unit - Move (Triggering unit) instantly to (Position of Wendigo[3])) else do (Do nothing)
      • If ((Owner of (Triggering unit)) Equal to Neutral Hostile) then do (Unit - Move (Triggering unit) instantly to (Position of Wendigo[3])) else do (Do nothing)
      • If ((Owner of (Triggering unit)) Equal to Player 2 (Blue)) then do (Unit - Move (Triggering unit) instantly to (Position of Wendigo[3])) else do (Do nothing)
  • Ice Chamber Destination Copy 4
    • Events
      • Unit - A unit comes within 300.00 of Dummy Dyport 0308 <gen>
    • Conditions
      • ((Entering unit) is A Hero) Equal to False
    • Actions
      • For each (Integer A) from 8 to 12, do (Actions)
        • Loop - Actions
          • If ((Owner of (Triggering unit)) Equal to (Player((Integer A)))) then do (Unit - Move (Triggering unit) instantly to (Position of Wendigo[4])) else do (Do nothing)
      • If ((Owner of (Triggering unit)) Equal to Neutral Hostile) then do (Unit - Move (Triggering unit) instantly to (Position of Wendigo[4])) else do (Do nothing)
      • If ((Owner of (Triggering unit)) Equal to Player 2 (Blue)) then do (Unit - Move (Triggering unit) instantly to (Position of Wendigo[4])) else do (Do nothing)
  • Ice Chamber Destination Copy 5
    • Events
      • Unit - A unit comes within 300.00 of Dummy Dyport 0306 <gen>
    • Conditions
      • ((Entering unit) is A Hero) Equal to False
    • Actions
      • For each (Integer A) from 8 to 12, do (Actions)
        • Loop - Actions
          • If ((Owner of (Triggering unit)) Equal to (Player((Integer A)))) then do (Unit - Move (Triggering unit) instantly to (Position of Wendigo[5])) else do (Do nothing)
      • If ((Owner of (Triggering unit)) Equal to Neutral Hostile) then do (Unit - Move (Triggering unit) instantly to (Position of Wendigo[5])) else do (Do nothing)
      • If ((Owner of (Triggering unit)) Equal to Player 2 (Blue)) then do (Unit - Move (Triggering unit) instantly to (Position of Wendigo[5])) else do (Do nothing)
  • Ice Chamber Destination Copy 6
    • Events
      • Unit - A unit comes within 300.00 of Dummy Dyport 0307 <gen>
    • Conditions
      • ((Entering unit) is A Hero) Equal to False
    • Actions
      • For each (Integer A) from 8 to 12, do (Actions)
        • Loop - Actions
          • If ((Owner of (Triggering unit)) Equal to (Player((Integer A)))) then do (Unit - Move (Triggering unit) instantly to (Position of Wendigo[6])) else do (Do nothing)
      • If ((Owner of (Triggering unit)) Equal to Neutral Hostile) then do (Unit - Move (Triggering unit) instantly to (Position of Wendigo[6])) else do (Do nothing)
      • If ((Owner of (Triggering unit)) Equal to Player 2 (Blue)) then do (Unit - Move (Triggering unit) instantly to (Position of Wendigo[6])) else do (Do nothing)
  • Ice Chamber Destination Copy 7
    • Events
      • Unit - A unit comes within 300.00 of Dummy Dyport 0312 <gen>
    • Conditions
      • ((Entering unit) is A Hero) Equal to False
    • Actions
      • For each (Integer A) from 8 to 12, do (Actions)
        • Loop - Actions
          • If ((Owner of (Triggering unit)) Equal to (Player((Integer A)))) then do (Unit - Move (Triggering unit) instantly to (Position of Wendigo[7])) else do (Do nothing)
      • If ((Owner of (Triggering unit)) Equal to Neutral Hostile) then do (Unit - Move (Triggering unit) instantly to (Position of Wendigo[7])) else do (Do nothing)
      • If ((Owner of (Triggering unit)) Equal to Player 2 (Blue)) then do (Unit - Move (Triggering unit) instantly to (Position of Wendigo[7])) else do (Do nothing)
  • Ice Chamber Destination Copy 8
    • Events
      • Unit - A unit comes within 300.00 of Dummy Dyport 0309 <gen>
    • Conditions
      • ((Triggering unit) is A Hero) Equal to False
    • Actions
      • For each (Integer A) from 3 to 7, do (Actions)
        • Loop - Actions
          • If ((Owner of (Entering unit)) Equal to (Player((Integer A)))) then do (Unit - Move (Entering unit) instantly to (Position of Wendigo[8])) else do (Do nothing)
      • If ((Owner of (Entering unit)) Equal to Neutral Hostile) then do (Unit - Move (Entering unit) instantly to (Position of Wendigo[8])) else do (Do nothing)
      • If ((Owner of (Triggering unit)) Equal to Player 1 (Red)) then do (Unit - Move (Triggering unit) instantly to (Position of Wendigo[8])) else do (Do nothing)
  • Ice Chamber Destination Copy 9
    • Events
      • Unit - A unit comes within 300.00 of Dummy Dyport 0310 <gen>
    • Conditions
      • ((Entering unit) is A Hero) Equal to False
    • Actions
      • For each (Integer A) from 3 to 7, do (Actions)
        • Loop - Actions
          • If ((Owner of (Triggering unit)) Equal to (Player((Integer A)))) then do (Unit - Move (Triggering unit) instantly to (Position of Wendigo[9])) else do (Do nothing)
      • If ((Owner of (Triggering unit)) Equal to Neutral Hostile) then do (Unit - Move (Triggering unit) instantly to (Position of Wendigo[9])) else do (Do nothing)
      • If ((Owner of (Triggering unit)) Equal to Player 1 (Red)) then do (Unit - Move (Triggering unit) instantly to (Position of Wendigo[9])) else do (Do nothing)
  • Ice Chamber Destination Copy 10
    • Events
      • Unit - A unit comes within 300.00 of Dummy Dyport 0311 <gen>
    • Conditions
      • ((Entering unit) is A Hero) Equal to False
    • Actions
      • For each (Integer A) from 3 to 7, do (Actions)
        • Loop - Actions
          • If ((Owner of (Triggering unit)) Equal to (Player((Integer A)))) then do (Unit - Move (Triggering unit) instantly to (Position of Wendigo[10])) else do (Do nothing)
      • If ((Owner of (Triggering unit)) Equal to Neutral Hostile) then do (Unit - Move (Triggering unit) instantly to (Position of Wendigo[10])) else do (Do nothing)
      • If ((Owner of (Triggering unit)) Equal to Player 1 (Red)) then do (Unit - Move (Triggering unit) instantly to (Position of Wendigo[10])) else do (Do nothing)
  • Ice Chamber Destination Copy 11
    • Events
      • Unit - A unit comes within 300.00 of Dummy Dyport 0314 <gen>
    • Conditions
      • ((Entering unit) is A Hero) Equal to False
    • Actions
      • For each (Integer A) from 3 to 12, do (Actions)
        • Loop - Actions
          • If ((Owner of (Triggering unit)) Equal to (Player((Integer A)))) then do (Unit - Move (Triggering unit) instantly to (Position of Wendigo[11])) else do (Do nothing)
      • If ((Owner of (Triggering unit)) Equal to Neutral Hostile) then do (Unit - Move (Triggering unit) instantly to (Position of Wendigo[11])) else do (Do nothing)
      • If ((Owner of (Triggering unit)) Equal to Player 1 (Red)) then do (Unit - Move (Triggering unit) instantly to (Position of Wendigo[11])) else do (Do nothing)
  • Ice Chamber Destination Copy 12
    • Events
      • Unit - A unit comes within 300.00 of Dummy Dyport 0313 <gen>
    • Conditions
      • ((Entering unit) is A Hero) Equal to False
    • Actions
      • For each (Integer A) from 3 to 12, do (Actions)
        • Loop - Actions
          • If ((Owner of (Triggering unit)) Equal to (Player((Integer A)))) then do (Unit - Move (Triggering unit) instantly to (Position of Wendigo[12])) else do (Do nothing)
      • If ((Owner of (Triggering unit)) Equal to Neutral Hostile) then do (Unit - Move (Triggering unit) instantly to (Position of Wendigo[12])) else do (Do nothing)
      • If ((Owner of (Triggering unit)) Equal to Player 1 (Red)) then do (Unit - Move (Triggering unit) instantly to (Position of Wendigo[12])) else do (Do nothing)
I'm sorry for bothering you with this large spell, but I have been trying to get this spell to work since christmas. And everyone has been telling me its impossible to do.
These are past topics on this spell:
http://hiveworkshop.com/forums/showthread.php?t=28067
http://hiveworkshop.com/forums/showthread.php?t=28049
 
Level 3
Joined
Jul 29, 2006
Messages
61
The way I would do it:
Make two spells, One off Dark Summoning, One off Item Place Goblin Landmine (Make it Hero, as you have)
I would then create the Chamber off of the Goblin Land Mine, And Remove the AOE Damage on Death Ability
The Mine - Exploding ability will make it Explode upon something coming close, and makes it Invisible.

Next, I'd make a single trigger.

  • Chamber of Ice
    • Events
      • Unit - A unit Dies
    • Conditions
      • (Unit-type of (Dying unit)) Equal to Chamber Of Ice
    • Actions
      • Unit - Create 1 DummyUnit for (Owner of (Dying unit)) at (Position of (Hero)) facing (Position of (Triggering unit))
      • Unit - Add a 5.00 second Generic expiration timer to (Last created unit)
      • Unit - Add Dark Summoning to (Last created unit)
      • Unit - Order (Last created unit) to Special - Dark Summoning (Position of (Dying unit))
Unless I'm missing something, That should do Everything you want.

To get the Position of Hero, You'd have to store it in a global variable, and recall it, using an Index of Player Converted to number, with the Player being Owner of Dying unit.
 
Level 8
Joined
Oct 8, 2005
Messages
409
I already have the heroes in an array indexed by player number, but I want to make sure that if the player changes heroes, the spell will not transport to the player's new hero

Hero array:
Set Wendigo[(Player number of (Owner of (Summoning unit)))] = (Summoning unit)

I don't want the trap to explode, the trap is supose to live until the spell is cast again or until the hero dies

the "Dummy Dyport" are dummy units that are relocated to the summoned unit

and I have triggers that detect when units come with-in 300 degrese of each of the pre placed "Dummy Dyport"

there is a "Dummy Dyport" for each player
 
Level 3
Joined
Jul 29, 2006
Messages
61
I already have the heroes in an array indexed by player number, but I want to make sure that if the player changes heroes, the spell will not transport to the player's new hero

Hero array:
Set Wendigo[(Player number of (Owner of (Summoning unit)))] = (Summoning unit)

I don't want the trap to explode, the trap is supose to live until the spell is cast again or until the hero dies

the "Dummy Dyport" are dummy units that are relocated to the summoned unit

and I have triggers that detect when units come with-in 300 degrese of each of the pre placed "Dummy Dyport"

there is a "Dummy Dyport" for each player

The Explode ability simply Kills it when someone walks close enough to it. The actual Explosion is from the other ability, or the Model.

If someone summons another, remove the first one (eg store In Variable, put in a multiple action If. Have if DummyDyport[1] not equal null then Remove DummyDyport, Set summoned unit = DummyDyport[1], else summoned unit = DummyDyport[1])
Of course, instead change 1 to the player number.

If Someone changes heroes, remove the Dyport.

I'm either not understanding what your trying to do, or your convinced to go about it in a convoluted way.

The Advice I gave In my last post is simple: When a unit gets close enough to the Chamber of Ice unit, The Chamber dies. Upon its death, a dummy unit is created at the location of the hero who created it, and bring the unit to them.

As you refined your question, I then gave the advice above:
Remove it from the Game anytime the Hero makes a new one, or changes a Hero. All you have to do is add in a summoning trigger that sets it (as I detailed above).

Triggers:
  • Chamber of Ice
    • Events
      • Unit - A unit Dies
    • Conditions
      • (Unit-type of (Dying unit)) Equal to Chamber Of Ice
    • Actions
      • Unit - Create 1 DummyUnit for (Owner of (Dying unit)) at (Position of (Wendigo[(Player number of (Owner of (Summoning unit)))])) facing (Position of (Triggering unit))
      • Unit - Add a 5.00 second Generic expiration timer to (Last created unit)
      • Unit - Add Dark Summoning to (Last created unit)
      • Unit - Order (Last created unit) to Special - Dark Summoning (Position of (Dying unit))
  • Summon Chamber
    • Events
      • Unit - A unit Spawns a summoned unit
    • Conditions
      • (Unit-type of (Summoned Unit)) Equal to Chamber Of Ice
    • Actions
      • If - Multiple Actions
        • Unit Comparison - Dyport[(Player number of (Owner of (Summoning unit)))] Not Equal to null
      • Then - Multiple Actions
        • Unit - Remove Dyport[(Player number of (Owner of (Summoning unit)))] from the Game
      • Else - Multiple Actions
        • Do Nothing
      • Set Dyport[(Player number of (Owner of (Summoning unit)))] = Summoned Unit
  • Hero Change
    • Events
      • // Insert Events here
    • Conditions
      • // Insert Conditions Here
    • Actions
      • //Insert other actions here
      • Unit - Remove Dyport[(Player number of (Owner of (Triggering unit)))] from the Game
 
Level 8
Joined
Oct 8, 2005
Messages
409
This is what I have, now, and it does nothing...

I told dark summoning to target enemy units only, but It is still displaying the message "you must target a friendly unit"

  • Ice Chamber
    • Events
      • Unit - A unit Dies
    • Conditions
      • (Unit-type of (Triggering unit)) Equal to Ice Chamber
    • Actions
      • Unit - Create 1 Ice Chamber for (Owner of (Triggering unit)) at (Position of (Triggering unit)) facing Default building facing degrees
      • Unit - Add a 5.00 second Generic expiration timer to (Triggering unit)
      • Unit - Order Wendigo[(Player number of (Owner of (Triggering unit)))] to Special - Dark Summoning (Position of (Dying unit))
  • Summon Chamber
    • Events
      • Unit - A unit Spawns a summoned unit
    • Conditions
      • (Unit-type of (Summoned unit)) Equal to Ice Chamber
    • Actions
      • Unit - Add Dark Summoning to (Summoning unit)
      • Set Wendigo[(Player number of (Owner of (Triggering unit)))] = (Summoning unit)
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • Dypoint[(Player number of (Owner of (Summoning unit)))] Not equal to No unit
        • Then - Actions
          • Unit - Remove Dypoint[(Player number of (Owner of (Summoning unit)))] from the game
        • Else - Actions
      • Set Dypoint[(Player number of (Owner of (Summoning unit)))] = (Summoned unit)
 
Last edited:
Level 4
Joined
Dec 14, 2004
Messages
85
I believe the problem, is that your ice chamber only has the abilites ghost and locust. While it should also have some ability named Goblin Mine or something of the sort(the same ability as the goblin mine).

but if I'm wrong there try this.

Add this line to the first trigger as the first line. You have to type that exactly without the "Custom Script - " part because that is what the GUI says, the latter is what you type.


Custom Script - call BJDebugMsg("Trig Call")

Now everytime an ice chamber dies it should show the text "Trig Call" so try the trigger out and if it doesn't show that text it means the ice chamber is not dying at all(probably due to it not having the mine ability) so if it has the mine ability and is not dying try to remove locust from the unit. Although I can't garuntee that will work it will give us something to work with.

If that doesn't work put debug messages all through your script and see if any of them just don't play when it seems like they should and then you can pinpoint right where the problem is happening and figure it out.
 
Level 8
Joined
Oct 8, 2005
Messages
409
this is what I have now

When a unit passes through the chamber the message "call trigger" is being displayed, so I know the ice chamber is dieing

and the ice chamber is respawning, but it jumps around the map every now and then

the units are not being teleported

  • Ice Chamber
    • Events
      • Unit - A unit Dies
    • Conditions
      • (Unit-type of (Triggering unit)) Equal to Ice Chamber
    • Actions
      • Game - Display to (All players) the text: call trig
      • Unit - Create 1 Ice Chamber for (Owner of (Triggering unit)) at (Position of (Triggering unit)) facing Default building facing degrees
      • Set Dypoint[(Player number of (Owner of (Triggering unit)))] = (Last created unit)
      • Unit Group - Pick every unit in (Units in (Region centered at (Position of Dypoint[(Player number of (Owner of (Dying unit)))]) with size (450.00, 450.00)) matching (((Triggering unit) belongs to an enemy of (Owner of (Dying unit))) Equal to True)) and do (Actions)
        • Loop - Actions
          • Unit - Move (Picked unit) instantly to (Position of Wendigo[(Player number of (Owner of (Dying unit)))])
  • Summon Chamber
    • Events
      • Unit - A unit Spawns a summoned unit
    • Conditions
      • (Unit-type of (Summoned unit)) Equal to Ice Chamber
    • Actions
      • Unit - Add Dark Summoning to (Summoning unit)
      • Set Wendigo[(Player number of (Owner of (Triggering unit)))] = (Summoning unit)
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • Dypoint[(Player number of (Owner of (Summoning unit)))] Not equal to No unit
        • Then - Actions
          • Unit - Remove Dypoint[(Player number of (Owner of (Summoning unit)))] from the game
        • Else - Actions
      • Set Dypoint[(Player number of (Owner of (Summoning unit)))] = (Summoned unit)
help, please
 
Last edited:
Level 3
Joined
Jul 29, 2006
Messages
61
You gave to add the Dark summoning ability to your dummy through triggers. The Dummy should appear at Your heroes location, it should have the dark summoning added to it, and have it target the ice chamber. Make sure the Dark summoning spell only effects enemy units.

Edit: OR you can change the triggering unit in your Unit group to Picked or Matching unit.
 
Status
Not open for further replies.
Top