• 🏆 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!
  • It's time for the first HD Modeling Contest of 2024. Join the theme discussion for Hive's HD Modeling Contest #6! Click here to post your idea!

Keep rally point while going through portal? Minas Tirith Anniversary 2014

Status
Not open for further replies.
Level 5
Joined
Jun 25, 2013
Messages
52
Hello my long term project is nearly complete. The only thing that is left to do is to make a trigger/ a trigger set which allows me to keep the rally points after crossing a teleporter. I just cant seem to get behind it. Everything I tried failed. This is how I thought it would work to begin with. You can download the map and view all variables and triggers in world editor. Since the initial triggers are so long. (It is a 16 trigger set.) Link: http://www.epicwar.com/maps/236854/

Whoever finds a solution to this will be mentioned in the credits and I'll thank him for my lifetime. I am really messing around with this for quite a while now.
After this I only need to edit the Preview and loading screen and I am good to go.

Thx a lot to Hive and its great community :)
 
Hello there, (sorry don't have wc3 atm cant open your map)

Do you use a triggered teleport system? In this case you can use SetUnitX,SetUniY in Custom script. (If not I anyway recommend to do so :p)
'MoveUnitInstantly' does abbort unit's order, SetUnitX/Y not, so they still will go to their rally point.

What you have to do: (Create 2 real variables: X/Y)

In Init-trigger, you set X=Xof(YourTpRegion) & set Y=Yof(YourTpRegion) // You can do this with normal GUI

Then your teleport trigger,
  • Events
    • Unit - A unit enters Region
  • Actions
    • Custom script: local unit u = GetTriggerUnit()
    • Custom script: call SetUnitX( u ,udg_X)
    • Custom script: call SetUnitY( u ,udg_Y)
    • Custom script: set u = null
If you dont use X/Y for names, please also change the custom script.
 
Level 5
Joined
Jun 25, 2013
Messages
52
This was how I had it before with one tower set.
größer als means bigger than
gleich means same as


  • Be Turm1
    • Ereignisse
      • Einheit - A unit enters Gebiet 007 <gen>
    • Bedingungen
      • (Unit-type of (Triggering unit)) Gleich Siege Tower
    • Aktionen
      • Einheit - Move (Triggering unit) instantly to (Center of Gebiet 007 <gen>)
      • Einheit - Make (Triggering unit) Unverwundbar
      • Auslöser - Turn off (This trigger)
      • Auslöser - Turn on asd1 <gen>
      • Wait 0.10 seconds
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • 'IF'-Bedingungen
          • FlagGoal Größer als 0
        • 'THEN'-Aktionen
          • Do nothing
        • 'ELSE'-Aktionen
          • Einheit - Pause ein (Triggering unit)
  • asd1
    • Ereignisse
      • Einheit - A unit enters Gebiet 008 <gen>
    • Bedingungen
      • (Unit-type of (Triggering unit)) Ungleich Mûmakil (Reiterlos)
      • (Unit-type of (Triggering unit)) Ungleich Orc Katapult
      • (Unit-type of (Triggering unit)) Ungleich Siege Tower
      • (Unit-type of (Triggering unit)) Ungleich Nazgûl (untot)
    • Aktionen
      • Einheit - Move (Triggering unit) instantly to (Center of Gebiet 009 <gen>)
And this is the system I wanted to apply to switch flagpoints. Enable disable them to both. Naturally I could get around this entire thing if it is possible to tell units what the shortest way is. If you know how to achieve this it would definitely take a lot of work from me. :wink:

  • Set Flag Point Off
    • Ereignisse
      • Spieler - Spieler 4 (Lila) types a chat message containing -off as Exakte Ãœbereinstimmung
      • Spieler - Spieler 6 (Orange) types a chat message containing -off as Exakte Ãœbereinstimmung
      • Spieler - Spieler 9 (Grau) types a chat message containing -off as Exakte Ãœbereinstimmung
      • Spieler - Spieler 10 (Hellblau) types a chat message containing -off as Exakte Ãœbereinstimmung
    • Bedingungen
    • Aktionen
      • Set FlagGoal = 0
      • Spiel - Display to Spielergruppe - Spieler 4 (Lila) for 8.00 seconds the text: Passthrough Rally P...
      • Spiel - Display to Spielergruppe - Spieler 6 (Orange) for 8.00 seconds the text: Passthrough Rally P...
      • Spiel - Display to Spielergruppe - Spieler 9 (Grau) for 8.00 seconds the text: Passthrough Rally P...
      • Spiel - Display to Spielergruppe - Spieler 10 (Hellblau) for 8.00 seconds the text: Passthrough Rally P...
  • Set Flag Point Wall 1
    • Ereignisse
      • Spieler - Spieler 4 (Lila) types a chat message containing -on1 as Exakte Ãœbereinstimmung
      • Spieler - Spieler 6 (Orange) types a chat message containing -on1 as Exakte Ãœbereinstimmung
      • Spieler - Spieler 9 (Grau) types a chat message containing -on1 as Exakte Ãœbereinstimmung
      • Spieler - Spieler 10 (Hellblau) types a chat message containing -on1 as Exakte Ãœbereinstimmung
    • Bedingungen
    • Aktionen
      • Set FlagGoal = 1
      • Spiel - Display to Spielergruppe - Spieler 4 (Lila) for 8.00 seconds the text: Passthrough Rally P...
      • Spiel - Display to Spielergruppe - Spieler 6 (Orange) for 8.00 seconds the text: Passthrough Rally P...
      • Spiel - Display to Spielergruppe - Spieler 9 (Grau) for 8.00 seconds the text: Passthrough Rally P...
      • Spiel - Display to Spielergruppe - Spieler 10 (Hellblau) for 8.00 seconds the text: Passthrough Rally P...
NEW TRY

I tried to set the variables X and Y at map init but failed. I went to set varaible and the only thing terrain/field based I could find was this.

  • Map Init
    • Ereignisse
      • Map initialization
    • Bedingungen
    • Aktionen
      • Set x = (Terrain variance at (Random point in Gebiet 008 <gen>))
      • Set y = (Terrain variance at (Random point in Gebiet 008 <gen>))
That is what my new custom script looks like:

  • Teleport Reborn
    • Ereignisse
      • Einheit - A unit enters Gebiet 008 <gen>
    • Bedingungen
      • (Unit-type of (Triggering unit)) Ungleich Mûmakil (Reiterlos)
      • (Unit-type of (Triggering unit)) Ungleich Orc Katapult
      • (Unit-type of (Triggering unit)) Ungleich Siege Tower
      • (Unit-type of (Triggering unit)) Ungleich Nazgûl (untot)
    • Aktionen
      • Custom script: Custom script: local unit u = GetTriggerUnit()
      • Custom script: Custom script: call SetUnitX( u ,udg_X)
      • Custom script: Custom script: call SetUnitY( u ,udg_Y)
      • Custom script: Custom script: set u = null
What is custom script btw. C? I am starting to study IT next year together with chemistry so would be good to know. What do you work as? - I mean you are just epic :).
 
Yeah, Im german, too.. so np for me to read this :d

Sorry I forgot to mention which type of variable X/Y are.. they are Reals not Integers.
If you change it to reals, you easily will fine X/Y of Point.

For your other triggers, sorry I cant really see the sense of them, but why..
1. You check if unit type == siege tower (seems like a building for me)
2. You use the wait 0.1 seconds, doesnt seem legit for me
3. Better dont use "Do nothing" - it actually is a useless line which just does NOTHING ^^ --> more code for nothing

This language you currently use to trigger is called GUI (graphical user interface)
But wc3 only reads JASS (just another script language), so your GUI-code in fact gets converted into JASS, automatically.
You can use the Custom script to directly write in this JASS language, so you are not depended to the GUI anymore. ( GUI is limited, in JASS you have more functions)

I'm studying applied computer science, but working much with editor will also give you experience by time^^.. you will get it too.

Thx, btw^^ and on Hive there are many experienced people, even better ones
 
Level 5
Joined
Jun 25, 2013
Messages
52
New help needed

The teleporting works fine.
Now i am trying to pick all units in a territory of the map and move them by text command to a certain destination without loosing their initial rally points.

  • Teleport Init
    • Ereignisse
      • Map initialization
    • Bedingungen
    • Aktionen
      • Set Tower1x = (X of (Center of Gebiet 089 <gen>))
      • Set Tower1y = (Y of (Center of Gebiet 089 <gen>))
  • Draw to Teleport 1
    • Ereignisse
      • Einheit - A unit enters Gebiet 090 <gen>
    • Bedingungen
      • Enable Gleich 1
    • Aktionen
      • Custom script: local unit u = GetTriggerUnit()
      • Custom script: SetUnitX(u, udg_Tower1x)
      • Custom script: SetUnitY(u, udg_Tower1y)
      • Custom script: set u = null
 
Status
Not open for further replies.
Top