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

Player Coins Go Into Negative Whenever You Buy Something?

Asked by 4 years ago

Whenever you buy a pouch the player's currency goes into negatives? I'm not sure why. If I try to get rid of the currency Locally it goes back to the original currency!? There are no errors in the output

Serverscript

game.ReplicatedStorage.ShopEvents.PurchasedWhitePouch.OnServerEvent:Connect(function(player)
    local player = player
    local Bag = player:FindFirstChild("BagHolder")
    local Main = player:FindFirstChild("MainCurrency")
    local Coins = Main:FindFirstChild("Coins")
    local SmallBag = Bag:FindFirstChild("WhitePouch")
    for i,v in pairs(Bag:GetChildren()) do
            v.Value = false
            SmallBag.Value = true
            Main.MaxBlades.Value = 15
        end
end)

game.ReplicatedStorage.ShopEvents.PurchasedBluePouch.OnServerEvent:Connect(function(player)
    local player = player
    local Bag = player:FindFirstChild("BagHolder")
    local Main = player:FindFirstChild("MainCurrency")
    local BagOwned = player:FindFirstChild("BagOwned")
    local OwnerShip = BagOwned:FindFirstChild("BluePouchOwned")
    local Coins = Main:FindFirstChild("Coins")
    local SmallBag = Bag:FindFirstChild("BluePouch")
    for i,v in pairs(Bag:GetChildren()) do
            v.Value = false
            SmallBag.Value = true
            Main.MaxBlades.Value = 50
            OwnerShip.Value = true
            Coins.Value = Coins.Value - 50
        end
end)

game.ReplicatedStorage.ShopEvents.PurchasedGreenPouch.OnServerEvent:Connect(function(player)
    local player = player
    local Bag = player:FindFirstChild("BagHolder")
    local BagOwned = player:FindFirstChild("BagOwned")
    local OwnerShip = BagOwned:FindFirstChild("GreenPouchOwned")
    local Main = player:FindFirstChild("MainCurrency")
    local Coins = Main:FindFirstChild("Coins")
    local SmallBag = Bag:FindFirstChild("GreenPouch")
    for i,v in pairs(Bag:GetChildren()) do
            v.Value = false
            SmallBag.Value = true
            Main.MaxBlades.Value = 150
            OwnerShip.Value = true
            Coins.Value = Coins.Value - 150
        end
end)

game.ReplicatedStorage.ShopEvents.PurchasedYellowPouch.OnServerEvent:Connect(function(player)
    local player = player
    local Bag = player:FindFirstChild("BagHolder")
    local Main = player:FindFirstChild("MainCurrency")
    local Coins = Main:FindFirstChild("Coins")
    local SmallBag = Bag:FindFirstChild("YellowPouch")
    for i,v in pairs(Bag:GetChildren()) do
            v.Value = false
            SmallBag.Value = true
            Main.MaxBlades.Value = 300
            Coins.Value = Coins.Value - 500
        end
end)

game.ReplicatedStorage.ShopEvents.PurchasedOrangePouch.OnServerEvent:Connect(function(player)
    local player = player
    local Bag = player:FindFirstChild("BagHolder")
    local Main = player:FindFirstChild("MainCurrency")
    local Coins = Main:FindFirstChild("Coins")
    local SmallBag = Bag:FindFirstChild("OrangePouch")
    for i,v in pairs(Bag:GetChildren()) do
            v.Value = false
            SmallBag.Value = true
            Main.MaxBlades.Value = 750
            Coins.Value = Coins.Value - 1500
        end
end)

Purchase LocalScript In Button

script.Parent.Activated:Connect(function()
    local player = game.Players.LocalPlayer
    local Bag = player:FindFirstChild("BagHolder")
    local Main = player:FindFirstChild("MainCurrency")
    local Coins = Main:FindFirstChild("Coins")
    local Price = script.Parent.Parent.Price.Value
    local SmallBag = Bag:FindFirstChild("BluePouch")
    script.Parent.Click:Play()
    if Coins.Value >= Price then
        game.ReplicatedStorage.ShopEvents.PurchasedBluePouch:FireServer(player)
        Coins.Value = Coins.Value - 50

    else 
        script.Parent.Parent.Frame.Price.TextColor3 = Color3.fromRGB(255, 46, 19)
        wait(0.5)
        script.Parent.Parent.Frame.Price.TextColor3 = Color3.fromRGB(255, 255, 255)
    end
end)

1 answer

Log in to vote
1
Answered by
0msh 333 Moderation Voter
4 years ago

because you didn't check if a player has at least the amount of coins to buy that, so do this whenever a player tries to buy something:

            v.Value = false
            SmallBag.Value = true
            Main.MaxBlades.Value = 50
            if Coins.Value >= 50 then
            OwnerShip.Value = true
            Coins.Value = Coins.Value - 50
        end -- the end to the "if"
0
Ty, can't believe I didn't notice that lol Jomeliter 55 — 4y
Ad

Answer this question