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,94 @@
AddCSLuaFile()
ENT.Base = "tacrp_proj_base"
ENT.PrintName = "Flash Grenade"
ENT.Spawnable = false
ENT.Model = "models/weapons/tacint/flashbang.mdl"
ENT.IsRocket = false // projectile has a booster and will not drop.
ENT.InstantFuse = true // projectile is armed immediately after firing.
ENT.RemoteFuse = false // allow this projectile to be triggered by remote detonator.
ENT.ImpactFuse = false // projectile explodes on impact.
ENT.ExplodeOnDamage = false // projectile explodes when it takes damage.
ENT.ExplodeUnderwater = false
ENT.ImpactDamage = 1
ENT.Delay = 1.5
ENT.SoundHint = true
ENT.SoundHintDelay = 0.5
ENT.SoundHintRadius = 728
ENT.SoundHintDuration = 1
ENT.BounceSounds = {
"TacRP/weapons/grenade/flashbang_bounce-1.wav",
"TacRP/weapons/grenade/flashbang_bounce-2.wav",
"TacRP/weapons/grenade/flashbang_bounce-3.wav",
}
ENT.ExplodeSounds = {
"TacRP/weapons/grenade/flashbang_explode-1.wav",
}
function ENT:Detonate()
local attacker = self.Attacker or self:GetOwner() or self
local dmg = DamageInfo()
dmg:SetAttacker(attacker)
dmg:SetInflictor(self)
dmg:SetDamageType(engine.ActiveGamemode() == "terrortown" and DMG_DIRECT or DMG_SONIC)
dmg:SetDamagePosition(self:GetPos())
dmg:SetDamage(3)
util.BlastDamageInfo(dmg, self:GetPos(), 728)
local fx = EffectData()
fx:SetOrigin(self:GetPos())
if self:WaterLevel() > 0 then
util.Effect("WaterSurfaceExplosion", fx)
self:Remove()
return
else
fx:SetRadius(728)
util.Effect("TacRP_flashexplosion", fx)
end
TacRP.Flashbang(self, self:GetPos(), 728, 3, 0.25, 0.5)
self:EmitSound(table.Random(self.ExplodeSounds), 125)
self:Remove()
end
ENT.SmokeTrail = true
function ENT:DoSmokeTrail()
if CLIENT and self.SmokeTrail and (self.Tick or 0) % 5 == 0 then
local pos = self:GetPos() + VectorRand() * 2
local emitter = ParticleEmitter(pos)
local smoke = emitter:Add("effects/spark", pos)
smoke:SetVelocity( VectorRand() * 32 )
smoke:SetStartAlpha( 255 )
smoke:SetEndAlpha( 0 )
smoke:SetStartSize( 2 )
smoke:SetEndSize( 0 )
smoke:SetRoll( math.Rand(-180, 180) )
smoke:SetRollDelta( math.Rand(-32, 32) )
smoke:SetColor( 255, 255, 255 )
smoke:SetAirResistance( 125 )
smoke:SetPos( pos )
smoke:SetCollide( true )
smoke:SetBounce( 1 )
smoke:SetLighting( false )
smoke:SetDieTime(math.Rand(2, 3))
smoke:SetGravity(Vector(0, 0, 4))
emitter:Finish()
end
self.Tick = (self.Tick or 0) + 1
end