When an empty weapon is picked up it has ammo again?
2 replies, posted
Hey everyone
I've started a new dedicated server on my PC and I have noticed that on some traitor weapons such as the scilenced AWP if the clip is empty and dropped, someone else is able to pick it up and have full ammo again.
How can I prevent this?
AddCSLuaFile()
if CLIENT then
SWEP.PrintName = "Silenced AWP"
SWEP.Slot = 6
SWEP.Icon = "vgui/ttt/icon_awp"
end
-- Always derive from weapon_tttbase
SWEP.Base = "weapon_tttbase"
-- Standard GMod values
SWEP.HoldType = "ar2"
SWEP.Primary.Ammo = "none"
SWEP.Primary.Delay = 2
SWEP.Primary.Recoil = 10
SWEP.Primary.Cone = 0.001
SWEP.Primary.Damage = 150
SWEP.Primary.Automatic = false
SWEP.Primary.ClipSize = 1
SWEP.Primary.ClipMax = 1
SWEP.Primary.DefaultClip = 2
SWEP.Primary.Sound = Sound( "Weapon_M4A1.Silenced" )
SWEP.Secondary.Sound = Sound( "Default.Zoom" )
--- Model settings
SWEP.UseHands = true
SWEP.ViewModelFlip = false
SWEP.ViewModelFOV = 64
SWEP.ViewModel = "models/weapons/cstrike/c_snip_awp.mdl"
SWEP.WorldModel = "models/weapons/w_snip_awp.mdl"
SWEP.IronSightsPos = Vector( 5, -15, -2 )
SWEP.IronSightsAng = Vector( 2.6, 1.37, 3.5 )
--- TTT config values
-- Kind specifies the category this weapon is in. Players can only carry one of
-- each. Can be: WEAPON_... MELEE, PISTOL, HEAVY, NADE, CARRY, EQUIP1, EQUIP2 or ROLE.
-- Matching SWEP.Slot values: 0 1 2 3 4 6 7 8
SWEP.Kind = WEAPON_EQUIP1
-- If AutoSpawnable is true and SWEP.Kind is not WEAPON_EQUIP1/2, then this gun can
-- be spawned as a random weapon.
SWEP.AutoSpawnable = false
-- The AmmoEnt is the ammo entity that can be picked up when carrying this gun.
SWEP.AmmoEnt = "none"
-- CanBuy is a table of ROLE_* entries like ROLE_TRAITOR and ROLE_DETECTIVE. If
-- a role is in this table, those players can buy this.
SWEP.CanBuy = { ROLE_TRAITOR }
-- InLoadoutFor is a table of ROLE_* entries that specifies which roles should
-- receive this weapon as soon as the round starts. In this case, none.
SWEP.InLoadoutFor = { nil }
-- If LimitedStock is true, you can only buy one per round.
SWEP.LimitedStock = true
-- If AllowDrop is false, players can't manually drop the gun with Q
SWEP.AllowDrop = true
-- If IsSilent is true, victims will not scream upon death.
SWEP.IsSilent = true
-- If NoSights is true, the weapon won't have ironsights
SWEP.NoSights = false
function SWEP:SetZoom( state )
if CLIENT then
return
elseif IsValid( self.Owner ) and self.Owner:IsPlayer() then
if state then
self.Owner:SetFOV( 20, 0.3 )
else
self.Owner:SetFOV( 0, 0.2 )
end
end
end
-- Add some zoom to ironsights for this gun
function SWEP:SecondaryAttack()
if not self.IronSightsPos then return end
if self:GetNextSecondaryFire() > CurTime() then return end
bIronsights = not self:GetIronsights()
self:SetIronsights( bIronsights )
if SERVER then
self:SetZoom( bIronsights )
else
self:EmitSound( self.Secondary.Sound )
end
self:SetNextSecondaryFire( CurTime() + 0.3 )
end
function SWEP:PreDrop()
self:SetZoom( false )
self:SetIronsights( false )
return self.BaseClass.PreDrop( self )
end
function SWEP:Reload()
if ( self:Clip1() == self.Primary.ClipSize or self.Owner:GetAmmoCount( self.Primary.Ammo ) <= 0 ) then return end
self:DefaultReload( ACT_VM_RELOAD )
self:SetIronsights( false )
self:SetZoom( false )
end
function SWEP:Holster()
self:SetIronsights( false )
self:SetZoom( false )
return true
end
if CLIENT then
local scope = surface.GetTextureID( "sprites/scope" )
function SWEP:DrawHUD()
if self:GetIronsights() then
surface.SetDrawColor( 0, 0, 0, 255 )
local x = ScrW() / 2.0
local y = ScrH() / 2.0
local scope_size = ScrH()
-- crosshair
local gap = 80
local length = scope_size
surface.DrawLine( x - length, y, x - gap, y )
surface.DrawLine( x + length, y, x + gap, y )
surface.DrawLine( x, y - length, x, y - gap )
surface.DrawLine( x, y + length, x, y + gap )
gap = 0
length = 50
surface.DrawLine( x - length, y, x - gap, y )
surface.DrawLine( x + length, y, x + gap, y )
surface.DrawLine( x, y - length, x, y - gap )
surface.DrawLine( x, y + length, x, y + gap )
-- cover edges
local sh = scope_size / 2
local w = ( x - sh ) + 2
surface.DrawRect( 0, 0, w, scope_size )
surface.DrawRect( x + sh - 2, 0, w, scope_size )
surface.SetDrawColor( 255, 0, 0, 255 )
surface.DrawLine( x, y, x + 1, y + 1 )
-- scope
surface.SetTexture( scope )
surface.SetDrawColor( 255, 255, 255, 255 )
surface.DrawTexturedRectRotated( x, y, scope_size, scope_size, 0 )
else
return self.BaseClass.DrawHUD( self )
end
end
function SWEP:AdjustMouseSensitivity()
return ( self:GetIronsights() and 0.2 ) or nil
end
end
-- Equipment menu information is only needed on the client
if CLIENT then
-- Text shown in the equip menu
SWEP.EquipMenuData = {
type = "Weapon",
desc = "Silenced AWP Sniper Rifle.\n\nOnly has two shots.\n\nVictims will not scream when killed."
}
end
Put "self.Primary.DefaultClip = 0" in the SWEP:PreDrop or SWEP:OnDrop.
[QUOTE=Robotboy655;44822990]Put "self.Primary.DefaultClip = 0" in the SWEP:PreDrop or SWEP:OnDrop.[/QUOTE]
It worked thank you
Sorry, you need to Log In to post a reply to this thread.