[nexuiz-commits] r7846 - trunk/data/qcsrc/server
DONOTREPLY at icculus.org
DONOTREPLY at icculus.org
Sun Sep 20 06:29:34 EDT 2009
Author: div0
Date: 2009-09-20 06:29:34 -0400 (Sun, 20 Sep 2009)
New Revision: 7846
Modified:
trunk/data/qcsrc/server/cl_client.qc
trunk/data/qcsrc/server/cl_impulse.qc
trunk/data/qcsrc/server/defs.qh
Log:
improve impulse 30/141 for cts
Modified: trunk/data/qcsrc/server/cl_client.qc
===================================================================
--- trunk/data/qcsrc/server/cl_client.qc 2009-09-20 10:06:26 UTC (rev 7845)
+++ trunk/data/qcsrc/server/cl_client.qc 2009-09-20 10:29:34 UTC (rev 7846)
@@ -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)
{
- 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: trunk/data/qcsrc/server/cl_impulse.qc
===================================================================
--- trunk/data/qcsrc/server/cl_impulse.qc 2009-09-20 10:06:26 UTC (rev 7845)
+++ trunk/data/qcsrc/server/cl_impulse.qc 2009-09-20 10:29:34 UTC (rev 7846)
@@ -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;
@@ -356,10 +374,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 +385,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 +395,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: trunk/data/qcsrc/server/defs.qh
===================================================================
--- trunk/data/qcsrc/server/defs.qh 2009-09-20 10:06:26 UTC (rev 7845)
+++ trunk/data/qcsrc/server/defs.qh 2009-09-20 10:29:34 UTC (rev 7846)
@@ -620,3 +620,4 @@
.float restriction;
.entity clientdata;
+.entity personal;
More information about the nexuiz-commits
mailing list