如何使用 TextBox 输入通过触发 RemoteEvent 来更改值

How to use TextBox input to change a value by firing a RemoteEvent

我已经尝试解决这个问题大约 30 分钟了,但一直没有成功。我很困惑,想不通。

我正在尝试制作一个脚本,允许玩家通过在他们的文本框中输入一个数字来改变他们的钱。

本地脚本(TextBox 的子脚本)

script.Parent.FocusLost:Connect(function(enter)
    if enter then
        -- this is to check the player's input
        local finalvalue = tonumber(script.Parent.Text)
        print(script.Parent.Text)
        -- if it was not a number
        if finalvalue == nil then
            script.Parent.Text = "Not a number"
            wait(1)
            -- just making sure that it doesn't delete the player's new input
            if script.Parent.Text == "Not a number" then
                script.Parent.Text = ""
            end
        else
            -- firing the money remote event with the finalvalue variable
            game.ReplicatedStorage.ChangeMoney:FireServer(finalvalue)
            print("fired")
            -- resetting the textbox
            script.Parent.Text = ""
        end

    end
end)

服务器脚本(ServerScriptService 的子脚本)

game.ReplicatedStorage.ChangeMoney.OnServerEvent:Connect(function(amt)

    game.ReplicatedStorage.Money.Value = tonumber(amt)
    print("money changed to " .. tostring(amt))
end)

谢谢。

问题是 OnServerEvent 除了 FireServer() 传递的参数元组之外还接收到 Player

看起来整个服务器只有一个货币值,所以假设您要更改的值与发送 RemoteEvent 的玩家无关,您可以只更改函数声明接受 Player 然后忽略它:

game.ReplicatedStorage.ChangeMoney.OnServerEvent:Connect(function(player, amt)