Players
*Este contenido se traduce usando la IA (Beta) y puede contener errores. Para ver esta página en inglés, haz clic en aquí.
El servicio Players contiene Player objetos para los clientes conectados actualmente a un servidor de Roblox. También contiene información sobre la configuración de un lugar, como las apariencias de los personajes, los amigos y las miniaturas de avatar. Puede obtener información sobre los jugadores no conectados al servidor, como las apariencias de los personajes, los amigos y las miniaturas de avatar.
Resumen
Propiedades
Activa o desactiva los tres métodos Players ( BanAsync() , UnbanAsync() y 1> Class.Players:GetBanHistoryAsync()|GetBanHistoryAsync()1> ) que constituyan la API de la prohibición. Esta propiedad no se puede scriptable y
Indica si el chat de burbujas está habilitado o no. Se establece con el método Players:SetChatStyle() .
Indica si Class.Character|Characters reaparecerá automáticamente.
Indica si el chat clásico está habilitado o no; establecido por el método Players:SetChatStyle() .
El Player que se ejecuta para el LocalScript
El máximo de jugadores que se pueden encontrar en un servidor.
El número preferido de jugadores para un servidor.
Controla la cantidad de tiempo que se tarda en reaparecer para un personaje del jugador.
Métodos
Hace que el chat del jugador local sea el mensaje dado.
Devuelve el Player con el ID de usuario Class.Player.UserId|UserId si están en el juego.
Devuelve el Player cuyo Character coincide con la instancia dada, o nil si no se puede encontrar.
Devuelve una tabla de todos los objetos Player conectados actualmente.
Establece si BubbleChat y ClassicChat están siendo usados, y le dice a TeamChat y Chat qué hacer.
Hace que el chat de LocalPlayer muestre el mensaje dado, que solo será visible para los usuarios en el mismo equipo.
Prohíbe a los usuarios de tu experiencia, con opciones para especificar la duración, la razón, si el ban se aplica a todo el universo o solo a la lugaractual y más. Este método está habilitado y deshabilitado por la propiedad Players.BanningEnabled , que puedes alternar en Studio.
- CreateHumanoidModelFromDescription(description : HumanoidDescription,rigType : Enum.HumanoidRigType,assetTypeVerification : Enum.AssetTypeVerification):Model
Regresa un modelo de personaje equipado con todo lo especificado en la descripción de humanoides, y es R6 o R15 como especificado por el tipo de modelo.
Regresa un conjunto de modelos de personaje con todo listo para coincidir con el avatar del usuario especificado por el usuario pasado.
Recupera el registro de prohibición y desban de cualquier usuario dentro del universo de la experiencia. Este método está habilitado y deshabilitado por la propiedad Players.BanningEnabled , que puedes alternar en Studio.
Regresa información sobre la apariencia del personaje de un usuario dado.
Regresa un objeto FriendPages que contiene información para todos los amigos del jugador dado.
Devuelve la Descripción Humanoide para un atuendo específico, que se configurará con las partes/colores/Animaciones, etc. del atuendo.
Regresa una descripción de humanoide que especifica todo lo equipado para el avatar del usuario especificado por el usuario pasado.
Envía una consulta al sitio web de Roblox para el nombre de usuario de una cuenta con un UserId dado.
Envía una consulta al sitio web de Roblox para el userId de una cuenta con un nombre de usuario dado.
- GetUserThumbnailAsync(userId : number,thumbnailType : Enum.ThumbnailType,thumbnailSize : Enum.ThumbnailSize):Tuple
Devuelve la URL de contenido de una miniatura de un jugador, dado su tamaño y introducir, así como un valor deBooleano que describe si la imagen está lista para usar.
Desbanea a los jugadores prohibidos de Players:BanAsync() o la API de Cloud Restricted del Usuario. Este método está habilitado y deshabilitado por la propiedad Players.BanningEnabled , que puedes alternar en Studio.
Eventos
Dispara cuando un jugador ingresa al juego.
Se activa cuando el servidor del juego reconoce que la membresía de un jugador ha cambiado.
Dispara cuando un jugador está a punto de salir del juego.
Se activa cuando el servidor del juego reconoce que el estado del usuario para una determinada suscripción ha cambiado.
Propiedades
BanningEnabled
Activa o desactiva los tres métodos Players ( BanAsync() , UnbanAsync() y 1> Class.Players:GetBanHistoryAsync()|GetBanHistoryAsync()1> ) que constituyan la API de la prohibición. Esta propiedad no se puede scriptable y
BubbleChat
La propiedad BubbleChat indica si o no se habilita el chat de burbujas. Está configurado con el método Players:SetChatStyle() usando el conjunto de datos Enum.ChatStyle.
Cuando este modo de chat está habilitado, el juego muestra chats en la interfaz de usuario de chat en la esquina superior izquierda de la pantalla.
Hay dos modos de chat, Players.ClassicChat y un modo de chat donde tanto el chat clásico como el chat de burbujas están habilitados.
CharacterAutoLoads
La propiedad CharacterAutoLoads indica si Class.Character|Characters reaparecerá automáticamente. El valor predeterminado es verdadero.
Si esta propiedad está desactivada (falso), el jugador Class.Character|Characters no aparecerá hasta que se llame la función Player:LoadCharacter() para cada Player, incluyendo cuando los jugadores se unan a la experiencia.
Esto puede ser útil en experiencias donde los jugadores tienen vidas finitas, como los juegos competitivos en los que los jugadores no reaparecen hasta que termina una ronda de juego.
Muestras de código
local Players = game:GetService("Players")
-- Set CharacterAutoLoads to false
Players.CharacterAutoLoads = false
-- Remove player's character from workspace on death
Players.PlayerAdded:Connect(function(player)
while true do
local char = player.CharacterAdded:Wait()
char.Humanoid.Died:Connect(function()
char:Destroy()
end)
end
end)
-- Respawn all dead players once every 10 seconds
while true do
local players = Players:GetChildren()
-- Check if each player is dead by checking if they have no character, if dead load that player's character
for _, player in pairs(players) do
if not workspace:FindFirstChild(player.Name) then
player:LoadCharacter()
end
end
-- Wait 10 seconds until next respawn check
task.wait(10)
end
ClassicChat
Indica si el chat clásico está habilitado o no. Esta propiedad se establece por el método Players:SetChatStyle() usando el conjunto de estadísticas Enum.ChatStyle.
Cuando este modo de chat está habilitado, el juego muestra chats en una burbuja por encima de la cabeza del remitente.
Hay dos otros modos de chat, Players.BubbleChat y un modo de chat en el que tanto chat clásico como chat de burbujas están habilitados.
LocalPlayer
LocalPlayer es una propiedad de lectura que se refiere al Player cuyo cliente está ejecutando la experiencia.
Esta propiedad solo se define para LocalScripts y ModuleScripts requeridos por ellos, ya que se ejecutan en el cliente. Para el servidor, en el que se ejecutan los objetos de código de Script, esta propiedad es 1> nil1> .
MaxPlayers
La propiedad MaxPlayers determina el número máximo de jugadores que se pueden encontrar en un servidor. Esta propiedad solo se puede establecer a través de la configuración de un lugar específico en el Panel de Creator o a través de la Configuración del Juego .
PreferredPlayers
La propiedad PreferredPlayers indica el número de jugadores a los que el creador de partidos de Roblox llenará los servidores. Este número será menor que el máximo de jugadores ( Players.MaxPlayers ) admitidos por la experiencia.
RespawnTime
La propiedad RespawnTime controla el tiempo, en segundos, que se necesita para que un jugador reaparezca cuando Players.CharacterAutoLoads es cierto. Por defecto, es 5.0 segundos.
Esto es útil cuando quieres cambiar el tiempo que tarda en reaparecer según el tipo de tu experiencia, pero no quieres manejar el reaparición de jugadores individualmente.
Aunque esta propiedad se puede establecer desde dentro de un Script , puede establecerlo más fácilmente directamente en el objeto Players en la ventana Explorer de Studio.
UseStrafingAnimations
Métodos
Chat
Esta función hace que el jugador local chatee el mensaje dado. Dado que este artículo está protegido, intentar usarlo en un Script o LocalScript causará un error.
En cambio, al crear un sistema de chat personalizado, o un sistema que necesita acceso al chat, puede usar la función Chat de servicio en lugar.
Parámetros
El mensaje chateó.
Devuelve
Muestras de código
-- Command bar
game:GetService("Players"):Chat("Hello, world!") --Results in 'Hello, world!' appearing in the Chat log under your Player's name.
-- Script
local Players = game:GetService("Players")
Players:Chat("Hello, world!") --Errors
GetPlayerByUserId
Esta función busca cada player en Players para uno cuyo Player.UserId coincide con el ID de usuario dado. Si tal jugador no existe, simplemente返回 1> nil1> . Es equivalente a la siguiente función:
local Players = game:GetService("Players")
local function getPlayerByUserId(userId)
for _, player in Players:GetPlayers() do
if player.UserId == userId then
return player
end
end
end
Este método es útil para encontrar el comprador de un producto de desarrollador usando MarketplaceService.ProcessReceipt , que proporciona una tabla que incluye el ID de usuario del comprador y no una referencia al objeto Player. La mayoría de los juegos requerirán una referencia al jugador para otorgar productos.
Parámetros
El Player.UserId del jugador que se especifica.
Devuelve
Muestras de código
local Players = game:GetService("Players")
local player = Players:GetPlayerByUserId(1)
if player then
print("Player with userId 1 is in this server! Their name is: " .. player.Name)
else
print("Player with userId 1 is not in this server!")
end
local MarketplaceService = game:GetService("MarketplaceService")
local DataStoreService = game:GetService("DataStoreService")
local Players = game:GetService("Players")
-- Data store for tracking purchases that were successfully processed
local purchaseHistoryStore = DataStoreService:GetDataStore("PurchaseHistory")
-- Table setup containing product IDs and functions for handling purchases
local productFunctions = {}
-- ProductId 123123 for a full heal
productFunctions[123123] = function(_receipt, player)
-- Logic/code for player buying a full heal (may vary)
if player.Character and player.Character:FindFirstChild("Humanoid") then
-- Heal the player to full health
player.Character.Humanoid.Health = player.Character.Humanoid.MaxHealth
-- Indicate a successful purchase
return true
end
end
-- ProductId 456456 for 100 gold
productFunctions[456456] = function(_receipt, player)
-- Logic/code for player buying 100 gold (may vary)
local stats = player:FindFirstChild("leaderstats")
local gold = stats and stats:FindFirstChild("Gold")
if gold then
gold.Value = gold.Value + 100
-- Indicate a successful purchase
return true
end
end
-- The core 'ProcessReceipt' callback function
local function processReceipt(receiptInfo)
-- Determine if the product was already granted by checking the data store
local playerProductKey = receiptInfo.PlayerId .. "_" .. receiptInfo.PurchaseId
local purchased = false
local success, result, errorMessage
success, errorMessage = pcall(function()
purchased = purchaseHistoryStore:GetAsync(playerProductKey)
end)
-- If purchase was recorded, the product was already granted
if success and purchased then
return Enum.ProductPurchaseDecision.PurchaseGranted
elseif not success then
error("Data store error:" .. errorMessage)
end
-- Determine if the product was already granted by checking the data store
local playerProductKey = receiptInfo.PlayerId .. "_" .. receiptInfo.PurchaseId
local success, isPurchaseRecorded = pcall(function()
return purchaseHistoryStore:UpdateAsync(playerProductKey, function(alreadyPurchased)
if alreadyPurchased then
return true
end
-- Find the player who made the purchase in the server
local player = Players:GetPlayerByUserId(receiptInfo.PlayerId)
if not player then
-- The player probably left the game
-- If they come back, the callback will be called again
return nil
end
local handler = productFunctions[receiptInfo.ProductId]
local success, result = pcall(handler, receiptInfo, player)
-- If granting the product failed, do NOT record the purchase in datastores.
if not success or not result then
error("Failed to process a product purchase for ProductId: " .. tostring(receiptInfo.ProductId) .. " Player: " .. tostring(player) .. " Error: " .. tostring(result))
return nil
end
-- Record the transaction in purchaseHistoryStore.
return true
end)
end)
if not success then
error("Failed to process receipt due to data store error.")
return Enum.ProductPurchaseDecision.NotProcessedYet
elseif isPurchaseRecorded == nil then
-- Didn't update the value in data store.
return Enum.ProductPurchaseDecision.NotProcessedYet
else
-- IMPORTANT: Tell Roblox that the game successfully handled the purchase
return Enum.ProductPurchaseDecision.PurchaseGranted
end
end
-- Set the callback; this can only be done once by one script on the server!
MarketplaceService.ProcessReceipt = processReceipt
GetPlayerFromCharacter
Esta función返回 el Player asociado con el dado Player.Character , o nil si uno no puede ser encontrado. Es equivalente a la siguiente función:
local function getPlayerFromCharacter(character)
for _, player in game:GetService("Players"):GetPlayers() do
if player.Character == character then
return player
end
end
end
Este método se utiliza con frecuencia cuando ocurre algún evento en el personaje del jugador (como su Humanoid ) . Un tal evento puede no hacer directamente referencia al objeto del jugador, pero este método proporciona un acceso fácil. El contrario de esta función se puede describir como obtener el carácter de un jugador. Para hacer esto, simplemente acceda a la propiedad del carácter.
Parámetros
Una instancia de personaje de la que quieres obtener al jugador.
Devuelve
Muestras de código
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(`Player {player.Name} ({player.UserId}) is in the game`)
else
print(`Player {PLAYER_NAME} is not in the game!`)
end
GetPlayers
Este método返回一个表 of all presently connected Class.Player objetos. Funciona de la misma manera que Instance:GetChildren() excepto que solo返回 Player objetos encontrados bajo 1> Class.Players1> . Cuando se usa con un ciclo de 4> for4> , es útil para repetir a través de
local Players = game:GetService("Players")for _, player in Players:GetPlayers() doprint(player.Name)end
Los scripts que se conectan a Players.PlayerAdded a menudo intentan procesar a todos los jugadores que se conectan al juego. Este método es útil para repetir sobre jugadores ya conectados que no dispararían PlayerAdded . ¡Usar este método asegura que no se pierda ningún jugador!
local Players = game:GetService("Players")
local function onPlayerAdded(player)
print("Player: " .. player.Name)
end
for _, player in Players:GetPlayers() do
onPlayerAdded(player)
end
Players.PlayerAdded:Connect(onPlayerAdded)
Devuelve
Una tabla que contiene a todos los jugadores en el servidor.
Muestras de código
local Players = game:GetService("Players")
local function onCharacterAdded(character)
-- Give them sparkles on their head if they don't have them yet
if not character:FindFirstChild("Sparkles") then
local sparkles = Instance.new("Sparkles")
sparkles.Parent = character:WaitForChild("Head")
end
end
local function onPlayerAdded(player)
-- Check if they already spawned in
if player.Character then
onCharacterAdded(player.Character)
end
-- Listen for the player (re)spawning
player.CharacterAdded:Connect(onCharacterAdded)
end
Players.PlayerAdded:Connect(onPlayerAdded)
SetChatStyle
Esta función establece si BubbleChat y ClassicChat están siendo usados, y le dice a TeamChat y Chat qué hacer usando el Enum.ChatStyle enum. Debido a que este artículo está protegido, intentar usarlo en un Script o LocalScript causará un error.
Esta función se usa internamente cuando el modo de chat está configurado por el juego.
Parámetros
El estilo de chat especificado está siendo establecer.
Devuelve
Muestras de código
-- Command bar
game.Players:SetChatStyle(Enum.ChatStyle.Classic) -- Set's chat style to Classic
-- LocalScript
local Players = game:GetService("Players")
Players:SetChatStyle(Enum.ChatStyle.Classic) -- Errors
TeamChat
Esta función hace que el chat de Players.LocalPlayer envíe el mensaje dado, que solo será visible para los usuarios en el mismo equipo. Dado que este artículo está protegido, intentar usarlo en un Script o LocalScript causará un error.
Esta función se utiliza internamente cuando el Players.LocalPlayer envía un mensaje a su equipo.
Parámetros
El mensaje está siendo chateado.
Devuelve
Muestras de código
-- Command bar
game.Players:TeamChat("Hello World") -- Sends a "Hello World" message to all players on the local player's team
-- LocalScript
local Players = game:GetService("Players")
Players:TeamChat("Hello World") -- Errors
BanAsync
El método Players:BanAsync() le permite banear fácilmente a los usuarios que violan las reglas de su experiencia. Puede especificar la duración del ban, habilitar el ban para propagarse a cuentas sospechosas y proporcionar un mensaje al usuario baneado según las Directrices de uso
Baneo y mensajería
Los usuarios prohibidos serán expulsados de inmediato y se prenderán de nuevo en tus experiencias. Se les presentará con un error mostrando el tiempo restante en su prohibición y tu DisplayReason . Los sistemas de backend de Roblox expulsarán jugadores en todos los servidores que especifiques. DisplayReason puede tener una longitud máxima de 40
Lugares y Universo
Por defecto, las prohibiciones se extienden a cualquier lugar dentro de ese universo. Para limitar la prohibición a solo el lugar de donde se llama esta API, configura ApplyToUniverse para false . Sin embargo, si un usuario es prohibido en el lugar de inicio del universo, efectivamente resulta en que el usuario esté excluido de toda la entidad del universo, independientemente de si hay un ban universal o no.
Cuentas Alternativas
Los usuarios a menudo juegan bajo múltiples cuentas diferentes, conocidas como cuentas alternativas o cuentas alternativas, que a veces se utilizan para evitar los prohibiciones de cuentas. Para ayudarlo a mantener a los usuarios fuera, el comportamiento predeterminado de esta API propagará todos los prohibiciones desde la cuenta de origen que has prohibido a cualquiera de sus sospechas altas cuentas. Puedes desactivar las propagaciones de prohibiciones
Duración de la prohibición
No todos los incumplimientos son los mismos, por lo que no todos los prohibitorios
Errores y aceleración
Este método invoca una llamada HTTP a los servicios de backend que están sujetos a la aceleración y pueden fallar. Si estás llamando a esta API con más de un UserId , este método intentará hacer la llamada HTTP para cada ID. Luego agregará cualquier mensaje de error y los unirá como una lista separada por comas. Por ejemplo
HTTP failure for UserId 2: Timedout, HTTP 504 (Service unavailable) failure for UserId 4: Service exception
El mensaje siempre incluirá failure for UserId {} si es un error HTTP.
Requisito del lado del cliente
Debido a los riesgos asociados con la prohibición de los usuarios, este método solo se puede llamar en el servidor de experiencia de back-end (las llamadas de lado del cliente darán como resultado un error). Puedes probar esta API en Studio, durante la creacionescolaborativa en equipo, o en un test de equipo, pero las prohibiciones no se aplicarán a la producción.
Esta API usa el API de Cloud Restricciones de Usuario. Podrás utilizar estas API para administrar tus prohibiciones en aplicaciones de terceros.
Parámetros
UserIds (requerido; matriz/lista) — Array de UserIds de jugadores para ser prohibidos. El tamaño máximo es 50 .
ApplyToUniverse (opcional;Booleano) — ¿Qué si el ban se propaga a todos los lugares dentro del universo de experiencia. Por defecto es true .
Duration (requerido; entero) — Duración del expulsar, en segundos. Los ban permanentes deberían tener un valor de -1 . 0 y todos los demás valores negativos son no válido.
DisplayReason (requerido; cadena) — El mensaje que se mostrará a los usuarios cuando intenten y fallan al unirse a una experiencia. La máxima longitud de la cuerda es 400 .
PrivateReason (requerido; cadena) — Mensajes internos que se devolverán al solicitar el historial de prohibición del usuario. La máxima longitud de la cuerda es 1000 .
ExcludeAltAccounts (opcional;Booleano) — Cuando true , Roblox no intenta prohibir cuentas alternativas. Por defecto es false .
Devuelve
Muestras de código
local Players = game:GetService("Players")
if shouldBeBanned(player: Player) then
local banHistoryPages = Players:GetBanHistoryAsync(player.UserId)
local duration = getNextBanDuration(banHistoryPages) -- Creator-implemented logic
local config: BanConfigType = {
UserIds = {player.UserId},
Duration = duration,
DisplayReason = "You violated community guideline #5",
PrivateReason = "Put anything here that the user should not know but is helpful for your records",
ExcludeAltAccounts = false,
ApplyToUniverse = true
}
local success, err = pcall(function()
return Players:BanAsync(config)
end)
print(success, err)
end
CreateHumanoidModelFromDescription
Regresa un modelo de personaje equipado con todo lo especificado en la descripción de humanoides, y es R6 o R15 como especificado por el tipo de modelo.
Parámetros
Especifica la apariencia del personaje devuelto.
Especifica si el personaje devuelto será R6 o R15.
La verificación del tipo de activo determina si esta función cargará modelos o no (deberías establecer esto como Siempre a menos que quieras cargar activos no catalogables).
Devuelve
Un modelo de personaje humanoide.
Muestras de código
game.Players:CreateHumanoidModelFromDescription(Instance.new("HumanoidDescription"), Enum.HumanoidRigType.R15).Parent = game.Workspace
CreateHumanoidModelFromUserId
Regresa un conjunto de modelos de personaje con todo lo equipado para coincidir con el avatar del usuario especificado por el ID de usuario. Esto incluye si ese personaje está actualmente R6 o R15.
Parámetros
El ID de usuario de un usuario de Roblox. (El UserId es el número en el perfil del usuario, por ejemplo, www.roblox.com/users/1/profile).
Devuelve
Un modelo de personaje humanoide.
Muestras de código
game.Players:CreateHumanoidModelFromUserId(1).Parent = game.Workspace
GetBanHistoryAsync
Recupera el registro de prohibición y desban de cualquier usuario dentro del universo de la experiencia. Este método devuelve una instancia de BanHistoryPages que hereda de Pages . Este método está habilitado y deshabilitado por la propiedad Players.BanningEnabled, que puedes alternar en Studio.
Esta llamada de función solo tendrá éxito en los servidores de juego de producción y no en los dispositivos clientes o en Studio.
Esta API usa el API de Cloud Restricciones de Usuario. Podrás utilizar estas API para administrar tus prohibiciones en aplicaciones de terceros.
Parámetros
Devuelve
Vea BanHistoryPages para obtener una referencia de regreso.
GetCharacterAppearanceInfoAsync
Esta jugadoravatar (ignorando el equipamiento) 在 Roblox 网站上的形式 de diccionario. 不是要被 confused with GetCharacterAppearanceAsync , que carga los activos descritos por este método. 你可以使用 InsertService:LoadAsset() jugadoravatar.
<tr><td><code>activos</code></td><td>tabla (ver abajo)</td><td>Describe los activos equipados (sombreros, partes del cuerpo, etc)</td></tr><tr><td><code>bodyColors</code></td><td>tabla (ver abajo)</td><td>Describe los valores de BrickColor para cada extremidad</td></tr><tr><td><code>color de cuerpo3s</code></td><td>tabla (ver abajo)</td><td>Describe la instancia Color3 para cada extremidad que puede no coincidir perfectamente con bodyColors</td></tr><tr><td><code>pantalones predeterminados aplicados</code></td><td>booleano</td><td>Describe si se aplican los pantalones predeterminados</td></tr><tr><td><code>Camisa predeterminada aplicada</code></td><td>booleano</td><td>Describe si se aplica la camisa predeterminada</td></tr><tr><td><code>emotes</code></td><td>tabla (ver abajo)</td><td>Describe las animaciones de emote equipadas</td></tr><tr><td><code>tipo de avatar de jugador</code></td><td>cadena</td><td>Either "R15" or "R6"</td></tr><tr><td><code>escalas</code></td><td>tabla (ver abajo)</td><td>Describe varios factores de escalado del cuerpo</td></tr>
Nombre | Tipo | Descripción |
---|
Sub-mesa de recursos
La tabla assets es un arreglo de tablas que contienen las siguientes claves que describen los activos actualmente equipados por el jugador:
<tr><td><code>id</code></td><td>número</td><td>El ID de la propiedad de la recurso</td></tr><tr><td><code>tipo de activo</code></td><td>mesa</td><td>Una tabla con <code>nombre</code> y <code>id</code> campos, cada uno de los cuales describe el tipo de activo equipado ("Sombrero", "Cara", etc.")</td></tr><tr><td><code>nombre</code></td><td>cadena</td><td>El nombre de la recurso</td></tr>
Nombre | Tipo | Descripción |
---|
Escala Sub-Tabla
La tabla scales tiene las siguientes llaves, cada una de ellas correspondiente a una propiedad de escalado Humanoid : bodyType, 1> head1>, 4> height4>, 7> proporción7>, 9> depth9>, 0> width
Color de cuerpo Sub-Tabla
La tabla bodyColors tiene las siguientes llaves, cada una de ellas un número que coincide con un BrickColor ID número que se puede usar con BrickColor.new(id) : <
Parámetros
El * usuario del jugador especificado.
Devuelve
Un diccionario que contiene información sobre la apariencia del personaje de un usuario dado.
Muestras de código
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 = "Hat",
id = 8,
},
name = "Striped Hat",
},
{
id = 13062491,
assetType = {
name = "Face Accessory",
id = 42,
},
name = "Vision Française ",
},
{
id = 16598440,
assetType = {
name = "Neck Accessory",
id = 43,
},
name = "Red Bow Tie",
},
{
id = 28999228,
assetType = {
name = "Face",
id = 18,
},
name = "Joyous Surprise",
},
{
id = 86896488,
assetType = {
name = "Shirt",
id = 11,
},
name = "Expensive Red Tuxedo Jacket",
},
{
id = 86896502,
assetType = {
name = "Pants",
id = 12,
},
name = "Expensive Red Tuxedo Pants",
},
{
id = 376530220,
assetType = {
name = "Left Arm",
id = 29,
},
name = "ROBLOX Boy Left Arm",
},
{
id = 376531012,
assetType = {
name = "Right Arm",
id = 28,
},
name = "ROBLOX Boy Right Arm",
},
{
id = 376531300,
assetType = {
name = "Left Leg",
id = 30,
},
name = "ROBLOX Boy Left Leg",
},
{
id = 376531703,
assetType = {
name = "Right Leg",
id = 31,
},
name = "ROBLOX Boy Right Leg",
},
{
id = 376532000,
assetType = {
name = "Torso",
id = 27,
},
name = "ROBLOX Boy Torso",
},
},
}
print(result)
GetFriendsAsync
La función GetFriends Players devuelve un objeto FriendPages que contiene información para todos los amigos del usuario dado. Los elementos dentro del objeto FriendPages son tablas con los siguientes campos:
<tr><td>Identificación</td><td>int64</td><td>El ID de usuario del amistad</td></tr><tr><td>Nombre de usuario</td><td>cadena</td><td>Nombre de usuario del amistad</td></tr><tr><td>Nombre de visualización</td><td>cadena</td><td>El <code>Nombre de Clase.Player.DisplayName|Nombre de la pantalla amistad.</code></td></tr>
Nombre | Tipo | Descripción |
---|
Consulte los ejemplos de código para obtener una manera fácil de repetirse sobre todos los amigos de un jugador.
Parámetros
El ID de usuario del jugador que se especifica.
Devuelve
Muestras de código
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
-- First, get the user ID of the player
local userId = Players:GetUserIdFromNameAsync(USERNAME)
-- Then, get a FriendPages object for their friends
local friendPages = Players:GetFriendsAsync(userId)
-- Iterate over the items in the pages. For FriendPages, these
-- are tables of information about the friend, including Username.
-- Collect each username in a table
local usernames = {}
for item, _pageNo in iterPageItems(friendPages) do
table.insert(usernames, item.Username)
end
print("Friends of " .. USERNAME .. ": " .. table.concat(usernames, ", "))
GetHumanoidDescriptionFromOutfitId
Regresa la descripción del humanoide para un ID de atuendo especificado, que se establecerá con las partes/colores/Animaciones etc del atuendo. Un atuendo puede ser uno creado por un usuario, o puede ser el atuendo para un conjunto creado por Roblox.
Parámetros
El ID de la prenda para la que se busca la descripción humana.
Devuelve
HumanoidDescription inicializada con la especificación para el pasado en el ID de atuendo.
Muestras de código
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:GetHumanoidDescriptionFromOutfitId(itemId)
end
return nil
end
local humanoidDescription = getHumanoidDescriptionBundle(799)
local humanoidModel = Players:CreateHumanoidModelFromDescription(humanoidDescription, Enum.HumanoidRigType.R15)
humanoidModel.Parent = Workspace
GetHumanoidDescriptionFromUserId
Regresa una descripción humanoide que especifica todo lo equipado para el avatar del usuario especificado por el usuario pasado. También incluye escalas y colores de cuerpo.
Parámetros
El ID de usuario de un usuario de Roblox. (El UserId es el número en el perfil del usuario, por ejemplo, www.roblox.com/users/1/profile).
Devuelve
HumanoidDescription inicializada con la especificación del avatar del usuario.
Muestras de código
game.Players:CreateHumanoidModelFromDescription(game.Players:GetHumanoidDescriptionFromUserId(1), Enum.HumanoidRigType.R15).Parent = game.Workspace
GetNameFromUserIdAsync
La función GetNameFromUserIdAsync Players enviará una consulta al sitio web de Roblox que pregunta qué es el nombre de usuario de la cuenta con el UserId dado.
Este método falla si no existe una cuenta con el ID de usuario proporcionado. Si no estás seguro de que tal cuenta existe, se recomienda envolver las llamadas a esta función con pcall . Además, puedes almacenar manualmente los resultados para hacer futuras llamadas con el mismo ID rápidamente. Ver los ejemplos de código para aprender más.
Parámetros
El Player.UserId del jugador que se especifica.
Devuelve
El nombre de un usuario con el ID de usuario especificado Player.UserId .
Muestras de código
local Players = game:GetService("Players")
-- Example Data:
-- UserId: 118271 Name: "RobloxRulez"
-- UserId: 131963979 Name: "docsRule"
local nameOne = Players:GetNameFromUserIdAsync(118271)
local nameTwo = Players:GetNameFromUserIdAsync(131963979)
print(nameOne, nameTwo)
-- prints: "RobloxRulez docsRule"
local Players = game:GetService("Players")
-- Create a table called 'cache' to store each 'Name' as they are found.
-- If we lookup a 'Name' using the same 'UserId', the 'Name' will come
-- from cache (fast) instead of GetNameFromUserIdAsync() (yields).
local cache = {}
function getNameFromUserId(userId)
-- First, check if the cache contains 'userId'
local nameFromCache = cache[userId]
if nameFromCache then
-- if a value was stored in the cache at key 'userId', then this 'nameFromCache'
-- is the correct Name and we can return it.
return nameFromCache
end
-- If here, 'userId' was not previously looked up and does not exist in the
-- cache. Now we need to use GetNameFromUserIdAsync() to look up the name
local name
local success, _ = pcall(function()
name = Players:GetNameFromUserIdAsync(userId)
end)
if success then
-- if 'success' is true, GetNameFromUserIdAsync() successfully found the
-- name. Store this name in the cache using 'userId' as the key so we
-- never have to look this name up in the future. Then return name.
cache[userId] = name
return name
end
-- If here, 'success' was false, meaning GetNameFromUserIdAsync()
-- was unable to find the 'name' for the 'userId' provided. Warn the user
-- this happened and then return nothing, or nil.
warn("Unable to find Name for UserId:", userId)
return nil
end
-- Example Data:
-- UserId: 118271 Name: "RobloxRulez"
-- UserId: 131963979 Name: "docsRule"
-- The first time a UserId is used, GetNameFromUserIdAsync() will be called
local nameOne = getNameFromUserId(118271)
local nameTwo = getNameFromUserId(131963979)
-- Because 118271 was previously used, get its Name from the cache
local nameOneQuick = getNameFromUserId(118271)
print(nameOne, nameTwo, nameOneQuick)
-- prints: "RobloxRulez docsRule RobloxRulez"
GetUserIdFromNameAsync
Esta función enviará una consulta al sitio web de Roblox que solicite qué es el Player.UserId del cuenta con el nombre dado Player .
Este método falla si no existe una cuenta con el nombre de usuario proporcionado. Si no estás seguro de que tal cuenta existe, se recomienda envolver las llamadas a esta función con pcall . Además, puedes almacenar manualmente los resultados para hacer llamadas rápidas con el mismo nombre de usuario. Vea los ejemplos de código para aprender más.
Parámetros
El nombre de usuario del jugador que se especifica.
Devuelve
El Player.UserId de un usuario cuyo nombre se especifica.
Muestras de código
local Players = game:GetService("Players")
-- Example Data:
-- UserId: 118271 Name: "RobloxRulez"
-- UserId: 131963979 Name: "docsRule"
local userIdOne = Players:GetUserIdFromNameAsync("RobloxRulez")
local userIdTwo = Players:GetUserIdFromNameAsync("docsRule")
print(userIdOne, userIdTwo)
-- prints: "118271 131963979"
local Players = game:GetService("Players")
-- Create a table called 'cache' to store each 'UserId' as they are found.
-- If we lookup a 'UserId' using the same 'Name', the 'UserId' will come
-- from cache (fast) instead of GetUserIdFromNameAsync() (yields).
local cache = {}
function getUserIdFromName(name)
-- First, check if the cache contains 'name'
local userIdFromCache = cache[name]
if userIdFromCache then
-- if a value was stored in the cache at key 'name', then this 'userIdFromCache'
-- is the correct UserId and we can return it.
return userIdFromCache
end
-- If here, 'name' was not previously looked up and does not exist in the
-- cache. Now we need to use GetUserIdFromNameAsync() to look up the userId
local userId
local success, _ = pcall(function()
userId = Players:GetUserIdFromNameAsync(name)
end)
if success then
-- if 'success' is true, GetUserIdFromNameAsync() successfully found the
-- userId. Store this userId in the cache using 'name' as the key so we
-- never have to look this userId up in the future. Then return userId.
cache[name] = userId
return userId
end
-- If here, 'success' was false, meaning GetUserIdFromNameAsync()
-- was unable to find the 'userId' for the 'name' provided. We can warn the
-- user this happened and then return nothing, or nil.
warn("Unable to find UserId for Name:", name)
return nil
end
-- Example Data:
-- UserId: 118271 Name: "RobloxRulez"
-- UserId: 131963979 Name: "docsRule"
-- The first time a Name is used, GetUserIdFromNameAsync() will be called
local userIdOne = getUserIdFromName("RobloxRulez")
local userIdTwo = getUserIdFromName("docsRule")
-- Because "RobloxRulez" was previously used, get its UserId from the cache
local userIdOneQuick = getUserIdFromName("RobloxRulez")
print(userIdOne, userIdTwo, userIdOneQuick)
-- prints: "118271 131963979 118271"
GetUserThumbnailAsync
Esta función devuelve la URL del contenido de un avatar de un jugador dado su UserId , el tamaño de la imagen deseado como un Enum.ThumbnailSize枚, y el tipo deseado como un Enum.ThumbnailType枚. También devuelve un valor booleano que describe si la imagen está lista para usar.
La mayoría de las veces, este método se usa con ImageLabel.Image o Decal.Texture para mostrar imágenes de avatar de usuarios en una experiencia.
Parámetros
El Player.UserId del jugador que se especifica.
Un Enum.ThumbnailType que describe el tipo de miniatura.
Un Enum.ThumbnailSize que especifica el tamaño de la miniatura.
Devuelve
Un tutorial que contiene la URL de contenido de una miniatura de usuario basada en los parámetros especificados, y un valor deBooleano que describe si la imagen está lista para usar o no.
Muestras de código
local Players = game:GetService("Players")
local player = Players.LocalPlayer
local PLACEHOLDER_IMAGE = "rbxassetid://0" -- replace with placeholder image
-- fetch the thumbnail
local userId = player.UserId
local thumbType = Enum.ThumbnailType.HeadShot
local thumbSize = Enum.ThumbnailSize.Size420x420
local content, isReady = Players:GetUserThumbnailAsync(userId, thumbType, thumbSize)
-- set the ImageLabel's content to the user thumbnail
local imageLabel = script.Parent
imageLabel.Image = (isReady and content) or PLACEHOLDER_IMAGE
imageLabel.Size = UDim2.new(0, 420, 0, 420)
UnbanAsync
Desbanea a los jugadores prohibidos de Players:BanAsync() o la User Restrictions Open Cloud API . Este método está habilitado y deshabilitado por la propiedad Players.BanningEnabled, que puedes alternar en Studio.
Al igual que Players:BanAsync() , este método toma un diccionario de config que te permitirá eliminar usuarios. Esto configura los usuarios que no están eliminados y el alcance desde el que se eliminan.
Las exenciones de pérdida de efecto solo aplicarán a los baneos con el mismo alcance. Por ejemplo, una exención de pérdida de efecto con ApplyToUniverse establecido en ApplyToUniverse no invalidará un baneo anterior con true establecido en 2> 真的
Este método invoca una llamada HTTP a los servicios de backend, que están acelerados y pueden fallar. Si estás llamando a esta API con múltiples UserIDs, este método intentará hacer esta llamada HTTP por cada UserID. Luego agregará
Debido a los riesgos asociados con la prohibición de usuarios, este método solo se puede llamar en el servidor de juegos de backend. Las llamadas del lado del cliente resultarán en un error. Puedes probar esta API en Studio, Creación en equipoy Team Test, pero las prohibiciones no se aplicarán a la producción. Este método de llamada solo intentará solicitudes de prohibición en los servidores de juegos de producción y no en Studio. Sin embargo, todos los pasos de validación de entrada trabajarán en Studio.
Esta API usa el API de Cloud Restricciones de Usuario. Podrás utilizar estas API para administrar tus prohibiciones en aplicaciones de terceros.
Parámetros
<tbody><tr><td><code>ID de usuario</code></td><td>matriz/lista</td><td>UserIDs para ser force permitido en la experiencia(s). El tamaño máximo es <code>50</code> .</td></tr><tr><td><code>Aplicar al universo</code></td><td>booleano</td><td>Propaga el unban a todos los lugares dentro de este universo.</td></tr></tbody>
Nombre | Tipo | Descripción |
---|
Devuelve
Muestras de código
local Players = game:GetService("Players")
if shouldBeUnbanned(player: Player) then
local config: UnbanConfigType = {
UserIds = {player.UserId, 789},
ApplyToUniverse = false
}
local success, err = pcall(function()
return Players:UnbanAsync(config)
end)
print(success, err)
end
Eventos
PlayerAdded
El evento PlayerAdded ocurre cuando un jugador ingresa al juego. Esto se usa para disparar un evento cuando un jugador se une a un juego, como cargar los datos guardados del jugador GlobalDataStore .
Esto se puede utilizar junto con el evento Players.PlayerRemoving, que se activa cuando un jugador está a punto de salir del juego. Por instancia, si desea imprimir un mensaje cada vez que se una o salga del juego un nuevo jugador:
local Players = game:GetService("Players")
Players.PlayerAdded:Connect(function(player)
print(player.Name .. " joined the game!")
end)
Players.PlayerRemoving:Connect(function(player)
print(player.Name .. " left the game!")
end)
Si desea rastrear cuando se agrega o elimina el personaje de un jugador del juego, como cuando un jugador reaparece o muere, puede usar las funciones Player.CharacterAdded y Player.CharacterRemoving.
Nota que este evento no funciona como esperado en el modo de juego Reproducir porque el jugador se crea antes de que los scripts se conecten a PlayerAdded . Para manejar este caso, así como casos en los que el script se agrega al juego después de que el jugador ingrese, crea una función onPlayerAdded() que puedes llamar para manejar la entrada de un jugador.
Parámetros
Una instancia del jugador que se unió al juego.
Muestras de código
local Players = game:GetService("Players")
local function onPlayerAdded(player)
print("A player has entered: " .. player.Name)
end
Players.PlayerAdded:Connect(onPlayerAdded)
PlayerMembershipChanged
Este evento se activa cuando el servidor del juego reconoce que la membresía de un jugador ha cambiado. Sin embargo, tenga en cuenta que el servidor solo intentará verificar y actualizar la membresía después de que se cierre el modo Premium. Por lo tanto, para contar con casos en los que el usuario compra Premium fuera del juego mientras jue
Para aprender más sobre y incorporar Premium a tu experiencia y monetizar con el sistema de pagos basado en el compromiso, see Pagos basados en el compromiso .
Véase también:
- MarketplaceService:PromptPremiumPurchase() , se usa para solicitar a un usuario que compre Premium
- MarketplaceService.PromptPremiumPurchaseFinished , se activa cuando se cierra la interfaz de usuario de compra premium
Parámetros
Muestras de código
local Players = game:GetService("Players")
local function grantPremiumBenefits(player)
-- Grant the player access to Premium-only areas, items, or anything you can imagine!
print("Giving", player, "premium benefits!")
end
local function playerAdded(player)
if player.MembershipType == Enum.MembershipType.Premium then
grantPremiumBenefits(player)
end
end
local function playerMembershipChanged(player)
print("Received event PlayerMembershipChanged. New membership = " .. tostring(player.MembershipType))
if player.MembershipType == Enum.MembershipType.Premium then
grantPremiumBenefits(player)
end
end
Players.PlayerAdded:Connect(playerAdded)
Players.PlayerMembershipChanged:Connect(playerMembershipChanged)
PlayerRemoving
El evento PlayerRemoving se activa justo antes de que un Player salga del juego. Este evento se activa antes de que ChildRemoved haga en Players , y se comporta algo similar a
Esto se puede utilizar junto con el evento Player.PlayerAdded, que se activa cuando un jugador se une al juego. Por instancia, para imprimir un mensaje cada vez que un nuevo jugador se una o salga del juego:
local Players = game:GetService("Players")
Players.PlayerAdded:Connect(function(player)
print(player.Name .. " joined the game!")
end)
Players.PlayerRemoving:Connect(function(player)
print(player.Name .. " left the game!")
end)
Si desea rastrear cuando se agrega o elimina el personaje de un jugador del juego, como cuando un jugador reaparece o muere, puede usar las funciones Player.CharacterAdded y Player.CharacterRemoving.
Parámetros
Una instancia del jugador que se está saliendo del juego.
Muestras de código
local Players = game:GetService("Players")
local function onPlayerRemoving(player)
print("A player has left: " .. player.Name)
end
Players.PlayerRemoving:Connect(onPlayerRemoving)
UserSubscriptionStatusChanged
Este evento se activa cuando el servidor de juegos reconoce que el estado del usuario para una determinada suscripción ha cambiado. Tenga en cuenta que el servidor solo intenta verificar y actualizar el estado después de que el usuario haya cerrado la ventana de diálogo de compra de suscripciones; el mensaje de la ventana de diálogo le dice que
Tenga en cuenta que solo los scripts del servidor reciben este evento.
Parámetros
Usuario cuyo estado de suscripción ha cambiado.
El ID de la suscripción con un cambio de estado.