我正在学习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。在服务器端脚本上运行时,我什么也没得到。这正常吗?
我相信您遇到时间问题。当您将其作为LocalScript运行时,游戏流程为:
当您将其作为服务器脚本运行时,游戏流程为:
如果您将示例修改为如下所示:
Players = game:GetService("Players")
print(string.format("Listing all %d player names :", #Players:GetPlayers()))
for i, player in pairs(Players:GetPlayers()) do
print(i, "- ", player.Name)
end
print("Done listing names")
您应该期望在输出中看到此内容:
Listing all 0 player names :
Done listing names