mirror of
https://github.com/lifestorm/wnsrc.git
synced 2025-12-17 05:43:46 +03:00
Upload
This commit is contained in:
106
lua/entities/cup_shield3.lua
Normal file
106
lua/entities/cup_shield3.lua
Normal file
@@ -0,0 +1,106 @@
|
||||
--[[
|
||||
| This file was obtained through the combined efforts
|
||||
| of Madbluntz & Plymouth Antiquarian Society.
|
||||
|
|
||||
| Credits: lifestorm, Gregory Wayne Rossel JR.,
|
||||
| Maloy, DrPepper10 @ RIP, Atle!
|
||||
|
|
||||
| Visit for more: https://plymouth.thetwilightzone.ru/
|
||||
--]]
|
||||
|
||||
|
||||
AddCSLuaFile()
|
||||
|
||||
ENT.Type = "anim"
|
||||
ENT.Base = "base_anim"
|
||||
ENT.PrintName = "Tactical Metrocop Shield"
|
||||
ENT.Author = "Comrade Communist"
|
||||
ENT.Purpose = ""
|
||||
ENT.Category = ""
|
||||
|
||||
ENT.Spawnable = true
|
||||
ENT.AdminOnly = false
|
||||
|
||||
if SERVER then
|
||||
|
||||
function ENT:Initialize()
|
||||
self:SetModel("models/items/shields/shield_cop.mdl")
|
||||
self:PhysicsInit( SOLID_VPHYSICS )
|
||||
self:SetMoveType( MOVETYPE_VPHYSICS )
|
||||
self:SetSolid( SOLID_VPHYSICS )
|
||||
self:DrawShadow( false )
|
||||
self:SetCollisionGroup( COLLISION_GROUP_WEAPON )
|
||||
self:SetHealth(44420) -- Blaze It ( ͡° ͜ʖ ͡°) --
|
||||
self:SetMaxHealth(self:Health())
|
||||
local phys = self:GetPhysicsObject()
|
||||
if (phys:IsValid()) then
|
||||
phys:Wake()
|
||||
end
|
||||
local self_name = "shield" .. self:EntIndex()
|
||||
self:SetName( self_name )
|
||||
local spawnpos = self:GetPos() + self:GetForward() * 1 + self:GetUp() * 0 + self:GetRight() * 0
|
||||
self.shield2 = ents.Create("prop_physics")
|
||||
self.shield2:SetModel("models/items/shields/shield_cop.mdl")
|
||||
self.shield2:SetPos( spawnpos )
|
||||
self.shield2:SetAngles( self:GetAngles() )
|
||||
self.shield2:SetParent(self)
|
||||
self.shield2:SetNoDraw( true )
|
||||
self.shield2:DrawShadow( false )
|
||||
self.shield2:SetCollisionGroup(COLLISION_GROUP_WEAPON)
|
||||
self.shield2:SetOwner( self.Owner )
|
||||
self.shield2:Spawn()
|
||||
self.shield2:Activate()
|
||||
|
||||
end
|
||||
|
||||
function ENT:Think()
|
||||
if IsValid(self.shield2) then
|
||||
self.shield2:SetModel(self:GetModel())
|
||||
end
|
||||
end
|
||||
|
||||
function ENT:PhysicsCollide(data,phys)
|
||||
if data.Speed > 50 and data.Speed < 300 then
|
||||
self:EmitSound("physics/metal/metal_canister_impact_soft" .. math.random(1,3) .. ".wav", 75, math.random(90,110))
|
||||
end
|
||||
if data.Speed > 300 then
|
||||
self:EmitSound("physics/metal/metal_canister_impact_hard" .. math.random(1,3) .. ".wav", 75, math.random(90,110))
|
||||
end
|
||||
end
|
||||
|
||||
function ENT:OnTakeDamage(dmginfo)
|
||||
self:TakePhysicsDamage(dmginfo)
|
||||
self:SetHealth(self:Health() - dmginfo:GetDamage())
|
||||
self:EmitSound("physics/metal/metal_sheet_impact_bullet" .. math.random(1,2) .. ".wav", 75, math.random(90,110))
|
||||
if self:Health() <= 0 then
|
||||
if IsValid(self.shield2) then
|
||||
self.shield2:Remove()
|
||||
end
|
||||
self:EmitSound("physics/metal/metal_box_break" .. math.random(1,2) .. ".wav", 75, math.random(90,110))
|
||||
self.shield = ents.Create("prop_physics")
|
||||
self.shield:SetModel("models/items/shields/shield_cop.mdl")
|
||||
self.shield:SetPos( self:GetPos() )
|
||||
self.shield:SetAngles( self:GetAngles() )
|
||||
self.shield:SetCollisionGroup(COLLISION_GROUP_WEAPON)
|
||||
self.shield:SetOwner( self.Owner )
|
||||
self.shield:Spawn()
|
||||
self.shield:Activate()
|
||||
local phys2 = self.shield:GetPhysicsObject()
|
||||
if (phys2:IsValid()) then
|
||||
phys2:SetVelocity(self:GetForward() * math.random(-200,200) + self:GetUp() * math.random(-200,200) + self:GetRight() * math.random(-200,200))
|
||||
end
|
||||
SafeRemoveEntityDelayed(self.shield,5)
|
||||
self.dissolver = ents.Create("env_entity_dissolver")
|
||||
self.dissolver:SetKeyValue("dissolvetype", "0")
|
||||
self.dissolver:SetKeyValue("magnitude", "1")
|
||||
self.dissolver:SetPos(self.shield:GetPos())
|
||||
self.dissolver:Spawn()
|
||||
local name = "Dissolving_"..math.random(1,9999)
|
||||
self.shield:SetName(name)
|
||||
self.dissolver:Fire("Dissolve",name,0)
|
||||
self.dissolver:Fire("kill","",0.01)
|
||||
self:Remove()
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
Reference in New Issue
Block a user