Files
wnsrc/addons/pillpack/lua/entities/pill_target.lua
lifestorm df294d03aa Upload
2024-08-04 23:54:45 +03:00

166 lines
3.7 KiB
Lua

--[[
| This file was obtained through the combined efforts
| of Madbluntz & Plymouth Antiquarian Society.
|
| Credits: lifestorm, Gregory Wayne Rossel JR.,
| Maloy, DrPepper10 @ RIP, Atle!
|
| Visit for more: https://plymouth.thetwilightzone.ru/
--]]
AddCSLuaFile()
ENT.Type = "anim"
function ENT:Initialize()
self:SetModel("models/props_junk/PopCan01a.mdl")
self:DrawShadow(false)
if SERVER then
self:SetName("pill_target_" .. self:EntIndex())
end
end
function ENT:Draw()
end
--[[
function ENT:SetupDataTables()
self:NetworkVar("Entity",0,"Owner")
end
function ENT:Initialize()
local owner = self:GetOwner()
owner.pill_cam = self
if SERVER then
owner:SetViewEntity(self)
self:SetPos(owner:GetPos())
self:SetParent(owner)
end
end
function ENT:Think()
local owner = self:GetOwner()
local ent = pk_pills.getMappedEnt(owner)
if IsValid(ent) then
if CLIENT then
local mv_diff = owner:GetPos()-owner:GetNetworkOrigin()
local startpos
if ent.formTable.type=="phys" then
startpos = ent:LocalToWorld(ent.formTable.camera&&ent.formTable.camera.offset||Vector(0,0,0))
else
startpos=owner:EyePos()
end
//startpos=startpos-mv_diff
local angles = owner:EyeAngles()
if pk_pills.var_thirdperson:GetBool() then
local dist
if ent.formTable.type=="phys"&&ent.formTable.camera&&ent.formTable.camera.distFromSize then
dist = ent:BoundingRadius()*5
else
dist = ent.formTable.camera&&ent.formTable.camera.dist||100
end
local offset = LocalToWorld(Vector(-dist,0,dist/5),Angle(0,0,0),Vector(0,0,0),angles)
local basevel
if ent.formTable.type=="phys" then
basevel=ent:GetVelocity()
else
basevel = owner:GetVelocity()
end
local tr = util.TraceHull({
start=startpos,
endpos=startpos+offset,
filter=ent.camTraceFilter,
mins=Vector(-10,-10,-10),
maxs=Vector(10,10,10),
mask=MASK_VISIBLE
})
//PrintTable(ent.camTraceFilter)
local troffset = -tr.HitNormal:Dot(basevel*FrameTime())*1.2
self:SetNetworkOrigin(tr.HitPos+tr.HitNormal*troffset)
//view.vm_origin = view.origin+view.angles:Forward()*-500
else
self:SetNetworkOrigin(startpos)
end
self:SetAngles(angles)
else
//self:SetNetworkOrigin(ent:GetPos())
end
elseif SERVER then
self:Remove()
owner.pill_cam=nil
if SERVER then
owner:SetViewEntity()
end
end
self:NextThink(CurTime())
return true
end
/*
hook.Add("Think","pk_pill_cam_position",function()
local camera = CLIENT and LocalPlayer().pill_cam
if IsValid(camera) then
camera:MoveCam()
end
end)
function ENT:MoveCam()
local owner = self:GetOwner()
local ent = pk_pills.getMappedEnt(owner)
if IsValid(ent) then
//if CLIENT then
local startpos
if ent.formTable.type=="phys" then
startpos = ent:LocalToWorld(ent.formTable.camera&&ent.formTable.camera.offset||Vector(0,0,0))
else
startpos=owner:EyePos()
end
local angles = owner:EyeAngles()
if pk_pills.var_thirdperson:GetBool() then
local dist
if ent.formTable.type=="phys"&&ent.formTable.camera&&ent.formTable.camera.distFromSize then
dist = ent:BoundingRadius()*5
else
dist = ent.formTable.camera&&ent.formTable.camera.dist||100
end
local offset = LocalToWorld(Vector(-dist,0,dist/5),Angle(0,0,0),Vector(0,0,0),angles)
local tr = util.TraceHull({
start=startpos,
endpos=startpos+offset,
filter=ent.camTraceFilter,
mins=Vector(-5,-5,-5),
maxs=Vector(5,5,5),
mask=MASK_VISIBLE
})
//PrintTable(ent.camTraceFilter)
self:SetNetworkOrigin(tr.HitPos)
//view.vm_origin = view.origin+view.angles:Forward()*-500
else
self:SetNetworkOrigin(startpos)
end
self:SetAngles(angles)
//end
end
end
]]