TOOL.Category="Construction" TOOL.Name="#Weapon Stripper" TOOL.Command=nil TOOL.ConfigName="" TOOL.ClientConVar['toggle'] = "0" TOOL.ClientConVar['size'] = "200" TOOL.ClientConVar['model'] = 'models/props_combine/breenglobe.mdl' TOOL.ClientConVar['requireLOS'] = "1" TOOL.ClientConVar['delete'] = "0" cleanup.Register("wstrippers") if ( CLIENT ) then language.Add( 'Tool_wstripper_name', 'Weapon Stripper' ) language.Add( 'Tool_wstripper_desc', 'Create a Weapon Stripper' ) language.Add( 'Tool_wstripper_0', 'Spawn and press button to toggle.' ) language.Add( 'Undone_wstripper', 'Weapon Stripper undone' ) language.Add( 'Cleanup_wstrippers', 'Weapon Stripper' ) language.Add( 'Cleaned_wstrippers', 'Removed all Weapon Strippers.' ) language.Add( 'SBoxLimit_wstrippers', 'Maximum Weapon Strippers Reached' ) end function TOOL:LeftClick( trace ) if trace.Entity && (trace.Entity:IsPlayer() ) then return false end if(CLIENT) then return true end if(!SERVER) then return false end if ( !self:GetSWEP():CheckLimit( "wstrippers" ) ) then return false end local ply = self:GetOwner() local Pos = trace.HitPos local Ang = trace.HitNormal:Angle() Ang.pitch = Ang.pitch + 90 local togglekey = self:GetClientNumber( 'toggle' ) local size = math.Clamp(self:GetClientNumber( 'size' ),0,200) local model = self:GetClientInfo('model') local delete = self:GetClientNumber('delete') local LOS = self:GetClientNumber('requireLOS') ent2 = DoCreateWStripper( ply, Ang, Pos, togglekey,size,model,delete,LOS) ent2:SetPos( trace.HitPos - trace.HitNormal * ent2:OBBMins().z) if ( trace.Entity:IsValid() ) then const = constraint.Weld( ent2, trace.Entity, 0, trace.PhysicsBone, 0, collision == 0, true ) nocollide = constraint.NoCollide( ent, trace.Entity, 0, trace.PhysicsBone ) trace.Entity:DeleteOnRemove( ent2 ) end undo.Create("wstripper") undo.AddEntity(ent2) undo.AddEntity(const) undo.SetPlayer( ply ) undo.Finish() ply:AddCleanup( "wstrippers", ent2 ) ply:AddCleanup( "wstrippers", const ) return true end if SERVER then CreateConVar('sbox_maxwstrippers',1) function DoCreateWStripper( ply, Ang, Pos, togglekey,size,model,delete,LOS) if ( !ply:CheckLimit( "wstrippers" ) ) then return nil end local ent2 = ents.Create( 'ws_stripent' ) if !ent2:IsValid() then return false end ent2:SetModel( model ) ent2:SetAngles(Ang) ent2:SetPos(Pos) ent2:SetKeyValue("size",size) ent2:SetKeyValue("do",delete) ent2:SetKeyValue("los",LOS) ent2:Spawn() ent2:SetVar('Owner',ply) numpad.OnUp(ply, togglekey, 'DoToggle', ent2) local rtable = { togglekey=togglekey, size=size } table.Merge(ent2:GetTable(), rtable ) ply:AddCount('wstrippers', ent2) return ent2 end duplicator.RegisterEntityClass( "ws_stripent", DoCreateWStripper, "Ang", "Pos", "togglekey","size","model","delete","LOS" ) local function DoToggle( ply, ent) if (!ent:IsValid()) then return false end ent:Fire("toggle","",0) end numpad.Register("DoToggle",DoToggle) end function TOOL.BuildCPanel( cp ) cp:AddControl( 'Header', { Text = '#Tool_wstripper_name', Description = '#Tool_wstripper_desc' } ) cp:AddControl( "PropSelect", { Label = "Model", ConVar = "wstripper_model", Models = list.Get( "WSModels" ) } ) cp:AddControl( 'Slider', { Label = 'Size:', Type = "Float", Min = 0, Max = 200, Command = 'wstripper_size' } ) cp:AddControl('Numpad', { ButtonSize = '22', Label = 'Toggle:', Command = 'wstripper_toggle', } ) cp:AddControl("Checkbox",{Label = "Delete weapons", Command = "wstripper_delete"}) cp:AddControl("Checkbox",{Label = "Require line of sight", Command = "wstripper_requireLOS"}) end list.Set( "WSModels", "models/props_combine/breenglobe.mdl", {} ) list.Set( "WSModels", "models/props_junk/plasticbucket001a.mdl", {} ) list.Set( "WSModels", "models/props_junk/propane_tank001a.mdl", {} ) list.Set( "WSModels", "models/props_c17/FurnitureShelf001b.mdl", {} ) list.Set( "WSModels", "models/props_junk/PopCan01a.mdl", {} )