diff --git a/OG Anims/Animations/climbanim.dx80.vtx b/OG Anims/Animations/climbanim.dx80.vtx index f1e3f02..4d1de16 100644 Binary files a/OG Anims/Animations/climbanim.dx80.vtx and b/OG Anims/Animations/climbanim.dx80.vtx differ diff --git a/OG Anims/Animations/climbanim.dx90.vtx b/OG Anims/Animations/climbanim.dx90.vtx index 941e561..c996ce2 100644 Binary files a/OG Anims/Animations/climbanim.dx90.vtx and b/OG Anims/Animations/climbanim.dx90.vtx differ diff --git a/OG Anims/Animations/climbanim.mdl b/OG Anims/Animations/climbanim.mdl index 218e20b..c0f8d4f 100644 Binary files a/OG Anims/Animations/climbanim.mdl and b/OG Anims/Animations/climbanim.mdl differ diff --git a/OG Anims/Animations/climbanim.sw.vtx b/OG Anims/Animations/climbanim.sw.vtx index 2a77a47..fb05a2b 100644 Binary files a/OG Anims/Animations/climbanim.sw.vtx and b/OG Anims/Animations/climbanim.sw.vtx differ diff --git a/OG Anims/Animations/climbanim.vvd b/OG Anims/Animations/climbanim.vvd index c8e3dc9..6a8cfb7 100644 Binary files a/OG Anims/Animations/climbanim.vvd and b/OG Anims/Animations/climbanim.vvd differ diff --git a/OG Anims/Animations/mirroranim.dx80.vtx b/OG Anims/Animations/mirroranim.dx80.vtx deleted file mode 100644 index edc76a8..0000000 Binary files a/OG Anims/Animations/mirroranim.dx80.vtx and /dev/null differ diff --git a/OG Anims/Animations/mirroranim.dx90.vtx b/OG Anims/Animations/mirroranim.dx90.vtx deleted file mode 100644 index 5a5ebc5..0000000 Binary files a/OG Anims/Animations/mirroranim.dx90.vtx and /dev/null differ diff --git a/OG Anims/Animations/mirroranim.mdl b/OG Anims/Animations/mirroranim.mdl deleted file mode 100644 index a7055de..0000000 Binary files a/OG Anims/Animations/mirroranim.mdl and /dev/null differ diff --git a/OG Anims/Animations/mirroranim.sw.vtx b/OG Anims/Animations/mirroranim.sw.vtx deleted file mode 100644 index 5202b13..0000000 Binary files a/OG Anims/Animations/mirroranim.sw.vtx and /dev/null differ diff --git a/OG Anims/Animations/mirroranim.vvd b/OG Anims/Animations/mirroranim.vvd deleted file mode 100644 index c2dfdd3..0000000 Binary files a/OG Anims/Animations/mirroranim.vvd and /dev/null differ diff --git a/OG Anims/README.md b/OG Anims/README.md index f4ca60a..cc1ee6d 100644 --- a/OG Anims/README.md +++ b/OG Anims/README.md @@ -1,6 +1,7 @@ # Original Beatrun's animations -1. Copy `SafetyRoll.lua` to `beatrun\gamemodes\beatrun\gamemode\sh` and select Replace. -2. Copy **everything** from `Animations` folder to `beatrun\gamemodes\beatrun\content\models` and select Replace. +Here you can find original Beatrun's animations with several fixes to major bugs. Also they are merged version of `climbanim` and `mirroranim` files to be compatible with my fork. -I will not support them, if you found a bug in those anims I will not fix them! -I will update Lua file in here if I update it in the main repo. \ No newline at end of file +## Installation +1. Copy **everything** from `Animations` folder to `beatrun\gamemodes\beatrun\content\models` and select Replace. + +I will not support them anymore, if you found a bug in those anims I will not fix them! \ No newline at end of file diff --git a/OG Anims/SafetyRoll.lua b/OG Anims/SafetyRoll.lua deleted file mode 100644 index 5dc441e..0000000 --- a/OG Anims/SafetyRoll.lua +++ /dev/null @@ -1,200 +0,0 @@ -if game.SinglePlayer() and SERVER then - util.AddNetworkString("RollAnimSP") -end - -local landang = Angle(0, 0, 0) - -local function SafetyRollThink(ply, mv, cmd) - local speed = mv:GetVelocity().z - - if speed <= -350 and not ply:OnGround() and not ply:GetWasOnGround() and (mv:KeyPressed(IN_SPEED) or mv:KeyPressed(IN_DUCK) or mv:KeyPressed(IN_BULLRUSH)) then - ply:SetSafetyRollKeyTime(CurTime() + 0.5) - - mv:SetButtons(bit.band(mv:GetButtons(), bit.bnot(IN_DUCK))) - end - - if CurTime() < ply:GetSafetyRollTime() then - ply.FootstepLand = false - - local ang = ply:GetSafetyRollAng() - - mv:SetSideSpeed(0) - mv:SetForwardSpeed(0) - - mv:AddKey(IN_DUCK) - - if ang ~= landang then - local vel = mv:GetVelocity() - vel.x = 0 - vel.y = 0 - - mv:SetVelocity(ply:GetSafetyRollAng():Forward() * 200 + vel) - - ply:SetMEMoveLimit(400) - else - mv:SetVelocity(vector_origin) - end - end -end - -hook.Add("SetupMove", "SafetyRoll", SafetyRollThink) - -local roll = { - followplayer = true, - animmodelstring = "climbanim", - showweapon = true, - lockang = true, - BodyAnimSpeed = 1.15, - ignorez = true, - deleteonend = true, - AnimString = "rollanim" -} - -net.Receive("RollAnimSP", function() - if net.ReadBool() then - roll.AnimString = "land" - roll.animmodelstring = "climbanim" - roll.BodyAnimSpeed = 1 - elseif net.ReadBool() then - roll.AnimString = "evaderoll" - roll.animmodelstring = "climbanim" - roll.BodyAnimSpeed = 1.5 - else - roll.AnimString = "meroll" - roll.animmodelstring = "climbanim" - roll.BodyAnimSpeed = 1.15 - end - - CacheBodyAnim() - RemoveBodyAnim() - StartBodyAnim(roll) -end) - -hook.Add("SetupMove", "EvadeRoll", function(ply, mv, cmd) - if ply:GetJumpTurn() and ply:OnGround() and mv:KeyPressed(IN_BACK) then - local ang = cmd:GetViewAngles() - - ply:SetViewOffset(Vector(0, 0, 64)) - - ang.x = 0 - ang.z = 0 - - ang:RotateAroundAxis(Vector(0, 0, 1), 180) - ply:SetJumpTurn(false) - ply:SetSafetyRollAng(ang) - ply:SetSafetyRollTime(CurTime() + 0.9) - - roll.AnimString = "evaderoll" - roll.animmodelstring = "climbanim" - roll.usefullbody = false - - if SERVER and not land then - ply:EmitSound("Cloth.Roll") - ply:EmitSound("Cloth.RollLand") - elseif CLIENT_IFTP() then - ply:EmitSound("Handsteps.ConcreteHard") - ply:EmitSound("Land.Concrete") - end - - if CLIENT_IFTP() then - CacheBodyAnim() - RemoveBodyAnim() - StartBodyAnim(roll) - elseif game.SinglePlayer() then - net.Start("RollAnimSP") - net.WriteBool(false) - net.WriteBool(true) - net.Send(ply) - end - end -end) - -hook.Add("OnPlayerHitGround", "SafetyRoll", function(ply, water, floater, speed) - local tr = { - filter = ply, - start = ply:GetPos() - } - tr.endpos = tr.start - Vector(0, 0, 150) - - local out = util.TraceLine(tr) - local normal = out.HitNormal - local sang = normal:Angle() - - if sang.x <= 314 and not ply:InOverdrive() and (speed >= 350 or ply:GetDive()) and speed < 800 and (CurTime() < ply:GetSafetyRollKeyTime() and not ply:GetDive() or ply:GetDive() and not ply:KeyDown(IN_DUCK)) and not ply:GetJumpTurn() and (not ply:Crouching() or ply:GetDive()) then - ply:SetCrouchJump(false) - ply:SetDive(false) - - ParkourEvent("roll", ply) - - local ang = ply:EyeAngles() - local land = ply:GetVelocity() - ang.x = 0 - ang.z = 0 - land.z = 0 - - if land:Length() < 200 or ply:KeyDown(IN_BACK) then - land = true - - ply:SetSafetyRollAng(landang) - ply:SetSafetyRollTime(CurTime() + 0.6) - - roll.AnimString = "land" - roll.animmodelstring = "climbanim" - roll.usefullbody = true - else - land = false - - ply:SetSafetyRollAng(ang) - ply:SetSafetyRollTime(CurTime() + 1.05) - - roll.AnimString = "meroll" - roll.animmodelstring = "climbanim" - roll.usefullbody = false - end - - if SERVER and not land then - ply:EmitSound("Cloth.Roll") - ply:EmitSound("Cloth.RollLand") - elseif CLIENT_IFTP() then - ply:EmitSound("Handsteps.ConcreteHard") - ply:EmitSound("Land.Concrete") - end - - if CLIENT_IFTP() then - CacheBodyAnim() - RemoveBodyAnim() - StartBodyAnim(roll) - elseif game.SinglePlayer() then - net.Start("RollAnimSP") - net.WriteBool(land) - net.WriteBool(false) - net.Send(ply) - end - end -end) - -if SERVER then - local safelandents = { - br_mat = true - } - - hook.Add("GetFallDamage", "SafetyRoll", function(ply, speed) - local groundent = ply:GetGroundEntity() - - if IsValid(groundent) and safelandents[groundent:GetClass()] then - groundent:EmitSound("mirrorsedge/GameplayObjects/Landing_01.ogg", 80, 100 + math.random(-30, 10)) - - return 0 - end - - if speed >= 800 and not ply:InOverdrive() then - if speed < 800 and CurTime() < ply:GetSafetyRollKeyTime() and not ply:GetCrouchJump() and not ply:Crouching() then - return 0 - else - return 1000 - end - end - - return 0 - end) -end \ No newline at end of file