我刚开始用lua roblox编码,我正试图用';值,并且可以';我不知道为什么

我刚开始用lua roblox编码,我正试图用';值,并且可以';我不知道为什么,lua,roblox,Lua,Roblox,所以我刚刚在roblox中启动了Lua,我不知道为什么我会遇到这个错误(下面的代码) 工作区。脚本:11:尝试使用值索引nil game.Players.PlayerAdded:Connect(函数(播放器) 本地统计数据=Instance.new(“文件夹”,玩家) stats.Name=“leaderstats” currency=Instance.new(“IntValue”,stats) currency.Name=“石油” 货币价值=100 返回0 (完) 尽管如此 currency.

所以我刚刚在roblox中启动了Lua,我不知道为什么我会遇到这个错误(下面的代码)

工作区。脚本:11:尝试使用
索引
nil

game.Players.PlayerAdded:Connect(函数(播放器)
本地统计数据=Instance.new(“文件夹”,玩家)
stats.Name=“leaderstats”
currency=Instance.new(“IntValue”,stats)
currency.Name=“石油”
货币价值=100
返回0
(完)
尽管如此
currency.Value=100+10——这就是问题所在
等等(5)
终止

玩家添加:连接(函数…结束)
意味着您现在正在设置一个函数,以便在玩家加入游戏时调用。它不会马上就跑

紧接着,脚本转到
while
循环。但是
currency
尚未设置为任何值,因此其值只是
nil
,这使得
currency.value
无效


此外,每当玩家加入时,都会设置
货币
全局变量。这意味着如果设置了它,它将是最后一个要加入的玩家的统计值,并且
playeraded
回调之外的任何代码都只会改变该玩家的情况。

您希望将
while true
循环放在
玩家的内部。playeraded
使其正常工作


旁注:不要使用

localstats=Instance.new(“文件夹”,玩家)
你应该使用

localstats=Instance.new(“文件夹”)
stats.Parent=玩家

因为它运行得更快。

这就是为什么地球人是邪恶的。我希望每个Lua教程都能用这句话开始。@aschepler即使我加入游戏并在我的统计数据中获得正确的货币数量,我仍然面临错误,我认为它不是在while循环之前创建的,但如果我有统计数据,这意味着这是另一个问题,对吗?不确定你的意思。你试过代码中的其他东西吗?或者你注意到这确实设置了一个“油”值?回调函数仍然可以,但我猜您总是看到值100,而不是110。oil的值不会因为工作空间而增加。脚本:11:尝试在第11行用“value”索引nil,我不明白为什么。在上面的评论中,我的意思是,即使玩家(我自己)加入并创建了文件夹和值,我也会面临错误。很抱歉,我知道我使用了全球价值观,我的工作很糟糕,但现在我只是在学习,我真的想了解为什么会发生这种错误1。顶部的函数连接到
PlayerAdded
事件。2.脚本在while循环中命中错误,并永久停止。3.播放器连接后,
PlayerAdded
函数确实会被调用。它创建
货币
全局并在播放器屏幕上显示oil:100。但是没有什么可以改变它。