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

How to not add another value if there is already an existing one?

Asked by 2 years ago

So, I am basically trying to make it so when you hit an NPC it adds an object value to it but when I hit it adds like 20 or more so if anyone knows how to fix it so it only adds one value to the NPC.

Here is the script:

(it's a server script by the way).

local tool = script.Parent.Parent

local Debris = game:GetService("Debris")
local Players = game:GetService("Players")

tool.Equipped:Connect(function()
character = tool.Parent
player = game.Players:GetPlayerFromCharacter(character)
end)

local function TagHumanoid(humanoid) -- Function to add the object value
local CreatorTag = Instance.new("ObjectValue")
CreatorTag.Parent = humanoid
CreatorTag.Value = player
CreatorTag.Name = "creator"
Debris:AddItem(CreatorTag, 1)
end

local function UnTagHumanoid(humanoid) -- Function to delete the object value
for i, v in pairs(humanoid:GetChildren()) do
if v.Name == "creator" and v:IsA("ObjectValue") then
wait(0.5)
v:Destroy() end
end
end

script.Parent.Touched:Connect(function(hit)
if hit.Parent:FindFirstChild("Humanoid") then
local Humanoid = hit.Parent:FindFirstChild("Humanoid")
TagHumanoid(Humanoid)
UnTagHumanoid(Humanoid)
end)

1 answer

Log in to vote
0
Answered by
W0_0SH 65
2 years ago

Try adding a debounce. If you don't know how debounces work here's a simple demonstration.

local debounce = false

script.Parent.Touched:Connect(function(hit)
    if hit.Parent:FindFirstChild("Humanoid") and debounce == false then
        debounce = true

        local Humanoid = hit.Parent:FindFirstChild("Humanoid")
        TagHumanoid(Humanoid)
        UnTagHumanoid(Humanoid)

        wait(4) -- Waits 4 seconds until this code block can be run again. (basically a cooldown)
        debounce = false -- Debounce gets set to false so that the code block can be run agian.
    end
end)
0
Thanks it worked iamnotcool235_s 27 — 2y
Ad

Answer this question