AddCSLuaFile( "cl_init.lua" ) AddCSLuaFile( "shared.lua" ) include('shared.lua') function ENT:Initialize() self:SetModel( self.partmdl ) self:PhysicsInit( SOLID_VPHYSICS ) self:SetMoveType( MOVETYPE_VPHYSICS ) self:SetSolid( SOLID_VPHYSICS ) self:SetCollisionGroup( COLLISION_GROUP_NONE ) local phys = self:GetPhysicsObject() if not IsValid( phys ) then return end phys:SetMass(50); phys:EnableMotion( true ) self:DrawShadow(false) if self.hp != nil then self:SetHealth(self.hp) else self:SetHealth(500) end self:EnableCustomCollisions() if self.removeweld == nil then self.removeweld = false end constraint.NoCollide( self, self:GetOwner(), 0, 0 ) for k, ent in pairs(ents.GetAll()) do if ent.Base == "dk_damaged_parts_flex_base" or ent.Base == "dk_damaged_parts_base" then constraint.NoCollide( self, ent, 0, 0 ) end end end local glassimpact = Sound( "Glass.BulletImpact" ) function ENT:PhysicsCollide( data, phys ) local speed = data.Speed local kmh = math.Round(speed * 0.09144,0) if ( kmh >= 100 ) then self:TakeDamage(30, self, self) elseif ( kmh < 100 and kmh > 30 ) then self:TakeDamage(10, self, self) end end function ENT:TestCollision() return end function ENT:OnTakeDamage( dmg ) self:TakePhysicsDamage( dmg ) local Damage = dmg:GetDamage() if self.havebg then self:SetBodygroup( self.bg,self:GetBodygroup(self.bg)+1 ) end if self.glass then sound.Play(glassimpact, Vector(0,0,0), 100) end if self.material then self:SetSubMaterial( self.matid, self.path ) end if Damage <= 1 then self:SetHealth(self:Health()-Damage) else self:SetHealth(self:Health()-10) end if self:Health() <= 0 then if self.removeweld then constraint.RemoveAll( self ) timer.Simple(120, function() if IsValid(self) then self:Remove() end end) end end end function ENT:Think() end function ENT:SpawnFunction( ply, tr, ClassName ) if ( !tr.Hit ) then return end local SpawnPos = tr.HitPos + tr.HitNormal * 1 local ent = ents.Create( ClassName ) ent:SetPos( SpawnPos ) ent:Spawn() return ent end