X-Git-Url: http://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fserver%2Fcl_physics.qc;h=5163c6f94926c724d3d3f8e803dd60063ae3239c;hb=4e74f9af305cc057ccf7394d4d21488bfa6ae7f9;hp=e2feca927b94472af9ff963e1c01d141be5d2d01;hpb=d0168920d1b49c61e7867c7acac8a76fd32dc8e2;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/server/cl_physics.qc b/qcsrc/server/cl_physics.qc index e2feca927..5163c6f94 100644 --- a/qcsrc/server/cl_physics.qc +++ b/qcsrc/server/cl_physics.qc @@ -796,8 +796,6 @@ void SV_PlayerPhysics() bot_think(); } - MUTATOR_CALLHOOK(PlayerPhysics); - self.items &~= IT_USING_JETPACK; if(self.classname == "player") @@ -830,6 +828,13 @@ void SV_PlayerPhysics() if (self.movetype == MOVETYPE_NONE) return; + // when we get here, disableclientprediction cannot be 2 + self.disableclientprediction = 0; + if(time < self.ladder_time) + self.disableclientprediction = 1; + + MUTATOR_CALLHOOK(PlayerPhysics); + maxspd_mod = 1; swampspd_mod = 1; @@ -886,6 +891,7 @@ void SV_PlayerPhysics() } if(self.flags & FL_ONGROUND) + if(self.classname == "player") // no fall sounds for observers thank you very much if(self.wasFlying) { self.wasFlying = 0; @@ -989,14 +995,21 @@ void SV_PlayerPhysics() // on a spawnfunc_func_ladder or swimming in spawnfunc_func_water self.flags &~= FL_ONGROUND; + float g; + g = autocvar_sv_gravity * frametime; + if(self.gravity) + g *= self.gravity; + if(autocvar_sv_gameplayfix_gravityunaffectedbyticrate) + { + g *= 0.5; + self.velocity_z += g; + } + self.velocity = self.velocity * (1 - frametime * autocvar_sv_friction); makevectors(self.v_angle); //wishvel = v_forward * self.movement_x + v_right * self.movement_y + v_up * self.movement_z; wishvel = v_forward * self.movement_x + v_right * self.movement_y + '0 0 1' * self.movement_z; - if (self.gravity) - self.velocity_z = self.velocity_z + self.gravity * autocvar_sv_gravity * frametime; - else - self.velocity_z = self.velocity_z + autocvar_sv_gravity * frametime; + self.velocity_z += g; if (self.ladder_entity.classname == "func_water") { f = vlen(wishvel);