【问题标题】:Can't get to a value inside a player in lua无法在 lua 的播放器中获取值
【发布时间】:2020-05-05 04:07:27
【问题描述】:

我尝试过的代码

game.Workspace.burgerclick.OnServerEvent:Connect(function()
    local playername = game.Workspace.ClickPlayer.Value
    local player = game.Players:FindFirstChild(playername)
    local playaname = player.Name
    local fpval = game.Players[playaname].FP.Value
    fpval = fpval + 1
end)

我正在制作一个游戏,我想要一个按钮来更新一个叫做 FP 的东西的值,在工作区我有一个叫做 ClickPLayer 的字符串值,它会更新玩家点击按钮的值。这样可行。我创建了一个变量,它的值是字符串值,但是当我在更新 FP 值时将变量放在行内时,它说该变量不是玩家的有效成员。我不知道该怎么办。

【问题讨论】:

  • FP是Players中玩家内部的对象还是工作区中玩家角色的对象?
  • FP 是所有玩家内部的数值
  • 我正在尝试更新点击它的播放器的 FP 值
  • FP是如何创建的?当此代码运行时,您的错误消息听起来好像不存在。

标签: lua roblox


【解决方案1】:

我认为正确的代码应该是这样的:

game.Players[playaname].FP.Value = game.Players[playaname].FP.Value + 1 

因为,当你这样做时:

 local fpval = game.Players[playaname].FP.Value
 fpval = fpval + 1

您将 game.Players[playaname].FP.Value 的值复制到 fpval 并增加副本 (fpval = fpval + 1),而不是 game.Players[playaname].FP 持有的值。

【讨论】:

    【解决方案2】:

    最正确和最有效的代码是

    local Players = game:GetService("Players")
    local fpval
    local plr
    workspace.burgerclick.Activated:Connect(function()
        plr = workspace.ClickPlayer.Value
        fpval = Players[plr].FP
        fpval.Value = fpval.Value + 1
    end)
    

    TextButtonsImageButtons 的文档中,有一个Activated 事件可用于此目的,而不是从LocalScript 触发服务器,这是您的脚本现在的目标。但是,如果按钮在 PlayerGui 中并且您有一个激活 LocalScript,您可能希望使用以下代码:

    local fpval
    workspace.burgerclick.OnServerEvent:Connect(function(plr)
        fpval = plr.FP
        fpval.Value = fpval.Value + 1
    end)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-10-13
      • 2012-02-13
      • 1970-01-01
      • 2015-02-16
      • 2013-01-04
      • 1970-01-01
      • 1970-01-01
      • 2021-05-09
      相关资源
      最近更新 更多