So for my current project, the backstory is based around the four protagonists escaping from the fields of the Great War. I've got my map. I've got a small "Origins" styled area. Would it be possible to make it so the player spawns in the "Origins" part, which is like the "No Mans Land" found on Moon. And then has to use a teleporter to be teleported into the proper starting zone, in my main map. Obviously all these parts would take place in the same .map file. Also, would it be possible to have the teleporter be craftable?
Picture of the current "Origins" styled area, most likely will overcome changes
Spoiler: click to open...
In short, here are what I'm looking for:
- Making the start zone initiate after the "No Mans Land". - Having the skybox be different for each parts of the map. (Not COMPLETELY necessary) - Have a teleporter that requires parts. (Teleporter only in NML) - Have "No Mans Land" be as in Moon, 2 beeps/similar warning before the hordes flood over.
So if this is possible, how do I do it? I don't know where to start. I appreciate all response.
Last Edit: October 22, 2015, 12:32:12 pm by Exofile
- Making the start zone initiate after the "No Mans Land". - Having the skybox be different for each parts of the map. (Not COMPLETELY necessary) - Have a teleporter that requires parts. (Teleporter only in NML) - Have "No Mans Land" be as in Moon, 2 beeps/similar warning before the hordes flood over.
So if this is possible, how do I do it? I don't know where to start. I appreciate all response.
- This is easy. Add both zones, NML and start zone, to this part of the script in mapname.gsc:
Code Snippet
Plaintext
// Initial Zone(s) -- Zone(s) You Want Activated At Map Start zones = []; zones[ zones.size ] = "NML_zone"; zones[ zones.size ] = "start_zone"; level.DLC3.initialZones = zones;
They both will be initiated at the beginning so when you get in start zone it would have already been activated. Just don't make adjacent one to the other.
- I don't think you can have two skyboxes. But no idea. If you can't, make one skybox for the hole map and then use one of the "skybox_whatever" models for one of the areas.
- It can be done with a bit of scripting if you have the models.
- I think that with a bit of scripting again it's possible to do that (editing the speed of zombies and respawns and stuff).
Hope it helps.
Last Edit: October 22, 2015, 12:53:07 pm by Soy-Yo
- This is easy. Add both zones, NML and start zone, to this part of the script in mapname.gsc:
Code Snippet
Plaintext
// Initial Zone(s) -- Zone(s) You Want Activated At Map Start zones = []; zones[ zones.size ] = "NML_zone"; zones[ zones.size ] = "start_zone"; level.DLC3.initialZones = zones;
They both will be initiated at the beginning so when you get in start zone it would have already been activated. Just don't make adjacent one to the other.
- I don't think you can have two skyboxes. But no idea. If you can't, make one skybox for the hole map and then use one of the "skybox_whatever" models for one of the areas.
- It can be done with a bit of scripting if you have the models.
- I think that with a bit of scripting again it's possible to do that (editing the speed of zombies and respawns and stuff).
Hope it helps.
Appreciate the response, now all I'm wondering is, how can I make a teleporter that requires everyone ingame to stand on it? Also, how would I make the zombies start massively hoarding in, such as in Moon. Are both of these done with scripting?
Last Edit: October 22, 2015, 01:05:19 pm by Exofile
Appreciate the response, now all I'm wondering is, how can I make a teleporter that requires everyone ingame to stand on it? Also, how would I make the zombies start massively hoarding in, such as in Moon. Are both of these done with scripting?
while(1) { trig waittill( "trigger" ); // trig is the trigger_use that activates the teleporter players = get_players_alive(); count = 0; for( i = 0; i < players.size; i++ ) { if( players[i] isTouching(trig) ) count++; } if( count == players.size ) array_thread( players,::teleportPlayers ); // you need a function that teleports all the players }
You should make sure as well that, if a player is death and you teleport the rest of the players, the death player don't respawn in NML (don't know how spectators respawn work).
And for the zombies, there is a level var that determines the spawn delay:
Code Snippet
Plaintext
level.zombie_vars["zombie_spawn_delay"];
This var is set as 2 at the beginning of _zombiemode.gsc. I think need a parallel "round_spawning()" function for NML where this variable falls down with time or something and where the round never ends.
while(1) { trig waittill( "trigger" ); // trig is the trigger_use that activates the teleporter players = get_players_alive(); count = 0; for( i = 0; i < players.size; i++ ) { if( players[i] isTouching(trig) ) count++; } if( count == players.size ) array_thread( players,::teleportPlayers ); // you need a function that teleports all the players }
You should make sure as well that, if a player is death and you teleport the rest of the players, the death player don't respawn in NML (don't know how spectators respawn work).
And for the zombies, there is a level var that determines the spawn delay:
Code Snippet
Plaintext
level.zombie_vars["zombie_spawn_delay"];
This var is set as 2 at the beginning of _zombiemode.gsc. I think need a parallel "round_spawning()" function for NML where this variable falls down with time or something and where the round never ends.
Thank you alot for your help. I understand what you mean here, but because I don't script, I can't say I know how I'd go about adding a function or adding the get_players_alive Function.
Last Edit: October 22, 2015, 01:31:45 pm by Exofile
Thank you alot for your help. I understand what you mean here, but because I don't script, I can't say I know how I'd go about adding a function or adding the get_players_alive Function.
Ok. If you want I can try to script those things for you.
Ok. If you want I can try to script those things for you.
If you have the time and energy, that'd be great. I mainly do Radiant, and since I'm mainly working on this project myself, with the assistance of others, any help I can get I greatly appreciate.
Last Edit: October 22, 2015, 01:35:56 pm by Exofile