Added a speed limit convar (change max speed)

This commit is contained in:
Jonny_Bro (Nikita) 2023-09-06 19:07:35 +05:00
parent 7ea01b94cb
commit 3af269ac1f
2 changed files with 19 additions and 15 deletions

View file

@ -250,6 +250,9 @@ hook.Add("PopulateToolMenu", "Beatrun_ToolMenu", function()
panel:SetName("Moves Settings") panel:SetName("Moves Settings")
panel:Help("You Can Dive with Ctrl + RMB While Midair!\nOverdrive Toggles with E + LMB.") panel:Help("You Can Dive with Ctrl + RMB While Midair!\nOverdrive Toggles with E + LMB.")
panel:NumSlider("Speed Limit", "Beatrun_SpeedLimit", 325, 1000, 0)
panel:ControlHelp("Changes player's speed limit (325 is default)")
panel:CheckBox("Force Purist Mode", "Beatrun_PuristModeForce") panel:CheckBox("Force Purist Mode", "Beatrun_PuristModeForce")
panel:ControlHelp("Forces Purist Mode for all players") panel:ControlHelp("Forces Purist Mode for all players")

View file

@ -1,5 +1,6 @@
local quakejump = CreateConVar("Beatrun_QuakeJump", 1, {FCVAR_REPLICATED, FCVAR_ARCHIVE}) local quakejump = CreateConVar("Beatrun_QuakeJump", 1, {FCVAR_REPLICATED, FCVAR_ARCHIVE})
local sidestep = CreateConVar("Beatrun_SideStep", 1, {FCVAR_REPLICATED, FCVAR_ARCHIVE}) local sidestep = CreateConVar("Beatrun_SideStep", 1, {FCVAR_REPLICATED, FCVAR_ARCHIVE})
local speed_limit = CreateConVar("Beatrun_SpeedLimit", 325, {FCVAR_REPLICATED, FCVAR_ARCHIVE})
local function Hardland(jt) local function Hardland(jt)
local ply = LocalPlayer() local ply = LocalPlayer()
@ -35,7 +36,7 @@ end
hook.Add("PlayerStepSoundTime", "MEStepTime", function(ply, step, walking) hook.Add("PlayerStepSoundTime", "MEStepTime", function(ply, step, walking)
local activewep = ply:GetActiveWeapon() local activewep = ply:GetActiveWeapon()
local sprint = ply:GetMEMoveLimit() < 300 local sprint = ply:GetMEMoveLimit() < speed_limit:GetInt() - 25
local stepmod = ply:GetStepRight() and 1 or -1 local stepmod = ply:GetStepRight() and 1 or -1
local stepvel = 1.25 local stepvel = 1.25
local stepvel2 = 1 local stepvel2 = 1
@ -92,7 +93,7 @@ hook.Add("PlayerFootstep", "MEStepSound", function(ply, pos, foot, sound, volume
ply:SetStepRight(not ply:GetStepRight()) ply:SetStepRight(not ply:GetStepRight())
if (ply:GetSliding() or CurTime() < ply:GetSafetyRollTime() - 0.5) and not skipcheck then return true end if (ply:GetSliding() or CurTime() < ply:GetSafetyRollTime() - 0.5) and not skipcheck then return true end
if ply:GetMEMoveLimit() < 155 and ply:KeyDown(IN_FORWARD) and not ply.FootstepLand and not IsValid(ply:GetBalanceEntity()) then return true end if ply:GetMEMoveLimit() < 100 and ply:KeyDown(IN_FORWARD) and not ply.FootstepLand and not IsValid(ply:GetBalanceEntity()) then return true end
local mat = sound:sub(0, -6) local mat = sound:sub(0, -6)
local newsound = FOOTSTEPS_LUT[mat] local newsound = FOOTSTEPS_LUT[mat]
@ -124,7 +125,7 @@ hook.Add("PlayerFootstep", "MEStepSound", function(ply, pos, foot, sound, volume
ply:EmitSound("Footsteps.Water") ply:EmitSound("Footsteps.Water")
end end
if ply:InOverdrive() and ply:GetVelocity():Length() > 300 then if ply:InOverdrive() and ply:GetVelocity():Length() > 400 then
ply:EmitSound("Footsteps.Spark") ply:EmitSound("Footsteps.Spark")
end end
@ -229,12 +230,12 @@ hook.Add("SetupMove", "MESetupMove", function(ply, mv, cmd)
ply.FootstepLand = true ply.FootstepLand = true
end end
if ply:GetRunSpeed() ~= 325 * ply:GetOverdriveMult() then if ply:GetRunSpeed() ~= speed_limit:GetInt() * ply:GetOverdriveMult() then
ply:SetRunSpeed(325 * ply:GetOverdriveMult()) ply:SetRunSpeed(speed_limit:GetInt() * ply:GetOverdriveMult())
end end
if not ply:GetMEMoveLimit() then if not ply:GetMEMoveLimit() then
ply:SetMEMoveLimit(150) ply:SetMEMoveLimit(speed_limit:GetInt())
ply:SetMESprintDelay(0) ply:SetMESprintDelay(0)
ply:SetMEAng(0) ply:SetMEAng(0)
end end
@ -260,13 +261,13 @@ hook.Add("SetupMove", "MESetupMove", function(ply, mv, cmd)
local activewep = ply:GetActiveWeapon() local activewep = ply:GetActiveWeapon()
if IsValid(activewep) and activewep:GetClass() ~= "runnerhands" then if IsValid(activewep) and activewep:GetClass() ~= "runnerhands" then
weaponspeed = 250 weaponspeed = speed_limit:GetInt()
end end
if (ismoving or ply:GetMantle() ~= 0) and ply:GetMESprintDelay() < CurTime() and (cmd:KeyDown(IN_SPEED) or ply:GetMantle() ~= 0 or not ply:OnGround() or (not ply:OnGround() or ply:GetMantle() ~= 0) and mv:GetVelocity().z > -450) then if (ismoving or ply:GetMantle() ~= 0) and ply:GetMESprintDelay() < CurTime() and (cmd:KeyDown(IN_SPEED) or ply:GetMantle() ~= 0 or not ply:OnGround() or (not ply:OnGround() or ply:GetMantle() ~= 0) and mv:GetVelocity().z > -450) then
local mult = 0.6 + math.abs(ply:GetMEMoveLimit() / 300 - 1) local mult = 0.6 + math.abs(ply:GetMEMoveLimit() / (speed_limit:GetInt() - 25) - 1)
if not ply:InOverdrive() and ply:GetMEMoveLimit() > 225 then if not ply:InOverdrive() and ply:GetMEMoveLimit() > (speed_limit:GetInt() - 100) then
mult = mult * 0.35 mult = mult * 0.35
end end
@ -274,9 +275,9 @@ hook.Add("SetupMove", "MESetupMove", function(ply, mv, cmd)
mult = mult * ply:GetMEMoveLimit() / 1000 mult = mult * ply:GetMEMoveLimit() / 1000
end end
ply:SetMEMoveLimit(math.Clamp(ply:GetMEMoveLimit() + mult * ply:GetOverdriveMult() * 2, 0, 325 * ply:GetOverdriveMult())) ply:SetMEMoveLimit(math.Clamp(ply:GetMEMoveLimit() + mult * ply:GetOverdriveMult() * 2, 0, speed_limit:GetInt() * ply:GetOverdriveMult()))
elseif not ismoving and (not ply:Crouching() or ply:GetCrouchJump()) or CurTime() < ply:GetMESprintDelay() and ply:OnGround() then elseif not ismoving and (not ply:Crouching() or ply:GetCrouchJump()) or CurTime() < ply:GetMESprintDelay() and ply:OnGround() then
ply:SetMEMoveLimit(math.Clamp(ply:GetMEMoveLimit() - 40, weaponspeed, 325 * ply:GetOverdriveMult())) ply:SetMEMoveLimit(math.Clamp(ply:GetMEMoveLimit() - 40, weaponspeed, speed_limit:GetInt() * ply:GetOverdriveMult()))
end end
if MEAngDiff > 1.25 and ply:GetWallrun() == 0 then if MEAngDiff > 1.25 and ply:GetWallrun() == 0 then
@ -288,9 +289,9 @@ hook.Add("SetupMove", "MESetupMove", function(ply, mv, cmd)
local stepheight = mv:GetOrigin().z - (ply.LastOrigin or vector_origin).z local stepheight = mv:GetOrigin().z - (ply.LastOrigin or vector_origin).z
if stepheight > 1.5 then if stepheight > 1.5 then
ply:SetMEMoveLimit(math.Approach(ply:GetMEMoveLimit(), 250, FrameTime() * 100)) ply:SetMEMoveLimit(math.Approach(ply:GetMEMoveLimit(), speed_limit:GetInt() - 75, FrameTime() * 100))
elseif stepheight < -0.8 then elseif stepheight < -0.8 then
ply:SetMEMoveLimit(math.Approach(ply:GetMEMoveLimit(), 400, FrameTime() * 100)) ply:SetMEMoveLimit(math.Approach(ply:GetMEMoveLimit(), speed_limit:GetInt() + 75, FrameTime() * 100))
end end
end end
@ -356,7 +357,7 @@ hook.Add("SetupMove", "MESetupMove", function(ply, mv, cmd)
if mv:KeyPressed(IN_JUMP) and not quakejump:GetBool() and activewep:GetWasOnGround() and not ply:GetJumpTurn() and ply:GetViewModel():GetCycle() < 0.25 then if mv:KeyPressed(IN_JUMP) and not quakejump:GetBool() and activewep:GetWasOnGround() and not ply:GetJumpTurn() and ply:GetViewModel():GetCycle() < 0.25 then
local vel = mv:GetVelocity() local vel = mv:GetVelocity()
vel:Mul(0.75) vel:Mul(0.75)
vel.z = -300 vel.z = -speed_limit:GetInt() + 25
mv:SetVelocity(vel) mv:SetVelocity(vel)
@ -396,7 +397,7 @@ if CLIENT then
vel = vector_origin vel = vector_origin
end end
if vel:Length() > 300 then if vel:Length() > speed_limit:GetInt() + 75 then
ply.blurspeed = Lerp(0.001, ply.blurspeed, 0.1) ply.blurspeed = Lerp(0.001, ply.blurspeed, 0.1)
elseif ply:GetMantle() == 0 then elseif ply:GetMantle() == 0 then
ply.blurspeed = math.Approach(ply.blurspeed, 0, 0.005) ply.blurspeed = math.Approach(ply.blurspeed, 0, 0.005)