race_ReadyRestart();
for(self = world; (self = nextent(self)); )
- if(clienttype(self) == CLIENTTYPE_NOTACLIENT && self.items != IT_STRENGTH && self.items != IT_INVINCIBLE) // don't respawn strength or shield, that will only lead to them spawning very early each match
+ if(clienttype(self) == CLIENTTYPE_NOTACLIENT)
{
if(self.reset)
{
if(gameover)
{
+ if(warmup && time < warmup)
+ {
+ FOR_EACH_REALCLIENT(e)
+ Send_CSQC_Centerprint_Generic_Expire(e, CPID_ROUND_STARTING);
+ warmup = 0;
+ }
if(champion && g_arena)
{
- FOR_EACH_CLIENT(e)
+ FOR_EACH_REALCLIENT(e)
centerprint(e, strcat("The Champion is ", champion.netname));
champion = world;
}
f = ceil(warmup - time);
- allowed_to_spawn = 0;
-
if(inWarmupStage)
allowed_to_spawn = 1;
+ else if(!g_ca)
+ allowed_to_spawn = 0;
if(time < warmup && !inWarmupStage)
{
allowed_to_spawn = 1;
if(champion && g_arena)
{
- FOR_EACH_PLAYER(e)
+ FOR_EACH_REALCLIENT(e)
centerprint(e, strcat("The Champion is ", champion.netname));
}
if(f != roundStartTime_prev) {
roundStartTime_prev = f;
if(g_ca && !(red_players && blue_players)) {
- FOR_EACH_PLAYER(self)
+ FOR_EACH_REALCLIENT(self)
Send_CSQC_Centerprint_Generic(self, CPID_ROUND_STARTING, "^1Need at least 1 player in each team to play CA", 2, 0);
warmup = time + autocvar_g_ca_warmup;
} else {
else if(f == 1)
Announce("1");
- FOR_EACH_PLAYER(e)
+ FOR_EACH_REALCLIENT(e)
Send_CSQC_Centerprint_Generic(e, CPID_ROUND_STARTING, "Round will start in %d", 1, f);
}
}
FOR_EACH_CLIENT(e)
{
if(e.spawned && e.classname == "player")
- e.movetype = MOVETYPE_NONE;
- e.velocity = '0 0 0';
- e.avelocity = '0 0 0';
- e.movement = '0 0 0';
+ e.player_blocked = 1;
}
}
}
reset_map(TRUE);
} else {
Announce("begin");
- FOR_EACH_PLAYER(e)
+ FOR_EACH_REALCLIENT(e)
Send_CSQC_Centerprint_Generic(e, CPID_ROUND_STARTING, "^1Begin!", 1, 0);
}
if(g_arena) {
- FOR_EACH_PLAYER(e)
+ FOR_EACH_CLIENT(e)
{
- if(e.health > 0 && e.movetype == MOVETYPE_NONE)
- e.movetype = MOVETYPE_WALK;
+ if(e.player_blocked)
+ e.player_blocked = 0;
}
}
}
*/
void Spawnqueue_Check()
{
+ if(warmup == 0 && g_ca && !inWarmupStage)
+ {
+ if(red_players || blue_players)
+ reset_map(TRUE);
+ return;
+ }
if(time < warmup + 1 || inWarmupStage || intermission_running)
return;