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,125 @@
AddCSLuaFile()
ENT.Type = "anim"
ENT.Spawnable = false
ENT.AdminSpawnable = false
ENT.DoNotDuplicate = true
ENT._LVS = true
function ENT:SetupDataTables()
self:NetworkVar( "Entity",0, "Base" )
self:NetworkVar( "Float",1, "HP" )
self:NetworkVar( "Float",2, "MaxHP" )
self:NetworkVar( "Bool",0, "Destroyed" )
if SERVER then
self:SetMaxHP( 100 )
self:SetHP( 100 )
end
end
if SERVER then
function ENT:Initialize()
self:SetMoveType( MOVETYPE_NONE )
self:SetSolid( SOLID_NONE )
self:DrawShadow( false )
debugoverlay.Cross( self:GetPos(), 50, 5, Color( 0, 255, 255 ) )
end
function ENT:Think()
local T = CurTime()
local vehicle = self:GetBase()
if not self:GetDestroyed() or not IsValid( vehicle ) or not vehicle:GetEngineActive() then self:NextThink( T + 1 ) return true end
local PhysObj = vehicle:GetPhysicsObject()
local Pos = self:GetPos()
local Len = vehicle:WorldToLocal( Pos ):Length()
PhysObj:ApplyForceOffset( -vehicle:GetVelocity() * (PhysObj:GetMass() / Len) * FrameTime() * 50, Pos )
self:NextThink( T )
return true
end
function ENT:OnTakeDamage( dmginfo )
if self:GetDestroyed() then return end
local Damage = dmginfo:GetDamage()
if Damage <= 0 then return end
local CurHealth = self:GetHP()
local NewHealth = math.Clamp( CurHealth - Damage, 0, self:GetMaxHP() )
self:SetHP( NewHealth )
if NewHealth <= 0 then
self:SetDestroyed( true )
end
end
function ENT:UpdateTransmitState()
return TRANSMIT_ALWAYS
end
return
end
function ENT:Initialize()
end
function ENT:Think()
local vehicle = self:GetBase()
if not IsValid( vehicle ) then return end
self:DamageFX( vehicle )
end
function ENT:OnRemove()
end
function ENT:Draw()
end
function ENT:DrawTranslucent()
end
function ENT:DamageFX( vehicle )
local T = CurTime()
local HP = vehicle:GetHP()
local MaxHP = vehicle:GetMaxHP()
if HP <= 0 then return end
if (self.nextDFX or 0) > T then return end
self.nextDFX = T + 0.05
local Destroyed = self:GetDestroyed()
if Destroyed or HP < MaxHP * 0.5 then
local effectdata = EffectData()
effectdata:SetOrigin( self:GetPos() )
effectdata:SetEntity( vehicle )
util.Effect( "lvs_engine_blacksmoke", effectdata )
end
if not Destroyed then return end
if HP < MaxHP * 0.5 then
local effectdata = EffectData()
effectdata:SetOrigin( self:GetPos() )
effectdata:SetNormal( -self:GetForward() )
effectdata:SetMagnitude( 2 )
effectdata:SetEntity( vehicle )
util.Effect( "lvs_exhaust_fire", effectdata )
end
end