【发布时间】:2020-04-29 00:20:23
【问题描述】:
我正在 Roblox 学习 lua 制作游戏。我有这个从他们的开发者网站获得的代码示例。
Players = game:GetService("Players")
for i, player in pairs(Players:GetPlayers()) do
print(player.Name)
end
当我将其粘贴到本地脚本中时,此代码有效,但当我将其粘贴到服务器端脚本时无效。我没有收到错误,但没有打印任何内容。我想知道为什么会这样,以及我需要使用什么代码从服务器端脚本中获取所有玩家。谢谢
编辑 ---------------------------------------------- ----
我也尝试在服务器端脚本和本地脚本上运行此代码:
local players = game.Players:GetChildren()
print(typeof(players))
当此代码在本地脚本上运行时,它会返回:table.当我在服务器端脚本上运行它时,我什么也没得到。这正常吗?
【问题讨论】:
-
“它不起作用”是解释问题的最糟糕的方式。它会抛出异常吗?如果是,消息和堆栈跟踪是什么?它返回失败吗?如果有,是什么? GetService 是否返回有效的玩家对象? GetPlayers() 结果是空表吗? player.Name 有错误的名字吗?空名?没有名字?它是否正在运行,但您没有看到它打印到标准输出?我对 roblocks lua 编程没有任何经验(我有很多 lua 经验)。我只是想解释为什么“它不起作用”是最没有帮助的问题信息,永远不要仅仅这么说
-
你说得对,我来编辑
-
另一个需要检查的有价值的信息是这个脚本在哪里?根据 (developer.roblox.com/en-us/api-reference/class/Script),脚本必须是 Workspace 或 ServerScriptStorage 的后代。否则它根本不会执行脚本。
-
我只用工作场所的子脚本和 serverservice 的子脚本尝试了这个。都不工作
-
对于编辑中的代码示例,输出中根本没有出现任何内容是不寻常的。脚本没有被禁用是吗?
标签: lua local server-side roblox