Prompt di invito del giocatore

*Questo contenuto è tradotto usando AI (Beta) e potrebbe contenere errori. Per visualizzare questa pagina in inglese, clicca qui.

Oltre ai comuni metodi di promozione per aumentare la tua base di giocatori, puoi implementare prompt di invito direttamente all'interno della tua esperienza, incoraggiando i giocatori a invitare i loro amici e aumentare il Partitaco-esperienza.

Il sistema di richiesta di invito presenta quanto Seguendo:

  • Invitati dinamici — Invita i giocatori a invitare più amici da una lista di selezione, o invita un Amico/Amicaspecifico.
  • Dati di lancio — Includi dati di lancio opzionali che possono essere letti attraverso quando si unisce l'amico invitato.Gli esempi di casi d'uso includono la routing di amici invitati in una posizione coordinata o la personalizzazione dell'esperienza di join per l'invitato.
  • Testo personalizzabile — Personalizza il messaggio prompt di invito e il Messaggionotifica.Ad esempio, un prompt di invito per il giocatore può leggere "Chiedi ai tuoi amici di unirsi all'avventura!" e il messaggio di notifica per gli Amico/Amicainvitati può leggere "displayName vuole che tu entrai nella loro avventura in experienceName!".

Puoi anche monitorare e premiare gli invitatori e gli invitati utilizzando il Sistema di ricompensa per gli inviti di amici.

Imposta le opzioni di invito

Per impostazione predefinita, un invito per il giocatore mostra un menu dei loro amici con Invita pulsanti.Per personalizzare il Messaggiodi richiesta, mirare a un Amico/Amicaspecifico o includere i dati di lancio nell'invito, dovrai configurare un oggetto ExperienceInviteOptions con le proprietà desiderate.

ProprietàTipoDescrizione
PromptMessagestringaTesto personalizzato visualizzato sull'invito per l'invio del Giocatore, ad esempio "Chiedi ai tuoi amici di unirsi all'avventura!" per un invito multi-amico, o "Invita questo amico a unirsi all'avventura!" per un invito specifico per amici.Nota che se il messaggio di richiesta di invito personalizzato è abbastanza lungo da superare i limiti dell'interfaccia utente, non verrà mostrato.
InviteUsernumberoRoblox UserId del amico specifico da invitare; se non fornito, al giocatore verrà richiesto di scegliere da una lista di amici.
InviteMessageIdstringaID risorsa che mappa a un inserisci / scrividi risorsa Notifica .Questa risorsa viene utilizzata per archiviare/localizzare una stringa personalizzata per la notifica di invito che gli amici ricevono.Vedi Opzioni di notifica di configurazione per i dettagli.
LaunchDatastringaUtilizzato per impostare un parametro in Player:GetJoinData() quando un amico si unisce dalla Notifichedi invito.Massimo di 200 caratteri.Vedi Includi i dati di lancio per un esempio di utilizzo.
Script locale - Invita più amici

local SocialService = game:GetService("SocialService")
local Players = game:GetService("Players")
local player = Players.LocalPlayer
-- Costruisci le opzioni di invito con un Messaggiodi richiesta personalizzato
local inviteOptions = Instance.new("ExperienceInviteOptions")
inviteOptions.PromptMessage = "Ask your friends to join the adventure!"

Imposta le opzioni di notifica

Per impostazione predefinita, la notifica di invito che ricevono gli amici contiene il nome del mittente DisplayName , il Nome utentee il nome dell'esperienza.Per personalizzare il Messaggio, puoi creare una risorsa Notifica sulla dashboard Creatore e includere l'ID della sua risorsa come parametro di ExperienceInviteOptions .

  1. Naviga alla Dashboard del Creatore.

  2. Simile a distintivi, le corde di notifica sono legate a una esperienza specifica . Trova la miniatura di quell'esperienza e cliccala.

  3. Nella colonna di sinistra, sotto Impegno , clicca Notifiche .

  4. Nella regione centrale, fai clic sul pulsante Crea una stringa di notifica .

  5. Inserisci un nome di identificatore (visibile solo a te) e il testo di notifica personalizzata.Nota che devi includere experienceName come placeholder per identificare il nome dell'esperienza per gli amici invitati, e puoi includere opzionalmente il mittente DisplayName attraverso il placeholder displayName .

    Esempi di stringhe di notifica:

    • displayName vuole che tu ti unisca alla loro avventura in experienceName!
    • displayName ha appena superato la sesta fase di experienceName. Puoi?
  6. Quando sei pronto, fai clic sul pulsante Crea stringa di notifica .

  7. Sulla pagina delle notifiche, nella tabella delle notifiche, fai clic sul pulsante nella colonna Azioni e seleziona Copia ID risorsa .

  8. Nell'oggetto ExperienceInviteOptions per l'invito rapido, incolla l'ID della risorsa come valore della ProprietàInviteMessageId.

    Script locale - Invita più amici

    local SocialService = game:GetService("SocialService")
    local Players = game:GetService("Players")
    local player = Players.LocalPlayer
    -- Costruisci le opzioni di invito con l'ID utente del Amico/Amica
    local inviteOptions = Instance.new("ExperienceInviteOptions")
    inviteOptions.InviteMessageId = "ef0e0790-e2e8-4441-9a32-93f3a5783bf1"

Invia un invito

Per inviare un invito, devi prima determinare se il giocatore può inviare un invito, poiché l'abilità può variare a seconda della piattaforma o del Giocatore.Una volta confermato, puoi visualizzare l'invito al Giocatore.

  1. Chiama SocialService:CanSendGameInviteAsync() , avvolto in un pcall() poiché è una chiamata di rete asincrona che può occasionalmente fallire.
  2. Se l'abilità di invito è confermata, chiama SocialService:PromptGameInvite() con l'opzionale oggetto delle opzioni di invito come secondo argomento.

Una volta richiesto, il giocatore vedrà una richiesta sullo schermo per invitare più amici, o l'amico specifico definito nell'opzione di invito oggetto.Quando il giocatore poi fa clic sul pulsante Invita per uno o più amici, questi amici riceveranno una notifica contenente il mittente DisplayName, il nome utente e il nome dell'esperienza.Le notifiche possono essere ulteriormente personalizzate come descritto in Imposta le opzioni di notifica.

Script locale - Invita più amici

local SocialService = game:GetService("SocialService")
local Players = game:GetService("Players")
local player = Players.LocalPlayer
-- Funzione per controllare se il giocatore può inviare un invito
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

Includi i dati di lancio

Per migliorare ulteriormente la cooperazione in-experience o per incentivare gli inviti dei giocatori, puoi includere dati di lancio in una richiesta di invito, utile per scenari come il routing di amici invitati in una posizione coordinata o la personalizzazione dell'esperienza di connessione per l'invitato.

  1. Quando richiedi un invito, includi un oggetto ExperienceInviteOptions con dati pertinenti che verranno utilizzati quando l'amico si unisce all'esperienza, ad esempio il mittente Player.UserId , l'ID di un badge da assegnare all'amico al momento dell'adesione o una posizione coordinata per generare l'amico.Se devi compilare più pezzi di dati, codifica i dati usando JSONEncode() .

    Script locale - Invita più amici

    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)
    -- Costruisci le opzioni di invito con i dati di lancio
    local inviteOptions = Instance.new("ExperienceInviteOptions")
    inviteOptions.LaunchData = launchData
    -- Funzione per controllare se il giocatore può inviare un invito
    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. Per gli amici in arrivo che si uniscono tramite la Notifiche, controlla i dati di lancio sul lato server attraverso Player:GetJoinData() .Se decodifichi più pezzi di dati in JSON per l'invito, ricorda di decodificarli con JSONDecode() .

    Script - Utilizzo dei dati di lancio di invito

    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 i dati di lancio esistono, puoi usarli per una vasta gamma di scenari di progettazione, tra cui:

    • Genera l'amico in arrivo all'inizio di un percorso ostico impegnativo che il mittente ha appena completato, in base a una posizione coordinata passata attraverso i dati di lancio.
    • Verifica se il mittente è nel Posto, in base ai loro Player.UserId nei dati di lancio, e teletrasporta il personaggio dell'Amico/Amicavicino al loro personaggio.