Assistance With Vectors

This script is supposed to point the vector of the bullet slightly to the left with each timer pass, but as of now refuses to change the position of the bullet from the original view vector.

You’ll notice that the actual values within the vectors will change, but not where the bullet lands visually.

[lua]
SWEP:PrimaryAttack()

timer.Create(“SwingIt”, 0.05, 10, function()
local trace = self.Owner:GetEyeTrace()
if (trace.Hit) and trace.HitPos:Distance(self.Owner:GetShootPos()) <= 144 then
if trace.Entity:IsPlayer() or string.find(trace.Entity:GetClass(),“npc”) or string.find(trace.Entity:GetClass(),“monster”) or string.find(trace.Entity:GetClass(),“prop_ragdoll”) then
self.Weapon:EmitSound(self.SwingSound[math.random(#self.SwingSound)], 25, 75)
self:BulletFire( Vector( 0.1, 0, 0) , 5 )
else
self.Weapon:EmitSound(self.Impact[math.random(#self.Impact)], 50, 200)
self:BulletFire( Vector( 0.1, 0, 0) , 5 )
end
end
end)
end

function SWEP:BulletFire( vectoradd, dmgvar )
–self.Owner:SetNetworkedInt(“SwingPower”, 1) <-- placeholder

print(self.Owner:GetAimVector())
local swingvector = vectoradd
local SwingPower = self.Owner:GetNetworkedInt(“SwingPower”)
local bulletdamage = dmgvar + 5 * SwingPower
local O_Vec = self.Owner:GetAimVector()
O_Vec:Add(swingvector)

bullet = {}
bullet.Num = 1
bullet.Src = self.Owner:GetShootPos()
bullet.Dir = O_Vec
bullet.Spread = Vector(0, 0, 0)
bullet.Tracer = 0
bullet.Force = 10
bullet.Damage = bulletdamage

print(O_Vec)
self.Owner:FireBullets(bullet)
end[/lua]

Can someone help me understand this dilemma?

Yaw is the left-right direction when looking around, so

[lua]
local O_Vec = Angle(self.Owner:EyeAngles().p, self.Owner:EyeAngles().y + self.Owner:GetNWInt(“SwingPower”), 0):Forward()
[/lua]
Untested.