Здравствуйте.
Прошу помочь решить проблему с частицами.
У меня есть скриптовое оружие, использующее модель кулаков, которое должно порождать огонь.
У меня есть частицы огня в папке аддона (путь — /addons/MySWEP/particles/my_particle.pcf).
Оружие хорошо работает, поджигает в области прицела, но возникает проблема с частицами.
Я использую оружие на локальном сервере и при атаке я просто не вижу эффект частиц, однако по-логике видимых причин нет и эффект огненной струи должен порождаться рядом с кулаками игрока. Ошибок в консоли тоже не возникает. Gmod работает с частицами из других дополнений и с родными нормально, значит проблема не в нём.
Код:
Прошу помочь решить проблему с частицами.
У меня есть скриптовое оружие, использующее модель кулаков, которое должно порождать огонь.
У меня есть частицы огня в папке аддона (путь — /addons/MySWEP/particles/my_particle.pcf).
Оружие хорошо работает, поджигает в области прицела, но возникает проблема с частицами.
Я использую оружие на локальном сервере и при атаке я просто не вижу эффект частиц, однако по-логике видимых причин нет и эффект огненной струи должен порождаться рядом с кулаками игрока. Ошибок в консоли тоже не возникает. Gmod работает с частицами из других дополнений и с родными нормально, значит проблема не в нём.
Код:
GLua:
AddCSLuaFile()
SWEP.Category = "Flamer"
SWEP.PrintName = "FireTest"
SWEP.Author = "None"
SWEP.Purpose = "FlameGun"
SWEP.Slot = 1
SWEP.SlotPos = 4
SWEP.Spawnable = true
SWEP.ViewModel = Model( "models/weapons/c_arms.mdl" )
SWEP.WorldModel = ""
SWEP.ViewModelFOV = 54
SWEP.UseHands = true
SWEP.Primary.ClipSize = -1
SWEP.Primary.DefaultClip = -1
SWEP.Primary.Automatic = true
SWEP.Primary.Ammo = "none"
SWEP.Secondary.ClipSize = -1
SWEP.Secondary.DefaultClip = -1
SWEP.Secondary.Automatic = true
SWEP.Secondary.Ammo = "none"
SWEP.DrawAmmo = false
local SwingSound = Sound( "WeaponFrag.Throw" )
local HitSound = Sound( "Flesh.ImpactHard" )
game.AddParticles( "particles/mnb_flamethrower.pcf")
PrecacheParticleSystem("flamethrower")
———*STANDART WEAPON FUNCTIONS WITH PRIMARY AND SECONDARY ATTAKS WHAT CALL DEALDAMAGE*———
function SWEP:DealDamage()
local anim = self:GetSequenceName(self.Owner:GetViewModel():GetSequence())
if SERVER then
if IsValid(self.part) then
self.part:Remove()
end
self.part = ents.Create("info_particle_system")
self.part:SetPos(self.Owner:WorldSpaceCenter())
self.part:SetAngles(self.Owner:EyeAngles())
self.part:SetKeyValue("effect_name", "flamethrower")
self.part:SetKeyValue("start_active",tostring(1))
self.part:Spawn()
self.part:Activate()
self.part.DoNotDuplicate = true
self.part:Fire("kill","",1)
self:DeleteOnRemove(self.part)
local FireLight1 = ents.Create("light_dynamic")
FireLight1:SetKeyValue("brightness", "4")
FireLight1:SetKeyValue("distance", "256")
FireLight1:SetPos(self.Owner:GetShootPos())
FireLight1:SetLocalAngles(self.Owner:EyeAngles())
FireLight1:Fire("Color", "255 150 60")
FireLight1:SetParent(self)
FireLight1:Spawn()
FireLight1:Activate()
FireLight1:Fire("TurnOn","",0)
FireLight1:Fire("Kill","",1)
self:DeleteOnRemove(FireLight1)
self.Owner:EmitSound("attacking.fire")
local right = self.Owner:EyeAngles():Right()
if anim == "fists_right" then
self.part:SetPos(self.Owner:WorldSpaceCenter() + vector_up*12 + right*4)
self.right = true
else
self.right = false
end
self.doFire = true
timer.Simple(1,function()
if !IsValid(self) then return end
if !IsValid(self.Owner) then return end
self.Owner:EmitSound("npc/grag/garg_beam_stop.wav")
self.Owner:StopSound("attacking.fire")
if !IsValid(self.part) then return end
self.doFire = false
end)
--self.part:SetParent(self.Owner)
end
end