Diferença entre estes trechos de código

qual a diferença de fazer:

...
for i, player in pairs(Players:GetChildren())do
...
end

e

...
local a = Players:GetChildren()
for i, player in pairs(a) do
...
end

?
eu tava tentando fazer um codigo que tinha esse trecho só que só funcionou o primeiro jeito, msm sendo quase a msm coisa os dois jeitos
(Obs: o código ta em um script no ScriptServerService)

1 Curtida

Estranho, deveria ser literalmente a mesma coisa :thinking:
Tem certeza que não tem algo mais?

Espera, talvez você tenha declarado a variável a uma vez fora do escopo onde o loop roda.

Você também pode usar Players:GetPlayers() para pegar os players.

esse é o script:


local Players = game:GetService("Players")


Players.PlayerAdded:Connect(function()
	for i, player in ipairs(Players:GetChildren())do
		print(player.Name .. " joined the game")
		wait(1)
	end
end)```

o que deu certo*
esse era oque n tava funcionando:

local Players = game:GetService("Players")

local localPlayer  = Players:GetChildren()

Players.PlayerAdded:Connect(function()
	for i, player in ipairs(localPlayer)do
		print(player.Name .. " joined the game")
		wait(1)
	end
end)```

sim a variavel a tava fora, só que os dois jeitos são a mesma coisa, e o que os player tão na variavel não funciona, queria saber pq n funciona.

Mas só é possível acessar o LocalPlayer por um LocalScript.

Se quiser detectar quando um jogador entrar, seria algo assim:

local Players = game:GetService("Players")

Players.PlayerAdded:Connect(function(player)
   print(player.Name .. " joined the game")
end)

E se quiser pegar todos os jogadores que estão jogando no momento:

local Players = game:GetService("Players")
local jogadoresJogando = Players:GetPlayers()

for _, player in ipairs(jogadoresJogando) do
   print(player.Name .. ' está no jogo.')
end

hm, tlgd q n da pra acessar o local player por script, e meu código tava meio errado ja que nem sei pra que coloquei for loop em playeradded na real, mas ainda n entendi pq um jeito deu e o outro n.

1 Curtida

o jeito que n funciona só armazena os players do jogo em uma variavel e o otro só n armazena os player em uma variavel, bem bugado, e um funciona e o otro n ._

É porque você estava pegando um array com os players antes de um player entrar, ou seja, estava vazio.

ops, realmente, ent é só armazenar os player em uma variavel dentro do loop, vlw pela ajuda :+1:

1 Curtida