diff --git a/BunnymodXT/cvars.hpp b/BunnymodXT/cvars.hpp index cbf023b8..ede4f575 100644 --- a/BunnymodXT/cvars.hpp +++ b/BunnymodXT/cvars.hpp @@ -235,7 +235,7 @@ X(bxt_ch_hook_speed, "869") \ X(bxt_ch_checkpoint_with_vel, "1") \ X(bxt_ch_checkpoint_onground_only, "0") \ - X(bxt_ch_noclip_speed, "1000") + X(bxt_ch_noclip_speed, "0") class CVarWrapper { diff --git a/BunnymodXT/modules/ServerDLL.cpp b/BunnymodXT/modules/ServerDLL.cpp index 426a0f1f..577f64c8 100644 --- a/BunnymodXT/modules/ServerDLL.cpp +++ b/BunnymodXT/modules/ServerDLL.cpp @@ -2810,20 +2810,19 @@ HOOK_DEF_2(ServerDLL, void, __cdecl, PM_Move, struct playermove_s*, ppmove, int, int *movetype = reinterpret_cast(pmove + offMoveType); auto start_origin = Vector(origin); + auto ch_noclip_vel = CVars::bxt_ch_noclip_speed.GetFloat(); - if (*movetype == MOVETYPE_NOCLIP) { - auto new_maxspeed = CVars::bxt_ch_noclip_speed.GetFloat(); - + if (*movetype == MOVETYPE_NOCLIP && ch_noclip_vel != 0.f) { ch_noclip_vel_prev_maxspeed = *maxspeed; ch_noclip_vel_prev_clientmaxspeed = *clientmaxspeed; if (*clientmaxspeed == 0.0f) *clientmaxspeed = *maxspeed; - cmd->forwardmove = cmd->forwardmove / *clientmaxspeed * new_maxspeed; - cmd->sidemove = cmd->sidemove / *clientmaxspeed * new_maxspeed; - cmd->upmove = cmd->upmove / *clientmaxspeed * new_maxspeed; - *maxspeed = *clientmaxspeed = new_maxspeed; + cmd->forwardmove = cmd->forwardmove / *clientmaxspeed * ch_noclip_vel; + cmd->sidemove = cmd->sidemove / *clientmaxspeed * ch_noclip_vel; + cmd->upmove = cmd->upmove / *clientmaxspeed * ch_noclip_vel; + *maxspeed = *clientmaxspeed = ch_noclip_vel; } ORIG_PM_Move(ppmove, server);