All pastes #544283 Raw Edit

init.lua

public lua v1 · immutable
·published 2007-06-06 11:39 UTC
rendered paste body
AddCSLuaFile( "cl_init.lua" )AddCSLuaFile( "shared.lua" )include('shared.lua')/*---------------------------------------------------------   Name: Initialize---------------------------------------------------------*/function ENT:Initialize()	self.Entity:SetModel( self.Model )	self.Entity:PhysicsInit( SOLID_VPHYSICS )	self.Entity:SetMoveType( MOVETYPE_VPHYSICS )	self.Entity:SetSolid( SOLID_VPHYSICS )		self.Entity:DrawShadow( false )	self.Entity:SetCollisionGroup( COLLISION_GROUP_WEAPON )		local phys = self.Entity:GetPhysicsObject()	if (phys:IsValid()) then		phys:Wake()	end		self.Firing 	= false	self.NextShot 	= 0	end/*---------------------------------------------------------	Here are some accessor functions for the different	things you can change!---------------------------------------------------------*/// Damagefunction ENT:SetDamage( f )	self.Damage = fendfunction ENT:GetDamage()	return self.Damageend// Delayfunction ENT:SetDelay( f )	self.Delay = fendfunction ENT:GetDelay()	return self.Delayend// Forcefunction ENT:SetForce( f )	self.Force = fendfunction ENT:GetForce()	return self.Forceend// Number of Bulletsfunction ENT:SetNumBullets( f )	self.NumBullets = fendfunction ENT:GetNumBullets( f )	return self.NumBulletsend// Spreadfunction ENT:SetSpread( f )	self.Spread = Vector( f, f, 0 )endfunction ENT:GetSpread()	return self.Spreadend// Togglefunction ENT:SetToggle( b )	self.Toggle = bendfunction ENT:GetToggle()	return self.Toggleend// Modelfunction ENT:SetModel( str )	self.Model = strendfunction ENT:GetModel()	return self.Modelend// Soundfunction ENT:SetSound( str )	self.Sound = strendfunction ENT:GetSound()	return self.Soundend// Firing on or offfunction ENT:SetOn( b )	self.Firing=bendfunction ENT:GetOn()	return self.Firingend// Tracerfunction ENT:SetTracer( trcer )	self.Tracer = trcerendfunction ENT:GetTracer()	return self.Tracerend/*---------------------------------------------------------	Name: FireShot	Fire a bullet.---------------------------------------------------------*/function ENT:FireShot()		if ( self.NextShot > CurTime() ) then return end		self.NextShot = CurTime() + self.Delay		// Make a sound if you want to.	if ( self:GetSound() ) then		self.Entity:EmitSound( self:GetSound() )	end		// Get the muzzle attachment (this is pretty much always 1)	local Attachment = self.Entity:GetAttachment( 1 )		// Get the shot angles and stuff.	local shootOrigin = Attachment.Pos	local shootAngles = self.Entity:GetAngles()	local shootDir = shootAngles:Forward()		// Shoot a bullet	local bullet = {}		bullet.Num 			= self:GetNumBullets()		bullet.Src 			= shootOrigin		bullet.Dir 			= shootDir		bullet.Spread 		= self:GetSpread()		bullet.Tracer		= 1		bullet.TracerName 	= self:GetTracer()		bullet.Force		= self:GetForce()		bullet.Damage		= self:GetDamage()		bullet.Attacker 	= self:GetPlayer()			self.Entity:FireBullets( bullet )		// Make a muzzle flash	local effectdata = EffectData()		effectdata:SetOrigin( shootOrigin )		effectdata:SetAngle( shootAngles )		effectdata:SetScale( 1 )	util.Effect( "MuzzleEffect", effectdata )	end/*---------------------------------------------------------   Name: OnTakeDamage---------------------------------------------------------*/function ENT:OnTakeDamage( dmginfo )	self.Entity:TakePhysicsDamage( dmginfo )end/*---------------------------------------------------------   Numpad control functions   These are layed out like this so it'll all get saved properly---------------------------------------------------------*/local function On( pl, ent )	if ( !ent || ent == NULL ) then return end	local etab = ent:GetTable()		if ( etab:GetToggle() ) then // If we're on toggle mode, just switch to the other side.		etab:SetOn(!etab:GetOn())	else		etab:SetOn(true)	endendlocal function Off( pl, ent )	if ( !ent || ent == NULL ) then return end	local etab = ent:GetTable()		if ( etab:GetToggle() ) then return end	etab:SetOn(false)	endfunction ENT:Think()	if( self.Firing ) then		self:FireShot()	end		// Note: If you're overriding the next think time you need to return true	self.Entity:NextThink(CurTime())	return true	endnumpad.Register( "Turret_On", 	On )numpad.Register( "Turret_Off", Off )