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

How to add a leader stat once when you touch a block?

Asked by 7 years ago

So I have a coin script that gives you one coin when you step on it. I made a gamepass you can buy where you get 3 coins every time you step on a coin. (A coin trippler). Although I get 9 coins instead of 3.

01local db = true
02local passId = 297078187
03 
04script.Parent.Touched:connect(function(obj)
05    local player = game.Players:FindFirstChild(obj.Parent.Name)
06    if player and db then
07        db = false
08        local coins = player.leaderstats.Coins
09        workspace.Sounds.CoinSound:Play()
10        for i = 0, 1, .1 do
11            script.Parent.Transparency = i
12            wait()
13        end
14        local coins = player.leaderstats.Coins
15        if game:GetService("MarketplaceService"):PlayerOwnsAsset(player, passId) then
View all 24 lines...

Any idea how this happens? Thanks.

0
I don't think there is a error and you can touch the coin giver a lot of times so 9 coins wouldn't be a problem in my opinion. User#18043 95 — 7y
0
Yes I see that but when I touch it once it gives me nine. cooldrewbie 94 — 7y

1 answer

Log in to vote
1
Answered by 7 years ago

You should've done local db = false I also Reccomend WaitForChild()

01local db = false
02local passId = 297078187
03 
04script.Parent.Touched:connect(function(obj)
05    local player = game.Players:GetPlayerFromCharacter(obj)
06    if player and db == false then
07        db = true
08        local coins = player.leaderstats.Coins
09        workspace.Sounds.CoinSound:Play()
10        for i = 0, 1, 0.1 do
11            script.Parent.Transparency = i
12            wait()
13        end
14        --local coins = player.leaderstats.Coins Why declare the same variable twice??
15        if game:GetService("MarketplaceService"):PlayerOwnsAsset(player, passId) then
View all 24 lines...

Hopefully this would help you in this script :)

Ad

Answer this question