mirror of
https://github.com/lifestorm/wnsrc.git
synced 2025-12-16 13:23:46 +03:00
Upload
This commit is contained in:
165
addons/pillpack/lua/entities/pill_target.lua
Normal file
165
addons/pillpack/lua/entities/pill_target.lua
Normal file
@@ -0,0 +1,165 @@
|
||||
--[[
|
||||
| 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
|
||||
]]
|
||||
Reference in New Issue
Block a user