r5009 - in trunk/data: . gfx qcsrc/client qcsrc/common qcsrc/server

DONOTREPLY at icculus.org DONOTREPLY at icculus.org
Fri Nov 7 15:46:11 EST 2008


Author: div0
Date: 2008-11-07 15:46:11 -0500 (Fri, 07 Nov 2008)
New Revision: 5009

Added:
   trunk/data/gfx/sb_flag_blue_shielded.tga
   trunk/data/gfx/sb_flag_red_shielded.tga
Modified:
   trunk/data/build-compat-pack.sh
   trunk/data/defaultNexuiz.cfg
   trunk/data/gfx/sb_kh_full.tga
   trunk/data/gfx/sb_kh_outline.tga
   trunk/data/gfx/sb_playercolor_pants.tga
   trunk/data/gfx/sb_playercolor_shirt.tga
   trunk/data/qcsrc/client/sbar.qc
   trunk/data/qcsrc/common/constants.qh
   trunk/data/qcsrc/server/ctf.qc
   trunk/data/qcsrc/server/miscfunctions.qc
Log:


Modified: trunk/data/build-compat-pack.sh
===================================================================
--- trunk/data/build-compat-pack.sh	2008-11-07 20:44:46 UTC (rev 5008)
+++ trunk/data/build-compat-pack.sh	2008-11-07 20:46:11 UTC (rev 5009)
@@ -23,6 +23,8 @@
 	gfx/runningman_1on1remix_mini.tga
 	gfx/runningmanctf_mini.tga
 	gfx/runningman_mini.tga
+	gfx/sb_flag_blue_shielded.tga
+	gfx/sb_flag_red_shielded.tga
 	gfx/sb_kh_full.tga
 	gfx/sb_kh_outline.tga
 	gfx/sb_playercolor_base.tga
@@ -156,6 +158,7 @@
 	sound/kh/collect.wav
 	sound/kh/destroy.wav
 	sound/kh/drop.wav
+	sound/misc/armor10.wav
 	sound/misc/armor1.wav
 	sound/misc/armor25.wav
 	sound/misc/footstep01.wav
@@ -217,6 +220,22 @@
 	sound/player/carni-lycan/player/pain50.ogg
 	sound/player/carni-lycan/player/pain75.ogg
 	sound/player/default.sounds
+	sound/player/fricka/coms/attackinfive.ogg
+	sound/player/fricka/coms/attack.ogg
+	sound/player/fricka/coms/coverme.ogg
+	sound/player/fricka/coms/defend.ogg
+	sound/player/fricka/coms/flagseen.ogg
+	sound/player/fricka/coms/freelance1.ogg
+	sound/player/fricka/coms/freelance2.ogg
+	sound/player/fricka/coms/incoming.ogg
+	sound/player/fricka/coms/taunt1.ogg
+	sound/player/fricka/coms/taunt2.ogg
+	sound/player/fricka/coms/taunt3.ogg
+	sound/player/fricka/coms/taunt4.ogg
+	sound/player/fricka/coms/teamshoot1.ogg
+	sound/player/fricka/coms/teamshoot2.ogg
+	sound/player/fricka/coms/teamshoot3.ogg
+	sound/player/fricka/coms/waypoint.ogg
 	sound/player/fricka/player/death1.ogg
 	sound/player/fricka/player/death2.ogg
 	sound/player/fricka/player/death3.ogg
@@ -277,6 +296,7 @@
 	sound/player/marine/coms/teamshoot1.ogg
 	sound/player/marine/coms/teamshoot2.ogg
 	sound/player/marine/coms/teamshoot3.ogg
+	sound/player/marine/coms/teamshoot4.ogg
 	sound/player/marine/player/death1.ogg
 	sound/player/marine/player/death2.ogg
 	sound/player/marine/player/death3.ogg
@@ -289,6 +309,26 @@
 	sound/player/marine/player/pain25.ogg
 	sound/player/marine/player/pain50.ogg
 	sound/player/marine/player/pain75.ogg
+	sound/player/pyria-skadi/coms/attack1.ogg
+	sound/player/pyria-skadi/coms/attack2.ogg
+	sound/player/pyria-skadi/coms/attackinfive.ogg
+	sound/player/pyria-skadi/coms/coverme.ogg
+	sound/player/pyria-skadi/coms/defend.ogg
+	sound/player/pyria-skadi/coms/freelance1.ogg
+	sound/player/pyria-skadi/coms/freelance2.ogg
+	sound/player/pyria-skadi/coms/incoming.ogg
+	sound/player/pyria-skadi/coms/meet.ogg
+	sound/player/pyria-skadi/coms/needhelp1.ogg
+	sound/player/pyria-skadi/coms/seenflag.ogg
+	sound/player/pyria-skadi/coms/taunt1.ogg
+	sound/player/pyria-skadi/coms/taunt2.ogg
+	sound/player/pyria-skadi/coms/taunt3.ogg
+	sound/player/pyria-skadi/coms/taunt4.ogg
+	sound/player/pyria-skadi/coms/taunt5.ogg
+	sound/player/pyria-skadi/coms/teamshoot1.ogg
+	sound/player/pyria-skadi/coms/teamshoot2.ogg
+	sound/player/pyria-skadi/coms/teamshoot3.ogg
+	sound/player/pyria-skadi/coms/teamshoot4.ogg
 	sound/player/pyria-skadi/player/death1.ogg
 	sound/player/pyria-skadi/player/death2.ogg
 	sound/player/pyria-skadi/player/death3.ogg
@@ -330,6 +370,7 @@
 	sound/player/reptilian/player/pain25.ogg
 	sound/player/reptilian/player/pain50.ogg
 	sound/player/reptilian/player/pain75.ogg
+	sound/player/slime.wav
 	sound/player/soldier/coms/attackinfive.ogg
 	sound/player/soldier/coms/attack.ogg
 	sound/player/soldier/coms/coverme.ogg
@@ -375,9 +416,11 @@
 	sound/player/specop/coms/taunt1.ogg
 	sound/player/specop/coms/taunt2.ogg
 	sound/player/specop/coms/taunt3.ogg
+	sound/player/specop/coms/taunt4.ogg
 	sound/player/specop/coms/teamshoot1.ogg
 	sound/player/specop/coms/teamshoot2.ogg
 	sound/player/specop/coms/teamshoot3.ogg
+	sound/player/specop/coms/teamshoot4.ogg
 	sound/player/specop/player/death1.ogg
 	sound/player/specop/player/death2.ogg
 	sound/player/specop/player/death3.ogg
@@ -415,12 +458,19 @@
 	sound/porto/explode.ogg
 	sound/porto/fire.ogg
 	sound/porto/unsupported.ogg
+	sound/weapons/crylink_fire2.ogg
 	sound/weapons/crylink_fire.ogg
+	sound/weapons/crylink_impact2.ogg
+	sound/weapons/crylink_impact.ogg
 	sound/weapons/electro_bounce.ogg
 	sound/weapons/electro_fire2.ogg
 	sound/weapons/electro_fire.ogg
 	sound/weapons/electro_fly.wav
 	sound/weapons/electro_impact.ogg
+	sound/weapons/flacexp1.ogg
+	sound/weapons/flacexp2.ogg
+	sound/weapons/flacexp3.ogg
+	sound/weapons/flac_fire.ogg
 	sound/weapons/grenade_bounce1.ogg
 	sound/weapons/grenade_bounce2.ogg
 	sound/weapons/grenade_bounce3.ogg
@@ -443,8 +493,18 @@
 	sound/weapons/rocket_fire.ogg
 	sound/weapons/rocket_fly.wav
 	sound/weapons/rocket_impact.ogg
+	sound/weapons/seekerexp1.ogg
+	sound/weapons/seekerexp2.ogg
+	sound/weapons/seekerexp3.ogg
+	sound/weapons/seeker_fire.ogg
 	sound/weapons/shotgun_fire.ogg
 	sound/weapons/strength_fire.ogg
+	sound/weapons/tagexp1.ogg
+	sound/weapons/tagexp2.ogg
+	sound/weapons/tagexp3.ogg
+	sound/weapons/tag_fire.ogg
+	sound/weapons/tag_impact.ogg
+	sound/weapons/tag_rocket_fly.wav
 	sound/weapons/uzi_fire.ogg
 	sound/weapons/weaponpickup.ogg
 	sound/weapons/weapon_switch.ogg
@@ -462,64 +522,6 @@
 	textures/portalgun_glow.tga
 	textures/portalgun_norm.tga
 	textures/portalgun.tga
-	sound/weapons/crylink_impact.ogg
-	sound/weapons/crylink_impact2.ogg
-	sound/weapons/crylink_fire2.ogg
-	sound/weapons/tag_fire.ogg
-	sound/weapons/tag_impact.ogg
-	sound/weapons/tagexp1.ogg
-	sound/weapons/tagexp2.ogg
-	sound/weapons/tagexp3.ogg
-	sound/weapons/flac_fire.ogg
-	sound/weapons/flacexp1.ogg
-	sound/weapons/flacexp2.ogg
-	sound/weapons/flacexp3.ogg
-	sound/weapons/seeker_fire.ogg
-	sound/weapons/seekerexp1.ogg
-	sound/weapons/seekerexp2.ogg
-	sound/weapons/seekerexp3.ogg
-	sound/misc/armor10.wav
-	sound/player/specop/coms/taunt4.ogg
-	sound/player/specop/coms/teamshoot4.ogg
-	sound/player/fricka/coms/freelance1.ogg
-	sound/player/fricka/coms/freelance2.ogg
-	sound/player/fricka/coms/attack.ogg
-	sound/player/fricka/coms/attackinfive.ogg
-	sound/player/fricka/coms/waypoint.ogg
-	sound/player/fricka/coms/taunt1.ogg
-	sound/player/fricka/coms/taunt2.ogg
-	sound/player/fricka/coms/taunt3.ogg
-	sound/player/fricka/coms/taunt4.ogg
-	sound/player/fricka/coms/teamshoot1.ogg
-	sound/player/fricka/coms/flagseen.ogg
-	sound/player/fricka/coms/defend.ogg
-	sound/player/fricka/coms/teamshoot2.ogg
-	sound/player/fricka/coms/teamshoot3.ogg
-	sound/player/fricka/coms/coverme.ogg
-	sound/player/fricka/coms/incoming.ogg
-	sound/player/slime.wav
-	sound/player/marine/coms/teamshoot4.ogg
-	sound/player/pyria-skadi/coms/freelance1.ogg
-	sound/player/pyria-skadi/coms/needhelp1.ogg
-	sound/player/pyria-skadi/coms/freelance2.ogg
-	sound/player/pyria-skadi/coms/attackinfive.ogg
-	sound/player/pyria-skadi/coms/taunt1.ogg
-	sound/player/pyria-skadi/coms/taunt2.ogg
-	sound/player/pyria-skadi/coms/taunt3.ogg
-	sound/player/pyria-skadi/coms/taunt4.ogg
-	sound/player/pyria-skadi/coms/taunt5.ogg
-	sound/player/pyria-skadi/coms/teamshoot1.ogg
-	sound/player/pyria-skadi/coms/seenflag.ogg
-	sound/player/pyria-skadi/coms/defend.ogg
-	sound/player/pyria-skadi/coms/teamshoot2.ogg
-	sound/player/pyria-skadi/coms/teamshoot3.ogg
-	sound/player/pyria-skadi/coms/teamshoot4.ogg
-	sound/player/pyria-skadi/coms/attack1.ogg
-	sound/player/pyria-skadi/coms/attack2.ogg
-	sound/player/pyria-skadi/coms/meet.ogg
-	sound/player/pyria-skadi/coms/coverme.ogg
-	sound/player/pyria-skadi/coms/incoming.ogg
-	sound/weapons/tag_rocket_fly.wav
 "
 
 rev=`svnversion`

Modified: trunk/data/defaultNexuiz.cfg
===================================================================
--- trunk/data/defaultNexuiz.cfg	2008-11-07 20:44:46 UTC (rev 5008)
+++ trunk/data/defaultNexuiz.cfg	2008-11-07 20:46:11 UTC (rev 5009)
@@ -395,6 +395,10 @@
 set g_ctf_reverse 0 // when 1, bases/flags are switched :P you have to capture your OWN flag by bringing it to the ENEMY's
 set g_balance_ctf_delay_collect 1.0
 set g_balance_ctf_damageforcescale 1
+
+set g_ctf_shield_max_ratio 0 // shield at most 0% of a team from the enemy flag (try: 0.4 for 40%)
+set g_ctf_shield_min_negscore 20 // shield the player from the flag if he's got -20 points or less
+set g_ctf_shield_force 100 // push force of the shield
                                                
 exec ctfscoring-nex242.cfg
 

Added: trunk/data/gfx/sb_flag_blue_shielded.tga
===================================================================
(Binary files differ)


Property changes on: trunk/data/gfx/sb_flag_blue_shielded.tga
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: trunk/data/gfx/sb_flag_red_shielded.tga
===================================================================
(Binary files differ)


Property changes on: trunk/data/gfx/sb_flag_red_shielded.tga
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Modified: trunk/data/gfx/sb_kh_full.tga
===================================================================
(Binary files differ)

Modified: trunk/data/gfx/sb_kh_outline.tga
===================================================================
(Binary files differ)

Modified: trunk/data/gfx/sb_playercolor_pants.tga
===================================================================
(Binary files differ)

Modified: trunk/data/gfx/sb_playercolor_shirt.tga
===================================================================
(Binary files differ)

Modified: trunk/data/qcsrc/client/sbar.qc
===================================================================
--- trunk/data/qcsrc/client/sbar.qc	2008-11-07 20:44:46 UTC (rev 5008)
+++ trunk/data/qcsrc/client/sbar.qc	2008-11-07 20:46:11 UTC (rev 5009)
@@ -1781,8 +1781,8 @@
 	vector pos;
 	
 	stat_items = getstati(STAT_ITEMS);
-	redflag = (stat_items/32768) & 3;
-	blueflag = (stat_items/131072) & 3;
+	redflag = (stat_items/IT_RED_FLAG_TAKEN) & 3;
+	blueflag = (stat_items/IT_BLUE_FLAG_TAKEN) & 3;
 
 	/**
 	 * FTEQCC BUG!
@@ -1814,6 +1814,10 @@
 	case 1: drawpic(pos, "gfx/sb_flag_red_taken", '0 0 0', '1 1 1', 1, DRAWFLAG_NORMAL); break;
 	case 2: drawpic(pos, "gfx/sb_flag_red_lost", '0 0 0', '1 1 1', 1, DRAWFLAG_NORMAL); break;
 	case 3: drawpic(pos, "gfx/sb_flag_red_carrying", '0 0 0', '1 1 1', 1, DRAWFLAG_NORMAL); break;
+	default:
+		if(stat_items & IT_CTF_SHIELDED)
+			if(myteam == COLOR_TEAM2)
+				drawpic(pos, "gfx/sb_flag_red_shielded", '0 0 0', '1 1 1', 1, DRAWFLAG_NORMAL); break;
 	}
 
 	pos_y -= 64;
@@ -1823,5 +1827,9 @@
 	case 1: drawpic(pos, "gfx/sb_flag_blue_taken", '0 0 0', '1 1 1', 1, 0); break;
 	case 2: drawpic(pos, "gfx/sb_flag_blue_lost", '0 0 0', '1 1 1', 1, 0); break;
 	case 3: drawpic(pos, "gfx/sb_flag_blue_carrying", '0 0 0', '1 1 1', 1, 0); break;
+	default:
+		if(stat_items & IT_CTF_SHIELDED)
+			if(myteam == COLOR_TEAM1)
+				drawpic(pos, "gfx/sb_flag_blue_shielded", '0 0 0', '1 1 1', 1, DRAWFLAG_NORMAL); break;
 	}
 }

Modified: trunk/data/qcsrc/common/constants.qh
===================================================================
--- trunk/data/qcsrc/common/constants.qh	2008-11-07 20:44:46 UTC (rev 5008)
+++ trunk/data/qcsrc/common/constants.qh	2008-11-07 20:46:11 UTC (rev 5009)
@@ -325,6 +325,7 @@
 // when this bit is set, using a superweapon does not throw it away. Checkpoints can give this powerup.
 float	IT_UNLIMITED_AMMO         = 3;
 // both of these combined
+float	IT_CTF_SHIELDED           = 4; // set for the flag shield
 float	IT_SHELLS				= 256;
 float	IT_NAILS				= 512;
 float	IT_ROCKETS				= 1024;

Modified: trunk/data/qcsrc/server/ctf.qc
===================================================================
--- trunk/data/qcsrc/server/ctf.qc	2008-11-07 20:44:46 UTC (rev 5008)
+++ trunk/data/qcsrc/server/ctf.qc	2008-11-07 20:46:11 UTC (rev 5009)
@@ -13,6 +13,111 @@
 
 #define FLAG_CARRY_POS '-15 0 7'
 
+.float ctf_captureshielded; // set to 1 if the player is too bad to be allowed to capture
+
+float captureshield_min_negscore; // punish at -20 points
+float captureshield_max_ratio; // punish at most 30% of each team
+float captureshield_force; // push force of the shield
+
+float ctf_captureshield_shielded(entity p)
+{
+	float s, se;
+	entity e;
+	float players_worseeq, players_total;
+
+	if(captureshield_max_ratio <= 0)
+		return FALSE;
+
+	s = PlayerScore_Add(p, SP_SCORE, 0);
+	if(s >= -captureshield_min_negscore)
+		return FALSE;
+
+	players_total = players_worseeq = 0;
+	FOR_EACH_PLAYER(e)
+	{
+		if(e.team != p.team)
+			continue;
+		se = PlayerScore_Add(e, SP_SCORE, 0);
+		if(se <= s)
+			++players_worseeq;
+		++players_total;
+	}
+
+	// player is in the worse half, if >= half the players are better than him, or consequently, if < half of the players are worse
+	// use this rule here
+	
+	if(players_worseeq >= players_total * captureshield_max_ratio)
+		return FALSE;
+
+	return TRUE;
+}
+
+void ctf_captureshield_update(entity p, float dir)
+{
+	float should;
+	if(dir == p.ctf_captureshielded) // 0: shield only, 1: unshield only
+	{
+		should = ctf_captureshield_shielded(p);
+		if(should != dir)
+		{
+			if(should)
+			{
+				centerprint_atprio(p, CENTERPRIO_SHIELDING, "^3You are now ^4shielded^3 from the flag\n^3for ^1too many unsuccessful attempts^3 to capture.\n\n^3Make some defensive scores before trying again.");
+				// TODO csqc notifier for this
+			}
+			else
+			{
+				centerprint_atprio(p, CENTERPRIO_SHIELDING, "^3You are now free.\n\n^3Feel free to ^1try to capture^3 the flag again\n^3if you think you will succeed.");
+				// TODO csqc notifier for this
+			}
+			p.ctf_captureshielded = should;
+		}
+	}
+}
+
+float ctf_captureshield_customize()
+{
+	if not(other.ctf_captureshielded)
+		return FALSE;
+	if(self.team == other.team)
+		return FALSE;
+	return TRUE;
+}
+
+void ctf_captureshield_touch()
+{
+	if not(other.ctf_captureshielded)
+		return;
+	if(self.team == other.team)
+		return;
+	vector mymid;
+	vector othermid;
+	mymid = (self.absmin + self.absmax) * 0.5;
+	othermid = (other.absmin + other.absmax) * 0.5;
+	Damage(other, self, self, 0, DEATH_HURTTRIGGER, mymid, normalize(othermid - mymid) * captureshield_force);
+	centerprint_atprio(other, CENTERPRIO_SHIELDING, "^3You are ^4shielded^3 from the flag\n^3for ^1too many unsuccessful attempts^3 to capture.\n\n^3Get some defensive scores before trying again.");
+}
+
+void ctf_captureshield_spawn()
+{
+	entity e;
+	e = spawn();
+	e.enemy = self;
+	e.team = self.team;
+	e.touch = ctf_captureshield_touch;
+	e.customizeentityforclient = ctf_captureshield_customize;
+	e.classname = "ctf_captureshield";
+	e.effects = EF_ADDITIVE;
+	e.movetype = MOVETYPE_NOCLIP;
+	e.solid = SOLID_TRIGGER;
+	e.avelocity = '7 0 11';
+	setorigin(e, self.origin);
+	setmodel(e, "models/onslaught/generator_shield.md3");
+	e.scale = 0.5;
+	setsize(e, e.scale * e.mins, e.scale * e.maxs);
+	print(etos(e), "\n");
+}
+
 float ctf_score_value(string parameter)
 {
 	if(g_ctf_win_mode != 2)
@@ -70,6 +175,7 @@
 		droptofloor();
 		self.movetype = MOVETYPE_TOSS;
 	}
+	InitializeEntity(self, ctf_captureshield_spawn, INITPRIO_SETLOCATION);
 };
 
 void LogCTF(string mode, float flagteam, entity actor)
@@ -143,6 +249,7 @@
 	else
 		UpdateFrags(p, -ctf_score_value("penalty_drop"));
 	PlayerScore_Add(p, SP_CTF_DROPS, +1);
+	ctf_captureshield_update(p, 0); // shield only
 	e.playerid = attacker.playerid;
 	e.ctf_droptime = time;
 	
@@ -191,6 +298,12 @@
 
 	self.nextthink = time + 0.1;
 
+	if(self == ctf_worldflaglist) // only for the first flag
+	{
+		FOR_EACH_CLIENT(e)
+			ctf_captureshield_update(e, 1); // release shield only
+	}
+
 	AnimateFlag();
 
 	if(self.speedrunning)
@@ -318,6 +431,7 @@
 	if (other.team == COLOR_TEAM1 || other.team == COLOR_TEAM2) // only red and blue team can steal flags
 	if (other.team != self.team)
 	if (!other.flagcarried)
+	if (!other.ctf_captureshielded)
 	{
 		if (other.next_take_time > time)
 			return;
@@ -365,7 +479,10 @@
 			// punish the player who last had it
 			FOR_EACH_PLAYER(player)
 				if(player.playerid == self.dropperid)
+				{
 					PlayerScore_Add(player, SP_SCORE, -ctf_score_value("penalty_returned"));
+					ctf_captureshield_update(player, 0); // shield only
+				}
 
 			// punish the team who was last carrying it
 			if(self.team == COLOR_TEAM1)
@@ -584,6 +701,8 @@
 
 	WaypointSprite_SpawnFixed("redbase", self.origin + '0 0 37', self, sprite);
 	WaypointSprite_UpdateTeamRadar(self.sprite, RADARICON_FLAG, '1 0 0');
+
+	precache_model("models/onslaught/generator_shield.md3");
 };
 
 /*QUAKED spawnfunc_item_flag_team2 (0 0.5 0.8) (-48 -48 -24) (48 48 64)
@@ -676,6 +795,8 @@
 
 	WaypointSprite_SpawnFixed("bluebase", self.origin + '0 0 37', self, sprite);
 	WaypointSprite_UpdateTeamRadar(self.sprite, RADARICON_FLAG, '0 0 1');
+
+	precache_model("models/onslaught/generator_shield.md3");
 };
 
 
@@ -744,6 +865,10 @@
 {
 	InitializeEntity(world, ctf_delayedinit, INITPRIO_GAMETYPE);
 	flagcaptimerecord = stof(db_get(ServerProgsDB, strcat(GetMapname(), "/captimerecord/time")));
+
+	captureshield_min_negscore = cvar("g_ctf_shield_min_negscore");
+	captureshield_max_ratio = cvar("g_ctf_shield_max_ratio");
+	captureshield_force = cvar("g_ctf_shield_force");
 };
 
 void ctf_setstatus2(entity flag, float shift)
@@ -763,15 +888,19 @@
 
 void ctf_setstatus()
 {
-	self.items = self.items - (self.items & IT_RED_FLAG_TAKEN);
-	self.items = self.items - (self.items & IT_RED_FLAG_LOST);
-	self.items = self.items - (self.items & IT_BLUE_FLAG_TAKEN);
-	self.items = self.items - (self.items & IT_BLUE_FLAG_LOST);
+	self.items (-) IT_RED_FLAG_TAKEN;
+	self.items (-) IT_RED_FLAG_LOST;
+	self.items (-) IT_BLUE_FLAG_TAKEN;
+	self.items (-) IT_BLUE_FLAG_LOST;
+	self.items (-) IT_CTF_SHIELDED;
 
 	if (g_ctf) {
 		local entity flag;
 		float redflags, blueflags;
 
+		if(self.ctf_captureshielded)
+			self.items |= IT_CTF_SHIELDED;
+
 		redflags = 0;
 		blueflags = 0;
 

Modified: trunk/data/qcsrc/server/miscfunctions.qc
===================================================================
--- trunk/data/qcsrc/server/miscfunctions.qc	2008-11-07 20:44:46 UTC (rev 5008)
+++ trunk/data/qcsrc/server/miscfunctions.qc	2008-11-07 20:46:11 UTC (rev 5009)
@@ -627,6 +627,7 @@
 #define CENTERPRIO_REBALANCE 2
 #define CENTERPRIO_VOTE 4
 #define CENTERPRIO_NORMAL 5
+#define CENTERPRIO_SHIELDING 7
 #define CENTERPRIO_MAPVOTE 9
 #define CENTERPRIO_IDLEKICK 50
 #define CENTERPRIO_ADMIN 99




More information about the nexuiz-commits mailing list