[nexuiz-commits] r7879 - in branches/nexuiz-2.0: . data/qcsrc/server

DONOTREPLY at icculus.org DONOTREPLY at icculus.org
Wed Sep 23 06:25:17 EDT 2009


Author: div0
Date: 2009-09-23 06:25:17 -0400 (Wed, 23 Sep 2009)
New Revision: 7879

Modified:
   branches/nexuiz-2.0/.patchsets
   branches/nexuiz-2.0/data/qcsrc/server/cl_client.qc
   branches/nexuiz-2.0/data/qcsrc/server/cl_impulse.qc
   branches/nexuiz-2.0/data/qcsrc/server/defs.qh
Log:
r7846 | div0 | 2009-09-20 06:29:34 -0400 (Sun, 20 Sep 2009) | 2 lines
improve impulse 30/141 for cts
r7847 | div0 | 2009-09-20 06:30:36 -0400 (Sun, 20 Sep 2009) | 2 lines
allow breaking out of respawn loops :P
r7848 | div0 | 2009-09-20 06:33:55 -0400 (Sun, 20 Sep 2009) | 2 lines
only autorespawn in cts or qualifying


Modified: branches/nexuiz-2.0/.patchsets
===================================================================
--- branches/nexuiz-2.0/.patchsets	2009-09-23 10:24:51 UTC (rev 7878)
+++ branches/nexuiz-2.0/.patchsets	2009-09-23 10:25:17 UTC (rev 7879)
@@ -1,2 +1,2 @@
 master = svn://svn.icculus.org/nexuiz/trunk
-revisions_applied = 1-7563,7565-7586,7589-7589,7592-7592,7595-7595,7597-7597,7599-7602,7605-7610,7612-7615,7619-7620,7623-7623,7626-7628,7630-7630,7644-7651,7656-7656,7658-7660,7663-7665,7670-7670,7672-7676,7678-7680,7686-7687,7689-7698,7701-7701,7703-7714,7717-7723,7731-7731,7735-7741,7744-7745,7752-7754,7756-7758,7761-7764,7771-7773,7775-7775,7778-7778,7781-7788,7795-7816,7818-7834,7836-7838,7840-7845
+revisions_applied = 1-7563,7565-7586,7589-7589,7592-7592,7595-7595,7597-7597,7599-7602,7605-7610,7612-7615,7619-7620,7623-7623,7626-7628,7630-7630,7644-7651,7656-7656,7658-7660,7663-7665,7670-7670,7672-7676,7678-7680,7686-7687,7689-7698,7701-7701,7703-7714,7717-7723,7731-7731,7735-7741,7744-7745,7752-7754,7756-7758,7761-7764,7771-7773,7775-7775,7778-7778,7781-7788,7795-7816,7818-7834,7836-7838,7840-7848

Modified: branches/nexuiz-2.0/data/qcsrc/server/cl_client.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/cl_client.qc	2009-09-23 10:24:51 UTC (rev 7878)
+++ branches/nexuiz-2.0/data/qcsrc/server/cl_client.qc	2009-09-23 10:25:17 UTC (rev 7879)
@@ -1537,6 +1537,9 @@
 
 	ClearPlayerSounds();
 
+	if(self.personal)
+		remove(self.personal);
+
 	self.playerid = 0;
 	ReadyCount();
 
@@ -2383,36 +2386,48 @@
 		if (self.deadflag != DEAD_NO)
 		{
 			float button_pressed, force_respawn;
-			if(frametime)
-				player_anim();
-			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)
+			if(self.personal && g_race_qualifying)
 			{
-				if(force_respawn)
-					self.deadflag = DEAD_RESPAWNING;
-				else if(!button_pressed)
-					self.deadflag = DEAD_DEAD;
-			}
-			else if (self.deadflag == DEAD_DEAD)
-			{
-				if(button_pressed)
-					self.deadflag = DEAD_RESPAWNABLE;
-			}
-			else if (self.deadflag == DEAD_RESPAWNABLE)
-			{
-				if(!button_pressed)
-					self.deadflag = DEAD_RESPAWNING;
-			}
-			else if (self.deadflag == DEAD_RESPAWNING)
-			{
 				if(time > self.death_time)
 				{
 					self.death_time = time + 1; // only retry once a second
 					respawn();
+					self.impulse = 141;
 				}
 			}
-			ShowRespawnCountdown();
+			else
+			{
+				if(frametime)
+					player_anim();
+				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)
+				{
+					if(force_respawn)
+						self.deadflag = DEAD_RESPAWNING;
+					else if(!button_pressed)
+						self.deadflag = DEAD_DEAD;
+				}
+				else if (self.deadflag == DEAD_DEAD)
+				{
+					if(button_pressed)
+						self.deadflag = DEAD_RESPAWNABLE;
+				}
+				else if (self.deadflag == DEAD_RESPAWNABLE)
+				{
+					if(!button_pressed)
+						self.deadflag = DEAD_RESPAWNING;
+				}
+				else if (self.deadflag == DEAD_RESPAWNING)
+				{
+					if(time > self.death_time)
+					{
+						self.death_time = time + 1; // only retry once a second
+						respawn();
+					}
+				}
+				ShowRespawnCountdown();
+			}
 			return;
 		}
 

Modified: branches/nexuiz-2.0/data/qcsrc/server/cl_impulse.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/cl_impulse.qc	2009-09-23 10:24:51 UTC (rev 7878)
+++ branches/nexuiz-2.0/data/qcsrc/server/cl_impulse.qc	2009-09-23 10:25:17 UTC (rev 7879)
@@ -1,6 +1,3 @@
-.vector personal_v_angle; // view angles to restore on reset impulse for CTF speedrun
-.vector personal_velocity; // velocity to restore on reset impulse for CTF speedrun
-
 void CopyBody(float keepvelocity);
 
 // changes by LordHavoc on 03/30/04
@@ -195,8 +192,33 @@
 					WaypointSprite_UpdateTeamRadar(wp, RADARICON_WAYPOINT, '0 1 1');
 					WaypointSprite_Ping(wp);
 				}
-				self.personal_v_angle = self.v_angle;
-				self.personal_velocity = self.velocity;
+				if(sv_cheats)
+				{
+					if(!self.personal)
+					{
+						self.personal = spawn();
+						self.personal.classname = "personal_wp";
+					}
+					self.personal.origin = self.origin;
+					self.personal.v_angle = self.v_angle;
+					self.personal.velocity = self.velocity;
+					self.personal.ammo_rockets = self.ammo_rockets;
+					self.personal.ammo_nails = self.ammo_nails;
+					self.personal.ammo_cells = self.ammo_cells;
+					self.personal.ammo_shells = self.ammo_shells;
+					self.personal.ammo_fuel = self.ammo_fuel;
+					self.personal.health = self.health;
+					self.personal.armorvalue = self.armorvalue;
+					self.personal.weapons = self.weapons;
+					self.personal.items = self.items;
+					self.personal.pauserotarmor_finished = self.pauserotarmor_finished;
+					self.personal.pauserothealth_finished = self.pauserothealth_finished;
+					self.personal.pauserotfuel_finished = self.pauserotfuel_finished;
+					self.personal.pauseregen_finished = self.pauseregen_finished;
+					self.personal.strength_finished = self.strength_finished;
+					self.personal.invincible_finished = self.invincible_finished;
+					self.personal.teleport_time = time;
+				}
 				sprint(self, "personal waypoint spawned at location\n");
 				break;
 			case 31:
@@ -206,8 +228,6 @@
 					WaypointSprite_UpdateTeamRadar(wp, RADARICON_WAYPOINT, '0 1 1');
 					WaypointSprite_Ping(wp);
 				}
-				self.personal_v_angle = self.v_angle;
-				self.personal_velocity = '0 0 0';
 				sprint(self, "personal waypoint spawned at crosshair\n");
 				break;
 			case 32:
@@ -219,8 +239,6 @@
 						WaypointSprite_UpdateTeamRadar(wp, RADARICON_WAYPOINT, '0 1 1');
 						WaypointSprite_Ping(wp);
 					}
-					self.personal_v_angle = self.v_angle;
-					self.personal_velocity = '0 0 0';
 					sprint(self, "personal waypoint spawned at death location\n");
 				}
 				break;
@@ -299,10 +317,20 @@
 				break;
 			case 47:
 				WaypointSprite_ClearPersonal();
+				if(self.personal)
+				{
+					remove(self.personal);
+					self.personal = world;
+				}
 				sprint(self, "personal waypoint cleared\n");
 				break;
 			case 48:
 				WaypointSprite_ClearOwned();
+				if(self.personal)
+				{
+					remove(self.personal);
+					self.personal = world;
+				}
 				sprint(self, "all waypoints cleared\n");
 				break;
 		}
@@ -356,10 +384,10 @@
 						}
 						break;
 					case 141:
-						if(self.waypointsprite_deployed_personal)
+						if(self.personal)
 						{
 							self.speedrunning = TRUE;
-							tracebox(self.waypointsprite_deployed_personal.origin, self.mins, self.maxs, self.waypointsprite_deployed_personal.origin, MOVE_WORLDONLY, self);
+							tracebox(self.personal.origin, self.mins, self.maxs, self.personal.origin, MOVE_WORLDONLY, self);
 							if(trace_startsolid)
 							{
 								sprint(self, "Cannot move there, cheater - only waypoints set using g_waypointsprite_personal work\n");
@@ -367,9 +395,9 @@
 							else
 							{
 								// Abort speedrun, teleport back
-								setorigin(self, self.waypointsprite_deployed_personal.origin);
-								self.oldvelocity = self.velocity = self.personal_velocity;
-								self.angles = self.personal_v_angle;
+								setorigin(self, self.personal.origin);
+								self.oldvelocity = self.velocity = self.personal.velocity;
+								self.angles = self.personal.v_angle;
 								self.fixangle = TRUE;
 								if(self.flagcarried)
 								{
@@ -377,18 +405,41 @@
 									ReturnFlag(self.flagcarried);
 								}
 							}
-							self.ammo_rockets = 999;
-							self.ammo_nails = 999;
-							self.ammo_cells = 999;
-							self.ammo_shells = 999;
-							self.ammo_fuel = 999;
-							self.health = start_health;
-							self.armorvalue = start_armorvalue;
-							self.weapons |= weaponsInMap;
-							self.pauserotarmor_finished = time + cvar("g_balance_pause_armor_rot_spawn");
-							self.pauserothealth_finished = time + cvar("g_balance_pause_health_rot_spawn");
-							self.pauserotfuel_finished = time + cvar("g_balance_pause_fuel_rot_spawn");
-							self.pauseregen_finished = time + cvar("g_balance_pause_health_regen_spawn");
+							if(g_ctf)
+							{
+								self.ammo_rockets = 999;
+								self.ammo_nails = 999;
+								self.ammo_cells = 999;
+								self.ammo_shells = 999;
+								self.ammo_fuel = 999;
+								self.health = start_health;
+								self.armorvalue = start_armorvalue;
+								self.weapons |= weaponsInMap;
+								self.pauserotarmor_finished = time + cvar("g_balance_pause_armor_rot_spawn");
+								self.pauserothealth_finished = time + cvar("g_balance_pause_health_rot_spawn");
+								self.pauserotfuel_finished = time + cvar("g_balance_pause_fuel_rot_spawn");
+								self.pauseregen_finished = time + cvar("g_balance_pause_health_regen_spawn");
+								self.strength_finished = 0;
+								self.invincible_finished = 0;
+							}
+							else
+							{
+								self.ammo_rockets = self.personal.ammo_rockets;
+								self.ammo_nails = self.personal.ammo_nails;
+								self.ammo_cells = self.personal.ammo_cells;
+								self.ammo_shells = self.personal.ammo_shells;
+								self.ammo_fuel = self.personal.ammo_fuel;
+								self.health = self.personal.health;
+								self.armorvalue = self.personal.armorvalue;
+								self.weapons = self.personal.weapons;
+								self.items = self.personal.items;
+								self.pauserotarmor_finished = time + self.personal.pauserotarmor_finished - self.personal.teleport_time;
+								self.pauserothealth_finished = time + self.personal.pauserothealth_finished - self.personal.teleport_time;
+								self.pauserotfuel_finished = time + self.personal.pauserotfuel_finished - self.personal.teleport_time;
+								self.pauseregen_finished = time + self.personal.pauseregen_finished - self.personal.teleport_time;
+								self.strength_finished = time + self.personal.strength_finished - self.personal.teleport_time;
+								self.invincible_finished = time + self.personal.invincible_finished - self.personal.teleport_time;
+							}
 						}
 						else if(self.deadflag != DEAD_NO)
 							sprint(self, "UR DEAD AHAHAH))\n");

Modified: branches/nexuiz-2.0/data/qcsrc/server/defs.qh
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/defs.qh	2009-09-23 10:24:51 UTC (rev 7878)
+++ branches/nexuiz-2.0/data/qcsrc/server/defs.qh	2009-09-23 10:25:17 UTC (rev 7879)
@@ -620,3 +620,4 @@
 .float restriction;
 
 .entity clientdata;
+.entity personal;



More information about the nexuiz-commits mailing list