GetPlayers не работает на серверном скрипте - PullRequest
0 голосов
/ 11 января 2020

Я учусь lua делать игры в Roblox. У меня есть этот пример кода, который я получил с их веб-сайта для разработчиков.

Players = game:GetService("Players")
for i, player in pairs(Players:GetPlayers()) do
    print(player.Name)
end

Этот код работает, когда я вставляю его в локальный скрипт, но не работает, когда я вставляю его в скрипт на стороне сервера. Я не получаю ошибку, но ничего не печатается. Мне интересно, почему это так, а также какой код мне нужно использовать, чтобы получить все проигрыватели из серверного скрипта. Спасибо

Редактировать ------------------------------------------ --------

Я также пытался запустить этот код как на сценарии на стороне сервера, так и на локальном сценарии:

local players = game.Players:GetChildren()

print(typeof(players))

Когда этот код выполняется на локальном скрипт, он возвращается с: таблица. Я ничего не получил, когда я запускаю его на сервере сценарий. Это нормально?

1 Ответ

0 голосов
/ 11 января 2020

Я полагаю, у вас есть проблемы со временем. Когда вы запускаете это как LocalScript, поток игры выглядит так:

  1. Сервер запускается, количество игроков = 0
  2. Игрок присоединяется, количество игроков = 1
  3. LocalScript run - распечатывает список всех 1 игроков

Когда вы запускаете это как серверный скрипт, поток игры выглядит так:

  1. Запускается сервер, количество игроков = 0
  2. Сценарий запускается - распечатывает список всех 0 игроков

Если бы вы изменили свой пример, чтобы он выглядел примерно так:

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...