From e6929398f904d09534f4356643621b95e2c60c19 Mon Sep 17 00:00:00 2001 From: kadaverjack Date: Sat, 24 Jun 2006 22:44:20 +0000 Subject: [PATCH] - new cvar sv_spectator_speed_multiplier - removed te_plasmaburn for player hits - (hopefully) better spawn point selection for arena - fixed campcheck bug in LMS campaign - spectators now get FL_CLIENT flag git-svn-id: svn://svn.icculus.org/nexuiz/trunk@1668 f962a42d-fe04-0410-a3ab-8c8b0445ebaa --- data/default.cfg | 1 + data/qcsrc/server/arena.qc | 6 ++---- data/qcsrc/server/cl_client.qc | 25 +++++++++++++++++++------ data/qcsrc/server/cl_physics.qc | 6 ++++-- data/qcsrc/server/w_common.qc | 4 ++-- 5 files changed, 28 insertions(+), 14 deletions(-) diff --git a/data/default.cfg b/data/default.cfg index 57cc53a63..f0484ea8d 100644 --- a/data/default.cfg +++ b/data/default.cfg @@ -116,6 +116,7 @@ sv_accelerate 5.5 sv_airaccelerate 5.5 sv_friction 5 sv_maxspeed 400 +set sv_spectator_speed_multiplier 1.2 sv_stepheight 34 set sv_friction_on_land 0 // factor of the speed which gets lost on landing seta sv_spectate 1 diff --git a/data/qcsrc/server/arena.qc b/data/qcsrc/server/arena.qc index 54cfca57b..196ad017d 100644 --- a/data/qcsrc/server/arena.qc +++ b/data/qcsrc/server/arena.qc @@ -144,7 +144,7 @@ void Arena_Warmup() self.velocity = '0 0 0'; self.avelocity = '0 0 0'; self.movement = '0 0 0'; - self.fixangle = TRUE; + //self.fixangle = TRUE; } else if(self.movetype == MOVETYPE_NONE) { @@ -173,10 +173,8 @@ void Spawnqueue_Check() champion = find(world, classname, "player"); while(champion && champion.deadflag) champion = find(champion, classname, "player"); - } - - if(arena_roundbased) reset_map(); + } while(numspawned < maxspawned && spawnqueue_first) { diff --git a/data/qcsrc/server/cl_client.qc b/data/qcsrc/server/cl_client.qc index 290302831..7ba7c909d 100644 --- a/data/qcsrc/server/cl_client.qc +++ b/data/qcsrc/server/cl_client.qc @@ -140,7 +140,10 @@ entity SelectSpawnPoint (float anypoint) // (this means that roughly every other spawn will be furthest, so you // usually won't get fragged at spawn twice in a row) if (arena_roundbased) - spot = Spawn_FurthestPoint(firstspot, playerlist); + { + firstspot = Spawn_FilterOutBadSpots(firstspot, playerlist, 800, teamcheck); + spot = Spawn_RandomPoint(firstspot); + } else if (random() > 0.5 || spawn_allbad || spawn_allgood) spot = Spawn_RandomPoint(firstspot); else @@ -1216,6 +1219,9 @@ void SpectateCopy(entity spectatee) { } void SpectateUpdate() { + if(!self.enemy) + PutObserverInServer(); + if (self != self.enemy) { if(self.enemy.flags & FL_NOTARGET) PutObserverInServer(); @@ -1327,6 +1333,13 @@ void PlayerPreThink (void) dist_z = 0; self.lms_traveled_distance += fabs(vlen(dist)); + if(cvar("g_campaign")) + if(!campaign_bots_may_start) + { + self.lms_nextcheck = time + cvar("g_lms_campcheck_interval")*2; + self.lms_traveled_distance = 0; + } + if(time > self.lms_nextcheck) { //sprint(self, "distance: ", ftos(self.lms_traveled_distance), "\n"); @@ -1475,7 +1488,6 @@ void PlayerPreThink (void) } PrintWelcomeMessage(self); } else if(self.classname == "spectator") { - if (self.flags & FL_JUMPRELEASED) { if (self.button2 && self.version == cvar("gameversion")) { if(!cvar("teamplay") || cvar("g_campaign") || cvar("g_balance_teams")) { @@ -1511,12 +1523,13 @@ void PlayerPreThink (void) } else { SpectateUpdate(); } - } else { - if (!(self.button0 || self.button3)) { - self.flags = self.flags | FL_JUMPRELEASED; - } + } else { + if (!(self.button0 || self.button3)) { + self.flags = self.flags | FL_JUMPRELEASED; + } } PrintWelcomeMessage(self); + self.flags = self.flags | FL_CLIENT | FL_NOTARGET; } } diff --git a/data/qcsrc/server/cl_physics.qc b/data/qcsrc/server/cl_physics.qc index 40a1cd270..ae9ee412e 100644 --- a/data/qcsrc/server/cl_physics.qc +++ b/data/qcsrc/server/cl_physics.qc @@ -72,8 +72,10 @@ void SV_PlayerPhysics() swampspd_mod = self.swamp_slowdown; //cvar("g_balance_swamp_moverate"); } - - spd = sv_maxspeed * maxspd_mod * swampspd_mod; + if(self.flags & FL_NOTARGET) + spd = sv_maxspeed * cvar("sv_spectator_speed_multiplier"); + else + spd = sv_maxspeed * maxspd_mod * swampspd_mod; if(self.speed != spd) { diff --git a/data/qcsrc/server/w_common.qc b/data/qcsrc/server/w_common.qc index a62b2fe19..c5542dcef 100644 --- a/data/qcsrc/server/w_common.qc +++ b/data/qcsrc/server/w_common.qc @@ -69,8 +69,8 @@ void FireRailgunBullet (vector start, vector end, float bdamage, float deathtype traceline_hitcorpse (self, start, end, FALSE, self); //if (trace_ent.solid == SOLID_BSP && !(trace_dphitq3surfaceflags & Q3SURFACEFLAG_NOIMPACT)) - if (!(trace_dphitq3surfaceflags & Q3SURFACEFLAG_NOIMPACT)) - te_plasmaburn (trace_endpos - dir * 6); + //if (!(trace_dphitq3surfaceflags & Q3SURFACEFLAG_NOIMPACT)) + // te_plasmaburn (trace_endpos - dir * 6); // if it is world we can't hurt it so stop now if (trace_ent == world || trace_fraction == 1) -- 2.39.2