35 lines
942 B
Lua
35 lines
942 B
Lua
|
INC_SERVER()
|
||
|
|
||
|
SWEP.Primary.Projectile = "projectile_asmd"
|
||
|
SWEP.Primary.ProjVelocity = 400
|
||
|
|
||
|
function SWEP:ShootSecondary(damage, numshots, cone)
|
||
|
local owner = self:GetOwner()
|
||
|
self:SendWeaponAnimation()
|
||
|
owner:DoAttackEvent()
|
||
|
|
||
|
for i = 0,numshots-1 do
|
||
|
local ent = ents.Create(self.Primary.Projectile)
|
||
|
if ent:IsValid() then
|
||
|
ent:SetPos(owner:GetShootPos())
|
||
|
ent:SetAngles(owner:EyeAngles())
|
||
|
ent:SetOwner(owner)
|
||
|
ent.ProjDamage = damage * (owner.ProjectileDamageMul or 1)
|
||
|
ent.ProjSource = self
|
||
|
ent.Team = owner:Team()
|
||
|
|
||
|
ent:Spawn()
|
||
|
|
||
|
local phys = ent:GetPhysicsObject()
|
||
|
if phys:IsValid() then
|
||
|
phys:Wake()
|
||
|
|
||
|
local angle = owner:GetAimVector():Angle()
|
||
|
angle:RotateAroundAxis(angle:Forward(), math.Rand(0, 360))
|
||
|
angle:RotateAroundAxis(angle:Up(), math.Rand(-cone, cone))
|
||
|
phys:SetVelocityInstantaneous(angle:Forward() * self.Primary.ProjVelocity * (owner.ProjectileSpeedMul or 1))
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|