Invitaciones de jugador

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

Además de los métodos comunes de promoción para aumentar tu base de jugadores, puedes implementar invitaciones de invitación directamente dentro de tu experiencia, alentando a los jugadores a invitar a sus amigos y aumentar el juego de co-experiencia.

El sistema de invitación rápida presenta lo siguiendo:

  • Invitados dinámicos — Invita a los jugadores a invitar a múltiples amigos de una lista de selección, o invita a un amistadespecífico.
  • Datos de lanzamiento — Incluya datos de lanzamiento opcionales que se pueden leer a través de cuando se una el amigo invitado.Los casos de uso de ejemplo incluyen enrutar a amigos invitados a una ubicación de coordinación o personalizar la experiencia de unión para el invitado.
  • Texto personalizable — Personaliza el mensaje de invitación y el mensaje de notificación.Por ejemplo, una invitación para el jugador puede leer "¡Pide a tus amigos que se unan a la aventura!" y el mensaje de notificación para el amistadinvitado(s) puede leer "displayName quiere que te unas a su aventura en experienceName!".

También puedes rastrear y recompensar a los invitados y a los invitados usando el Sistema de recompensa de invitación de amigos.

Establecer opciones de invitación

Por defecto, un mensaje de invitación para el jugador muestra un menú de sus amigos con botones Invitar .Para personalizar el mensaje de solicitud, apuntar a un amistadespecífico o incluir datos de lanzamiento en la invitación, necesitarás configurar un objeto ExperienceInviteOptions con las propiedades deseadas.

PropiedadTipoDescripción
PromptMessagecadenaTexto personalizado mostrado en la invitación para el jugador remitente, por ejemplo, "Pídele a tus amigos que se unan a la aventura!" para una invitación de amigo múltiple, o "Invita a este amigo a unirse a la aventura!" para una invitación de amigo específica.Tenga en cuenta que si el mensaje de invitación personalizado es lo suficientemente largo como para superar los límites de la interfaz de usuario, no se mostrará.
InviteUsernúmeroRoblox UserId del amigo específico para invitar; si no se proporciona, al jugador se le solicitará que elija de una lista de amigos.
InviteMessageIdcadenaID de activo que se mapea a un introducirde activo de notificación .Este recurso se usa para almacenar/localizar una cadena personalizada para la notificación de invitación que reciben los amigos.Vea Opciones de notificación de configuración para detalles.
LaunchDatacadenaSe usa para establecer un parámetro en Player:GetJoinData() cuando un amigo se une desde la notificacionesde invitación.Máximo de 200 caracteres.Vea Incluir datos de lanzamiento para un ejemplo de uso.
LocalScript - Invitar a múltiples amigos

local SocialService = game:GetService("SocialService")
local Players = game:GetService("Players")
local player = Players.LocalPlayer
-- Construir opciones de invitación con un mensaje de confirmación personalizado
local inviteOptions = Instance.new("ExperienceInviteOptions")
inviteOptions.PromptMessage = "Ask your friends to join the adventure!"

Establecer opciones de notificación

Por defecto, la notificación de invitación que reciben los amigos contiene el nombre del remitente DisplayName, el nombre de usuario y el nombre de la experiencia.Para personalizar el mensaje, puedes crear un recurso Notificación en el tablero de Creador y incluir su ID de recurso como un parámetro de ExperienceInviteOptions .

  1. Navegue hasta el Panel del creador.

  2. Al igual que insignias, las cadenas de notificación están vinculadas a una experiencia específica . Busca la miniatura de esa experiencia y haz clic en ella.

  3. En la columna de la izquierda, debajo de Participación , haga clic en Notificaciones .

  4. En la región central, haga clic en el botón Crear una cadena de notificación .

  5. Rellena un nombre de identificador (solo visible para ti) y el texto de notificación personalizado.Tenga en cuenta que debe incluir experienceName como marcador de posición para identificar el nombre de la experiencia para los amigos invitados, y puede incluir opcionalmente el nombre del remitente DisplayName a través del marcador de posición displayName .

    Ejemplos de cadenas de notificación:

    • displayName quiere que te unas a su aventura en experienceName!
    • displayName acaba de superar la sexta etapa de experienceName. ¿Puedes?
  6. Cuando esté listo, haga clic en el botón Crear cadena de notificación .

  7. En la página de notificaciones, en la tabla de notificaciones, haz clic en el botón en la columna Acciones y selecciona Copiar ID de activo .

  8. En el objeto ExperienceInviteOptions para el mensaje de invitación, pega el ID del recurso como valor de la propiedad InviteMessageId.

    LocalScript - Invitar a múltiples amigos

    local SocialService = game:GetService("SocialService")
    local Players = game:GetService("Players")
    local player = Players.LocalPlayer
    -- Construir opciones de invitación con el ID de usuario de amistad
    local inviteOptions = Instance.new("ExperienceInviteOptions")
    inviteOptions.InviteMessageId = "ef0e0790-e2e8-4441-9a32-93f3a5783bf1"

Invitar a una solicitud

Para solicitar una invitación, primero debe determinar si el jugador puede enviar una invitación, ya que la capacidad puede variar dependiendo de la plataforma o el jugador.Una vez confirmado, puedes mostrar la invitación al jugador.

  1. Llama SocialService:CanSendGameInviteAsync() , envuelta en un pcall() ya que es una llamada de red asincrónica que puede fallar ocasionalmente.
  2. Si la capacidad de invitación se confirma, llama SocialService:PromptGameInvite() con el objeto opcional de opciones de invitación como segundo argumento

Una vez solicitado, el jugador verá una solicitud en la pantalla para invitar a múltiples amigos, o al amigo específico definido en el objeto de opciones de invitación .Cuando el jugador luego hace clic en el botón Invitar para uno o más amigos, esos amigos recibirán una notificación que contenga el nombre del remitente , el nombre de usuario y el nombre de la experiencia.Las notificaciones se pueden personalizar aún más como se describe en Establecer opciones de notificación.

LocalScript - Invitar a múltiples amigos

local SocialService = game:GetService("SocialService")
local Players = game:GetService("Players")
local player = Players.LocalPlayer
-- Función para comprobar si el jugador puede enviar una invitación
local function canSendGameInvite(sendingPlayer)
local success, canSend = pcall(function()
return SocialService:CanSendGameInviteAsync(sendingPlayer)
end)
return success and canSend
end
local canInvite = canSendGameInvite(player)
if canInvite then
SocialService:PromptGameInvite(player)
end

Incluir datos de lanzamiento

Para mejorar aún más la cooperación en la experiencia o para incentivar las invitaciones de jugadores, puedes incluir datos de lanzamiento en una solicitud de invitación, útil para escenarios como enrutar a amigos invitados a una ubicación de coordenadas o personalizar la experiencia de unión para el invitado.

  1. Cuando solicite una invitación , incluya un objeto con datos relevantes que se usarán cuando el amigo se una a la experiencia, por ejemplo, el remitente , el ID de una insignia para otorgar al amigo al unirse, o una ubicación coordinada para generar el amigo.Si necesitas compilar múltiples piezas de datos, enciende los datos usando JSONEncode() .

    LocalScript - Invitar a múltiples amigos

    local HttpService = game:GetService("HttpService")
    local SocialService = game:GetService("SocialService")
    local Players = game:GetService("Players")
    local player = Players.LocalPlayer
    local data = {
    senderUserID = player.UserId,
    spawnLocation = {12, 48, 205.5}
    }
    local launchData = HttpService:JSONEncode(data)
    -- Construir opciones de invitación con datos de lanzamiento
    local inviteOptions = Instance.new("ExperienceInviteOptions")
    inviteOptions.LaunchData = launchData
    -- Función para comprobar si el jugador puede enviar una invitación
    local function canSendGameInvite(sendingPlayer)
    local success, canSend = pcall(function()
    return SocialService:CanSendGameInviteAsync(sendingPlayer)
    end)
    return success and canSend
    end
    local canInvite = canSendGameInvite(player)
    if canInvite then
    SocialService:PromptGameInvite(player, inviteOptions)
    end
  2. Para los amigos entrantes que se unan a través de la notificaciones, compruebe los datos de lanzamiento en el lado del servidor a través de Player:GetJoinData() .Si enciende varias piezas de datos en JSON para el mensaje de invitación, recuerde decodificarlas con JSONDecode() .

    Script - Usando datos de lanzamiento de invitación

    local HttpService = game:GetService("HttpService")
    local Players = game:GetService("Players")
    local ATTEMPT_LIMIT = 10
    local RETRY_DELAY = 1
    local function onPlayerAdded(player)
    local launchData
    for _ = 1, ATTEMPT_LIMIT do
    task.wait(RETRY_DELAY)
    local joinData = player:GetJoinData()
    if joinData.LaunchData ~= "" then
    launchData = joinData.LaunchData
    break
    end
    end
    if launchData then
    local data = HttpService:JSONDecode(launchData)
    print(data.senderUserID)
    print(data.spawnLocation)
    else
    warn("No launch data received!")
    end
    end
    Players.PlayerAdded:Connect(onPlayerAdded)
  3. Si los datos de lanzamiento existen, puedes usarlos para una gran variedad de escenarios de diseño, incluyendo:

    • Genera al amigo entrante al comienzo de un desafiante curso de obstáculos que el remitente acaba de completar, basado en una ubicación de coordenadas pasada a través de los datos de lanzamiento.
    • Comprueba si el remitente está en el lugar, basado en su Player.UserId en los datos de lanzamiento, y teletransporta el personaje del amistadcerca de su personaje.