Players.endersam777.PlayerGui.Currency.Money.LocalScript:5: 尝试调用一个数值

Players.endersam777.PlayerGui.Currency.Money.LocalScript:5: attempt to call a number value

所以,我正在做一些事情,比如排行榜上的货币将出现在 TextLabel 上。我怎样才能做出类似它不会显示 0 而是 0$ 的东西?因为如果我将 script.Parent.Text = player.leaderstats.Coins.Value"$" 放入,它将不起作用。脚本:

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



script.Parent.Text = player.leaderstats.Coins.Value

您可以使用 .. 连接字符串 示例:

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

script.Parent.Text = tostring(player.leaderstats.Coins.Value).."$"

查看 PIL 3.4 以获取更多示例。

另一个答案告诉您如何解决您的问题,所以我将添加一些额外的信息。

您收到错误的原因是 lua 调用函数的方式。通常你会调用这样的函数:

print("hello world")

... 您在参数周围使用括号的地方。但是,当您只向函数提供一个参数时,您可以省略括号,它仍然有效:

print "hello world"

所以在您的代码中,因为您有两个彼此相邻的值:

                     ↓ value 1                      ↓ value 2
script.Parent.Text = player.leaderstats.Coins.Value"$"

...解释器看到这个并认为值 1 是一个函数,值 2 是你传递给它的参数,它抛出一个错误,因为 player.leaderstats.Coins.Value 不是一个函数,这是一个数字。这就是为什么您会收到错误 Attempt to call a number value(就像一个函数)。

在这个答案中可以找到其他一些用于连接字符串的替代方法: