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

我已经试着解决这个问题大约30分钟了,但没有成功。我被难住了,无法解决这个问题。

我试着创建一个脚本,允许玩家通过在他们的TextBox中输入数字来更改他们的金钱。

本地脚本(TextBox的子级)

script.Parent.FocusLost:连接(function(enter)
    if enter then
        -这是为了检查玩家的输入
        local finalvalue = tonumber(script.Parent.Text)
        print(script.Parent.Text)
        -如果不是数字
        如果finalvalue == nil then
            script.Parent.Text =“不是数字”
            wait(1)
            -只是确保它不会删除玩家的新输入
            如果script.Parent.Text ==“不是数字”则
                script.Parent.Text =“”
            结束
        其他
            -使用finalvalue变量触发money remote event
            game.ReplicatedStorage.ChangeMoney:FireServer(finalvalue)
            print(“fired”)
            -重置textbox
            script.Parent.Text =“”
        结束

    end
end)

服务器脚本(ServerScriptService的子级)

game.ReplicatedStorage.ChangeMoney.OnServerEvent:连接(function(amt)

    game.ReplicatedStorage.Money。值= tonumber(amt)
    print(“money changed to” .. tostring(amt))
end)

谢谢。

原文链接 https://stackoverflow.com/questions/70643401

点赞
stackoverflow用户15818349
stackoverflow用户15818349

问题在于 OnServerEvent 接收到 Player 和由 FireServer() 传递的一组参数。

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

game.ReplicatedStorage.ChangeMoney.OnServerEvent:Connect(function(player, amt)
2022-01-09 16:47:17