All pastes #419945 Raw Edit

Miscellany

public lua v1 · immutable
·published 2007-04-01 19:23 UTC
rendered paste body
function ENT:CalcView( ply, origin, angles, fov )	local plyangles	= ply:GetAimVector():Angle()	local viewpos	= self.Entity:LocalToWorld( Vector( 0, 0, 16 ))	local viewang	= self.Entity:GetAngles()--	local viewfov	= self.Entity:GetVelocity():Length() * 0.09	// This is all to smooth the angle & FOV of the player	self.LastAng = self.LastAng or viewang	self.LastPos = self.LastPos or viewpos--	self.LastFov = self.LastFov or viewfov	local angdiff		= Angle()		  angdiff.yaw	= math.AngleDifference( self.LastAng.yaw,	viewang.yaw		)		  angdiff.pitch	= math.AngleDifference( self.LastAng.pitch,	viewang.pitch	)		  angdiff.roll	= math.AngleDifference( self.LastAng.roll,	viewang.roll	)	local posdiff		= Vector()		  posdiff.x	= self.LastPos.x - viewpos.x		  posdiff.y	= self.LastPos.y - viewpos.y		  posdiff.z	= self.LastPos.z - viewpos.z--	local fovdiff	= self.LastFov - viewfov	self.LastAng.yaw	= math.ApproachAngle( self.LastAng.yaw,		viewang.yaw,	angdiff.yaw		* FrameTime() * 2 )	self.LastAng.pitch	= math.ApproachAngle( self.LastAng.pitch,	viewang.pitch,	angdiff.pitch	* FrameTime() * 2 )	self.LastAng.roll	= math.ApproachAngle( self.LastAng.roll,	viewang.roll,	angdiff.roll	* FrameTime() * 2 )	self.LastPos.x	= math.Approach( self.LastPos.x, viewpos.x,	posdiff.x * FrameTime() * 2 )	self.LastPos.y	= math.Approach( self.LastPos.y, viewpos.y,	posdiff.y * FrameTime() * 2 )	self.LastPos.z	= math.Approach( self.LastPos.z, viewpos.z,	posdiff.z * FrameTime() * 2 )--	self.LastFov	= math.Approach( self.LastFov,	 viewfov,	fovdiff	  * FrameTime() * 2 )	local view = {}	view.origin 	= viewpos self.LastPos - (posdiff * 0.8)	view.angles		= self.LastAng - (angdiff * 1.5) + plyangles--	view.fov 		= self.LastFov - (fovdiff * 0.7)	return viewend