86 lines
2.0 KiB
Lua
86 lines
2.0 KiB
Lua
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
|