X-Git-Url: http://de.git.xonotic.org/?p=xonotic%2Fxonotic-data.pk3dir.git;a=blobdiff_plain;f=qcsrc%2Fserver%2Fcl_physics.qc;h=962289e91a2d00e2c49e6d7ae2024d365ceb0681;hp=b587c166e5f52380e026147e9234e343128a146f;hb=11c6695a18daf486e320c034cc9d2a42717d74b2;hpb=5b6650aacd624aa8a1153ee4322fb40a94eb3cb9 diff --git a/qcsrc/server/cl_physics.qc b/qcsrc/server/cl_physics.qc index b587c166e5..962289e91a 100644 --- a/qcsrc/server/cl_physics.qc +++ b/qcsrc/server/cl_physics.qc @@ -145,11 +145,6 @@ void PlayerJump (void) } } - if(g_minstagib && (self.items & IT_INVINCIBLE)) - { - mjumpheight = mjumpheight * cvar("g_minstagib_speed_jumpheight"); - } - // sv_jumpspeedcap_min/sv_jumpspeedcap_max act as baseline // velocity bounds. Final velocity is bound between (jumpheight * // min + jumpheight) and (jumpheight * max + jumpheight); @@ -266,7 +261,7 @@ void RaceCarPhysics() // using this move type for "big rigs" // the engine does not push the entity! - float accel, steer, f; + float accel, steer, f, myspeed, steerfactor; vector angles_save, rigvel; angles_save = self.angles; @@ -292,7 +287,7 @@ void RaceCarPhysics() if(self.flags & FL_ONGROUND || g_bugrigs_air_steering) { - float myspeed, upspeed, steerfactor, accelfactor; + float upspeed, accelfactor; myspeed = self.velocity * v_forward; upspeed = self.velocity * v_up; @@ -671,6 +666,7 @@ void SpecialCommand() float speedaward_speed; string speedaward_holder; +string speedaward_uid; void race_send_speedaward(float msg) { // send the best speed of the round @@ -683,6 +679,7 @@ void race_send_speedaward(float msg) float speedaward_alltimebest; string speedaward_alltimebest_holder; +string speedaward_alltimebest_uid; void race_send_speedaward_alltimebest(float msg) { // send the best speed @@ -705,13 +702,21 @@ void SV_PlayerPhysics() float not_allowed_to_move; string c; + maxspd_mod = 1; + if(g_minstagib && (self.items & IT_INVINCIBLE)) + maxspd_mod *= cvar("g_minstagib_speed_highspeed"); + if(g_nexball && self.ballcarried) + maxspd_mod *= cvar("g_nexball_basketball_carrier_highspeed"); + // fix physics stats for g_movement_highspeed - self.stat_sv_airaccel_qw = AdjustAirAccelQW(sv_airaccel_qw, autocvar_g_movement_highspeed); + self.stat_sv_airaccel_qw = AdjustAirAccelQW(sv_airaccel_qw, autocvar_g_movement_highspeed * maxspd_mod); + if(sv_airstrafeaccel_qw) - self.stat_sv_airstrafeaccel_qw = AdjustAirAccelQW(sv_airstrafeaccel_qw, autocvar_g_movement_highspeed); + self.stat_sv_airstrafeaccel_qw = AdjustAirAccelQW(sv_airstrafeaccel_qw, autocvar_g_movement_highspeed * maxspd_mod); else self.stat_sv_airstrafeaccel_qw = 0; - self.stat_sv_airspeedlimit_nonqw = sv_airspeedlimit_nonqw * autocvar_g_movement_highspeed; + + self.stat_sv_airspeedlimit_nonqw = sv_airspeedlimit_nonqw * autocvar_g_movement_highspeed * maxspd_mod; if(self.PlayerPhysplug) if(self.PlayerPhysplug()) @@ -859,16 +864,6 @@ void SV_PlayerPhysics() } } - if(g_minstagib && (self.items & IT_INVINCIBLE)) - { - maxspd_mod = cvar("g_minstagib_speed_moverate"); - } - - if(g_nexball && self.ballcarried) - { - maxspd_mod = cvar("g_nexball_basketball_carrier_speed"); - } - swampspd_mod = 1; if(self.in_swamp) { swampspd_mod = self.swamp_slowdown; //cvar("g_balance_swamp_moverate"); @@ -1304,6 +1299,7 @@ void SV_PlayerPhysics() if(vlen(self.velocity - self.velocity_z * '0 0 1') > speedaward_speed) { speedaward_speed = vlen(self.velocity - self.velocity_z * '0 0 1'); speedaward_holder = self.netname; + speedaward_uid = self.crypto_idfp; speedaward_lastupdate = time; } if(speedaward_speed > speedaward_lastsent && time - speedaward_lastupdate > 1) { @@ -1314,11 +1310,12 @@ void SV_PlayerPhysics() rr = RACE_RECORD; race_send_speedaward(MSG_ALL); speedaward_lastsent = speedaward_speed; - if (speedaward_speed > speedaward_alltimebest) { + if (speedaward_speed > speedaward_alltimebest && speedaward_uid != "") { speedaward_alltimebest = speedaward_speed; speedaward_alltimebest_holder = speedaward_holder; + speedaward_alltimebest_uid = speedaward_uid; db_put(ServerProgsDB, strcat(GetMapname(), rr, "speed/speed"), ftos(speedaward_alltimebest)); - db_put(ServerProgsDB, strcat(GetMapname(), rr, "speed/netname"), speedaward_alltimebest_holder); + db_put(ServerProgsDB, strcat(GetMapname(), rr, "speed/crypto_idfp"), speedaward_alltimebest_uid); race_send_speedaward_alltimebest(MSG_ALL); } }