add sborka
This commit is contained in:
@@ -0,0 +1,86 @@
|
||||
AddCSLuaFile()
|
||||
|
||||
ENT.Base = "tacrp_proj_gyrojet"
|
||||
ENT.PrintName = "Gyrojet Pipe Grenade"
|
||||
ENT.Spawnable = false
|
||||
|
||||
ENT.Model = "models/Items/AR2_Grenade.mdl"
|
||||
ENT.CollisionSphere = false
|
||||
|
||||
ENT.SmokeTrail = true
|
||||
ENT.FlareColor = Color(255, 200, 128, 100)
|
||||
ENT.FlareLife = 0.1
|
||||
|
||||
ENT.IsRocket = false
|
||||
ENT.InstantFuse = true
|
||||
ENT.ImpactFuse = false
|
||||
ENT.Delay = 1.5
|
||||
|
||||
ENT.AudioLoop = false
|
||||
|
||||
function ENT:Impact(data, collider)
|
||||
if IsValid(data.HitEntity) and (data.HitEntity:IsPlayer() or data.HitEntity:IsNPC() or data.HitEntity:IsNextBot()) then
|
||||
self:Detonate()
|
||||
end
|
||||
end
|
||||
|
||||
function ENT:Detonate()
|
||||
local attacker = self.Attacker or self:GetOwner() or self
|
||||
local inflictor = attacker.GetWeapon and attacker:GetWeapon("tacrp_sd_gyrojet")
|
||||
local dmg = inflictor and inflictor.GetValue and inflictor:GetValue("Damage_Max") or 75
|
||||
if attacker:IsNPC() and !TacRP.ConVars["npc_equality"]:GetBool() then
|
||||
dmg = dmg * 0.25
|
||||
end
|
||||
|
||||
util.BlastDamage(self, attacker, self:GetPos(), 150, dmg)
|
||||
|
||||
local fx = EffectData()
|
||||
fx:SetOrigin(self:GetPos())
|
||||
fx:SetNormal(self:GetForward())
|
||||
|
||||
if self:WaterLevel() > 0 then
|
||||
util.Effect("WaterSurfaceExplosion", fx)
|
||||
else
|
||||
util.Effect("HelicopterMegaBomb", fx)
|
||||
end
|
||||
|
||||
self:EmitSound(table.Random(self.ExplodeSounds), 80, 110, 0.75)
|
||||
|
||||
self:Remove()
|
||||
end
|
||||
|
||||
function ENT:PhysicsUpdate(phys)
|
||||
end
|
||||
|
||||
|
||||
local smokeimages = {"particle/smokesprites_0001", "particle/smokesprites_0002", "particle/smokesprites_0003", "particle/smokesprites_0004", "particle/smokesprites_0005", "particle/smokesprites_0006", "particle/smokesprites_0007", "particle/smokesprites_0008", "particle/smokesprites_0009", "particle/smokesprites_0010", "particle/smokesprites_0011", "particle/smokesprites_0012", "particle/smokesprites_0013", "particle/smokesprites_0014", "particle/smokesprites_0015", "particle/smokesprites_0016"}
|
||||
local function GetSmokeImage()
|
||||
return smokeimages[math.random(#smokeimages)]
|
||||
end
|
||||
|
||||
function ENT:MakeSmoke()
|
||||
local emitter = ParticleEmitter(self:GetPos())
|
||||
|
||||
local smoke = emitter:Add(GetSmokeImage(), self:GetPos())
|
||||
|
||||
smoke:SetStartAlpha(2)
|
||||
smoke:SetEndAlpha(0)
|
||||
|
||||
smoke:SetStartSize(4)
|
||||
smoke:SetEndSize(math.Rand(10, 12))
|
||||
|
||||
smoke:SetRoll(math.Rand(-180, 180))
|
||||
smoke:SetRollDelta(math.Rand(-1, 1))
|
||||
|
||||
smoke:SetPos(self:GetPos())
|
||||
smoke:SetVelocity(VectorRand() * 25)
|
||||
|
||||
smoke:SetColor(255, 255, 255)
|
||||
smoke:SetLighting(false)
|
||||
|
||||
smoke:SetDieTime(math.Rand(0.6, 0.8))
|
||||
|
||||
smoke:SetGravity(Vector(0, 0, 256))
|
||||
|
||||
emitter:Finish()
|
||||
end
|
||||
Reference in New Issue
Block a user