Classe do mecanismo
Players
*Este conteúdo é traduzido por IA (Beta) e pode conter erros. Para ver a página em inglês, clique aqui.
Resumo
Propriedades
Métodos
Eventos
PlayerAdded(player: Player):RBXScriptSignal |
PlayerMembershipChanged(player: Player):RBXScriptSignal |
PlayerRemoving(player: Player,reason: Enum.PlayerExitReason):RBXScriptSignal |
UserSubscriptionStatusChanged(user: Player,subscriptionId: string):RBXScriptSignal |
Referência API
Propriedades
CharacterAutoLoads
Amostras de código
Temporizador de Respawn do Jogador
local Players = game:GetService("Players")
-- Defina CharacterAutoLoads como falso
Players.CharacterAutoLoads = false
-- Remova o personagem do jogador do espaço de trabalho ao morrer
Players.PlayerAdded:Connect(function(player)
while true do
local char = player.CharacterAdded:Wait()
char.Humanoid.Died:Connect(function()
char:Destroy()
end)
end
end)
-- Ressuscite todos os jogadores mortos a cada 10 segundos
while true do
local players = Players:GetChildren()
-- Verifique se cada jogador está morto verificando se ele não tem personagem, se estiver morto, carregue o personagem desse jogador
for _, player in pairs(players) do
if not workspace:FindFirstChild(player.Name) then
player:LoadCharacterAsync()
end
end
-- Aguarde 10 segundos até a próxima verificação de ressurgimento
task.wait(10)
endlocalPlayer
NumPlayers
numPlayers
Métodos
BanAsync
Parâmetros
Devolução
()
Amostras de código
Banindo Usuários
local Players = game:GetService("Players")
if shouldBeBanned(player) then
local banHistoryPages = Players:GetBanHistoryAsync(player.UserId)
local duration = 86400 -- 24 horas em segundos. Recomendação: use sua própria lógica com base no BanHistory do usuário
local config: BanConfigType = {
UserIds = { player.UserId },
Duration = duration,
DisplayReason = "Você violou a diretriz da comunidade #5",
PrivateReason = "Coloque qualquer coisa aqui que o usuário não deve saber, mas é útil para seus registros",
ExcludeAltAccounts = false,
ApplyToUniverse = true,
}
local success, err = pcall(function()
return Players:BanAsync(config)
end)
print(success, err)
endChat
Parâmetros
Devolução
()
Amostras de código
Jogadores:Chat
-- Barra de comando
game:GetService("Players"):Chat("Olá, mundo!") --Resulta em 'Olá, mundo!' aparecendo no registro de Chat sob o nome do seu Jogador.
-- Script
local Players = game:GetService("Players")
Players:Chat("Olá, mundo!") --Gera erroCreateHumanoidModelFromDescription
CreateHumanoidModelFromDescriptionAsync
Players:CreateHumanoidModelFromDescriptionAsync(
description:HumanoidDescription, rigType:Enum.HumanoidRigType, assetTypeVerification:Enum.AssetTypeVerification
Parâmetros
| Valor Padrão: "Default" |
Devolução
Amostras de código
Criar Modelo Humanoide a Partir da Descrição
game.Players:CreateHumanoidModelFromDescriptionAsync(Instance.new("HumanoidDescription"), Enum.HumanoidRigType.R15).Parent =
game.WorkspaceCreateHumanoidModelFromUserId
CreateHumanoidModelFromUserIdAsync
GetBanHistoryAsync
Parâmetros
Devolução
GetCharacterAppearanceAsync
GetCharacterAppearanceInfoAsync
Parâmetros
Devolução
Amostras de código
Exemplo de Dicionário de Aparência do Personagem Retornado
local result = {
playerAvatarType = "R15",
defaultPantsApplied = false,
defaultShirtApplied = false,
scales = {
bodyType = 0,
head = 1,
height = 1.05,
proportion = 0,
depth = 0.92,
width = 0.85,
},
bodyColors = {
leftArmColorId = 1030,
torsoColorId = 1001,
rightArmColorId = 1030,
headColorId = 1030,
leftLegColorId = 1001,
rightLegColorId = 1001,
},
assets = {
{
id = 1031492,
assetType = {
name = "Chapéu",
id = 8,
},
name = "Chapéu Listrado",
},
{
id = 13062491,
assetType = {
name = "Acessório Facial",
id = 42,
},
name = "Visão Francesa ",
},
{
id = 16598440,
assetType = {
name = "Acessório de Pescoço",
id = 43,
},
name = "Gravata Borboleta Vermelha",
},
{
id = 28999228,
assetType = {
name = "Rosto",
id = 18,
},
name = "Surpresa Joyosa",
},
{
id = 86896488,
assetType = {
name = "Camisa",
id = 11,
},
name = "Paletó Vermelho Caro",
},
{
id = 86896502,
assetType = {
name = "Calças",
id = 12,
},
name = "Calças Vermelhas Caras",
},
{
id = 376530220,
assetType = {
name = "Braço Esquerdo",
id = 29,
},
name = "Braço Esquerdo do Menino ROBLOX",
},
{
id = 376531012,
assetType = {
name = "Braço Direito",
id = 28,
},
name = "Braço Direito do Menino ROBLOX",
},
{
id = 376531300,
assetType = {
name = "Perna Esquerda",
id = 30,
},
name = "Perna Esquerda do Menino ROBLOX",
},
{
id = 376531703,
assetType = {
name = "Perna Direita",
id = 31,
},
name = "Perna Direita do Menino ROBLOX",
},
{
id = 376532000,
assetType = {
name = "Torso",
id = 27,
},
name = "Torso do Menino ROBLOX",
},
},
}
print(result)GetFriendsAsync
Parâmetros
Devolução
Amostras de código
Imprimir Amigos do Roblox
local Players = game:GetService("Players")
local USERNAME = "Cozecant"
local function iterPageItems(pages)
return coroutine.wrap(function()
local pagenum = 1
while true do
for _, item in ipairs(pages:GetCurrentPage()) do
coroutine.yield(item, pagenum)
end
if pages.IsFinished then
break
end
pages:AdvanceToNextPageAsync()
pagenum = pagenum + 1
end
end)
end
-- Primeiro, obtenha o ID do usuário do jogador
local userId = Players:GetUserIdFromNameAsync(USERNAME)
-- Em seguida, obtenha um objeto FriendPages para seus amigos
local friendPages = Players:GetFriendsAsync(userId)
-- Itere sobre os itens nas páginas. Para FriendPages, estes
-- são tabelas de informações sobre o amigo, incluindo Nome de Usuário.
-- Colete cada nome de usuário em uma tabela
local usernames = {}
for item, _pageNo in iterPageItems(friendPages) do
table.insert(usernames, item.Username)
end
print("Conexões de " .. USERNAME .. ": " .. table.concat(usernames, ", "))GetHumanoidDescriptionFromOutfitId
GetHumanoidDescriptionFromOutfitIdAsync
Parâmetros
Devolução
Amostras de código
Obter HumanoidDescription a partir do ID do Traje
local Players = game:GetService("Players")
local Workspace = game:GetService("Workspace")
local function getOutfitId(bundleId)
if bundleId <= 0 then
return
end
local info = game.AssetService:GetBundleDetailsAsync(bundleId)
if not info then
return
end
for _, item in pairs(info.Items) do
if item.Type == "UserOutfit" then
return item.Id
end
end
return nil
end
local function getHumanoidDescriptionBundle(bundleId)
local itemId = getOutfitId(bundleId)
if itemId and itemId > 0 then
return Players:GetHumanoidDescriptionFromOutfitIdAsync(itemId)
end
return nil
end
local humanoidDescription = getHumanoidDescriptionBundle(799)
local humanoidModel = Players:CreateHumanoidModelFromDescriptionAsync(humanoidDescription, Enum.HumanoidRigType.R15)
humanoidModel.Parent = WorkspaceGetHumanoidDescriptionFromUserId
GetHumanoidDescriptionFromUserIdAsync
Parâmetros
Devolução
Amostras de código
Obter HumanoidDescription do ID do Usuário
game.Players:CreateHumanoidModelFromDescriptionAsync(
game.Players:GetHumanoidDescriptionFromUserIdAsync(1),
Enum.HumanoidRigType.R15
).Parent =
game.WorkspaceGetNameFromUserIdAsync
Parâmetros
Devolução
Amostras de código
Obter Nome a partir do UserId
local Players = game:GetService("Players")
-- Dados de Exemplo:
-- UserId: 118271 Nome: "RobloxRulez"
-- UserId: 131963979 Nome: "docsRule"
local nameOne = Players:GetNameFromUserIdAsync(118271)
local nameTwo = Players:GetNameFromUserIdAsync(131963979)
print(nameOne, nameTwo)
-- imprime: "RobloxRulez docsRule"Obter Nome a partir do UserId usando um cache
local Players = game:GetService("Players")
-- Crie uma tabela chamada 'cache' para armazenar cada 'Name' à medida que são encontrados.
-- Se procurarmos um 'Name' usando o mesmo 'UserId', o 'Name' virá
-- do cache (rápido) em vez de GetNameFromUserIdAsync() (assíncrono).
local cache = {}
function getNameFromUserId(userId)
-- Primeiro, verifique se o cache contém 'userId'
local nameFromCache = cache[userId]
if nameFromCache then
-- se um valor foi armazenado no cache com a chave 'userId', então este 'nameFromCache'
-- é o Nome correto e podemos retorná-lo.
return nameFromCache
end
-- Se está aqui, 'userId' não foi pesquisado anteriormente e não existe no
-- cache. Agora precisamos usar GetNameFromUserIdAsync() para procurar o nome
local name
local success, _ = pcall(function()
name = Players:GetNameFromUserIdAsync(userId)
end)
if success then
-- se 'success' for verdadeiro, GetNameFromUserIdAsync() encontrou com sucesso o
-- nome. Armazene este nome no cache usando 'userId' como chave para que possamos
-- nunca ter que procurar este nome no futuro. Então retorne o nome.
cache[userId] = name
return name
end
-- Se está aqui, 'success' foi falso, significando que GetNameFromUserIdAsync()
-- não conseguiu encontrar o 'name' para o 'userId' fornecido. Avisar o usuário
-- que isso aconteceu e então retornar nada, ou nil.
warn("Não foi possível encontrar o Nome para o UserId:", userId)
return nil
end
-- Exemplo de Dados:
-- UserId: 118271 Nome: "RobloxRulez"
-- UserId: 131963979 Nome: "docsRule"
-- A primeira vez que um UserId é usado, GetNameFromUserIdAsync() será chamada
local nameOne = getNameFromUserId(118271)
local nameTwo = getNameFromUserId(131963979)
-- Como 118271 foi usado anteriormente, obtenha seu Nome do cache
local nameOneQuick = getNameFromUserId(118271)
print(nameOne, nameTwo, nameOneQuick)
-- imprime: "RobloxRulez docsRule RobloxRulez"GetPlayerByUserId
Parâmetros
Devolução
Amostras de código
Jogadores:GetPlayerByUserId
local Players = game:GetService("Players")
local player = Players:GetPlayerByUserId(1)
if player then
print("Jogador com userId 1 está neste servidor! O nome dele é: " .. player.Name)
else
print("Jogador com userId 1 não está neste servidor!")
endGetPlayerFromCharacter
Parâmetros
Devolução
Amostras de código
Jogadores:GetPlayerFromCharacter
local Players = game:GetService("Players")
local Workspace = game:GetService("Workspace")
local PLAYER_NAME = "Nightriff"
local character = Workspace:FindFirstChild(PLAYER_NAME)
local player = Players:GetPlayerFromCharacter(character)
if player then
print(`Jogador {player.Name} ({player.UserId}) está no jogo`)
else
print(`Jogador {PLAYER_NAME} não está no jogo!`)
endGetPlayers
Devolução
{Player}
Amostras de código
Dar Brilhos a Todos
local Players = game:GetService("Players")
local function onCharacterAdded(character)
-- Dê a eles brilhos na cabeça se ainda não tiverem
if not character:FindFirstChild("Sparkles") then
local sparkles = Instance.new("Sparkles")
sparkles.Parent = character:WaitForChild("Head")
end
end
local function onPlayerAdded(player)
-- Verifique se eles já apareceram
if player.Character then
onCharacterAdded(player.Character)
end
-- Escute o jogador (re)aparecendo
player.CharacterAdded:Connect(onCharacterAdded)
end
Players.PlayerAdded:Connect(onPlayerAdded)getPlayers
GetUserIdFromNameAsync
Parâmetros
Devolução
Amostras de código
Obter UserId a partir do Nome
local Players = game:GetService("Players")
-- Dados de Exemplo:
-- UserId: 118271 Nome: "RobloxRulez"
-- UserId: 131963979 Nome: "docsRule"
local userIdOne = Players:GetUserIdFromNameAsync("RobloxRulez")
local userIdTwo = Players:GetUserIdFromNameAsync("docsRule")
print(userIdOne, userIdTwo)
-- imprime: "118271 131963979"Obter UserId a partir do Nome usando um cache
local Players = game:GetService("Players")
-- Crie uma tabela chamada 'cache' para armazenar cada 'UserId' à medida que são encontrados.
-- Se fizermos uma consulta a um 'UserId' usando o mesmo 'Name', o 'UserId' virá
-- do cache (rápido) em vez de GetUserIdFromNameAsync() (yield).
local cache = {}
function getUserIdFromName(name)
-- Primeiro, verifique se o cache contém 'name'
local userIdFromCache = cache[name]
if userIdFromCache then
-- se um valor foi armazenado no cache na chave 'name', então este 'userIdFromCache'
-- é o UserId correto e podemos retorná-lo.
return userIdFromCache
end
-- Se chegou aqui, 'name' não foi consultado anteriormente e não existe no
-- cache. Agora precisamos usar GetUserIdFromNameAsync() para consultar o userId
local userId
local success, _ = pcall(function()
userId = Players:GetUserIdFromNameAsync(name)
end)
if success then
-- se 'success' for verdadeiro, GetUserIdFromNameAsync() encontrou com sucesso o
-- userId. Armazene esse userId no cache usando 'name' como a chave para que nunca
-- precisemos consultar esse userId no futuro. Então retorne userId.
cache[name] = userId
return userId
end
-- Se chegou aqui, 'success' foi falso, significando que GetUserIdFromNameAsync()
-- não conseguiu encontrar o 'userId' para o 'name' fornecido. Podemos avisar o
-- usuário que isso aconteceu e então retornar nada, ou nil.
warn("Não foi possível encontrar UserId para Name:", name)
return nil
end
-- Exemplo de Dados:
-- UserId: 118271 Nome: "RobloxRulez"
-- UserId: 131963979 Nome: "docsRule"
-- Na primeira vez que um Nome é usado, GetUserIdFromNameAsync() será chamado
local userIdOne = getUserIdFromName("RobloxRulez")
local userIdTwo = getUserIdFromName("docsRule")
-- Como "RobloxRulez" foi usado anteriormente, obtemos seu UserId do cache
local userIdOneQuick = getUserIdFromName("RobloxRulez")
print(userIdOne, userIdTwo, userIdOneQuick)
-- imprime: "118271 131963979 118271"GetUserThumbnailAsync
Players:GetUserThumbnailAsync(
Parâmetros
Devolução
Amostras de código
Exibir Miniatura do Jogador
local Players = game:GetService("Players")
local player = Players.LocalPlayer
local PLACEHOLDER_IMAGE = "rbxassetid://0" -- substitua pela imagem de espaço reservado
-- busque a miniatura
local userId = player.UserId
local thumbType = Enum.ThumbnailType.HeadShot
local thumbSize = Enum.ThumbnailSize.Size420x420
local content, isReady = Players:GetUserThumbnailAsync(userId, thumbType, thumbSize)
-- defina o conteúdo da ImageLabel como a miniatura do usuário
local imageLabel = script.Parent
imageLabel.Image = (isReady and content) or PLACEHOLDER_IMAGE
imageLabel.Size = UDim2.new(0, 420, 0, 420)playerFromCharacter
players
SetChatStyle
Parâmetros
| Valor Padrão: "Classic" |
Devolução
()
Amostras de código
Definindo o Estilo de Chat de um Jogador
-- Barra de comando
game.Players:SetChatStyle(Enum.ChatStyle.Classic) -- Define o estilo de chat como Clássico
-- LocalScript
local Players = game:GetService("Players")
Players:SetChatStyle(Enum.ChatStyle.Classic) -- Gera errosTeamChat
Parâmetros
Devolução
()
Amostras de código
Enviando Chat da Equipe
-- Barra de comando
game.Players:TeamChat("Olá Mundo") -- Envia uma mensagem "Olá Mundo" para todos os jogadores na equipe do jogador local
-- LocalScript
local Players = game:GetService("Players")
Players:TeamChat("Olá Mundo") -- Gera erroUnbanAsync
Parâmetros
Devolução
()
Amostras de código
Desbanindo Usuários
local Players = game:GetService("Players")
if shouldBeUnbanned(player) then
local config: UnbanConfigType = {
UserIds = { player.UserId, 789 },
ApplyToUniverse = false,
}
local success, err = pcall(function()
return Players:UnbanAsync(config)
end)
print(success, err)
endEventos
PlayerAdded
Parâmetros
Amostras de código
Jogadores.PlayerAdded
local Players = game:GetService("Players")
local function onPlayerAdded(player)
print("Um jogador entrou: " .. player.Name)
end
Players.PlayerAdded:Connect(onPlayerAdded)PlayerMembershipChanged
Parâmetros
Amostras de código
Mudanças no Membro Premium
local Players = game:GetService("Players")
local function grantPremiumBenefits(player)
-- Concede ao jogador acesso a áreas, itens ou qualquer coisa que você puder imaginar que são exclusivas para Premium!
print("Dando", player, "benefícios premium!")
end
local function playerAdded(player)
if player.MembershipType == Enum.MembershipType.Premium then
grantPremiumBenefits(player)
end
end
local function playerMembershipChanged(player)
print("Recebeu o evento PlayerMembershipChanged. Nova associação = " .. tostring(player.MembershipType))
if player.MembershipType == Enum.MembershipType.Premium then
grantPremiumBenefits(player)
end
end
Players.PlayerAdded:Connect(playerAdded)
Players.PlayerMembershipChanged:Connect(playerMembershipChanged)PlayerRemoving
Parâmetros
Amostras de código
Remoção de Jogadores
local Players = game:GetService("Players")
local function onPlayerRemoving(player)
print("Um jogador saiu: " .. player.Name)
end
Players.PlayerRemoving:Connect(onPlayerRemoving)UserSubscriptionStatusChanged