AddCSLuaFile("cl_init.lua") AddCSLuaFile("shared.lua") include("shared.lua") ENT.smokeSound = nil function ENT:Initialize() self:SetParent(NULL) --detaching from whatever we nailed on self:SetModel("models/dav0r/hoverball.mdl") self:SetOwner(NULL) self:EnableCustomCollisions(true) local p = self:GetPos() --+ self:GetAngles():Up() * -self.SmokeRadius local b = Vector(0.66, 0.66, 0.66) * self.SmokeRadius self:PhysicsInitBox(-b, b) self:SetCollisionBoundsWS(p - b, p + b) self:GetPhysicsObject():EnableMotion(false) self:SetCollisionGroup(self.CollisionGroup) local repFil = RecipientFilter() repFil:AddAllPlayers() self.smokeSound = CreateSound(self, "MW19_Crossbow.SmokeOn", repFil) self.smokeSound:Play() self.smokeSound:ChangePitch(75) self:EmitSound("MW19_Crossbow.SmokeExplode") ParticleEffectAttach("arrow_smoke", PATTACH_ABSORIGIN_FOLLOW, self, 0) ParticleEffect("arrow_smoke_explode", self:GetPos(), self:GetAngles(), self, 0) end function ENT:GetRelationship(e) return self:GetOwner() end function ENT:Think() if (CurTime() > self:GetCreationTime() + (self.LifeTime - 2)) then self:StopSmoke() end if (CurTime() - self:GetCreationTime() > self.LifeTime) then self:Remove() return end end function ENT:OnRemove() self:StopSmoke() end ENT.bStoppedSmoke = false function ENT:StopSmoke() if (self.bStoppedSmoke) then return end self.bStoppedSmoke = true if (self.smokeSound != nil) then self.smokeSound:Stop() end self:StopParticles() sound.Play("MW19_Crossbow.SmokeOff", self:GetPos()) end