if(next_round || (time > warmup - autocvar_g_freezetag_warmup && time < warmup))
return; // already waiting for next round to start
- if((redalive >= 1 && bluealive >= 1) // counted in arena.qc
+ if((redalive >= 1 && bluealive >= 1)
|| (redalive >= 1 && yellowalive >= 1)
|| (redalive >= 1 && pinkalive >= 1)
|| (bluealive >= 1 && yellowalive >= 1)
FOR_EACH_PLAYER(e)
{
- if(e.freezetag_frozen == 0 && e.classname == "player" && e.health >= 1) // here's one player from the winning team... good
+ if(e.freezetag_frozen == 0 && e.health >= 1) // here's one player from the winning team... good
{
winner = e;
break; // break, we found the winner
MUTATOR_HOOKFUNCTION(freezetag_RemovePlayer)
{
- if(self.freezetag_frozen == 0)
+ if(self.freezetag_frozen == 0 && self.health >= 1)
{
if(self.team == COLOR_TEAM1)
--redalive;
--pinkalive;
--totalalive;
- freezetag_Freeze(frag_attacker);
+ freezetag_Freeze(frag_attacker);
}
- if(frag_attacker.classname == STR_PLAYER)
- centerprint(frag_attacker, strcat("^2You froze ^7", frag_target.netname, ".\n"));
-
if(frag_attacker == frag_target || frag_attacker == world)
{
- if(frag_target.classname == STR_PLAYER)
- centerprint(frag_target, "^1You froze yourself.\n");
+ if(frag_target.classname == STR_PLAYER)
+ centerprint(frag_target, "^1You froze yourself.\n");
bprint("^7", frag_target.netname, "^1 froze himself.\n");
}
else
{
- if(frag_target.classname == STR_PLAYER)
- centerprint(frag_target, strcat("^1You were frozen by ^7", frag_attacker.netname, ".\n"));
+ if(frag_target.classname == STR_PLAYER)
+ centerprint(frag_target, strcat("^1You were frozen by ^7", frag_attacker.netname, ".\n"));
+ if(frag_attacker.classname == STR_PLAYER)
+ centerprint(frag_attacker, strcat("^2You froze ^7", frag_target.netname, ".\n"));
bprint("^7", frag_target.netname, "^1 was frozen by ^7", frag_attacker.netname, ".\n");
}
MUTATOR_HOOKFUNCTION(freezetag_PlayerSpawn)
{
- freezetag_Unfreeze(world); // start by making sure that all ice blocks are removed
+ freezetag_Unfreeze(world); // start by making sure that all ice blocks are removed
if(total_players == 1 && time > game_starttime) // only one player active on server, start a new match immediately
if(!next_round && warmup && (time < warmup - autocvar_g_freezetag_warmup || time > warmup)) // not awaiting next round
{
if(time > 1) // game loads at time 1
error("This is a game type and it cannot be added at runtime.");
- g_freezetag = 1;
freezetag_Initialize();
}
MUTATOR_ONREMOVE
{
- g_freezetag = 0;
error("This is a game type and it cannot be removed at runtime.");
}