r3739 - in branches/nexuiz-2.0: . data/qcsrc/server

DONOTREPLY at icculus.org DONOTREPLY at icculus.org
Mon Jun 30 02:42:55 EDT 2008


Author: div0
Date: 2008-06-30 02:42:54 -0400 (Mon, 30 Jun 2008)
New Revision: 3739

Modified:
   branches/nexuiz-2.0/.patchsets
   branches/nexuiz-2.0/data/qcsrc/server/bots.qc
   branches/nexuiz-2.0/data/qcsrc/server/cl_client.qc
   branches/nexuiz-2.0/data/qcsrc/server/cl_physics.qc
   branches/nexuiz-2.0/data/qcsrc/server/defs.qh
   branches/nexuiz-2.0/data/qcsrc/server/g_damage.qc
   branches/nexuiz-2.0/data/qcsrc/server/g_hook.qc
   branches/nexuiz-2.0/data/qcsrc/server/g_tetris.qc
   branches/nexuiz-2.0/data/qcsrc/server/g_world.qc
   branches/nexuiz-2.0/data/qcsrc/server/havocbot.qc
   branches/nexuiz-2.0/data/qcsrc/server/keyhunt.qc
   branches/nexuiz-2.0/data/qcsrc/server/miscfunctions.qc
   branches/nexuiz-2.0/data/qcsrc/server/t_quake.qc
   branches/nexuiz-2.0/data/qcsrc/server/teamplay.qc
   branches/nexuiz-2.0/data/qcsrc/server/w_crylink.qc
   branches/nexuiz-2.0/data/qcsrc/server/w_electro.qc
   branches/nexuiz-2.0/data/qcsrc/server/w_grenadelauncher.qc
   branches/nexuiz-2.0/data/qcsrc/server/w_hagar.qc
   branches/nexuiz-2.0/data/qcsrc/server/w_laser.qc
   branches/nexuiz-2.0/data/qcsrc/server/w_nex.qc
   branches/nexuiz-2.0/data/qcsrc/server/w_rocketlauncher.qc
   branches/nexuiz-2.0/data/qcsrc/server/w_shotgun.qc
   branches/nexuiz-2.0/data/qcsrc/server/w_uzi.qc
Log:
r3737 | div0 | 2008-06-30 08:39:41 +0200 (Mon, 30 Jun 2008) | 2 lines
sv_maxidle system; add #defines for buttons
r3738 | div0 | 2008-06-30 08:41:22 +0200 (Mon, 30 Jun 2008) | 2 lines
use the button macros everywhere

Modified: branches/nexuiz-2.0/.patchsets
===================================================================
--- branches/nexuiz-2.0/.patchsets	2008-06-30 06:41:22 UTC (rev 3738)
+++ branches/nexuiz-2.0/.patchsets	2008-06-30 06:42:54 UTC (rev 3739)
@@ -1,2 +1,2 @@
 master = svn://svn.icculus.org/nexuiz/trunk
-revisions_applied = 1-3730
+revisions_applied = 1-3730,3737-3738

Modified: branches/nexuiz-2.0/data/qcsrc/server/bots.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/bots.qc	2008-06-30 06:41:22 UTC (rev 3738)
+++ branches/nexuiz-2.0/data/qcsrc/server/bots.qc	2008-06-30 06:42:54 UTC (rev 3739)
@@ -1529,7 +1529,7 @@
 		return FALSE;
 	if (e.deadflag)
 		return FALSE;
-	if (e.buttonchat)
+	if (e.BUTTON_CHAT)
 		return FALSE;
 	return TRUE;
 };
@@ -1839,23 +1839,23 @@
 	// skill 0 = ping 0.7 (slightly drunk)
 
 	// clear buttons
-	self.button0 = 0;
+	self.BUTTON_ATCK = 0;
 	self.button1 = 0;
-	self.button2 = 0;
-	self.button3 = 0;
-	self.button4 = 0;
-	self.button5 = 0;
-	self.button6 = 0;
-	self.button7 = 0;
+	self.BUTTON_JUMP = 0;
+	self.BUTTON_ATCK2 = 0;
+	self.BUTTON_ZOOM = 0;
+	self.BUTTON_CROUCH = 0;
+	self.BUTTON_HOOK = 0;
+	self.BUTTON_INFO = 0;
 	self.button8 = 0;
-	self.buttonchat = 0;
-	self.buttonuse = 0;
+	self.BUTTON_CHAT = 0;
+	self.BUTTON_USE = 0;
 
 	// if dead, just wait until we can respawn
 	if (self.deadflag)
 	{
 		if (self.deadflag == DEAD_DEAD)
-			self.button2 = 1; // press jump to respawn
+			self.BUTTON_JUMP = 1; // press jump to respawn
 		return;
 	}
 

Modified: branches/nexuiz-2.0/data/qcsrc/server/cl_client.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/cl_client.qc	2008-06-30 06:41:22 UTC (rev 3738)
+++ branches/nexuiz-2.0/data/qcsrc/server/cl_client.qc	2008-06-30 06:42:54 UTC (rev 3739)
@@ -648,7 +648,7 @@
 		self.bot_attack = TRUE;
 
 		self.statdraintime = time + 5;
-		self.button0 = self.button1 = self.button2 = self.button3 = 0;
+		self.BUTTON_ATCK = self.BUTTON_JUMP = self.BUTTON_ATCK2 = 0;
 
 		if(self.killcount == -666) {
 			self.killcount = 0;
@@ -700,7 +700,9 @@
 */
 void SetNewParms (void)
 {
-
+	// initialize parms for a new player
+	print("SetNewParms\n");
+	parm1 = -(86400 * 366);
 }
 
 /*
@@ -710,7 +712,23 @@
 */
 void SetChangeParms (void)
 {
+	// save parms for level change
+	print("SetChangeParms\n");
+	parm1 = self.parm_idlesince - time;
+}
 
+/*
+=============
+DecodeLevelParms
+=============
+*/
+void DecodeLevelParms (void)
+{
+	// load parms
+	print("DecodeLevelParms\n");
+	self.parm_idlesince = parm1;
+	if(self.parm_idlesince == -(86400 * 366))
+		self.parm_idlesince = time;
 }
 
 /*
@@ -917,6 +935,7 @@
 =============
 */
 string ColoredTeamName(float t);
+void DecodeLevelParms (void);
 //void dom_player_join_team(entity pl);
 void ClientConnect (void)
 {
@@ -931,6 +950,8 @@
 		return;
 	}
 
+	DecodeLevelParms();
+
 	self.classname = "player_joining";
 	self.flags = self.flags | FL_CLIENT;
 	self.version_nagtime = time + 10 + random() * 10;
@@ -1132,7 +1153,7 @@
 	GetCvars(-1);
 }
 
-.float buttonchat;
+.float BUTTON_CHAT;
 void() ChatBubbleThink =
 {
 	self.nextthink = time;
@@ -1143,7 +1164,7 @@
 		return;
 	}
 	setorigin(self, self.owner.origin + '0 0 15' + self.owner.maxs_z * '0 0 1');
-	if (self.owner.buttonchat && !self.owner.deadflag)
+	if (self.owner.BUTTON_CHAT && !self.owner.deadflag)
 		self.model = self.mdl;
 	else
 		self.model = "";
@@ -1180,7 +1201,7 @@
 		return;
 	}
 //	setorigin(self, self.owner.origin + '0 0 15' + self.owner.maxs_z * '0 0 1');  // bandwidth hog. setattachment does this now
-	if (self.owner.buttonchat || self.owner.deadflag || self.owner.killindicator)
+	if (self.owner.BUTTON_CHAT || self.owner.deadflag || self.owner.killindicator)
 		self.model = "";
 	else
 		self.model = self.mdl;
@@ -1685,12 +1706,12 @@
 void ObserverThink()
 {
 	if (self.flags & FL_JUMPRELEASED) {
-		if (self.button2 && self.version == cvar("gameversion")) {
+		if (self.BUTTON_JUMP && self.version == cvar("gameversion")) {
 			self.welcomemessage_time = 0;
 			self.flags = self.flags - FL_JUMPRELEASED;
 			LeaveSpectatorMode();
 			return;
-		} else if(self.button0 && self.version == cvar("gameversion")) {
+		} else if(self.BUTTON_ATCK && self.version == cvar("gameversion")) {
 			self.welcomemessage_time = 0;
 			self.flags = self.flags - FL_JUMPRELEASED;
 			if(SpectateNext() == 1) {
@@ -1698,11 +1719,11 @@
 			}
 		}
 	} else {
-		if (!(self.button0 || self.button2)) {
+		if (!(self.BUTTON_ATCK || self.BUTTON_JUMP)) {
 			self.flags = self.flags | FL_JUMPRELEASED;
 		}
 	}
-	if(self.button4)
+	if(self.BUTTON_ZOOM)
 		self.wantswelcomemessage = 0;
 	if(self.wantswelcomemessage)
 		PrintWelcomeMessage(self);
@@ -1711,12 +1732,12 @@
 void SpectatorThink()
 {
 	if (self.flags & FL_JUMPRELEASED) {
-		if (self.button2 && self.version == cvar("gameversion")) {
+		if (self.BUTTON_JUMP && self.version == cvar("gameversion")) {
 			self.welcomemessage_time = 0;
 			self.flags = self.flags - FL_JUMPRELEASED;
 			LeaveSpectatorMode();
 			return;
-		} else if(self.button0) {
+		} else if(self.BUTTON_ATCK) {
 			self.welcomemessage_time = 0;
 			self.flags = self.flags - FL_JUMPRELEASED;
 			if(SpectateNext() == 1) {
@@ -1725,7 +1746,7 @@
 				self.classname = "observer";
 				PutClientInServer();
 			}
-		} else if (self.button3) {
+		} else if (self.BUTTON_ATCK2) {
 			self.welcomemessage_time = 0;
 			self.flags = self.flags - FL_JUMPRELEASED;
 			self.classname = "observer";
@@ -1735,11 +1756,11 @@
 				PutObserverInServer();
 		}
 	} else {
-		if (!(self.button0 || self.button3)) {
+		if (!(self.BUTTON_ATCK || self.BUTTON_ATCK2)) {
 			self.flags = self.flags | FL_JUMPRELEASED;
 		}
 	}
-	if(self.button4)
+	if(self.BUTTON_ZOOM)
 		self.wantswelcomemessage = 0;
 	if(self.wantswelcomemessage)
 		PrintWelcomeMessage(self);
@@ -1824,7 +1845,7 @@
 
 		CheckRules_Player();
 
-		if(self.button7)
+		if(self.BUTTON_INFO)
 			PrintWelcomeMessage(self);
 
 		if(g_lms || !cvar("sv_spectate"))
@@ -1862,7 +1883,7 @@
 		{
 			float button_pressed, force_respawn;
 			player_anim();
-			button_pressed = (self.button0 || self.button2 || self.button3 || self.button6 || self.buttonuse);
+			button_pressed = (self.BUTTON_ATCK || self.BUTTON_JUMP || self.BUTTON_ATCK2 || self.BUTTON_HOOK || self.BUTTON_USE);
 			force_respawn = (g_lms || cvar("g_forced_respawn"));
 			if (self.deadflag == DEAD_DYING)
 			{
@@ -1923,7 +1944,7 @@
 			}
 		}
 
-		if (self.button5 && !self.hook.state)
+		if (self.BUTTON_CROUCH && !self.hook.state)
 		{
 			if (!self.crouch)
 			{
@@ -1963,8 +1984,8 @@
 				if(zoomspeed < 0.5 || zoomspeed > 16)
 					zoomspeed = 3.5;
 
-			zoomdir = self.button4;
-			if(self.button3)
+			zoomdir = self.BUTTON_ZOOM;
+			if(self.BUTTON_ATCK2)
 				if(self.weapon == WEP_NEX)
 					if(!g_minstagib)
 						zoomdir = 1;
@@ -2032,6 +2053,7 @@
 Called every frame for each client after the physics are run
 =============
 */
+.float idlekick_lasttimeleft;
 void PlayerPostThink (void)
 {
 	// Savage: Check for nameless players
@@ -2040,6 +2062,32 @@
 		stuffcmd(self, "seta _cl_name Player\n");
 	}
 
+	if(sv_maxidle)
+	{
+		float timeleft;
+		timeleft = ceil(sv_maxidle - (time - self.parm_idlesince));
+		if(timeleft <= 0)
+		{
+			bprint("^3", self.netname, "^3 was kicked for idling.\n");
+			play2(self, "announcer/robotic/terminated.ogg");
+			dropclient(self);
+			return;
+		}
+		else if(timeleft <= 10)
+		{
+			if(timeleft != self.idlekick_lasttimeleft)
+			{
+				centerprint_atprio(self, CENTERPRIO_IDLEKICK, strcat("^3Stop idling!\n^3Disconnecting in ", ftos(timeleft), "..."));
+				play2(self, strcat("announcer/robotic/", ftos(timeleft), ".ogg"));
+			}
+		}
+		else
+		{
+			centerprint_expire(self, CENTERPRIO_IDLEKICK);
+		}
+		self.idlekick_lasttimeleft = timeleft;
+	}
+
 	if(self.classname == "player") {
 		CheckRules_Player();
 		UpdateChatBubble();

Modified: branches/nexuiz-2.0/data/qcsrc/server/cl_physics.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/cl_physics.qc	2008-06-30 06:41:22 UTC (rev 3738)
+++ branches/nexuiz-2.0/data/qcsrc/server/cl_physics.qc	2008-06-30 06:42:54 UTC (rev 3739)
@@ -110,14 +110,25 @@
 	}
 };
 
+.vector movement_old;
+.float buttons_old;
 
 void Nixnex_GiveCurrentWeapon();
 void SV_PlayerPhysics()
 {
 	local vector wishvel, wishdir, v;
-	local float wishspeed, f, maxspd_mod, spd, maxairspd, airaccel, swampspd_mod, shtest_score;
+	local float wishspeed, f, maxspd_mod, spd, maxairspd, airaccel, swampspd_mod, shtest_score, buttons;
 	string temps;
 
+	buttons = self.BUTTON_ATCK + 2 * self.BUTTON_JUMP + 4 * self.BUTTON_ATCK2 + 8 * self.BUTTON_ZOOM + 16 * self.BUTTON_CROUCH + 32 * self.BUTTON_HOOK + 64 * self.BUTTON_USE;
+	if(buttons != self.buttons_old)
+		self.parm_idlesince = time;
+	self.buttons_old = buttons;
+
+	if(self.movement != self.movement_old)
+		self.parm_idlesince = time;
+	self.movement_old = self.movement;
+
 	if(time > self.shtest_next)
 	{
 		if(self.shtest_next > 0)
@@ -218,7 +229,7 @@
 
 	if(self.classname == "player")
 	{
-		if (self.button2)
+		if (self.BUTTON_JUMP)
 			PlayerJump ();
 		else
 			self.flags = self.flags | FL_JUMPRELEASED;
@@ -346,7 +357,7 @@
 		}
 
 		if (self.velocity_x || self.velocity_y)
-		if (!(self.flags & FL_JUMPRELEASED) || !self.button2)
+		if (!(self.flags & FL_JUMPRELEASED) || !self.BUTTON_JUMP)
 		{
 			v = self.velocity;
 			v_z = 0;

Modified: branches/nexuiz-2.0/data/qcsrc/server/defs.qh
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/defs.qh	2008-06-30 06:41:22 UTC (rev 3738)
+++ branches/nexuiz-2.0/data/qcsrc/server/defs.qh	2008-06-30 06:42:54 UTC (rev 3739)
@@ -1,6 +1,16 @@
 #define MAPINFO
 float require_spawnfunc_prefix; // if this float exists, only functions with spawnfunc_ name prefix qualify as spawn functions
 
+#define BUTTON_ATCK   button0
+#define BUTTON_JUMP   button2
+#define BUTTON_ATCK2  button3
+#define BUTTON_ZOOM   button4
+#define BUTTON_CROUCH button5
+#define BUTTON_HOOK   button6
+#define BUTTON_INFO   button7
+#define BUTTON_CHAT   buttonchat
+#define BUTTON_USE    buttonuse
+
 // Globals
 
 float g_domination, g_ctf, g_tdm, g_keyhunt, g_onslaught, g_assault, g_arena, g_lms, g_runematch;
@@ -431,3 +441,6 @@
 void Damage (entity targ, entity inflictor, entity attacker, float damage, float deathtype, vector hitloc, vector force);
 
 float lockteams;
+
+.float parm_idlesince;
+float sv_maxidle;

Modified: branches/nexuiz-2.0/data/qcsrc/server/g_damage.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/g_damage.qc	2008-06-30 06:41:22 UTC (rev 3738)
+++ branches/nexuiz-2.0/data/qcsrc/server/g_damage.qc	2008-06-30 06:42:54 UTC (rev 3739)
@@ -106,7 +106,7 @@
 		s = strcat(s, "I");
 	if(player.flagcarried != world)
 		s = strcat(s, "F");
-	if(player.buttonchat)
+	if(player.BUTTON_CHAT)
 		s = strcat(s, "T");
 	if(player.kh_next)
 		s = strcat(s, "K");

Modified: branches/nexuiz-2.0/data/qcsrc/server/g_hook.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/g_hook.qc	2008-06-30 06:41:22 UTC (rev 3738)
+++ branches/nexuiz-2.0/data/qcsrc/server/g_hook.qc	2008-06-30 06:42:54 UTC (rev 3739)
@@ -123,7 +123,7 @@
 					self.owner.velocity = self.owner.velocity + frametime * dir * rubberforce_overstretch;
 			}
 
-			if(!self.owner.button5) // crouch key = don't pull
+			if(!self.owner.BUTTON_CROUCH) // crouch key = don't pull
 				self.rope_length = newlength;
 
 			// then pull the player
@@ -246,7 +246,7 @@
 void GrapplingHookFrame()
 {
 	// this function has been modified for Nexuiz
-	if (self.button6 && g_grappling_hook)
+	if (self.BUTTON_HOOK && g_grappling_hook)
 	{
 		if (!self.hook && self.hook_time <= time && !self.button6_pressed_before)
 			if (timeoutStatus != 2) //only allow the player to fire the grappling hook if the game is not paused (timeout)
@@ -257,7 +257,7 @@
 		if (self.hook)
 			RemoveGrapplingHook(self);
 	}
-	self.button6_pressed_before = self.button6;
+	self.button6_pressed_before = self.BUTTON_HOOK;
 	/*
 	// if I have no hook or it's not pulling yet, make sure I'm not flying!
 	if((self.hook == world || !self.hook.state) && self.movetype == MOVETYPE_FLY)
@@ -292,6 +292,6 @@
 {
 	// this function has been modified for Nexuiz
 	// don't remove these lines! old server or demos coud overwrite the new aliases
-	stuffcmd(self, "alias +hook +button6\n");
-	stuffcmd(self, "alias -hook -button6\n");
+	stuffcmd(self, "alias +hook +BUTTON_HOOK\n");
+	stuffcmd(self, "alias -hook -BUTTON_HOOK\n");
 }

Modified: branches/nexuiz-2.0/data/qcsrc/server/g_tetris.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/g_tetris.qc	2008-06-30 06:41:22 UTC (rev 3738)
+++ branches/nexuiz-2.0/data/qcsrc/server/g_tetris.qc	2008-06-30 06:42:54 UTC (rev 3739)
@@ -735,9 +735,9 @@
 		else if(self.movement_y > 0)
 			keysa |= TETKEY_RIGHT;
 	}
-	if (self.button0)
+	if (self.BUTTON_ATCK)
 		keysa = keysa | TETKEY_ROTRIGHT;
-	if (self.button2)
+	if (self.BUTTON_JUMP)
 		keysa = keysa | TETKEY_ROTLEFT;
 	HandleGame(keysa);
 	return 1;

Modified: branches/nexuiz-2.0/data/qcsrc/server/g_world.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/g_world.qc	2008-06-30 06:41:22 UTC (rev 3738)
+++ branches/nexuiz-2.0/data/qcsrc/server/g_world.qc	2008-06-30 06:42:54 UTC (rev 3739)
@@ -882,7 +882,7 @@
 		return;
 
 	if(!mapvote_initialized)
-		if (time < intermission_exittime + 10 && !self.button0 && !self.button2 && !self.button3 && !self.button6 && !self.buttonuse)
+		if (time < intermission_exittime + 10 && !self.BUTTON_ATCK && !self.BUTTON_JUMP && !self.BUTTON_ATCK2 && !self.BUTTON_HOOK && !self.BUTTON_USE)
 			return;
 
 	MapVote_Start();

Modified: branches/nexuiz-2.0/data/qcsrc/server/havocbot.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/havocbot.qc	2008-06-30 06:41:22 UTC (rev 3738)
+++ branches/nexuiz-2.0/data/qcsrc/server/havocbot.qc	2008-06-30 06:42:54 UTC (rev 3739)
@@ -140,7 +140,7 @@
 					s = trace_fraction;
 					tracebox(self.origin + '0 0 48', self.mins, self.maxs, self.origin + self.velocity * 0.2 + '0 0 48', FALSE, self);
 					if (trace_fraction > s)
-						self.button2 = 1;
+						self.BUTTON_JUMP = 1;
 				}
 			}
 
@@ -165,12 +165,12 @@
 
 		dir = normalize(dir + dodge + evadeobstacle + evadelava);
 	//	self.bot_dodgevector = dir;
-	//	self.bot_dodgevector_jumpbutton = self.button2;
+	//	self.bot_dodgevector_jumpbutton = self.BUTTON_JUMP;
 	}
 
 	//dir = self.bot_dodgevector;
 	//if (self.bot_dodgevector_jumpbutton)
-	//	self.button2 = 1;
+	//	self.BUTTON_JUMP = 1;
 
 	self.movement_x = dir * v_forward * maxspeed;
 	self.movement_y = dir * v_right * maxspeed;
@@ -237,7 +237,7 @@
 				keyboard_z = 0;
 
 			self.havocbot_keyboard = keyboard * maxspeed;
-			if (self.havocbot_ducktime>time) self.button5=TRUE;
+			if (self.havocbot_ducktime>time) self.BUTTON_CROUCH=TRUE;
 		}
 		keyboard = self.havocbot_keyboard;
 		blend = bound(0,vlen(destorg-self.origin)/cvar("bot_ai_keyboard_distance"),1); // When getting close move with 360 degree
@@ -245,8 +245,8 @@
 		self.movement = self.movement + (keyboard - self.movement) * blend;
 	}
 
-	if ((dir * v_up) >= cvar("sv_jumpvelocity")*0.5 && (self.flags & FL_ONGROUND)) self.button2=1;
-	if (((dodge * v_up) > 0) && random()*frametime >= 0.2*bound(0,(10-skill)*0.1,1)) self.button2=TRUE;
+	if ((dir * v_up) >= cvar("sv_jumpvelocity")*0.5 && (self.flags & FL_ONGROUND)) self.BUTTON_JUMP=1;
+	if (((dodge * v_up) > 0) && random()*frametime >= 0.2*bound(0,(10-skill)*0.1,1)) self.BUTTON_JUMP=TRUE;
 	if (((dodge * v_up) < 0) && random()*frametime >= 0.5*bound(0,(10-skill)*0.1,1)) self.havocbot_ducktime=time+0.3/bound(0.1,skill,10);
 
 };
@@ -459,8 +459,8 @@
 		weapon_action(self.weapon, WR_AIM);
 		if (cvar("bot_nofire"))
 		{
-			self.button0 = FALSE;
-			self.button3 = FALSE;
+			self.BUTTON_ATCK = FALSE;
+			self.BUTTON_ATCK2 = FALSE;
 		}
 	}
 	else if (self.goalcurrent)

Modified: branches/nexuiz-2.0/data/qcsrc/server/keyhunt.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/keyhunt.qc	2008-06-30 06:41:22 UTC (rev 3738)
+++ branches/nexuiz-2.0/data/qcsrc/server/keyhunt.qc	2008-06-30 06:42:54 UTC (rev 3739)
@@ -468,7 +468,7 @@
 		setorigin(self, v_forward * KH_KEY_XYDIST + '0 0 1' * self.origin_z);
 #endif
 
-		if(self.owner.buttonuse)
+		if(self.owner.BUTTON_USE)
 		if(time >= self.owner.kh_droptime + cvar("g_balance_keyhunt_delay_drop"))
 		{
 			self.owner.kh_droptime = time;
@@ -680,7 +680,7 @@
 		players = 0;
 		FOR_EACH_PLAYER(player)
 			if(player.deadflag == DEAD_NO)
-				if(!player.buttonchat)
+				if(!player.BUTTON_CHAT)
 					if(player.team == teem)
 						++players;
 		if(players == 0)
@@ -727,7 +727,7 @@
 		entity my_player;
 		FOR_EACH_PLAYER(player)
 			if(player.deadflag == DEAD_NO)
-				if(!player.buttonchat)
+				if(!player.BUTTON_CHAT)
 					if(player.team == teem)
 					{
 						++players;

Modified: branches/nexuiz-2.0/data/qcsrc/server/miscfunctions.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/miscfunctions.qc	2008-06-30 06:41:22 UTC (rev 3738)
+++ branches/nexuiz-2.0/data/qcsrc/server/miscfunctions.qc	2008-06-30 06:42:54 UTC (rev 3739)
@@ -652,6 +652,7 @@
 #define CENTERPRIO_VOTE 4
 #define CENTERPRIO_NORMAL 5
 #define CENTERPRIO_MAPVOTE 9
+#define CENTERPRIO_IDLEKICK 50
 #define CENTERPRIO_ADMIN 99
 .float centerprint_priority;
 .float centerprint_expires;
@@ -765,6 +766,7 @@
 	g_rocketarena = cvar("g_rocketarena");
 	g_vampire = cvar("g_vampire");
 	g_tourney = cvar("g_tourney");
+	sv_maxidle = cvar("sv_maxidle");
 
 	g_pickup_shells                    = cvar("g_pickup_shells");
 	g_pickup_shells_max                = cvar("g_pickup_shells_max");

Modified: branches/nexuiz-2.0/data/qcsrc/server/t_quake.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/t_quake.qc	2008-06-30 06:41:22 UTC (rev 3738)
+++ branches/nexuiz-2.0/data/qcsrc/server/t_quake.qc	2008-06-30 06:42:54 UTC (rev 3739)
@@ -22,8 +22,8 @@
 	self.exteriormodeltoclient = world;
 	self.glow_trail = 0;
 	self.tag_entity = world;
-	self.button6 = 0;
-	self.button7 = 0;
+	self.BUTTON_HOOK = 0;
+	self.BUTTON_INFO = 0;
 	self.button8 = 0;
 	self.pitch_speed = 0;
 	self.drawonlytoclient = world;

Modified: branches/nexuiz-2.0/data/qcsrc/server/teamplay.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/teamplay.qc	2008-06-30 06:41:22 UTC (rev 3738)
+++ branches/nexuiz-2.0/data/qcsrc/server/teamplay.qc	2008-06-30 06:42:54 UTC (rev 3739)
@@ -365,7 +365,7 @@
 		return;
 	}
 
-	if(!self.button7)
+	if(!self.BUTTON_INFO)
 	{
 		if(self.classname == "observer")
 		{

Modified: branches/nexuiz-2.0/data/qcsrc/server/w_crylink.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/w_crylink.qc	2008-06-30 06:41:22 UTC (rev 3738)
+++ branches/nexuiz-2.0/data/qcsrc/server/w_crylink.qc	2008-06-30 06:42:54 UTC (rev 3739)
@@ -200,19 +200,19 @@
 	if (req == WR_AIM)
 	{
 		if (random() > 0.15)
-			self.button0 = bot_aim(cvar("g_balance_crylink_primary_speed"), 0, cvar("g_balance_crylink_primary_middle_lifetime"), FALSE);
+			self.BUTTON_ATCK = bot_aim(cvar("g_balance_crylink_primary_speed"), 0, cvar("g_balance_crylink_primary_middle_lifetime"), FALSE);
 		else
-			self.button3 = bot_aim(cvar("g_balance_crylink_secondary_speed"), 0, cvar("g_balance_crylink_secondary_middle_lifetime"), FALSE);
+			self.BUTTON_ATCK2 = bot_aim(cvar("g_balance_crylink_secondary_speed"), 0, cvar("g_balance_crylink_secondary_middle_lifetime"), FALSE);
 	}
 	else if (req == WR_THINK)
 	{
-		if (self.button0)
+		if (self.BUTTON_ATCK)
 		if (weapon_prepareattack(0, cvar("g_balance_crylink_primary_refire")))
 		{
 			W_Crylink_Attack();
 			weapon_thinkf(WFRAME_FIRE1, cvar("g_balance_crylink_primary_animtime"), w_ready);
 		}
-		if (self.button3)
+		if (self.BUTTON_ATCK2)
 		if (weapon_prepareattack(1, cvar("g_balance_crylink_secondary_refire")))
 		{
 			W_Crylink_Attack2();

Modified: branches/nexuiz-2.0/data/qcsrc/server/w_electro.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/w_electro.qc	2008-06-30 06:41:22 UTC (rev 3738)
+++ branches/nexuiz-2.0/data/qcsrc/server/w_electro.qc	2008-06-30 06:42:54 UTC (rev 3739)
@@ -169,15 +169,15 @@
 {
 	if (req == WR_AIM)
 	{
-		self.button0=FALSE;
-		self.button3=FALSE;
+		self.BUTTON_ATCK=FALSE;
+		self.BUTTON_ATCK2=FALSE;
 		if(vlen(self.origin-self.enemy.origin) > 1000)
 			self.bot_secondary_electromooth = 0;
 		if(self.bot_secondary_electromooth == 0)
 		{
 			if(bot_aim(cvar("g_balance_electro_primary_speed"), 0, cvar("g_balance_electro_primary_lifetime"), FALSE))
 			{
-				self.button0 = TRUE;
+				self.BUTTON_ATCK = TRUE;
 				if(random() < 0.01) self.bot_secondary_electromooth = 1;
 			}
 		}
@@ -185,20 +185,20 @@
 		{
 			if(bot_aim(cvar("g_balance_electro_secondary_speed"), cvar("g_balance_grenadelauncher_secondary_speed_up"), cvar("g_balance_electro_secondary_lifetime"), TRUE))
 			{
-				self.button3 = TRUE;
+				self.BUTTON_ATCK2 = TRUE;
 				if(random() < 0.03) self.bot_secondary_electromooth = 0;
 			}
 		}
 	}
 	else if (req == WR_THINK)
 	{
-		if (self.button0)
+		if (self.BUTTON_ATCK)
 		if (weapon_prepareattack(0, cvar("g_balance_electro_primary_refire")))
 		{
 			W_Electro_Attack();
 			weapon_thinkf(WFRAME_FIRE1, cvar("g_balance_electro_primary_animtime"), w_ready);
 		}
-		if (self.button3)
+		if (self.BUTTON_ATCK2)
 		if (weapon_prepareattack(1, cvar("g_balance_electro_secondary_refire")))
 		{
 			W_Electro_Attack2();

Modified: branches/nexuiz-2.0/data/qcsrc/server/w_grenadelauncher.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/w_grenadelauncher.qc	2008-06-30 06:41:22 UTC (rev 3738)
+++ branches/nexuiz-2.0/data/qcsrc/server/w_grenadelauncher.qc	2008-06-30 06:42:54 UTC (rev 3739)
@@ -152,13 +152,13 @@
 {
 	if (req == WR_AIM)
 	{
-		self.button0 = FALSE;
-		self.button3 = FALSE;
+		self.BUTTON_ATCK = FALSE;
+		self.BUTTON_ATCK2 = FALSE;
 		if (self.bot_secondary_grenademooth == 0)
 		{
 			if(bot_aim(cvar("g_balance_grenadelauncher_primary_speed"), cvar("g_balance_grenadelauncher_primary_speed_up"), cvar("g_balance_grenadelauncher_primary_lifetime"), TRUE))
 			{
-				self.button0 = TRUE;
+				self.BUTTON_ATCK = TRUE;
 				if(random() < 0.01) self.bot_secondary_grenademooth = 1;
 			}
 		}
@@ -166,20 +166,20 @@
 		{
 			if(bot_aim(cvar("g_balance_grenadelauncher_secondary_speed"), cvar("g_balance_grenadelauncher_secondary_speed_up"), cvar("g_balance_grenadelauncher_secondary_lifetime"), TRUE))
 			{
-				self.button3 = TRUE;
+				self.BUTTON_ATCK2 = TRUE;
 				if(random() < 0.02) self.bot_secondary_grenademooth = 0;
 			}
 		}
 	}
 	else if (req == WR_THINK)
 	{
-		if (self.button0)
+		if (self.BUTTON_ATCK)
 		if (weapon_prepareattack(0, cvar("g_balance_grenadelauncher_primary_refire")))
 		{
 			W_Grenade_Attack();
 			weapon_thinkf(WFRAME_FIRE1, cvar("g_balance_grenadelauncher_primary_animtime"), w_ready);
 		}
-		if (self.button3)
+		if (self.BUTTON_ATCK2)
 		if (weapon_prepareattack(1, cvar("g_balance_grenadelauncher_secondary_refire")))
 		{
 			W_Grenade_Attack2();

Modified: branches/nexuiz-2.0/data/qcsrc/server/w_hagar.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/w_hagar.qc	2008-06-30 06:41:22 UTC (rev 3738)
+++ branches/nexuiz-2.0/data/qcsrc/server/w_hagar.qc	2008-06-30 06:42:54 UTC (rev 3739)
@@ -160,21 +160,21 @@
 {
 	if (req == WR_AIM)
 		if (random()>0.15)
-			self.button0 = bot_aim(cvar("g_balance_hagar_primary_speed"), 0, cvar("g_balance_hagar_primary_lifetime"), FALSE);
+			self.BUTTON_ATCK = bot_aim(cvar("g_balance_hagar_primary_speed"), 0, cvar("g_balance_hagar_primary_lifetime"), FALSE);
 		else
 		{
 			// not using secondary_speed since these are only 15% and should cause some ricochets without re-aiming
-			self.button3 = bot_aim(cvar("g_balance_hagar_primary_speed"), 0, cvar("g_balance_hagar_primary_lifetime"), FALSE);
+			self.BUTTON_ATCK2 = bot_aim(cvar("g_balance_hagar_primary_speed"), 0, cvar("g_balance_hagar_primary_lifetime"), FALSE);
 		}
 	else if (req == WR_THINK)
 	{
-		if (self.button0)
+		if (self.BUTTON_ATCK)
 		if (weapon_prepareattack(0, cvar("g_balance_hagar_primary_refire")))
 		{
 			W_Hagar_Attack();
 			weapon_thinkf(WFRAME_FIRE1, cvar("g_balance_hagar_primary_refire"), w_ready);
 		}
-		if (self.button3)
+		if (self.BUTTON_ATCK2)
 		if (weapon_prepareattack(1, cvar("g_balance_hagar_secondary_refire")))
 		{
 			W_Hagar_Attack2();

Modified: branches/nexuiz-2.0/data/qcsrc/server/w_laser.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/w_laser.qc	2008-06-30 06:41:22 UTC (rev 3738)
+++ branches/nexuiz-2.0/data/qcsrc/server/w_laser.qc	2008-06-30 06:42:54 UTC (rev 3739)
@@ -86,22 +86,22 @@
 			r1 = cvar("g_balance_laser_primary_damage");
 			r2 = cvar("g_balance_laser_secondary_damage");
 			if (random() * (r2 + r1) > r1)
-				self.button3 = bot_aim(cvar("g_balance_laser_secondary_speed"), 0, cvar("g_balance_laser_secondary_lifetime"), FALSE);
+				self.BUTTON_ATCK2 = bot_aim(cvar("g_balance_laser_secondary_speed"), 0, cvar("g_balance_laser_secondary_lifetime"), FALSE);
 			else
-				self.button0 = bot_aim(cvar("g_balance_laser_primary_speed"), 0, cvar("g_balance_laser_primary_lifetime"), FALSE);
+				self.BUTTON_ATCK = bot_aim(cvar("g_balance_laser_primary_speed"), 0, cvar("g_balance_laser_primary_lifetime"), FALSE);
 		}
 		else
-			self.button0 = bot_aim(cvar("g_balance_laser_primary_speed"), 0, cvar("g_balance_laser_primary_lifetime"), FALSE);
+			self.BUTTON_ATCK = bot_aim(cvar("g_balance_laser_primary_speed"), 0, cvar("g_balance_laser_primary_lifetime"), FALSE);
 	}
 	else if (req == WR_THINK)
 	{
-		if (self.button0)
+		if (self.BUTTON_ATCK)
 		if (weapon_prepareattack(0, cvar("g_balance_laser_primary_refire")))
 		{
 			W_Laser_Attack(FALSE);
 			weapon_thinkf(WFRAME_FIRE1, cvar("g_balance_laser_primary_animtime"), w_ready);
 		}
-		if (self.button3)
+		if (self.BUTTON_ATCK2)
 		{
 			if(cvar("g_balance_laser_secondary"))
 			{
@@ -113,7 +113,7 @@
 			}
 			else
 			{
-				if (self.button3)
+				if (self.BUTTON_ATCK2)
 				if (client_hasweapon(self, self.cnt, TRUE, FALSE))
 					W_SwitchWeapon (self.cnt);
 			}

Modified: branches/nexuiz-2.0/data/qcsrc/server/w_nex.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/w_nex.qc	2008-06-30 06:41:22 UTC (rev 3738)
+++ branches/nexuiz-2.0/data/qcsrc/server/w_nex.qc	2008-06-30 06:42:54 UTC (rev 3739)
@@ -122,10 +122,10 @@
 float(float req) w_nex =
 {
 	if (req == WR_AIM)
-		self.button0 = bot_aim(1000000, 0, 1, FALSE);
+		self.BUTTON_ATCK = bot_aim(1000000, 0, 1, FALSE);
 	else if (req == WR_THINK)
 	{
-		if (self.button0)
+		if (self.BUTTON_ATCK)
 		{
 			if(g_minstagib)
 			{
@@ -144,7 +144,7 @@
 				}
 			}
 		}
-		else if (self.button3)
+		else if (self.BUTTON_ATCK2)
 		{
 			if (g_minstagib)
 			{

Modified: branches/nexuiz-2.0/data/qcsrc/server/w_rocketlauncher.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/w_rocketlauncher.qc	2008-06-30 06:41:22 UTC (rev 3738)
+++ branches/nexuiz-2.0/data/qcsrc/server/w_rocketlauncher.qc	2008-06-30 06:42:54 UTC (rev 3739)
@@ -131,12 +131,12 @@
 	{
 		if(g_laserguided_missile)
 		{
-			if(!self.owner.button0)
+			if(!self.owner.BUTTON_ATCK)
 				self.ltime = -1; // indicate that the player has let go of the button
 
 
 			if(self.owner.deadflag == DEAD_NO)
-			if (self.owner.button0 && self.ltime < 0) // if the player let go of the button and then pushed it again
+			if (self.owner.BUTTON_ATCK && self.ltime < 0) // if the player let go of the button and then pushed it again
 				self.rl_detonate_later = TRUE;
 			if(self.rl_detonate_later)
 				W_Rocket_RemoteExplode();
@@ -176,7 +176,7 @@
 		}
 		else
 		{
-			if (self.owner.button3)
+			if (self.owner.BUTTON_ATCK2)
 				self.rl_detonate_later = TRUE;
 			if(self.rl_detonate_later)
 				W_Rocket_RemoteExplode();
@@ -288,7 +288,7 @@
 	if (req == WR_AIM)
 	{
 		// aim and decide to fire if appropriate
-		self.button0 = bot_aim(cvar("g_balance_rocketlauncher_speed"), 0, cvar("g_balance_rocketlauncher_lifetime"), FALSE);
+		self.BUTTON_ATCK = bot_aim(cvar("g_balance_rocketlauncher_speed"), 0, cvar("g_balance_rocketlauncher_lifetime"), FALSE);
 		if(skill >= 2) // skill 0 and 1 bots won't detonate rockets!
 		{
 			// decide whether to detonate rockets
@@ -352,7 +352,7 @@
 						if (
 							(v_forward * normalize(missile.origin - targ.origin)< 0.1)
 							&& desirabledamage > 0.1*coredamage
-						)self.button3 = TRUE;
+						)self.BUTTON_ATCK2 = TRUE;
 						targ = targ.chain;
 					}
 				}else{
@@ -363,7 +363,7 @@
 						if(self.enemy.classname == "player")
 							if(desirabledamage >= 0.1*coredamage)
 								if(random()/distance*300 > frametime*bound(0,(10-skill)*0.2,1))
-									self.button3 = TRUE;
+									self.BUTTON_ATCK2 = TRUE;
 				//	dprint(ftos(random()/distance*300),">");dprint(ftos(frametime*bound(0,(10-skill)*0.2,1)),"\n");
 				}
 
@@ -372,29 +372,29 @@
 			// if we would be doing at X percent of the core damage, detonate it
 			// but don't fire a new shot at the same time!
 			if (desirabledamage >= 0.75 * coredamage) //this should do group damage in rare fortunate events
-				self.button3 = TRUE;
+				self.BUTTON_ATCK2 = TRUE;
 			if ((skill > 6.5) && (selfdamage > self.health))
-				self.button3 = FALSE;
-			//if(self.button3 == TRUE)
+				self.BUTTON_ATCK2 = FALSE;
+			//if(self.BUTTON_ATCK2 == TRUE)
 			//	dprint(ftos(desirabledamage),"\n");
-			if (self.button3 == TRUE) self.button0 = FALSE;
+			if (self.BUTTON_ATCK2 == TRUE) self.BUTTON_ATCK = FALSE;
 		}
 	}
 	else if (req == WR_THINK)
 	{
-		if (self.button0)
+		if (self.BUTTON_ATCK)
 		if (weapon_prepareattack(0, cvar("g_balance_rocketlauncher_refire")))
 		{
 			W_Rocket_Attack();
 			weapon_thinkf(WFRAME_FIRE1, cvar("g_balance_rocketlauncher_animtime"), w_ready);
 		}
-		if (self.button3)
+		if (self.BUTTON_ATCK2)
 		if(time > self.rl_sound)
 		{
 			self.rl_sound = time + 1;
 			sound (self, CHAN_BODY, "weapons/rocket_det.wav", 0.5, ATTN_NORM);
 		}
-		if (self.button3)
+		if (self.BUTTON_ATCK2)
 		if(g_laserguided_missile)
 		if(self.exteriorweaponentity.attack_finished_single < time)
 		{

Modified: branches/nexuiz-2.0/data/qcsrc/server/w_shotgun.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/w_shotgun.qc	2008-06-30 06:41:22 UTC (rev 3738)
+++ branches/nexuiz-2.0/data/qcsrc/server/w_shotgun.qc	2008-06-30 06:42:54 UTC (rev 3739)
@@ -99,18 +99,18 @@
 {
 	if (req == WR_AIM)
 		if(vlen(self.origin-self.enemy.origin)>200)
-			self.button0 = bot_aim(1000000, 0, 0.001, FALSE);
+			self.BUTTON_ATCK = bot_aim(1000000, 0, 0.001, FALSE);
 		else
-			self.button3 = bot_aim(1000000, 0, 0.001, FALSE);
+			self.BUTTON_ATCK2 = bot_aim(1000000, 0, 0.001, FALSE);
 	else if (req == WR_THINK)
 	{
-		if (self.button0)
+		if (self.BUTTON_ATCK)
 		if (weapon_prepareattack(0, cvar("g_balance_shotgun_primary_refire")))
 		{
 			W_Shotgun_Attack();
 			weapon_thinkf(WFRAME_FIRE1, cvar("g_balance_shotgun_primary_animtime"), w_ready);
 		}
-		if (self.button3)
+		if (self.BUTTON_ATCK2)
 		if (weapon_prepareattack(1, cvar("g_balance_shotgun_secondary_refire")))
 		{
 			W_Shotgun_Attack2();

Modified: branches/nexuiz-2.0/data/qcsrc/server/w_uzi.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/w_uzi.qc	2008-06-30 06:41:22 UTC (rev 3738)
+++ branches/nexuiz-2.0/data/qcsrc/server/w_uzi.qc	2008-06-30 06:42:54 UTC (rev 3739)
@@ -82,7 +82,7 @@
 		w_ready();
 		return;
 	}
-	if (self.button0)
+	if (self.BUTTON_ATCK)
 	{
 		if (!weapon_action(self.weapon, WR_CHECKAMMO2))
 		{
@@ -105,21 +105,21 @@
 {
 	if (req == WR_AIM)
 		if(vlen(self.origin-self.enemy.origin) < 3000 - bound(0, skill, 10) * 200)
-			self.button0 = bot_aim(1000000, 0, 0.001, FALSE);
+			self.BUTTON_ATCK = bot_aim(1000000, 0, 0.001, FALSE);
 		else
 		{
-			self.button3 = bot_aim(1000000, 0, 0.001, FALSE);
+			self.BUTTON_ATCK2 = bot_aim(1000000, 0, 0.001, FALSE);
 		}
 	else if (req == WR_THINK)
 	{
-		if (self.button0)
+		if (self.BUTTON_ATCK)
 		if (weapon_prepareattack(0, cvar("g_balance_uzi_refire")))
 		{
 			self.uzi_bulletcounter = 1;
 			W_Uzi_Attack();
 			weapon_thinkf(WFRAME_FIRE1, cvar("g_balance_uzi_sustained_refire"), uzi_fire1_02);
 		}
-		if (self.button3)
+		if (self.BUTTON_ATCK2)
 		if (weapon_prepareattack(1, cvar("g_balance_uzi_refire")))
 		{
 			self.uzi_bulletcounter = 1;




More information about the nexuiz-commits mailing list