const float GAME_NEXBALL = 12;
const float GAME_CTS = 13;
const float GAME_CA = 14;
+const float GAME_FREEZETAG = 15;
const float AS_STRING = 1;
const float AS_INT = 2;
float next_round;
float stopalivecheck;
-float redalive, bluealive;
-.float redalive_stat, bluealive_stat;
+float redalive, bluealive, yellowalive, pinkalive;
+.float redalive_stat, bluealive_stat, yellowalive_stat, pinkalive_stat;
/**
* This function finds out whether an arena round is over 1 player is left.
* It determines the last player who's still alive and saves it's entity reference
self.bluealive_stat = bluealive;
}
}
+ else if(g_freezetag)
+ {
+ redalive = 0; bluealive = 0;
+ FOR_EACH_PLAYER(self) {
+ if (self.team == COLOR_TEAM1 && self.freezetag_frozen == 0 && self.health >= 1) redalive += 1;
+ else if (self.team == COLOR_TEAM2 && self.freezetag_frozen == 0 && self.health >= 1) bluealive += 1;
+ else if (self.team == COLOR_TEAM3 && self.freezetag_frozen == 0 && self.health >= 1) yellowalive += 1;
+ else if (self.team == COLOR_TEAM4 && self.freezetag_frozen == 0 && self.health >= 1) pinkalive += 1;
+ }
+ FOR_EACH_PLAYER(self) {
+ self.redalive_stat = redalive;
+ self.bluealive_stat = bluealive;
+ self.yellowalive_stat = yellowalive;
+ self.pinkalive_stat = pinkalive;
+ }
+ }
if(time < warmup + 1 || inWarmupStage)
return;
float ctf_score_value(string parameter);
-float g_dm, g_domination, g_ctf, g_tdm, g_keyhunt, g_onslaught, g_assault, g_arena, g_ca, g_lms, g_runematch, g_race, g_nexball, g_cts;
+float g_dm, g_domination, g_ctf, g_tdm, g_keyhunt, g_onslaught, g_assault, g_arena, g_ca, g_lms, g_runematch, g_race, g_nexball, g_cts, g_freezetag;
float g_cloaked, g_footsteps, g_jump_grunt, g_grappling_hook, g_midair, g_minstagib, g_pinata, g_norecoil, g_minstagib_invis_alpha, g_bloodloss;
float g_warmup_limit;
float g_warmup_allguns;
float serverflags;
.float team_forced; // can be a team number to force a team, or 0 for default action, or -1 for forced spectator
+
+.float freezetag_frozen;
+.float freezetag_beginrevive_time;
MUTATOR_DECLARATION(gamemode_keyhunt);
+MUTATOR_DECLARATION(gamemode_freezetag);
MUTATOR_DECLARATION(mutator_nix);
MUTATOR_DECLARATION(mutator_dodging);
mutators/base.qc
mutators/gamemode_keyhunt.qc
+mutators/gamemode_freezetag.qc
mutators/mutator_nix.qc
mutators/mutator_dodging.qc
mutators/mutator_rocketflying.qc
MUTATOR_ADD(gamemode_keyhunt);
}
+ if(g_freezetag)
+ {
+ game = GAME_FREEZETAG;
+ gamemode_name = "Freeze Tag";
+ ActivateTeamplay();
+ fraglimit_override = cvar("g_freezetag_point_limit");
+ leadlimit_override = cvar("g_freezetag_point_leadlimit");
+ MUTATOR_ADD(gamemode_freezetag);
+ }
+
if(g_assault)
{
game = GAME_ASSAULT;
--- /dev/null
+models/ice/ice.tga
+{
+ cull none
+ dpnoshadow
+ dpreflectcube cubemaps/default/sky
+ {
+ map models/ice/ice.tga
+ blendfunc add
+ rgbgen vertex
+ }
+}
\ No newline at end of file