Convites de jogador

*Este conteúdo é traduzido por IA (Beta) e pode conter erros. Para ver a página em inglês, clique aqui.

Além dos métodos comuns de promoção para aumentar sua base de jogadores, você pode implementar prompts de convite diretamente dentro de sua experiência, encorajando os jogadores a convidar seus amigos e aumentar o jogabilidadeco-experiência.

O sistema de solicitação de convite possui os seguindorecursos:

  • Convidados dinâmicos — Convide jogadores a convidar vários amigos de uma lista de seleção ou convide um amizadeespecífico.
  • Dados de lançamento — Inclua dados de lançamento opcionais que podem ser lidos através de quando o amigo convidado se juntar.Exemplos de casos de uso incluem encaminhar amigos convidados para uma localização de coordenadas ou personalizar a experiência de adesão para o convidado.
  • Texto Personalizável — Personalize a mensagem convite rápido e a mensagem notificação.Por exemplo, um prompt de convite para o jogador pode ler "Peça a seus amigos para se juntarem à aventura!" e a mensagem de notificação para o amizadeconvidado(s) pode ler "displayName quer que você se junte à aventura deles em experienceName!".

Você também pode rastrear e recompensar convidados e convidados usando o Sistema de Recompensa de Convite de Amigo.

Definir opções de convite

Por padrão, um prompt de convite para o jogador mostra um menu de seus amigos com Convidar botões.Para personalizar a mensagem de solicitação, alvo de um amizadeespecífico ou incluir dados de lançamento no convite, você precisará configurar um objeto ExperienceInviteOptions com as propriedades desejadas.

PropriedadeTipoDescrição
PromptMessagestring / cadeia / textoTexto personalizado mostrado no prompt de convite para o jogador enviador, por exemplo "Peça a seus amigos para se juntarem à aventura!" para um prompt de convite multi-amigo, ou "Convide esse amigo para se juntar à aventura!" para um prompt de convite específico de amigo.Observe que se a sua mensagem de convite personalizada for longa o suficiente para exceder os limites da interface do usuário, ela não será exibida.
InviteUsernúmeroRoblox UserId do amigo específico para convidar; se não for fornecido, o jogador será solicitado a escolher de uma lista de amigos.
InviteMessageIdstring / cadeia / textoID de recurso que se mapa a um digitarde recurso de Notificação .Este recurso é usado para armazenar/localizar uma string personalizada para a notificação de convite que os amigos recebem.Veja Opções de notificação de configuração para detalhes.
LaunchDatastring / cadeia / textoUsado para definir um parâmetro em Player:GetJoinData() quando um amigo se junta à notificaçõesde convite.Maximo de 200 caracteres.Veja Incluir dados de lançamento para um exemplo de uso.
LocalScript - Convide vários amigos

local SocialService = game:GetService("SocialService")
local Players = game:GetService("Players")
local player = Players.LocalPlayer
-- Construir opções de convite com uma mensagem de prompt personalizada
local inviteOptions = Instance.new("ExperienceInviteOptions")
inviteOptions.PromptMessage = "Ask your friends to join the adventure!"

Definir opções de notificação

Por padrão, a notificação de convite que os amigos recebem contém o nome do remetente DisplayName, o nome de usuárioe o nome da experiência.Para personalizar a mensagem, você pode criar um recurso Notificação na aba Painel do Criador e incluir seu ID de recurso como um parâmetro de ExperienceInviteOptions.

  1. Navegue até o Painel do Criador.

  2. Semelhante a insígnias, as cordas de notificação estão ligadas a uma experiência específica . Localize a miniatura dessa experiência e clique nela.

  3. Na coluna da esquerda, sob Engajamento , clique em Notificações .

  4. Na região central, clique no botão Criar uma string de notificação .

  5. Preencha um nome de identificador (apenas visível para você) e o texto de notificação personalizado.Observe que você deve incluir experienceName como um espaço reservado para identificar o nome da experiência para amigos convidados, e você pode opcionalmente incluir o nome do remetente DisplayName através do espaço reservado displayName .

    Exemplos de strings de notificação:

    • displayName quer que você se junte à aventura deles em experienceName!
    • displayName acabou de limpar o sexto estágio de experienceName. Você pode?
  6. Quando estiver pronto, clique no botão Criar String de Notificação .

  7. Na página de notificações, na tabela de notificações, clique no botão na coluna Ações e selecione Copiar ID de recurso .

  8. No objeto para o prompt de convite, cole o ID do recurso como o valor da propriedade .

    LocalScript - Convide vários amigos

    local SocialService = game:GetService("SocialService")
    local Players = game:GetService("Players")
    local player = Players.LocalPlayer
    -- Construir opções de convite com o ID de usuário do amizade
    local inviteOptions = Instance.new("ExperienceInviteOptions")
    inviteOptions.InviteMessageId = "ef0e0790-e2e8-4441-9a32-93f3a5783bf1"

Convide um convite

Para solicitar um convite, você deve primeiro determinar se o jogador pode enviar um convite, pois a capacidade pode variar dependendo da plataforma ou do jogador.Uma vez confirmado, você pode exibir o prompt de convite para o jogador.

  1. Chame SocialService:CanSendGameInviteAsync() , embalado em um pcall() pois é uma chamada de rede assíncrona que pode ocasionalmente falhar.
  2. Se a capacidade de convite for confirmada, chame SocialService:PromptGameInvite() com o objeto opcional de opções de convite como o segundo argumento.

Uma vez solicitado, o jogador verá um prompt na tela para convidar vários amigos ou o amigo específico definido no objeto opções de convite.Quando o jogador então clica no botão Convidar para um ou mais amigos, esses amigos receberão uma notificação contendo o endereço de e-mail, o nome de usuário e o nome da experiência do remetente.Notificações podem ser personalizadas ainda mais como descrito em Definir opções de notificação .

LocalScript - Convide vários amigos

local SocialService = game:GetService("SocialService")
local Players = game:GetService("Players")
local player = Players.LocalPlayer
-- Função para verificar se o jogador pode enviar um convite
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 dados de lançamento

Para melhorar ainda mais a cooperação na experiência ou incentivar convites de jogadores, você pode incluir dados de lançamento em um prompt de convite, útil para cenários como encaminhar amigos convidados para uma localização de coordenadas ou personalizar a experiência de entrada para o convidado.

  1. Quando solicitar um convite, inclua um objeto ExperienceInviteOptions com dados relevantes que serão usados quando o amigo se juntar à experiência, por exemplo, o remetente de Player.UserId , o ID de um distintivo para conceder ao amigo ao se juntar, ou uma localização de coordenadas para gerar o amigo.Se você precisar compilar várias peças de dados, encodar os dados usando JSONEncode() .

    LocalScript - Convide vários 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 opções de convite com dados de lançamento
    local inviteOptions = Instance.new("ExperienceInviteOptions")
    inviteOptions.LaunchData = launchData
    -- Função para verificar se o jogador pode enviar um convite
    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 amigos que chegam via notificações, verifique os dados de lançamento no lado do servidor através de Player:GetJoinData() .Se você encodar vários pedaços de dados em JSON para o prompt de convite, lembre-se de decodificá-los com JSONDecode() .

    Script - Usando Dados de Lançamento de Convite

    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. Se os dados de lançamento existirem, você pode usá-los para uma ampla variedade de cenários de design, incluindo:

    • Gere o amigo recebido no início de um desafiante curso de obstáculos que o remetente acabou de concluir, com base em uma localização coordenada passada pelos dados de lançamento.
    • Verifique se o remetente está no local, com base em seu Player.UserId na data de lançamento, e teletransporte o personagem do amizadeperto de seu personagem.