• 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.