Scripting Helpers is winding down operations and is now read-only. More info→
Ad
Log in to vote
0

How do I make this script only take away 1 or 2 tools?

Asked by 7 years ago

I made this script for a block to only take away 1 or 2 tools called "Sword" and "Water Bottle" and if they have 3 tools it only takes the Sword and the Water Bottle away. What is wrong with my script it takes the whole inventory away, and how could I fix it?


keepers = {"berezaa"} -- These are customizeable criteria regarding exactly what is removed, and where it is removed from: RemoveTools = true RemoveHopperBins = true RemoveFromBackpack = true RemoveFromCharacter = true RemoveForceField = false script.Parent.BrickColor = BrickColor.new(21) function getPlayer(humanoid) local players = game.Players:GetChildren() for i = 1, #players do if (players[i].Character.Humanoid == humanoid) then return players[i] end end return nil end function checkKeeper(player) for i = 1,#keepers do if (keepers[i] == player.Name) then return true end end return false end function RemoveWeapons(parent) local weapons = parent:GetChildren('Sword') for i = 1,#weapons do if (weapons[i].className == "Tool") and (RemoveTools == true) then weapons[i]:remove() script.Parent.BrickColor = BrickColor.new(22) elseif (weapons[i].className == "HopperBin") and (RemoveHopperBins == true) then weapons[i]:remove() script.Parent.BrickColor = BrickColor.new(22) end end end local debounce = false function onTouched(hit) local human = hit.Parent:findFirstChild("Humanoid") if (human == nil) then return end local player = getPlayer(human) if (player == nil) then return end if (checkKeeper(player) == true) or (debounce == true) then return end debounce = true if (RemoveFromBackpack == true) then local backpack = player.Backpack if (table.maxn(backpack:GetChildren()) > 0) then RemoveWeapons(backpack) end end if (RemoveFromCharacter == true) then RemoveWeapons(player.Character) end if (RemoveForceField == true) then local charparts = player.Character:GetChildren() for i = 1,#charparts do if (charparts[i].className == "ForceField") then charparts[i]:remove() script.Parent.BrickColor = BrickColor.new(22) end end end wait(0.5) script.Parent.BrickColor = BrickColor.new(21) debounce = false end script.Parent.Touched:connect(onTouched) -- Goldenkings11

Answer this question