add sborka
This commit is contained in:
85
garrysmod/addons/tacrp/lua/entities/tacrp_ammo_frag.lua
Normal file
85
garrysmod/addons/tacrp/lua/entities/tacrp_ammo_frag.lua
Normal file
@@ -0,0 +1,85 @@
|
||||
AddCSLuaFile()
|
||||
|
||||
ENT.Type = "anim"
|
||||
ENT.Base = "base_entity"
|
||||
ENT.RenderGroup = RENDERGROUP_TRANSLUCENT
|
||||
|
||||
ENT.PrintName = "Frag Grenade (Ammo)"
|
||||
ENT.Category = "Tactical RP"
|
||||
|
||||
ENT.AdminOnly = false
|
||||
ENT.Spawnable = true
|
||||
ENT.Model = "models/weapons/tacint/frag.mdl"
|
||||
|
||||
ENT.Ammo = "grenade"
|
||||
ENT.GrenadeProxy = "tacrp_nade_frag"
|
||||
|
||||
function ENT:Initialize()
|
||||
self:SetModel(self.Model)
|
||||
|
||||
if SERVER then
|
||||
self:SetMaterial(self.Material or "")
|
||||
|
||||
self:PhysicsInit(SOLID_VPHYSICS)
|
||||
self:SetMoveType(MOVETYPE_VPHYSICS)
|
||||
self:SetSolid(SOLID_VPHYSICS)
|
||||
self:SetCollisionGroup(COLLISION_GROUP_WEAPON)
|
||||
self:SetUseType(CONTINUOUS_USE)
|
||||
self:PhysWake()
|
||||
|
||||
self:SetTrigger(true) -- Enables Touch() to be called even when not colliding
|
||||
self:UseTriggerBounds(true, 24)
|
||||
end
|
||||
end
|
||||
|
||||
function ENT:ApplyAmmo(ply)
|
||||
if self.Used then return end
|
||||
|
||||
self.Used = true
|
||||
ply:GiveAmmo(1, self.Ammo)
|
||||
self:Remove()
|
||||
end
|
||||
|
||||
ENT.CollisionSoundsHard = {
|
||||
"physics/metal/weapon_impact_hard1.wav",
|
||||
"physics/metal/weapon_impact_hard2.wav",
|
||||
"physics/metal/weapon_impact_hard3.wav",
|
||||
}
|
||||
|
||||
ENT.CollisionSoundsSoft = {
|
||||
"physics/metal/weapon_impact_soft1.wav",
|
||||
"physics/metal/weapon_impact_soft2.wav",
|
||||
"physics/metal/weapon_impact_soft3.wav",
|
||||
}
|
||||
|
||||
function ENT:PhysicsCollide(data)
|
||||
if data.DeltaTime < 0.1 then return end
|
||||
|
||||
if data.Speed > 25 then
|
||||
self:EmitSound(self.CollisionSoundsHard[math.random(#self.CollisionSoundsHard)])
|
||||
else
|
||||
self:EmitSound(self.CollisionSoundsSoft[math.random(#self.CollisionSoundsSoft)])
|
||||
end
|
||||
end
|
||||
|
||||
if SERVER then
|
||||
|
||||
function ENT:Use(ply)
|
||||
if !ply:IsPlayer() then return end
|
||||
self:ApplyAmmo(ply)
|
||||
if self.GrenadeProxy then
|
||||
ply:Give(self.GrenadeProxy, true)
|
||||
end
|
||||
end
|
||||
|
||||
elseif CLIENT then
|
||||
|
||||
function ENT:DrawTranslucent()
|
||||
self:Draw()
|
||||
end
|
||||
|
||||
function ENT:Draw()
|
||||
self:DrawModel()
|
||||
end
|
||||
|
||||
end
|
||||
Reference in New Issue
Block a user