mirror of
https://github.com/JonnyBro/beatrun.git
synced 2024-12-27 20:43:02 +05:00
fix jump off on "slippery" places
This commit is contained in:
parent
6169712625
commit
6bbab427a9
5 changed files with 25 additions and 31 deletions
|
@ -63,10 +63,9 @@ function ENT:BRCollisionFunc(ent)
|
||||||
if util.QuickTrace(self:GetPos(), ang:Up() * self.LaserLength, self).Entity ~= ent then return false end
|
if util.QuickTrace(self:GetPos(), ang:Up() * self.LaserLength, self).Entity ~= ent then return false end
|
||||||
|
|
||||||
local dmginfo = DamageInfo()
|
local dmginfo = DamageInfo()
|
||||||
dmginfo:SetAttacker(self)
|
dmginfo:SetAttacker(self)
|
||||||
dmginfo:SetDamage(1000)
|
dmginfo:SetDamage(1000)
|
||||||
dmginfo:SetDamageType(DMG_DISSOLVE)
|
dmginfo:SetDamageType(DMG_DISSOLVE)
|
||||||
|
|
||||||
ent:TakeDamageInfo(dmginfo)
|
ent:TakeDamageInfo(dmginfo)
|
||||||
ent:EmitSound("bigspark" .. math.random(1, 2) .. ".wav")
|
ent:EmitSound("bigspark" .. math.random(1, 2) .. ".wav")
|
||||||
|
|
||||||
|
|
|
@ -495,13 +495,12 @@ function SWEP:PrimaryAttack()
|
||||||
if SERVER and IsValid(ent) then
|
if SERVER and IsValid(ent) then
|
||||||
if not ply:IsPlayer() or (Course_Name == "" and not GetGlobalBool("GM_INFECTION")) then
|
if not ply:IsPlayer() or (Course_Name == "" and not GetGlobalBool("GM_INFECTION")) then
|
||||||
local d = DamageInfo()
|
local d = DamageInfo()
|
||||||
d:SetDamage((punch ~= 3 and 10) or 20)
|
d:SetDamage((punch ~= 3 and 10) or 20)
|
||||||
d:SetAttacker(ply)
|
d:SetAttacker(ply)
|
||||||
d:SetInflictor(self)
|
d:SetInflictor(self)
|
||||||
d:SetDamageType(DMG_CLUB)
|
d:SetDamageType(DMG_CLUB)
|
||||||
d:SetDamagePosition(tr.start)
|
d:SetDamagePosition(tr.start)
|
||||||
d:SetDamageForce(ply:EyeAngles():Forward() * 7000)
|
d:SetDamageForce(ply:EyeAngles():Forward() * 7000)
|
||||||
|
|
||||||
ent:TakeDamageInfo(d)
|
ent:TakeDamageInfo(d)
|
||||||
|
|
||||||
if ent:IsNPC() then
|
if ent:IsNPC() then
|
||||||
|
|
|
@ -196,15 +196,14 @@ hook.Add("OnPlayerHitGround", "MELandSound", function(ply, water, floater, speed
|
||||||
end
|
end
|
||||||
|
|
||||||
if SERVER and speed >= 500 and ply:GetJumpTurn() then
|
if SERVER and speed >= 500 and ply:GetJumpTurn() then
|
||||||
local info = DamageInfo()
|
|
||||||
local dmg = ply:Health() * 0.1
|
local dmg = ply:Health() * 0.1
|
||||||
|
|
||||||
if ply:Health() - dmg > 0 then
|
if ply:Health() - dmg > 0 then
|
||||||
info:SetDamage(dmg)
|
local info = DamageInfo()
|
||||||
info:SetDamageType(DMG_FALL)
|
info:SetDamage(dmg)
|
||||||
info:SetAttacker(game.GetWorld())
|
info:SetDamageType(DMG_FALL)
|
||||||
info:SetInflictor(game.GetWorld())
|
info:SetAttacker(game.GetWorld())
|
||||||
|
info:SetInflictor(game.GetWorld())
|
||||||
ply:TakeDamageInfo(info)
|
ply:TakeDamageInfo(info)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -191,13 +191,12 @@ local function MeleeThink(ply, mv, cmd)
|
||||||
|
|
||||||
if SERVER and IsValid(ent) and (not ent:IsPlayer() or Course_Name == "" and not GetGlobalBool("GM_INFECTION") and GetConVar("sbox_playershurtplayers"):GetBool()) then
|
if SERVER and IsValid(ent) and (not ent:IsPlayer() or Course_Name == "" and not GetGlobalBool("GM_INFECTION") and GetConVar("sbox_playershurtplayers"):GetBool()) then
|
||||||
local d = DamageInfo()
|
local d = DamageInfo()
|
||||||
d:SetDamage(meleedata[ply:GetMelee()][6])
|
d:SetDamage(meleedata[ply:GetMelee()][6])
|
||||||
d:SetAttacker(ply)
|
d:SetAttacker(ply)
|
||||||
d:SetInflictor(ply)
|
d:SetInflictor(ply)
|
||||||
d:SetDamageType(DMG_CLUB)
|
d:SetDamageType(DMG_CLUB)
|
||||||
d:SetDamagePosition(tr.start)
|
d:SetDamagePosition(tr.start)
|
||||||
d:SetDamageForce(ply:EyeAngles():Forward() * 7000)
|
d:SetDamageForce(ply:EyeAngles():Forward() * 7000)
|
||||||
|
|
||||||
ent:TakeDamageInfo(d)
|
ent:TakeDamageInfo(d)
|
||||||
|
|
||||||
if SERVER and ent:GetClass() == "func_breakable_surf" then
|
if SERVER and ent:GetClass() == "func_breakable_surf" then
|
||||||
|
|
|
@ -321,12 +321,10 @@ hook.Add("SetupMove", "qslide", function(ply, mv, cmd)
|
||||||
|
|
||||||
ply:SetCrouchJump(false)
|
ply:SetCrouchJump(false)
|
||||||
|
|
||||||
if SERVER and mv:GetVelocity().z <= -1250 then
|
if SERVER and mv:GetVelocity().z <= -1250 and not ply:InOverdrive() then
|
||||||
local dmg = DamageInfo()
|
local dmg = DamageInfo()
|
||||||
|
dmg:SetDamageType(DMG_FALL)
|
||||||
dmg:SetDamageType(DMG_FALL)
|
dmg:SetDamage(1000)
|
||||||
dmg:SetDamage(1000)
|
|
||||||
|
|
||||||
ply:TakeDamageInfo(dmg)
|
ply:TakeDamageInfo(dmg)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -520,8 +518,8 @@ hook.Add("SetupMove", "qslide", function(ply, mv, cmd)
|
||||||
if not slippery and pos.z > ply:GetSlidingLastPos().z + 1 then
|
if not slippery and pos.z > ply:GetSlidingLastPos().z + 1 then
|
||||||
ply:SetSlidingTime(ply:GetSlidingTime() - 0.025)
|
ply:SetSlidingTime(ply:GetSlidingTime() - 0.025)
|
||||||
elseif slippery or slidedelta < 1 and pos.z < ply:GetSlidingLastPos().z - 0.25 then
|
elseif slippery or slidedelta < 1 and pos.z < ply:GetSlidingLastPos().z - 0.25 then
|
||||||
ply:SetSlidingTime(CT + slidetime) --[[ 450 * ply:GetOverdriveMult() ]]
|
ply:SetSlidingTime(CT + slidetime) --[[ GetConVar("Beatrun_SpeedLimit"):GetInt() ]]
|
||||||
ply:SetSlidingVel(math.min(mv:GetVelocity():Length() * 0.865, GetConVar("Beatrun_SpeedLimit"):GetInt() * 2) * ply:GetOverdriveMult())
|
ply:SetSlidingVel(math.min(mv:GetVelocity():Length() * 0.865, 450 * ply:GetOverdriveMult()))
|
||||||
end
|
end
|
||||||
|
|
||||||
ply:SetSlidingLastPos(pos)
|
ply:SetSlidingLastPos(pos)
|
||||||
|
|
Loading…
Reference in a new issue