add sborka

This commit is contained in:
2026-03-31 10:27:04 +03:00
commit f5e5f56c84
2345 changed files with 382127 additions and 0 deletions

View File

@@ -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