【问题标题】:How do I get localplayer data from a leaderboard? (Roblox)如何从排行榜获取本地玩家数据? (罗布洛克斯)
【发布时间】:2020-03-06 05:31:01
【问题描述】:

我是 Lua 和 Stack 的新手,所以我提前道歉。 我目前正在使用大亨工具包创建 Roblox 游戏,玩家的金钱价值只显示在排行榜上,而没有显示在屏幕上。这会让你很难知道你在控制台和移动设备上有多少钱,所以我正在尝试设置一个 GUI 来在屏幕上显示玩家的金额。现在,设置 GUI 不是问题,知道在 GUI 上设置文本值是什么。

我不知道如何上传图片,但我的工作区中的路径看起来有点像这样: 玩家(在工作区的第一个选项卡上)-> Player-> leaderstats-> Cash

我试图像这样获取变量(名为“Cash”):game.Players.Player.leaderstats.Cash.Value 但因为我没有命名为“Player”,所以它不起作用。我试过用 LocalPlayer 替换它(看起来像 game.Players.LocalPlayer.leaderstats.Cash.Value),但这也没有用。它仅在我将“玩家”替换为我的用户名 (game.Players.Username.leaderstats.Cash.Value) 时才有效,但我希望这对我以外的其他玩家也有效。

我也尝试找到原始变量,但因为我没有制作套件,所以我不知所措。我查看了它附带的每个脚本,但找不到任何东西。

当我尝试将文本设置为这些值时,没有任何反应。我收到的错误消息类似于Player is not a valid member of Players。 任何帮助将不胜感激!

【问题讨论】:

  • 我假设您可以获取板上某人的用户名,并将其分配给一个变量,然后在game.Players.Username 中将该变量用作Username

标签: lua roblox


【解决方案1】:

LocalPlayer 是一个变量,只在客户端获取LocalPlayer的leaderstats 你需要使用本地脚本而不是普通脚本 现在我将向您展示如何显示它首先创建您的“ScreenGui”然后在 ScreenGui 下创建一个“TextLabel”最后在 TextLabel 下创建一个“LocalScript”现在代码应该在 LocalScript 中

game.Players.LocalPlayer.leaderstats.Cash.Changed:Connect(function(NewValue) --Chnage Cash to your stat
    script.Parent.Text = "$"..NewValue
end)

【讨论】:

  • 感谢您的回复,但它似乎仍然无法正常工作。文本标签的文本不会改变。我仔细检查了所有语法,这似乎不是问题,我认为它可能与 (function(NewValue) 相关,但我不知道它是做什么的。你介意向我解释一下吗?
  • 你当前使用的脚本是什么
  • game.Players.LocalPlayer.leaderstats.Cash.Changed:Connect(function(NewValue) script.Parent.Text = "Cash: "..NewValue end) 我尝试用game.Players.LocalPlayer.leaderstats.Cash.Value.Changed:Connect(function(NewValue) 替换第一行,但这也没有用。
  • 我认为错误代码是leaderstats is not a valid member of Player 但我不确定
  • 您使用的是本地脚本还是服务器脚本?
【解决方案2】:

在脚本的开头写上:

local plr = game:GetService("Players").LocalPlayer

在它把钱放在屏幕上的部分: (假设本地脚本在钱所在的文本框中)

   while true do 
      script.Parent.Text = plr.leaderstats.Cash.Value
      wait()
   end

这就是你所要做的!

原始粘贴(只需将其复制并粘贴到文本框内的本地脚本中)

local plr = game:GetService("Players").LocalPlayer

while true do 
   script.Parent.Text = plr.leaderstats.Cash.Value
   wait()
end

【讨论】:

    【解决方案3】:

    因为 LocalPlayer 是客户端关键字, 将此 LOCALSCRIPT 作为子项放在 TextLabel 中。文本标签应该在一个框架中。框架应该在 gui 中。

    Game.Players.LocalPlayer.leaderstats.Cash.Changed:Connect(function(updategui)
       script.Parent.Text = "$"..Game.Players.LocalPlayer.leaderstats.Cash.Value
    end)
    

    【讨论】:

      猜你喜欢
      • 2021-12-03
      • 1970-01-01
      • 1970-01-01
      • 2022-01-05
      • 1970-01-01
      • 2012-03-11
      • 1970-01-01
      • 2022-01-23
      • 1970-01-01
      相关资源
      最近更新 更多