Entity "info_player_deathmatch" should never be removed
dyn
dynborg at vogonhq.com
Wed Nov 14 11:57:57 EST 2007
Alternatively you can omit removing "info_player_deathmatch" when
gametype is not >= CTF. It makes no sense removing
"info_player_deathmatch" for ALL team games and then searching for
team spawn spots only when gametype is >= CTF, leaving TDM with no
spawn spots.
On 11/14/07, dyn <dynborg at vogonhq.com> wrote:
> Entity "info_player_deathmatch" should never be removed
>
> Reason: server crashes on maps without deathmatch spawn points even
> when SelectCTFSpawnPoint decides to call SelectSpawnPoint (); when no
> team spot is to be found, but this is pointless when (some) maps have
> all dm spawn spots with notteam flag set to 1.
>
> How to crash your server:
> /rcon g_gametype 4
> /rcon map q3tourney3
>
> This and many other maps won't work with any team mode and server will
> first try team spawn points, then it will call SelectSpawnPoint ();
> but this is useless since all spawn points were removed by
> G_SpawnGEntityFromSpawnVars(); in g_spawn.c .
>
> So what to do if you want to use all maps for team games?
>
> Modify this inside G_SpawnGEntityFromSpawnVars(); in g_spawn.c:
>
> OLD:
> // check for "notteam" flag (GT_FFA, GT_TOURNAMENT, GT_SINGLE_PLAYER)
> if ( g_gametype.integer >= GT_TEAM ) {
> G_SpawnInt( "notteam", "0", &i );
> if ( i )) {
> G_FreeEntity( ent );
> return;
> }
>
> NEW:
> // check for "notteam" flag (GT_FFA, GT_TOURNAMENT, GT_SINGLE_PLAYER)
> if ( g_gametype.integer >= GT_TEAM ) {
> G_SpawnInt( "notteam", "0", &i );
> // DD - do not remove info_player_deathmatch so we can use all
> maps for team games
> if ( i && Q_stricmp(ent->classname, "info_player_deathmatch")) {
> G_FreeEntity( ent );
> return;
> }
>
>
> I cannot submit diff right now, but i can later, if that's required
> for bug reports. Same goes for 'kick all' fix i submitted few days
> ago.
>
> --
> dyn
> http://vogonhq.com/
>
--
dyn
http://vogonhq.com/
More information about the quake3
mailing list