Solicitudes de invitación 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 invitar invitaciones directamente dentro de tu experiencia, alentando a los jugadores a invitar a sus amigos y aumentar el juego cooperativo.

El sistema de invitación tiene las siguiendocaracterísticas:

  • 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 — Incluye datos de lanzamiento opcionales que se pueden leer a través de Class.Player:GetJoinData() cuando el invitado amigo se une. Ejemplos de casos de uso incluyen la ruta de los amigos invitados a una ubicación de coordenadas o la personalización de la experiencia de unión para el invitado.
  • Texto personalizado — Personaliza el mensaje invitar prom示 y el mensaje de notificación. Por ejemplo, un mensaje de invitación para el jugador puede leer "¡Invita a tus amigos a unirse 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 puede rastrear y recompensar a los invitados y a los invitados con el Sistema de invitación de amigos .

Invita a múltiples amigos
Invitar a un amigo específico invitación

Configurando las Opciones de Invitación

Por defecto, una invitación para el jugador muestra un menú de sus amigos con botones de <a href="https://www.welcome.wizzy.com/es-ar/Invitar/Invitar.asp" target="_blank">Invitar</a>. Para personalizar el mensaje de invitación, apunta a un amistadespecífico o incluye datos de lanzamiento en el invitación, necesitarás configurar un objeto de clase <a href="/es-ar/InvitarOptions.asp" target="_blank">Class.ExperienceInviteOptions</a> con las propiedades deseadas.

PropiedadTipoDescripción
PromptMessagecadenaTexto personalizado mostrado en el mensaje de invitación para el jugador, por ejemplo "¡Pregunta a tus amigos que se unan a la aventura!" para un mensaje de invitación de amigos múltiples, o "Invita a este amigo a unirse a la aventura!" para un mensaje de invitación de amigos específico. Nota que si su invitación personalizada solicitud de invitación es lo suficientemente larga para superar los límites de la UI, no se mostrará.
InviteUsernúmeroRoblox UserId del amigo específico para invitar; si no se proporciona, el jugador será solicitado para elegir de una lista de amigos.
InviteMessageIdcadenaID de activo que se mapea a un introducirde activo Notificación . Este activo se usa para almacenar/localizar una cadena personalizada para la notificación de invitación que reciben los amigos. Vea Opciones de configuración de notificación para obtener más información.
LaunchDatacadenaSe usa para establecer un parámetro en Player:GetJoinData() cuando un amigo se une desde la notificaciones. Máximo de 200 caracteres. Vea Including Launch Data para un ejemplo de uso.
LocalScript - Invitar a varios amigos

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

Configurando Opciones de Notificación

Por defecto, la invitación que reciben los amigos contiene la invitación del DisplayName del remitente, el nombre de usuario y el nombre de la experiencia. Para personalizar el mensaje, puede crear un Notificación activo en el Panel de Creator y incluir su ID de activo como parámetro de 1> Class.ExperienceInviteOptions1> .

  1. Navegar al Panel del Creador .

  2. Al igual que con las insignias, las cadenas de notificación se vinculan a una experiencia específica. Encuentra la miniatura de esa experiencia y haz clic en ella.

  3. En la columna de la izquierda, debajo de compromiso, haz clic en notificaciones.

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

  5. Rellena un nombre de identificador (solo visible para ti) y el texto de notificación personalizado. Nota que debes incluir playerName como nombre de experienciapara los amigos, y puedes opcionalmente incluir el nombre del remitente a través del DisplayName placeholder.

    Ejemplos de cadenas de notificación:

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

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

  8. En el objeto ExperienceInviteOptions para la invitación, pegue la ID de la herramienta como el valor de la propiedad InviteMessageId .

    LocalScript - Invitar a varios amigos

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

Solicitando una Invitación

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

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

Una vez solicitado, el jugador verá una invitación en la pantalla para invitar a varios amigos, o el 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 contiene el nombre de usuario del remitente, el nombre de

LocalScript - Invitar a varios amigos

local SocialService = game:GetService("SocialService")
local Players = game:GetService("Players")
local player = Players.LocalPlayer
-- Función para comprobar si el jugador puede enviar un 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

Incluyendo datos de lanzamiento

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

  1. Cuando solicite una invitación , incluya un objeto ExperienceInviteOptions con datos relevantes que se usarán cuando el amigo se una a la experiencia, por ejemplo, el ID de un Player.UserId , el ID de un 1>

    LocalScript - Invitar a varios 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)
    -- Construye invitaciones con datos de lanzamiento
    local inviteOptions = Instance.new("ExperienceInviteOptions")
    inviteOptions.LaunchData = launchData
    -- Función para comprobar si el jugador puede enviar un 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 que se unen a través de la notificaciones, verifique los datos de lanzamiento en el lado del servidor a través de Player:GetJoinData() . Si enciende múltiples piezas de datos en JSON para la invitación, recuerda desbloquearlo con JSONDecode() .

    Script - Usando datos de lanzamiento de invitaciones

    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, puede usarlos para una gran variedad de escenarios de diseño, incluidos:

    • Genera al amigo entrante en el comienzo de un desafiante obstacle course que el remitente acaba de completar, basado en una ubicación de coordenada pasada a través de los datos de lanzamiento.
    • Compruebe si el remitente está en el lugar, según su Player.UserId en los datos de lanzamiento, y teletransporte el carácter del amistadcerca de su personaje.