TheEnginesOfCreation / EntityPlus

EntityPlus is a mod that offers a true single player experience in the Quake III Arena videogame.
34 stars 5 forks source link

A moving info_player_start #29

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
As a player moves through a map it would be nice to have the info_player_start 
'shift' through the map. This could be done a number of ways, but what I was 
think was....

1) A trigger_move_start ent targets an info_null
2) As the trigger_move_start is triggered, the info_player_start moves to the 
info_null and copies the angle key details as well.

trigger_move_start could default 'wait -1' (once only event), but I can see 
times when it may be best to have it as a multi trigger ent.

Original issue reported on code.google.com by tigger...@gmail.com on 17 Apr 2011 at 3:27

GoogleCodeExporter commented 9 years ago

Original comment by era...@gmail.com on 18 Apr 2011 at 7:36

GoogleCodeExporter commented 9 years ago
I was thinking about this and came to the conclusion that a solution for this 
is already possible with the target_disable entity. Say we place a spawn point 
at the beginning of the map and a second one halfway through the map. 

Now we use a target_disable with the IMMEDIATELY spawnflag which targets the 
second spawn point to disable it at map load. The player is forced to spawn at 
the first spawn point. 

Right after the 2nd spawn point, there's a trigger_multiple (with a wait of -1 
so it's triggered only once) that triggers the target_disable to enable the 2nd 
spawn point and another target_disable to disable the first spawn point. Now 
the player will spawn at the second spawn point if he dies. Then it works kind 
of like a check point system.

Now I do realize that this could become a bit of a mess with entities (and 
there's pretty strict limits on the number of entities in Q3), so I'm planning 
on simplifying it, probably by cutting out the need of the target_disable.

Original comment by era...@gmail.com on 21 Apr 2011 at 10:12

GoogleCodeExporter commented 9 years ago
I've made it better now. target_disable is not needed. Simply aim a trigger at 
an info_player_deathmatch and the spawnpoint is enabled or disabled. I've also 
added a DISABLED spawnflag so spawn points can be disabled at level start.

Another change is that in single player mode, at respawn the player will seek 
out the spawnpoint that is nearest rather than the one that's furthest away 
(like Q3 does by default for deathmatch games). The result is that if you place 
spawnpoints throughout your map that are all disabled (except for one), you can 
enable the spawnpoints as you progress through the map using triggers. Then 
when you die, you simply respawn at the nearest enabled spawn point. If the 
level designer wants more fine tuned control than that, he could always decide 
to make only one spawnpoint enabled at a time.

Original comment by era...@gmail.com on 21 Apr 2011 at 12:28

GoogleCodeExporter commented 9 years ago
I'm considering this issue to be fixed now. If you have any other ideas or have 
any objections to the way I implemented this, please do let me know.

Original comment by era...@gmail.com on 21 Apr 2011 at 12:29

GoogleCodeExporter commented 9 years ago
Sounds like a good solution and easy enough to understand.

Original comment by tigger...@gmail.com on 22 Apr 2011 at 2:48