One-way level transmission Created 9 years ago2015-11-23 19:03:34 UTC by EsprimoP EsprimoP

Created 9 years ago2015-11-23 19:03:34 UTC by EsprimoP EsprimoP

Posted 9 years ago2015-11-23 19:03:34 UTC Post #327508
Imagine you have two hl uncompiled maps (rmf-s), map1 and map2. How can I transmit from map1 to map2, but not transmit back to map1 when I'm in map2? In map1 I have trigger_changelevel and info_landmark with correct options set. In map2 When I don't have those.. I will spawn dead in the center of the map when I transmit from map1. I tried leaving info_landmark in map2 but i spawned dead in the center again. The solution is placing trigger_levelchange that transmits in map1 somewhere where the player can't reach it. Now how can I do it without using the trigger_levelchange in the second map?
EsprimoP EsprimoPwEight
Posted 9 years ago2015-11-24 05:38:05 UTC Post #327515
I am ALL over this! Finally, someone I can help! I'm not sure I 100% understand exactly what your problem is, but it SOUNDS familiar.

Sticking the trigger_changelevel in an inaccessible area. Yes, you got that right. You need a trigger in both maps, though. The truth is, you're probably not spawning in the dead center or origin of the map, but rather in the exact coordinates that you were at when you hit the first changelevel trigger. When you hit the trigger in the first map, or map1, your coordinates are "recorded" by the engine on the X, Y and Z axes. You will spawn in that same exact spot in the next map, or map2.

So, to reiterate; Goldsource doesn't care if you have a floor and walls there to receive the player or not. It will spit you out at the exact same grid coordinates that you were at when you hit the trigger in map1. Even if that means placing you in the void in map2.

Or you did something wrong with the landmarks. They need to have the same name in both levels.

The BEST thing to do is place your trigger changelevel and landmark in map1, compile it, then copy map1.rmf, rename it to map2. Open up map2, move the trigger_changelevel to a different spot,(in this case, out of player range)and edit the parameters to enable the trigger to go back to map1...even if it is out of reach. Then delete the old geometry and continue on mapping the rest of map2.

Fun Tip: Trigger_changelevels can be targeted by trigger_once and multi_managers.

(EDIT) Just re-read your post. Yeah, you need landmarks and trigger in BOTH levels, named appropriately, or you will default to the origin of the map and be trapped in purgatory forever. Just stick that trigger_changelevel way out of reach and flag it to "Use only" for extra security. It STILL needs to have the proper information - the same that it would have if it was a two-way change.
Posted 9 years ago2015-11-24 08:45:00 UTC Post #327516
Also note, afaik, the "USE ONLY" flag on a trigger_changelevel makes it so the changelevel can only work through scripting/logic. It doesn't actually mean the player can walk up to it and use it. So, no need to hide it away if you have that flag set. Setting that flag will make the changelevel "one way."
Posted 9 years ago2015-11-24 10:03:09 UTC Post #327521
Haha yeah. Half-Rats is now the resident expert on level changes.
His solution will do.
Tetsu0 Tetsu0Positive Chaos
Posted 9 years ago2015-11-24 13:08:03 UTC Post #327523
@Half-Rats Really outstanding explanation for level transmissions. Although I did everything correct. But you read again and gave me the answer. That should definitely do it. I could have thought of that myself but I'm trying to keep my mapping professionalism at average at all times, so better check online in case the universe shifted. Thanks all!
EsprimoP EsprimoPwEight
You must be logged in to post a response.