diff --git a/beatrun/gamemodes/beatrun/content/resource/localization/en/beatrun.properties b/beatrun/gamemodes/beatrun/content/resource/localization/en/beatrun.properties index f69b02a..9372ee5 100644 --- a/beatrun/gamemodes/beatrun/content/resource/localization/en/beatrun.properties +++ b/beatrun/gamemodes/beatrun/content/resource/localization/en/beatrun.properties @@ -41,6 +41,9 @@ beatrun.convars.disablegrapple=Disables grapple ability beatrun.convars.puristmode=Purist mode is a clientside preference that severely weakens the ability to strafe while in the air, which is how ME games handle this.\n0 = No restrictions\n1 = Reduced move speed in the air beatrun.convars.quickturnground=Enables quickturning with secondary attack while on the ground beatrun.convars.quickturnhandsonly=Enables quickturning with "Runner Hands" only +beatrun.convars.loseSpeedOnRoll=Whether or not the player will lose speed when rolling (similar to ME:Catalyst) +beatrun.convars.showSpeedometer=Nothing to say +beatrun.convars.totsugekiAudio=Enable "Totsugeki" voice # HUD beatrun.hud.course=Course: %s @@ -109,6 +112,9 @@ beatrun.toolsmenu.hud.nametagsdesc=Toggles nametags above players beatrun.toolsmenu.hud.hudxp=Show HUD XP beatrun.toolsmenu.hud.hudxpdesc=Show total XP near your nickname +beatrun.toolsmenu.hud.showSpeedometer=Show Speedometer +beatrun.toolsmenu.hud.showSpeedometerDesc=Shows the speedometer on HUD (hiding HUD does not affect visibility) + beatrun.toolsmenu.hud.wind=Wind Effect beatrun.toolsmenu.hud.winddesc=Wind noises when running @@ -123,8 +129,8 @@ beatrun.toolsmenu.hud.cornercolor=HUD Corner Color beatrun.toolsmenu.hud.floatxpcolor=HUD Floating XP Color # Tools Menu Viewbob Section -beatrun.toolsmenu.viewbob.name=Viewbob -beatrun.toolsmenu.viewbob.desc=Viewbob Settings +beatrun.toolsmenu.viewbob.name=Camera +beatrun.toolsmenu.viewbob.desc=Camera Settings beatrun.toolsmenu.viewbob.stabilization=Viewbob Stabilization beatrun.toolsmenu.viewbob.stabilizationdesc=Turn on to reduce motion sickness by making viewbobbing keep the player's look position centered @@ -146,6 +152,9 @@ beatrun.toolsmenu.gameplay.puristmodedesc=Purist mode is a clientside preference beatrun.toolsmenu.gameplay.disablegrapple=Disable Grapple Ability beatrun.toolsmenu.gameplay.disablegrappledesc=Disables grapple ability +beatrun.toolsmenu.gameplay.rollLoseSpeed=Lose Speed on Roll +beatrun.toolsmenu.gameplay.rollLoseSpeedDesc=Literally whether or not the player will lose speed on roll (similar to ME:Catalyst) + # Tools Menu Misc Section beatrun.toolsmenu.misc.name=Misc beatrun.toolsmenu.misc.desc=Misc Settings @@ -202,6 +211,9 @@ beatrun.toolsmenu.moves.totsugekiheadingdesc=Allows to Totsugeki on X axis (up/d beatrun.toolsmenu.moves.totsugekidirection=Totsugeki Direction beatrun.toolsmenu.moves.totsugekidirectiondesc=Allows to Totsugeki into Another Direction\nCombined with Spam and Heading Allows You to Fly =) +beatrun.toolsmenu.moves.totsugekiaudio=Totsugeki Audio +beatrun.toolsmenu.moves.totsugekiaudiodesc=Enable "Totsugeki" voice + # Tools Menu Gamemodes Section beatrun.toolsmenu.gamemodes.name=Gamemodes beatrun.toolsmenu.gamemodes.desc=Gamemodes Settings diff --git a/beatrun/gamemodes/beatrun/content/resource/localization/ru/beatrun.properties b/beatrun/gamemodes/beatrun/content/resource/localization/ru/beatrun.properties index 11ab7a6..7c07d3d 100644 --- a/beatrun/gamemodes/beatrun/content/resource/localization/ru/beatrun.properties +++ b/beatrun/gamemodes/beatrun/content/resource/localization/ru/beatrun.properties @@ -41,6 +41,8 @@ beatrun.convars.disablegrapple=Переключить крюк-кошку beatrun.convars.puristmode=Режим Purist это клиентский параметр который сильно снижает движение игрока в стороны будучи в воздухе, прямо как в оригинальное ME.\n0 = Нет ограничений\n1 = Снижает движение игрока в воздухе в стороны beatrun.convars.quickturnground=Переключить Quickturn будучи на земле beatrun.convars.quickturnhandsonly=Переключить Quickturn только с "Runner Hands" +beatrun.convars.showSpeedometer=Нечего сказать +beatrun.convars.totsugekiAudio=Включить голос "Totsugeki" # HUD beatrun.hud.course=Курс: %s @@ -109,6 +111,9 @@ beatrun.toolsmenu.hud.nametagsdesc=Показывает ники над игро beatrun.toolsmenu.hud.hudxp=Показать XP в HUD beatrun.toolsmenu.hud.hudxpdesc=Показывает весь XP в HUD +beatrun.toolsmenu.hud.showSpeedometer=Показывать скорость (спидометр) +beatrun.toolsmenu.hud.showSpeedometerDesc=Показывает спидометр на HUD (скрытие HUD не влияет на видимость) + beatrun.toolsmenu.hud.wind=Эффект Ветра beatrun.toolsmenu.hud.winddesc=Шум ветра во время бега @@ -146,6 +151,9 @@ beatrun.toolsmenu.gameplay.puristmodedesc=Режим Purist это клиент beatrun.toolsmenu.gameplay.disablegrapple=Отключить Крюк-Кошку beatrun.toolsmenu.gameplay.disablegrappledesc=Отключает использование крюка-кошки +beatrun.toolsmenu.gameplay.rollLoseSpeed=Потеря скорости при перекате +beatrun.toolsmenu.gameplay.rollLoseSpeedDesc=Будет ли игрок терять скорость при перекате или нет (как в ME:Catalyst) + # Tools Menu Misc Section beatrun.toolsmenu.misc.name=Другое beatrun.toolsmenu.misc.desc=Другие настройки @@ -202,6 +210,9 @@ beatrun.toolsmenu.moves.totsugekiheadingdesc=Позволяет делать Tot beatrun.toolsmenu.moves.totsugekidirection=Направление Totsugeki beatrun.toolsmenu.moves.totsugekidirectiondesc=Позволяет делать Totsugeki в направлении глаз\nCombined with Spam and Heading Allows You to Fly =) +beatrun.toolsmenu.moves.totsugekiaudio=Totsugeki Звук +beatrun.toolsmenu.moves.totsugekiaudiodesc=Включить голос "Totsugeki" + # Tools Menu Gamemodes Section beatrun.toolsmenu.gamemodes.name=Режимы beatrun.toolsmenu.gamemodes.desc=Настройка режимов diff --git a/beatrun/gamemodes/beatrun/gamemode/cl/ToolMenuSettings.lua b/beatrun/gamemodes/beatrun/gamemode/cl/ToolMenuSettings.lua index d6827aa..45eb36e 100644 --- a/beatrun/gamemodes/beatrun/gamemode/cl/ToolMenuSettings.lua +++ b/beatrun/gamemodes/beatrun/gamemode/cl/ToolMenuSettings.lua @@ -166,12 +166,12 @@ hook.Add("PopulateToolMenu", "Beatrun_ToolMenu", function() panel:CheckBox("#beatrun.toolsmenu.hud.hudxp", "Beatrun_HUDXP") panel:ControlHelp("#beatrun.toolsmenu.hud.hudxpdesc") + panel:CheckBox("#beatrun.toolsmenu.hud.showSpeedometer", "Beatrun_ShowSpeedometer") + panel:ControlHelp("#beatrun.toolsmenu.hud.showSpeedometerDesc") + panel:CheckBox("#beatrun.toolsmenu.hud.wind", "Beatrun_Wind") panel:ControlHelp("#beatrun.toolsmenu.hud.winddesc") - panel:NumSlider("#beatrun.toolsmenu.hud.fov", "Beatrun_FOV", 90, 120, 0) - panel:Help("#beatrun.toolsmenu.hud.fovdesc") - panel:NumSlider("#beatrun.toolsmenu.hud.hidden", "Beatrun_HUDHidden", 0, 2, 0) panel:ControlHelp(language.GetPhrase("beatrun.toolsmenu.hud.hiddendesc")) @@ -223,6 +223,9 @@ hook.Add("PopulateToolMenu", "Beatrun_ToolMenu", function() panel:ControlHelp("#beatrun.toolsmenu.viewbob.stabilizationdesc") panel:NumSlider("#beatrun.toolsmenu.viewbob.intensity", "Beatrun_ViewbobIntensity", -100, 100, 0) + + panel:NumSlider("#beatrun.toolsmenu.hud.fov", "Beatrun_FOV", 90, 120, 0) + panel:Help("#beatrun.toolsmenu.hud.fovdesc") end) spawnmenu.AddToolMenuOption("Beatrun", "Client", "beatrun_gameplay", "#beatrun.toolsmenu.gameplay.name", "", "", function(panel) @@ -240,6 +243,12 @@ hook.Add("PopulateToolMenu", "Beatrun_ToolMenu", function() panel:CheckBox("#beatrun.toolsmenu.gameplay.disablegrapple", "Beatrun_DisableGrapple") panel:ControlHelp("#beatrun.toolsmenu.gameplay.disablegrappledesc") + + panel:CheckBox("#beatrun.toolsmenu.gameplay.rollLoseSpeed", "Beatrun_LoseSpeedOnRoll") + panel:ControlHelp("#beatrun.toolsmenu.gameplay.rollLoseSpeedDesc") + + panel:CheckBox("#beatrun.toolsmenu.moves.totsugekiaudio", "Beatrun_TotsugekiAudio") + panel:ControlHelp(language.GetPhrase("beatrun.toolsmenu.moves.totsugekiaudiodesc")) end) spawnmenu.AddToolMenuOption("Beatrun", "Server", "beatrun_misc", "#beatrun.toolsmenu.misc.name", "", "", function(panel) diff --git a/beatrun/gamemodes/beatrun/gamemode/sh/Checkpoints.lua b/beatrun/gamemodes/beatrun/gamemode/sh/Checkpoints.lua index cb7b810..30fb0ca 100644 --- a/beatrun/gamemodes/beatrun/gamemode/sh/Checkpoints.lua +++ b/beatrun/gamemodes/beatrun/gamemode/sh/Checkpoints.lua @@ -17,6 +17,10 @@ local timetext = "" local timealpha = 1000 local timecolor = color_neutral +if CLIENT then + local showSpeed = CreateClientConVar("Beatrun_ShowSpeedometer", 1, true, true, language.GetPhrase("#beatrun.convars.showSpeedometer"), 0, 1) +end + if SERVER then util.AddNetworkString("Checkpoint_Hit") util.AddNetworkString("Checkpoint_Finish") @@ -240,7 +244,7 @@ function CourseHUD() surface.DrawText(text) end - if GetConVar("Beatrun_HUDHidden") and not GetConVar("Beatrun_HUDHidden"):GetBool() and not BuildMode and hook.Run("BeatrunDrawHUD") ~= false and not ply.InReplay then + if GetConVar("Beatrun_ShowSpeedometer"):GetBool() then local speed = math.Round(ply:GetVelocity():Length() * 0.06858125) if speed < 10 then diff --git a/beatrun/gamemodes/beatrun/gamemode/sh/Dive.lua b/beatrun/gamemodes/beatrun/gamemode/sh/Dive.lua index 67c51d6..6dc0f61 100644 --- a/beatrun/gamemodes/beatrun/gamemode/sh/Dive.lua +++ b/beatrun/gamemodes/beatrun/gamemode/sh/Dive.lua @@ -3,6 +3,10 @@ local totsugekispam = CreateConVar("Beatrun_TotsugekiSpam", 0, {FCVAR_REPLICATED local totsugekiheading = CreateConVar("Beatrun_TotsugekiHeading", 0, {FCVAR_REPLICATED, FCVAR_ARCHIVE}, "", 0, 1) local totsugekidir = CreateConVar("Beatrun_TotsugekiDir", 0, {FCVAR_REPLICATED, FCVAR_ARCHIVE}, "", 0, 1) +if CLIENT then + local tutsugekiAudio = CreateClientConVar("Beatrun_TotsugekiAudio", 1, true, true, language.GetPhrase("beatrun.convars.totsugekiAudio"), 0, 1) +end + local function Dive(ply, mv, cmd) if (not ply:GetDive() or ply:GetDive() and ply.QuakeJumping and totsugeki:GetBool() and totsugekispam:GetBool()) and ply:GetCrouchJump() and mv:KeyPressed(IN_ATTACK2) then local vel = mv:GetVelocity() @@ -29,7 +33,9 @@ local function Dive(ply, mv, cmd) if ply:UsingRH() and ply:GetActiveWeapon():GetQuakeJumping() and totsugeki:GetBool() then if SERVER then - ply:EmitSound("misc/totsugeki" .. math.random(1, 2) .. ".mp3", 60, 100, 1, CHAN_VOICE) + if GetConVar("Beatrun_TotsugekiAudio"):GetBool() then + ply:EmitSound("misc/totsugeki" .. math.random(1, 2) .. ".mp3", 60, 100, 1, CHAN_VOICE) + end local vPoint = mv:GetOrigin() local effectdata = EffectData() diff --git a/beatrun/gamemodes/beatrun/gamemode/sh/SafetyRoll.lua b/beatrun/gamemodes/beatrun/gamemode/sh/SafetyRoll.lua index dba5510..52d58d0 100644 --- a/beatrun/gamemodes/beatrun/gamemode/sh/SafetyRoll.lua +++ b/beatrun/gamemodes/beatrun/gamemode/sh/SafetyRoll.lua @@ -3,6 +3,11 @@ if game.SinglePlayer() and SERVER then end local landang = Angle(0, 0, 0) +local lastGroundSpeed = 0 + +if CLIENT then + local loseSpeed = CreateClientConVar("Beatrun_LoseSpeedOnRoll", 1, true, true, language.GetPhrase("beatrun.convars.loseSpeedOnRoll"), 0, 1) +end local function SafetyRollThink(ply, mv, cmd) local speed = mv:GetVelocity().z @@ -12,13 +17,18 @@ local function SafetyRollThink(ply, mv, cmd) mv:SetButtons(bit.band(mv:GetButtons(), bit.bnot(IN_DUCK))) end + + local isRolling = CurTime() < ply:GetSafetyRollKeyTime() + if ply:OnGround() and not isRolling then + lastGroundSpeed = mv:GetVelocity():Length() + end if CurTime() < ply:GetSafetyRollTime() then ply.FootstepLand = false local ang = ply:GetSafetyRollAng() - mv:SetSideSpeed(0) + mv:SetSideSpeed(0) mv:SetForwardSpeed(0) mv:AddKey(IN_DUCK) @@ -28,9 +38,17 @@ local function SafetyRollThink(ply, mv, cmd) vel.x = 0 vel.y = 0 - mv:SetVelocity(ply:GetSafetyRollAng():Forward() * 200 + vel) + local con = GetConVar("Beatrun_LoseSpeedOnRoll") - ply:SetMEMoveLimit(400) + if (con:GetBool()) then + mv:SetVelocity(ang:Forward() * 225 + vel) + else + local speedLimit = GetConVar("Beatrun_SpeedLimit"):GetFloat() + local max = math.max(250, math.Clamp(lastGroundSpeed, 200, speedLimit + 50)) + mv:SetVelocity(ang:Forward() * (max + 40)) + end + + ply:SetMEMoveLimit(450) else mv:SetVelocity(vector_origin) end @@ -93,7 +111,7 @@ hook.Add("SetupMove", "EvadeRoll", function(ply, mv, cmd) ang.x = 0 ang.z = 0 - ang:RotateAroundAxis(Vector(0, 0, 1), 180) + ang:RotateAroundAxis(Vector(0, 0, 1), 180) ply:SetJumpTurn(false) ply:SetSafetyRollAng(ang) ply:SetSafetyRollTime(CurTime() + 0.9) @@ -110,6 +128,8 @@ hook.Add("SetupMove", "EvadeRoll", function(ply, mv, cmd) ply:EmitSound("Land.Concrete") end + BodyAnim:SetAngles(Angle(0, ply:EyeAngles().y, 0)) + if CLIENT and IsFirstTimePredicted() then CacheBodyAnim() RemoveBodyAnim()