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

How do I make a leaderstats value change by a ScreenGui input?

Asked by 7 years ago
Edited 7 years ago

I want that when a player types another player's name that is in the server and types the value of what they want to give, then submits it, it will add the amount of what the player typed to the other player's leaderstats value.

01local PlrName = script.Parent.Parent.PlrName
02local moneytogive = tonumber(script.Parent.Parent.Value.Text) -- "Value" is a TextBox
03local ting = 0 -- debounce
04 
05 function check()
06        if ting == 0 then
07            ting = 1
08            local target = game.Players:FindFirstChild(PlrName)
09                if target ~= nil then
10                local stats = target.leaderstats
11                    if stats ~= nil then
12                    local points = stats.Points
13                    points.Value = points.Value + moneytogive
14                    wait()
15                end
View all 23 lines...

That is what I have done, someone tell me why it won't work and how I can fix it.

0
If Value is the name of a textbox, you get its contents with Value.Text 2eggnog 981 — 7y

2 answers

Log in to vote
0
Answered by 7 years ago
01local amountToGive = script.Parent.amount --TextBox where the player puts the amount of cash to give
02local playerName = script.Parent.player --TextBox where the player types another players' name
03local submit = script.Parent.submit --TextButton used to submit form to donate cash to player
04submit.MouseButton1Click:Connect(function() --When clicked
05    local playerToGive = game:GetService("Players"):FindFirstChild(playerName.Text) --Player who receives donation
06    local playerWhoClicked = game.Players.LocalPlayer --Player who wants to donate
07    if playerToGive then --If the player we typed in is actually there
08        if playerWhoClicked.leaderstats.Cash.Value >= amountToGive.Text then --If the player who wants to donate has enough cash
09        playerToGive.leaderstats.Cash.Value = playerToGive.leaderstats.Cash.Value + amountToGive.Text --Give cash to player
10        playerWhoClicked.leaderstats.Cash.Value = playerWhoClicked.leaderstats.Cash.Value - amountToGive.Text --Subtracts the cash from the player who donated
11        end
12    end
13end)

Just make sure this is in a LocalScript so LocalPlayer can be indexed! Hierarchy here. Please accept my answer if this helped!

0
sorry, not working it said ,attempted to compare number with string Araknala 14 — 7y
0
ok nevermind, i fixed that but now it just wont add to the stat's value Araknala 14 — 7y
Ad
Log in to vote
1
Answered by
LeadRDRK 437 Moderation Voter
7 years ago

Since the Text in the TextBox is a string, you cannot use 'tonumber', or need a 'tostring'. Here's the fixed version

01local PlrName = script.Parent.Parent.PlrName
02local moneytogive = script.Parent.Parent.Value.Text
03local ting = 0 -- debounce
04 
05 function check()
06        if ting == 0 then
07            ting = 1
08            local target = game.Players:FindFirstChild(PlrName)
09                if target ~= nil then
10                local stats = target.leaderstats
11                    if stats ~= nil then
12                    local points = stats.Points
13                    points.Value = points.Value + moneytogive
14                    wait()
15                end
View all 23 lines...

Answer this question