Initial commit
This commit is contained in:
44
gamemodes/darkrp/gamemode/modules/deathpov/cl_init.lua
Normal file
44
gamemodes/darkrp/gamemode/modules/deathpov/cl_init.lua
Normal file
@@ -0,0 +1,44 @@
|
||||
local view = {
|
||||
origin = Vector(0, 0, 0),
|
||||
angles = Angle(0, 0, 0),
|
||||
fov = 90,
|
||||
znear = 1
|
||||
}
|
||||
|
||||
local deathpov = GM.Config.deathpov
|
||||
hook.Add("CalcView", "rp_deathPOV", function(ply, origin, angles, fov)
|
||||
-- Entity:Alive() is being slow as hell, we might actually see ourselves from third person for frame or two
|
||||
if not deathpov or ply:Health() > 0 then return end
|
||||
|
||||
local Ragdoll = ply:GetRagdollEntity()
|
||||
if not IsValid(Ragdoll) then return end
|
||||
|
||||
local head = Ragdoll:LookupAttachment("eyes")
|
||||
head = Ragdoll:GetAttachment(head)
|
||||
if not head or not head.Pos then return end
|
||||
|
||||
if not Ragdoll.BonesRattled then
|
||||
Ragdoll.BonesRattled = true
|
||||
|
||||
Ragdoll:InvalidateBoneCache()
|
||||
Ragdoll:SetupBones()
|
||||
|
||||
local matrix
|
||||
|
||||
for bone = 0, (Ragdoll:GetBoneCount() or 1) do
|
||||
if Ragdoll:GetBoneName(bone):lower():find("head") then
|
||||
matrix = Ragdoll:GetBoneMatrix(bone)
|
||||
break
|
||||
end
|
||||
end
|
||||
|
||||
if IsValid(matrix) then
|
||||
matrix:SetScale(Vector(0, 0, 0))
|
||||
end
|
||||
end
|
||||
|
||||
view.origin = head.Pos + head.Ang:Up() * 8
|
||||
view.angles = head.Ang
|
||||
|
||||
return view
|
||||
end)
|
||||
Reference in New Issue
Block a user