Cuando un usuario se une a una experiencia, Roblox los representa como un Jugador en el aplicación de modeladode datos. El objeto Player contiene información sobre el usuario que es universal entre las experiencias, como su nombre de usuario, lista de amigos, guardado de avatar y introducirde membresía, así como propiedades, métodos y eventos que afectan el ciclo de vida del usuario entre la unión y la salida de su
El servicio Players contiene todas las instancias de Player en una experiencia. Cada objeto Player representa a un usuario en la experiencia, y sus padres son cuatro contenedores importantes que puede usar para personalizar la experi
Vida útil
Los scripts tanto del lado del cliente como del servidor pueden conectarse a los eventos Players.PlayerAdded y Players.PlayerRemoved para realizar acciones en respuesta al ciclo de vida de un objeto
Usa scripts para acceder a servicios relacionados con el servidor, como almacenar y guardar datos cuando un usuario se une o se va. Usa scripts locales si el cliente necesita crear y eliminar instancias de juego vinculadas a la nueva ubicación del usuario, como una pantalla GUI para las estadísticas del usuario en un marcador personalizado.
Unión de usuarios
Cuando un cliente se conecta a una experiencia, sus objetos asociados Player clones del servicio Players . El evento Class.
Cargando datos del usuario al unirse
Para cargar los datos de un usuario cuando se unen a una experiencia, use el evento Players.PlayerAdded en un Script . La siguiente lista de ejemplos Script escucha el evento y intenta recuperar los datos del usuario usando su ID de usuario como clave de almacenamiento de datos. Después de recuperar los datos del usuario, puede usarl
local DataStoreService = game:GetService("DataStoreService")
local playerDataStore = DataStoreService:GetDataStore("PlayerData")
game:GetService("Players").PlayerAdded:Connect(function(player)
local userId = player.UserId
-- Leer la clave de almacenamiento de datos
local getSuccess, currentData = pcall(function()
return playerDataStore:GetAsync(userId)
end)
if getSuccess then
print(currentData)
end
-- Haga acciones adicionales con datos actuales
end)
El usuario se está saliendo
Cuando un cliente se desconecta de una experiencia, el servidor destruye su objeto de clase asociado Player del servicio <
Nota que el evento se llama Player.PlayerRemoving , no Player.PlayerRemoved , porque "removido" implicaría que el objeto Player ya está eliminado y por lo tanto no está accesible para los scripts.
Guardando datos del usuario al salir
Para guardar los datos de un usuario cuando se iran de una experiencia, usa el evento Players.PlayerRemoving en un Script . La siguiente lista de ejemplo Script escucha el evento y intenta guardar los datos de un usuario usando su ID de usuario como la clave de almacenamiento 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
-- Obtenga 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 personajes
El modelo de un usuario de Player.Character representa su avatar. Por defecto, Player.CharacterAutoLoads es cierto, y el modelo de un usuario de personaje se genera automáticamente cuando se une a la experiencia. Si Player.CharacterAutoLoads es falso, entonces necesitas llamar a 1> Class.Player:LoadCharacter()</
Cuando un usuario de <
Despawning de personaje
Cuando muere el jugador, sus partes del cuerpo caen al suelo y el evento Humanoid.Died hace que el evento se disparan. El servidor elimina automáticamente el modelo de personaje y cualquier script dentro de él después de que el propietario de la propiedad Class.Players
Contando 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 aplicación de modelado. El siguiente Script se conecta a Class.Player.CharacterAdded
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)
Prohibiendo Usuarios
Para garantizar la civilidad y el juego limpio en tus experiencias, puedes banear a los usuarios que violan tus reglas de experiencia y guías de la comunidad. Puedes modificar la duración de los baneados, enviar mensajes de ban y incluso extender los ban a cuentas alternativas potenciales. Cuando uses esta función, debes seguir las pautas para banear y mensajes.
Para implementar e instrucciones de uso, see Players.BanAsync .
Guías de Ban
Al implementar prohibiciones en tu experiencia, asegúrate de seguir las siguientes pautas:
- Las reglas de la experiencia no deben contradecir los estándares de la comunidad y condiciones de uso de Roblox.
- Por ejemplo, no puede crear una regla de experiencia que excluye a alguien por su género, ya que esto viola la política de discriminación, burlas y discurso de odio de Roblox .
- Los creadores deben declarar claramente las reglas de su experiencia en algún lugar accesible para todos los usuarios.
- Los creadores deben aplicar sus reglas de experiencia con razón y no arbitrariamente seleccionar 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 la experiencia del creador o la aplicación de sus reglas violan los estándares de la comunidad .
- Roblox puede moderar una experiencia si hay razones para creer que las reglas de la experiencia de un creador o su enforcer violan los estándares de la comunidad .
Mejoras de mensajes
Cuando se prohíbe a un usuario, reciben un mensaje de error que muestra información como la duración del ban y la razón. En el mensaje filtrado por texto, puedes incluir información adicional, como información de apelación o contacto, siempre que cumplas con los estándares de la comunidad 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 mi página de grupo/experiencia"
- «Méstrame un mensaje en Twitter o X»
Las menciones de información personal o enlaces directos no están permitidos en este campo de mensaje. Esto incluye publicar un nombre de usuario específico o un enlace directo a un servidor Discord o una cuenta X.
Contenedores
El objeto Player almacena varios contenedores importantes:
Mochila
El contenedor Player.Backpack almacena el inventario del usuario. Los objetos Tool en un usuario de su Backpack pantalla en su inventario en la parte inferior de su pantalla. Si un usuario selecciona un 1>Class.Tool1> del invent
Cuando se genera un Player.Character de un usuario, el contenido del servicio StarterPack y sus clones de Player.StarterGear a su 1> Class.Player.Backpack1> . Cuando el personaje muere, el cliente destruye su 4> Class.Back
El Backpack también almacena y ejecuta Scripts y LocalScripts que el cliente y el servidor pueden accesoa ambos.
Roblox proporciona una interfaz para que un jugador acceda a su Backpack y inventario en la parte inferior de la pantalla. Para desactivar la interfaz de usuario de la mochila de Roblox por defecto y reemplazarla con la suya en posesión, llame a StarterGui:SetCoreGuiEnabled() en un LocalScript. Para obtener más información, consulte StarterGui.
Equipo Inicial
El contenedor StarterGear clona su contenido en el usuario Player.Backpack cuando se genera su personaje. Además, si su lugar permite equipamiento y un usuario posee equipamiento, los objetos Tool de su clon de equipamiento a su 1>Class.Player.StarterGear1> cuando regeneración.
A diferencia de StarterPack , Player.StarterGear no es un servicio sino más bien un hijo de cada Player
Siempre pruebe los juegos después de agregar Gear a ellos para asegurarse de que los usuarios no puedan abusar fácilmente de ellos allí. Gear incluye Script objetos y permite que el jugador realice acciones que no quieres. Por ejemplo, un equipo de navegación puede permitir que el jugador acceda a una parte del mapa que no quieres. Las armas permiten que los jugadores con armas dañen a otros jugadores,
Guía del jugador
El contenedor PlayerGui almacena objetos que crean la Interfaz gráfica (o GUI)del jugador. Si un ScreenGUI es un descendiente de un PlayerGui , entonces cualquier
Si se establece false, el personaje no se regeneracióny los contenidos de StarterGui no se copian hasta que Player:LoadCharacter() se llame. Si se establece true, cada vez que el personaje del jugador reaparece,
Scripts de jugador
Cuando un usuario se une a la experiencia, el contenido en el contenedor StarterPlayer.StarterPlayerScripts se clona en PlayerScripts . Todos los scripts locales y módulos se ejecutan cuando se clonan.
A diferencia de los contenedores Backpack y PlayerGui, el contenedor PlayerScripts