mirror of
https://github.com/lifestorm/wnsrc.git
synced 2025-12-16 21:33:46 +03:00
192 lines
9.6 KiB
Lua
192 lines
9.6 KiB
Lua
--[[
|
|
| This file was obtained through the combined efforts
|
|
| of Madbluntz & Plymouth Antiquarian Society.
|
|
|
|
|
| Credits: lifestorm, Gregory Wayne Rossel JR.,
|
|
| Maloy, DrPepper10 @ RIP, Atle!
|
|
|
|
|
| Visit for more: https://plymouth.thetwilightzone.ru/
|
|
--]]
|
|
|
|
if (!file.Exists("autorun/vj_base_autorun.lua","LUA")) then return end
|
|
/*--------------------------------------------------
|
|
*** Copyright (c) 2012-2023 by DrVrej, All rights reserved. ***
|
|
No parts of this code or any of its contents may be reproduced, copied, modified or adapted,
|
|
without the prior written consent of the author, unless otherwise indicated for stand-alone materials.
|
|
--------------------------------------------------*/
|
|
function EFFECT:Init(data)
|
|
local ent = data:GetEntity()
|
|
if !IsValid(ent) then return end
|
|
local owner = ent:GetOwner()
|
|
if !IsValid(owner) then return end
|
|
local muzEnt = ((owner != LocalPlayer()) or owner:ShouldDrawLocalPlayer()) && ent or owner:GetViewModel()
|
|
-- (if the owner isn't the local player OR the owner is in third person, then use world model) OR (Use the owner's viewmodel)
|
|
ParticleEffectAttach(VJ_PICK(ent.PrimaryEffects_MuzzleParticles), PATTACH_POINT, muzEnt, data:GetAttachment())
|
|
|
|
-- Muzzle Flash
|
|
/*
|
|
self.Pos = self:GetTracerShootPos(data:GetOrigin(),data:GetEntity(),data:GetAttachment())
|
|
local Emitter = ParticleEmitter(self.Pos)
|
|
if Emitter == nil then return end
|
|
|
|
local LocalPlayerMagnitude = 0
|
|
if IsValid(data:GetEntity()) && IsValid(data:GetEntity():GetOwner()) && data:GetEntity():GetOwner():IsPlayer() && data:GetEntity().Owner == LocalPlayer() then
|
|
LocalPlayerMagnitude = data:GetMagnitude() else
|
|
LocalPlayerMagnitude = 0
|
|
end
|
|
|
|
if GetConVarNumber("vj_wep_nomuszzleflash") == 0 && IsValid(data:GetEntity()) then
|
|
for i = 1,3 do //4
|
|
local EffectCode = Emitter:Add("effects/muzzleflash"..math.random(1,4),self.Pos + LocalPlayerMagnitude * data:GetNormal())
|
|
EffectCode:SetVelocity(data:GetNormal() + 1.1 * data:GetEntity():GetOwner():GetVelocity())
|
|
//EffectCode:SetAirResistance(200)
|
|
EffectCode:SetDieTime(math.Rand(0.05,0.05)) -- How much time until it dies
|
|
EffectCode:SetStartAlpha(math.Rand(200,255)) -- Transparency
|
|
EffectCode:SetStartSize(math.Rand(5,6)) -- Size of the effect
|
|
EffectCode:SetEndSize(math.Rand(16,20)) -- Size of the effect at the end (The effect slowly trasnsforms to this size)
|
|
EffectCode:SetRoll(math.Rand(480,540))
|
|
EffectCode:SetRollDelta(math.Rand(-1,1)) -- How fast it rolls
|
|
EffectCode:SetColor(255,255,255) -- The color of the effect
|
|
//EffectCode:SetGravity(Vector(0,0,100)) -- The Gravity
|
|
end
|
|
local EffectCode = Emitter:Add("effects/yellowflare", self.Pos)
|
|
EffectCode:SetVelocity(data:GetNormal() + 1.1 * data:GetEntity():GetOwner():GetVelocity())
|
|
EffectCode:SetAirResistance(160)
|
|
EffectCode:SetDieTime(0.05)
|
|
EffectCode:SetStartAlpha(255)
|
|
EffectCode:SetEndAlpha(0)
|
|
EffectCode:SetStartSize(.5)
|
|
EffectCode:SetEndSize(15)
|
|
EffectCode:SetRoll(math.Rand(180, 480))
|
|
EffectCode:SetRollDelta(math.Rand(-1, 1))
|
|
EffectCode:SetColor(255, 255, 255)
|
|
end
|
|
|
|
-- Heat wave
|
|
if GetConVarNumber("vj_wep_nomuzzleheatwave") == 0 && IsValid(data:GetEntity()) then
|
|
local EffectCode = Emitter:Add("sprites/heatwave",self.Pos + LocalPlayerMagnitude * data:GetNormal())
|
|
EffectCode:SetVelocity(data:GetNormal() + 1.1 * data:GetEntity():GetOwner():GetVelocity())
|
|
EffectCode:SetDieTime(math.Rand(0.15,0.2)) -- How much time until it dies
|
|
//EffectCode:SetStartAlpha(math.Rand(90,100)) -- Transparency
|
|
EffectCode:SetStartSize(math.Rand(7,9)) -- Size of the effect
|
|
EffectCode:SetEndSize(math.Rand(4,6)) -- Size of the effect at the end (The effect slowly trasnsforms to this size)
|
|
EffectCode:SetRoll(math.Rand(480,540))
|
|
EffectCode:SetRollDelta(math.Rand(-1,1)) -- How fast it rolls
|
|
//EffectCode:SetColor(255,255,255) -- The color of the effect
|
|
//EffectCode:SetGravity(Vector(0,0,100)) -- The Gravity
|
|
end
|
|
|
|
-- Smoke
|
|
if GetConVarNumber("vj_wep_nomuszzlesmoke") == 0 && IsValid(data:GetEntity()) then
|
|
local smokeinum = 2
|
|
if IsValid(data:GetEntity():GetOwner()) then
|
|
if data:GetEntity():GetOwner():IsNPC() then smokeinum = 1 else smokeinum = 2 end
|
|
end
|
|
local smokediet = 0.5,0.5
|
|
if IsValid(data:GetEntity():GetOwner()) then
|
|
if data:GetEntity():GetOwner():IsNPC() then smokediet = 0.2,0.2 else smokediet = 0.4,0.4 end
|
|
end
|
|
for i = 1,smokeinum do //4
|
|
local EffectCode = Emitter:Add("particles/smokey",self.Pos + LocalPlayerMagnitude * data:GetNormal())
|
|
EffectCode:SetVelocity(data:GetNormal() + Vector(math.random(-30,30),math.random(-30,30),math.random(-30,30)))
|
|
EffectCode:SetDieTime(math.Rand(smokediet,smokediet)) -- How much time until it dies
|
|
EffectCode:SetStartAlpha(math.Rand(40,60)) -- Transparency
|
|
EffectCode:SetEndAlpha(0) -- Transparency
|
|
EffectCode:SetStartSize(math.Rand(2,3)) -- Size of the effect
|
|
EffectCode:SetEndSize(math.Rand(13,15)) -- Size of the effect at the end (The effect slowly trasnsforms to this size)
|
|
EffectCode:SetRoll(math.Rand(480,540))
|
|
EffectCode:SetRollDelta(math.Rand(-1,1)) -- How fast it rolls
|
|
EffectCode:SetColor(150,150,150) -- The color of the effect
|
|
//EffectCode:SetGravity(Vector(0,0,math.random(-30,-10))) -- The Gravity
|
|
EffectCode:SetAirResistance(300)
|
|
end
|
|
end
|
|
|
|
if GetConVarNumber("vj_wep_nomuszzleflash") == 0 && IsValid(data:GetEntity()) then
|
|
if IsValid(data:GetEntity():GetOwner()) then
|
|
if data:GetEntity():GetOwner():IsPlayer() then
|
|
for i = 1,4 do
|
|
local EffectCode = Emitter:Add("effects/yellowflare",self.Pos)
|
|
EffectCode:SetVelocity((data:GetNormal() + VectorRand() * 0.5) * math.Rand(150, 200))
|
|
EffectCode:SetDieTime(math.Rand(0.5, 0.8))
|
|
EffectCode:SetStartAlpha(255)
|
|
EffectCode:SetStartSize(.5)
|
|
EffectCode:SetEndSize(2)
|
|
EffectCode:SetRoll(0)
|
|
EffectCode:SetGravity(Vector(0, 0, -1))
|
|
EffectCode:SetBounce(.8)
|
|
EffectCode:SetAirResistance(400)
|
|
EffectCode:SetStartLength(0.01)
|
|
EffectCode:SetEndLength(0)
|
|
EffectCode:SetVelocityScale(true)
|
|
EffectCode:SetCollide(false)
|
|
end
|
|
end
|
|
end
|
|
end
|
|
Emitter:Finish()*/
|
|
|
|
-- Small Smoke
|
|
/*for i = 1,4 do
|
|
local EffectCode = Emitter:Add("particle/particle_smokegrenade",self.Pos)
|
|
EffectCode:SetVelocity(Vector(math.random(-30,30),math.random(-30,30),math.random(20,30)))
|
|
EffectCode:SetAirResistance(200)
|
|
EffectCode:SetDieTime(math.Rand(0.5,1)) -- How much time until it dies
|
|
EffectCode:SetStartAlpha(math.Rand(100,150)) -- Transparency
|
|
EffectCode:SetStartSize(math.Rand(3,4)) -- Size of the effect
|
|
EffectCode:SetEndSize(math.Rand(6,8)) -- Size of the effect at the end (The effect slowly trasnsforms to this size)
|
|
EffectCode:SetRoll(math.Rand(480,540))
|
|
EffectCode:SetRollDelta(math.Rand(-1,1)) -- How fast it rolls
|
|
EffectCode:SetColor(255,255,255) -- The color of the effect
|
|
//EffectCode:SetGravity(Vector(0,0,100)) -- The Gravity
|
|
end*/
|
|
//local EffectCode = Emitter:Add("effects/muzzleflash"..math.random(1,4),self.Pos + LocalPlayerMagnitude * data:GetNormal())
|
|
//EffectCode:SetVelocity(data:GetNormal() + 1.1 * data:GetEntity():GetOwner():GetVelocity())
|
|
|
|
/*
|
|
local EffectCode = Emitter:Add("effects/muzzleflare_01",self.Pos + LocalPlayerMagnitude * data:GetNormal())
|
|
EffectCode:SetVelocity(data:GetNormal() + 1.1 * data:GetEntity():GetOwner():GetVelocity())
|
|
//EffectCode:SetAirResistance(200)
|
|
EffectCode:SetDieTime(math.Rand(0.05,0.05)) -- How much time until it dies
|
|
EffectCode:SetStartAlpha(math.Rand(200,255)) -- Transparency
|
|
EffectCode:SetStartSize(math.Rand(5,6)) -- Size of the effect
|
|
EffectCode:SetEndSize(math.Rand(16,20)) -- Size of the effect at the end (The effect slowly trasnsforms to this size)
|
|
EffectCode:SetRoll(math.Rand(480,540))
|
|
EffectCode:SetRollDelta(math.Rand(-1,1)) -- How fast it rolls
|
|
EffectCode:SetColor(245,164,53) -- The color of the effect
|
|
//EffectCode:SetGravity(Vector(0,0,100)) -- The Gravity
|
|
|
|
local EffectCode = Emitter:Add("effects/muzzlestarlarge_01",self.Pos + LocalPlayerMagnitude * data:GetNormal())
|
|
EffectCode:SetVelocity(data:GetNormal() + 1.1 * data:GetEntity():GetOwner():GetVelocity())
|
|
//EffectCode:SetAirResistance(200)
|
|
EffectCode:SetDieTime(math.Rand(0.05,0.05)) -- How much time until it dies
|
|
EffectCode:SetStartAlpha(math.Rand(200,255)) -- Transparency
|
|
EffectCode:SetStartSize(math.Rand(5,6)) -- Size of the effect
|
|
EffectCode:SetEndSize(math.Rand(16,20)) -- Size of the effect at the end (The effect slowly trasnsforms to this size)
|
|
EffectCode:SetRoll(math.Rand(480,540))
|
|
EffectCode:SetRollDelta(math.Rand(-1,1)) -- How fast it rolls
|
|
EffectCode:SetColor(248,241,200) -- The color of the effect
|
|
//EffectCode:SetGravity(Vector(0,0,100)) -- The Gravity
|
|
|
|
local EffectCode = Emitter:Add("particle/bm_whispysmoke_001",self.Pos + LocalPlayerMagnitude * data:GetNormal())
|
|
EffectCode:SetVelocity(data:GetNormal() + Vector(math.random(-30,30),math.random(-30,30),math.random(-30,30)))
|
|
EffectCode:SetDieTime(math.Rand(0.5,0.5)) -- How much time until it dies
|
|
EffectCode:SetStartAlpha(math.Rand(40,60)) -- Transparency
|
|
EffectCode:SetEndAlpha(0) -- Transparency
|
|
EffectCode:SetStartSize(math.Rand(2,3)) -- Size of the effect
|
|
EffectCode:SetEndSize(math.Rand(13,15)) -- Size of the effect at the end (The effect slowly trasnsforms to this size)
|
|
EffectCode:SetRoll(math.Rand(480,540))
|
|
EffectCode:SetRollDelta(math.Rand(-1,1)) -- How fast it rolls
|
|
EffectCode:SetColor(255,255,255) -- The color of the effect
|
|
//EffectCode:SetGravity(Vector(0,0,math.random(-30,-10))) -- The Gravity
|
|
EffectCode:SetAirResistance(300)
|
|
*/
|
|
end
|
|
---------------------------------------------------------------------------------------------------------------------------------------------
|
|
function EFFECT:Think()
|
|
return false
|
|
end
|
|
---------------------------------------------------------------------------------------------------------------------------------------------
|
|
function EFFECT:Render()
|
|
end
|