Usuarios y jugadores

*Este contenido se traduce usando la IA (Beta) y puede contener errores. Para ver esta página en inglés, haz clic en aquí.

Cuando un usuario se une a una experiencia, Roblox los representa como un jugador en el aplicación de modeladode datos.El objeto contiene información sobre el usuario que es universal entre experiencias, como su nombre de usuario, lista de amigos, personaje de avatar guardado y introducirde membresía de Roblox, así como propiedades, métodos y eventos que afectan el ciclo de vida del usuario entre la adhesión y la salida de su experiencia.

El servicio Players contiene todas las instancias Player en una experiencia.Cada objeto Player representa a un usuario en la experiencia, y sus padres cuatro contenedores importantes que puedes usar para personalizar la experiencia de un usuario: Backpack , StarterGear , PlayerGui y PlayerScripts .

Ciclo de vida

Los scripts del lado del cliente y del lado del servidor ambos pueden conectarse a los eventos Players.PlayerAdded y Players.PlayerRemoved para realizar acciones en respuesta al ciclo de vida de un objeto Player.También pueden conectarse a los eventos Player.CharacterAdded, Player.CharacterRemoving y Humanoid.Died para realizar acciones relacionadas con el juego cuando el personaje aparece, desaparece y muere.

Usa scripts para acceder a servicios relacionados con el servidor, como un almacén de datos para recuperar y guardar datos cuando un usuario se une o se va.Usa LocalScripts si el cliente necesita crear y eliminar instancias de juego vinculadas al nuevo usuario, como una pantalla de interfaz de usuario para las estadísticas del usuario en una tabla de clasificación personalizada.

Unión de usuario

Cuando un cliente se conecta a una experiencia, su objeto asociado Player clona al servicio Players.El Players.PlayerAdded representa a los usuarios que se unen a la experiencia.Algunos ejemplos de casos de uso incluyen la carga de datos de usuario, asignar equipos y cambiar la ropa de un personaje de usuario.El evento Players.PlayerAdded pasa el objeto Player del usuario que se une, que puedes usar al llamar otras funciones, como almacén de datos y objetos RemoteEvent.

Cargar datos de usuario al unirse

Para cargar los datos de un usuario cuando se unen a una experiencia, use el evento Players.PlayerAdded en un Script .El siguiente ejemplo Script escucha el evento y trata de recuperar los datos de un usuario utilizando su ID de usuario como clave del almacén de datos.Después de recuperar con éxito los datos del usuario, puedes usarlos para cargar el progreso y las estadísticas del usuario.


local DataStoreService = game:GetService("DataStoreService")
local playerDataStore = DataStoreService:GetDataStore("PlayerData")
game:GetService("Players").PlayerAdded:Connect(function(player)
local userId = player.UserId
-- Lee la clave del almacén de datos
local getSuccess, currentData = pcall(function()
return playerDataStore:GetAsync(userId)
end)
if getSuccess then
print(currentData)
end
-- Hacer más acciones con currentData
end)

Salida del usuario

Cuando un cliente se desconecta de una experiencia, el servidor destruye su objeto asociado Player del servicio Players.El evento Players.PlayerRemoving representa a los usuarios que dejan la experiencia.Algunos ejemplos de casos de uso incluyen guardar datos de usuario, eliminar sus estadísticas de una tabla de clasificación y destruir cualquiera de sus modelos, como su casa.El evento Players.PlayerRemoving pasa el objeto Player del usuario que se va, que puedes usar al llamar otras funciones, como almacén de datos y objetos RemoteEvent.

Observe que el evento se llama Player.PlayerRemoving , no Player.PlayerRemoved , porque "eliminado" implicaría que el objeto Player ya está eliminado y, por lo tanto, no es accesible para los scripts.

Guardar datos de usuario al salir

Para guardar los datos de un usuario cuando salga de una experiencia, use el evento Players.PlayerRemoving en un Script.El siguiente ejemplo Script escucha el evento y trata de guardar los datos de un usuario usando su ID de usuario como clave del almacén de datos.

Script en ServerScriptService

local DataStoreService = game:GetService("DataStoreService")
local playerDataStore = DataStoreService:GetDataStore("PlayerData")
game:GetService("Players").PlayerRemoving:Connect(function(player)
local userId = player.UserId
-- Obtener el estado de los datos del jugador en el juego
local currentData = getCurrentData(player)
-- Guardar en el tiendade datos
local setSuccess, errorMessage = pcall(function()
playerDataStore:SetAsync(userId, currentData)
end)
if not setSuccess then
warn(errorMessage)
end
end)

Generación de caracteres

El modelo de un usuario Player.Character representa su avatar.Por defecto, Player.CharacterAutoLoads es verdadero, y el modelo de personaje de un usuario se genera automáticamente cuando se une a la experiencia.Si Player.CharacterAutoLoads es falso, entonces necesitas llamar Player:LoadCharacter() para generar manualmente el personaje.

Cuando se genera el Player.Character de un usuario, los scripts y los scripts locales en StarterCharacterScripts se clonan en el modelo de personaje y se activa el evento Player.CharacterAdded.El evento Player.CharacterAdded pasa el nuevo modelo de personaje a cualquier oyente de eventos, que puedes usar para encontrar el objeto del personaje Humanoid y modificar su comportamiento.Por ejemplo, puedes usar Humanoid:ApplyDescription() para cambiar el atuendo del avatar y Humanoid.WalkSpeed o Humanoid.JumpHeight para modificar el movimiento del avatar.

Despawning de personaje

Cuando las partes del cuerpo del jugador Humanoid mueren, sus partes del cuerpo caen al suelo y se activa el evento Humanoid.Died.El servidor elimina automáticamente el modelo de personaje y cualquier script dentro de él después de un tiempo determinado por la propiedad Players.Respawntime que determina.Puedes usar el evento Player.CharacterRemoving para restablecer otros objetos asociados con el personaje, como la propiedad de red de un vehículo al que estaban conduciendo.

Contar muertes de jugadores

Puedes usar el evento Humanoid.Died para manejar la puntuación para una muerte o crear un aplicación de modeladode ragdoll personalizado.El siguiente Script se conecta a Player.CharacterAdded para recuperar el aplicación de modeladode personaje de cada usuario, luego se conecta al objeto de personaje Humanoid .Cuando el evento del humanoide Humanoid.Died se activa, el script incrementa el número de veces que el humanoide del usuario ha muerto y emite ese número.

Script en ServerScriptService

game:GetService("Players").PlayerAdded:Connect(function(player)
local deaths = 0
player.CharacterAdded:Connect(function(character)
local humanoid = character:WaitForChild("Humanoid")
humanoid.Died:Connect(function()
deaths += 1
print(player.Name .. " death count: " .. deaths)
end)
end)
end)

Prohibir usuarios

Para garantizar la civilidad y el juego justo en tus experiencias, puedes prohibir a los usuarios que violan las reglas de tu experiencia y las directrices de la comunidad.Puedes modificar las duraciones de prohibición, los mensajes de prohibición y, incluso, extender las prohibiciones a cuentas alternativas potenciales.Al utilizar esta función, también debe seguir las directrices para prohibir y mensajes.

Para instrucciones de implementación y uso, consulte Players.BanAsync .

Directrices de prohibición

Al implementar prohibiciones en tu experiencia, cumple con las siguientes directrices:

  • Las reglas de experiencia no deben contradecir los estándares comunitarios de Roblox y los términos de uso .
  • Los creadores deben declarar claramente sus reglas de experiencia en algún lugar accesible para todos los usuarios.
  • Los creadores deben aplicar sus reglas de experiencia de manera justa y no arbitrariamente dirigirse a ciertos usuarios.
  • Los usuarios pueden apelar a los creadores directamente si creen que su prohibición fue incorrecta.
    • Roblox no mediará estos apelos, a menos que el usuario crea que las reglas de experiencia del creador o el cumplimiento de sus reglas violen las normas de la comunidad.
  • Roblox puede moderar una experiencia si hay razones para creer que las reglas de experiencia de un creador o el cumplimiento de sus reglas violan los estándares de la comunidad.

Directrices de mensajes

Cuando un usuario es baneado, recibe un mensaje de error que muestra información como la duración y la razón del ban.En el mensaje filtrado por texto, puedes incluir información adicional como apelaciones o información de contacto siempre que cumplas con los estándares comunitarios de Roblox .

Por ejemplo, en tus mensajes de prohibición, se te permite hacer referencia a nombres de marcas y plataformas:

  • “Visita el Discord en la página de mi grupo/experiencia”
  • “Mándame un mensaje en Twitter o X”

Las menciones de información personal o enlaces directos no se permiten en este campo de mensaje.Esto incluye publicar un nombre de usuario o controladorespecífico, o proporcionar un enlace directo a un servidor de Discord o una cuenta de X.

Contenedores

El objeto Player almacena varios contenedores importantes:

Mochila

El contenedor Player.Backpack almacena el inventario del usuario.Los objetos Tool de un usuario en su pantalla de Backpack se muestran en su inventario al final de su pantalla.Si un usuario selecciona un Tool del inventario, lo equipa y se mueve de la Player.Backpack a la Player.Character .

Cuando se genera el Player.Character de un usuario, el contenido del servicio StarterPack y sus clones Player.StarterGear a sus Player.Backpack.Cuando el personaje muere, el cliente destruye su Backpack y lo reemplaza por uno nuevo.

El Backpack también almacena y ejecuta Scripts y LocalScripts que tanto el cliente como el servidor pueden acceso.

Roblox proporciona una interfaz para que un jugador acceda a su Backpack y al inventario en la parte inferior de la pantalla.Para deshabilitar la interfaz de usuario predeterminada de la mochila Roblox y reemplazarla por la en posesión, llama a StarterGui:SetCoreGuiEnabled() en un LocalScript.Para obtener más información, vea StarterGui.

Equipo de inicio

El contenedor StarterGear clona su contenido al del usuario Player.Backpack cuando se genera su personaje.Además, si tu lugar permite equipamiento y un usuario posee equipamiento, los objetos Tool de su clon de equipamiento se transfieren a su Player.StarterGear cuando regeneración.

A diferencia de StarterPack , Player.StarterGear no es un servicio, sino más bien un hijo de cada objeto Player , por lo que su contenido es específico para el usuario.Cada usuario puede tener diferentes objetos Tool dentro de su Player.StarterGear .Para usar Player.StarterGear , habilita el Equipamiento en la página de configuración de tu experiencia bajo Permisos .En la página de permisos, puedes habilitar por equipamiento por su introducir.Para deshabilitar el equipo, deseleccione su introducir.

Siempre prueba juegos después de agregarles equipamiento para verificar que los usuarios no puedan abusar de ellos fácilmente allí.El equipamiento incluye Script objetos y permite al jugador realizar acciones que quizás no consideres.Por ejemplo, un equipo de navegación podría permitir que el jugador acceda a una parte del mapa que no quieres que acceda.Las armas permiten que los jugadores con equipamiento dañen a otros jugadores, posiblemente sin retribución o retaliación.

JugadorGui

El contenedor PlayerGui almacena objetos que crean la interfaz Interfaz gráfica (o GUI)del jugador.Si un ScreenGui es un descendiente de un PlayerGui , entonces cualquier GuiObject dentro del ScreenGui se muestra en la pantalla del jugador.Cualquier LocalScript ejecuta cuando se clona a PlayerGui .Cuando el jugador Player.Character aparece por primera vez, todo el contenido de StarterGui se copia automáticamente en el jugador PlayerGui.

Si Players.CharacterAutoLoads está configurado como falso, el personaje no aparece y los contenidos de StarterGui no se copian hasta que se llame Player:LoadCharacter().Si StarterGui.ResetPlayerGuiOnSpawn está configurado como verdadero, cada vez que el personaje del jugador reaparece, todo el contenido de ese jugador PlayerGui se limpia y se reemplaza con el contenido de StarterGui.

Scripts de jugador

Cuando un usuario se une a la experiencia, el contenido en el contenedor StarterPlayer.StarterPlayerScripts se clona a PlayerScripts. Cualquier LocalScripts y ModuleScripts se ejecutan cuando se clonan.

A diferencia de los contenedores Backpack y PlayerGui, el contenedor PlayerScripts no es accesible al servidor y el contenedor de un usuario PlayerScripts no se reinicia cuando su personaje muere y reaparece.Los objetos del lado del servidor Script tampoco se ejecutan cuando se asignan a PlayerScripts .El contenedor PlayerScripts es útil para scripts que no están vinculados al ciclo de vida del personaje del usuario, como el sistema general de chat o los controles de entrada del jugador.