Залив
This commit is contained in:
109
gamemodes/cod_custom/gamemode/client/cl_abilities.lua
Normal file
109
gamemodes/cod_custom/gamemode/client/cl_abilities.lua
Normal file
@@ -0,0 +1,109 @@
|
||||
local meta = FindMetaTable("Player")
|
||||
|
||||
function meta:IsDowned()
|
||||
return self:GetNWBool('Downed')
|
||||
end
|
||||
|
||||
function meta:MovingDirection(threshold) --This function was made by OpenAI ChatGPT
|
||||
threshold = threshold or 0.1
|
||||
local vel = self:GetVelocity()
|
||||
local forward = self:GetForward()
|
||||
local right = self:GetRight()
|
||||
local forwardDot = vel:Dot(forward)
|
||||
local rightDot = vel:Dot(right)
|
||||
|
||||
if forwardDot > threshold then
|
||||
return "forward"
|
||||
elseif forwardDot < -threshold then
|
||||
return "backward"
|
||||
end
|
||||
|
||||
if rightDot > threshold then
|
||||
return "right"
|
||||
elseif rightDot < -threshold then
|
||||
return "left"
|
||||
end
|
||||
|
||||
return "stand"
|
||||
end
|
||||
|
||||
hook.Add("CalcMainActivity", "TDMAnimsRevive", function(ply, vel)
|
||||
if ply:IsDowned() and ply:GetNWString('SVAnim') == "" then
|
||||
local anim1 = ply:LookupSequence("laststand_idle")
|
||||
local anim2 = ply:LookupSequence("laststand_crawl_forward")
|
||||
local anim3 = ply:LookupSequence("laststand_crawl_backward")
|
||||
local anim4 = ply:LookupSequence("laststand_crawl_left")
|
||||
local anim5 = ply:LookupSequence("laststand_crawl_right")
|
||||
local dir = ply:MovingDirection(4)
|
||||
local vel = ply:GetVelocity():Length2D() > 10
|
||||
if dir == "forward" and vel then
|
||||
return -1, anim2
|
||||
elseif dir == "backward" and vel then
|
||||
return -1, anim3
|
||||
elseif dir == "left" and vel then
|
||||
return -1, anim4
|
||||
elseif dir == "right" and vel then
|
||||
return -1, anim5
|
||||
else
|
||||
return -1, anim1
|
||||
end
|
||||
end
|
||||
end)
|
||||
|
||||
hook.Add("Think", "TDMRevive", function()
|
||||
local ply = LocalPlayer()
|
||||
if ply:IsDowned() and ply:Alive() and !ply:ShouldDrawLocalPlayer() then
|
||||
if not model then
|
||||
model = ClientsideModel(ply:GetModel())
|
||||
end
|
||||
model:SetNoDraw(false)
|
||||
model:SetAngles(Angle(0,ply:GetAngles().y+10,0))
|
||||
model:ManipulateBoneAngles(model:LookupBone('ValveBiped.Bip01_R_Forearm'), Angle(0,270,0))
|
||||
model:ManipulateBoneAngles(model:LookupBone('ValveBiped.Bip01_L_Forearm'), Angle(0,270,0))
|
||||
model:ManipulateBoneAngles(model:LookupBone('ValveBiped.Bip01_R_UpperArm'), Angle(0,270,0))
|
||||
model:SetCycle(ply:GetCycle())
|
||||
model:SetModel(ply:GetModel())
|
||||
|
||||
local vel = ply:GetVelocity()
|
||||
local anim1 = ply:LookupSequence("laststand_idle")
|
||||
local anim2 = ply:LookupSequence("laststand_crawl_forward")
|
||||
local anim3 = ply:LookupSequence("laststand_crawl_backward")
|
||||
local anim4 = ply:LookupSequence("laststand_crawl_left")
|
||||
local anim5 = ply:LookupSequence("laststand_crawl_right")
|
||||
local speed = vel:Length2D() > 5
|
||||
local dir = ply:MovingDirection(8)
|
||||
|
||||
if ply:EyeAngles().x > 25 then
|
||||
ply:SetEyeAngles(Angle(25, ply:EyeAngles().y, 0))
|
||||
end
|
||||
if ply:EyeAngles().x < -25 then
|
||||
ply:SetEyeAngles(Angle(-25, ply:EyeAngles().y, 0))
|
||||
end
|
||||
if dir == "forward" and speed then
|
||||
model:ResetSequence(anim2)
|
||||
elseif dir == "backward" and speed then
|
||||
model:ResetSequence(anim3)
|
||||
elseif dir == "left" and speed then
|
||||
model:ResetSequence(anim4)
|
||||
elseif dir == "right" and speed then
|
||||
model:ResetSequence(anim5)
|
||||
else
|
||||
model:ResetSequence(anim1)
|
||||
end
|
||||
model:SetPos(ply:GetPos()+Vector(0,0,4)+ply:GetForward()*8+ply:GetRight()*8)
|
||||
else
|
||||
if model then
|
||||
model:SetNoDraw(true)
|
||||
end
|
||||
end
|
||||
end)
|
||||
|
||||
local delay = CurTime()+5
|
||||
hook.Add("Think", "TDMApplyCommands", function()
|
||||
if delay < CurTime() then
|
||||
delay = CurTime()+5
|
||||
for k, v in pairs(COD.ApplyCommands["Client"]) do
|
||||
RunConsoleCommand(k, v)
|
||||
end
|
||||
end
|
||||
end)
|
||||
Reference in New Issue
Block a user