could anyone help me finish my weapon?

I want to add zoom to it but im too retarded to know how to, so I toght of asking the community.




SWEP.PrintName   =  "Sniper"
SWEP.Author      =   "Alemismun"
SWEP.Purpose	 =	"Let the heads roll!"

SWEP.Category    = "Other"


SWEP.Spawnable   = true 
SWEP.AdminSpawnable =  true
SWEP.ViewModelFlip  = false

SWEP.Slot					= 3
SWEP.SlotPos				= 4

SWEP.ViewModel			= "models/weapons/cstrike/c_snip_scout.mdl"
SWEP.WorldModel			= "models/weapons/w_snip_scout.mdl"

SWEP.Primary.Recoil = 10
SWEP.Primary.Damage = 95
SWEP.Primary.NumShots = 1
SWEP.Primary.Spread = 0.001
SWEP.Primary.Cone = 1
SWEP.Primary.ClipSize = 2
SWEP.Primary.DefaultClip = 8
SWEP.Primary.Ammo = "shotgun"
SWEP.Primary.Automatic = false
SWEP.Primary.Delay = 3

function SWEP.Initialize()
    util.PrecacheSound( "Weapon_AR2.NPC_Single" )
    end

function SWEP:PrimaryAttack()

    if ( not self:CanPrimaryAttack() )  then

         return	
     
	 end

    local Bullet  = {}
        Bullet.Num = self.Primary.NumShots
        Bullet.Src = self.Owner:GetShootPos()
	    Bullet.Dir = self.Owner:GetAimVector()
        Bullet.Spread  =  Vector( self.Primary.Spread, self.Primary.Spread, 0.001 )
	    Bullet.Tracer  =  1 
	    Bullet.Damage  = self.Primary.Damage
		Bullet.Ammo    = self.Primary.Ammo 
       
    self:ShootEffects()
	self:FireBullets( Bullet )
    self:EmitSound( "Weapon_AR2.NPC_Single" )
	self:SetNextPrimaryFire( CurTime() + self.Primary.Delay )
    
	
end
function SWEP:SecondaryAttack()

end


What do you mean by zoom? Zoom when you right-click? Left-click? Gradual or instantly zoomed?

Gradually, TTT like