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

Почему этот код работает на локальном скрипте, но не на скрипте на стороне сервера?

local Players = game:GetService("Players")

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

Ответы [ 2 ]

0 голосов
/ 04 февраля 2020

Код выполняется до того, как в игре появится какой-либо игрок. Попробуйте добавить wait ().

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

Это серверный скрипт, поэтому он запускается при запуске игры (до того, как игрок присоединится). То, что вы можете искать, это событие PlayerAdded:

local Players = game:GetService("Players")

Players.PlayerAdded:Connect(function(player)
    print(player.Name)
end)

Это работает локально, потому что Локальный скрипт запускается, когда игрок присоединяется, так что есть игрок, который нужно найти.

Или, если положить в oop, вы сможете подать в суд на текущий скрипт, вам просто нужно поместить его в все oop:

local Players = game:GetService("Players")

while true do
    wait(howLongBetween)
    for i, player in pairs(Players:GetPlayers()) do
        print(player.Name)
    end
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...