Inviti dei giocatori

*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 i messaggi di invito direttamente all'interno del tuo gioco, incoraggiando i giocatori a invitare i propri amici e aumentare il gameplay cooperativo.

Il sistema di messaggi di invito presenta le seguenti funzionalità:

  • Invitati Dinamici — Invita i giocatori a selezionare più amici da una lista di selezione, oppure invita un amico specifico.
  • Dati di Lancio — Includi dati di lancio opzionali che possono essere letti tramite Player:GetJoinData() quando l'amico invitato si unisce. Esempi di casi d'uso includono indirizzare gli amici invitati a una posizione coordinata o personalizzare il gioco per l'invitato.
  • Testo Personalizzabile — Personalizza il messaggio del messaggio di invito e il messaggio di notifica. Ad esempio, un messaggio di invito per il giocatore potrebbe dire "Chiedi ai tuoi amici di unirsi all'avventura!" e il messaggio di notifica per gli amici invitati potrebbe dire "{displayName} vuole che tu ti unisca alla loro avventura in {experienceName}!".

Puoi anche tenere traccia e premiare gli invitatori e gli invitati utilizzando il Sistema di Ricompensa per Inviti Amici.

Imposta le opzioni di invito

Per impostazione predefinita, il messaggio di invito per il giocatore mostra un menu dei propri amici con pulsanti Invita. Per personalizzare il messaggio, mirare a un amico specifico o includere dati di lancio nell'invito, dovrai impostare un oggetto ExperienceInviteOptions con le proprietà desiderate.

ProprietàTipoDescrizione
PromptMessagestringTesto personalizzato mostrato nel messaggio di invito per il giocatore che invia, ad esempio "Chiedi ai tuoi amici di unirsi all'avventura!" per un invito a più amici, oppure "Invita questo amico a unirsi all'avventura!" per un invito a un amico specifico. Nota che se il tuo messaggio di invito personalizzato è abbastanza lungo da superare i limiti dell'interfaccia utente, non verrà mostrato.
InviteUsernumberRoblox UserId dell'amico specifico da invitare; se non fornito, il giocatore sarà invitato a scegliere da una lista di amici.
InviteMessageIdstringID dell'asset che mappa a un tipo di asset Notifica. Questo asset è utilizzato per memorizzare/localizzare una stringa personalizzata per la notifica di invito che gli amici ricevono. Vedi Impostazione delle Opzioni di Notifica per ulteriori dettagli.
LaunchDatastringUtilizzato per impostare un parametro in Player:GetJoinData() quando un amico si unisce dalla notifica di invito. Massimo 200 caratteri. Vedi Includere dati di lancio per un esempio d'uso.
LocalScript - Invita più amici
local SocialService = game:GetService("SocialService")
local Players = game:GetService("Players")
local player = Players.LocalPlayer
-- Costruisci le opzioni di invito con un messaggio di invito personalizzato
local inviteOptions = Instance.new("ExperienceInviteOptions")
inviteOptions.PromptMessage = "Chiedi ai tuoi amici di unirsi all'avventura!"

Imposta le opzioni di notifica

Per impostazione predefinita, la notifica di invito che gli amici ricevono contiene il DisplayName del mittente, il nome utente e il nome del gioco. Per personalizzare il messaggio, puoi creare un asset Notifica nel Creator Dashboard e includere il suo ID asset come parametro di ExperienceInviteOptions.

  1. Naviga al Creator Dashboard.

  2. Simile ai badge, le stringhe di notifica sono legate a un gioco specifico. Trova la miniatura di quel gioco e cliccaci sopra.

  3. Nella colonna di sinistra, sotto Coinvolgimento, clicca su Notifiche.

  4. Nella regione centrale, clicca sul pulsante Crea una Stringa di Notifica.

  5. Compila un nome identificativo (visibile solo per te) e il testo personalizzato della notifica. Nota che devi includere {experienceName} come segnaposto per identificare il nome del gioco per gli amici invitati, e puoi opzionalmente includere il DisplayName del mittente tramite il segnaposto {displayName}.

    Esempi di stringhe di notifica:

    • {displayName} vuole che tu ti unisca alla loro avventura in {experienceName}!
    • {displayName} ha appena completato il sesto stadio di {experienceName}. Puoi farlo anche tu?
  6. Quando sei pronto, clicca sul pulsante Crea Stringa di Notifica.

  7. Nella pagina delle notifiche, nella tabella delle notifiche, clicca sul pulsante nella colonna Azioni e seleziona Copia ID Asset.

  8. Nell'oggetto ExperienceInviteOptions per il messaggio di invito, incolla l'ID asset come valore della proprietà InviteMessageId.

    LocalScript - 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 dell'amico
    local inviteOptions = Instance.new("ExperienceInviteOptions")
    inviteOptions.InviteMessageId = "ef0e0790-e2e8-4441-9a32-93f3a5783bf1"

Promuovi un invito

Per promuovere un invito, dovresti prima determinare se il giocatore può inviare un invito, in quanto la possibilità può variare a seconda della piattaforma o del giocatore. Una volta confermato, puoi visualizzare il messaggio di invito al giocatore.

  1. Chiama SocialService:CanSendGameInviteAsync(), incapsulato in un pcall() poiché è una chiamata di rete asincrona che potrebbe occasionalmente fallire.
  2. Se la possibilità di invito è confermata, chiama SocialService:PromptGameInvite() con l'oggetto di opzioni di invito come secondo argomento.

Una volta promosso, il giocatore vedrà un messaggio a schermo per invitare più amici, o l'amico specifico definito nell'oggetto di opzioni di invito. Quando il giocatore clicca poi sul pulsante Invita per uno o più amici, quegli amici riceveranno una notifica contenente il DisplayName, il nome utente e il nome dell'esperienza del mittente. Le notifiche possono essere ulteriormente personalizzate come descritto in Imposta le opzioni di notifica.

LocalScript - Invita più amici
local SocialService = game:GetService("SocialService")
local Players = game:GetService("Players")
local player = Players.LocalPlayer
-- Funzione per verificare 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

Includere dati di lancio

Per migliorare ulteriormente la cooperazione in-game o incentivare gli inviti dei giocatori, puoi includere dati di lancio in un messaggio di invito, utile per scenari come indirizzare amici invitati a una posizione coordinata o personalizzare il gioco per l'invitato.

  1. Quando promuovi un invito, includi un oggetto ExperienceInviteOptions con i dati pertinenti che saranno utilizzati quando l'amico entra nel gioco, ad esempio l'Player.UserId del mittente, l'ID di un badge da assegnare all'amico al momento dell'ingresso, o una posizione coordinata per far spawnare l'amico. Se hai bisogno di compilare più pezzi di dati, codifica i dati utilizzando JSONEncode().

    LocalScript - 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 verificare 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 ingresso che entrano tramite la notifica, verifica i dati di lancio lato server tramite Player:GetJoinData(). Se hai codificato più pezzi di dati in JSON per il messaggio di invito, ricorda di decodificarli con JSONDecode().

    Script - Utilizzo dei Dati di Lancio dell'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("Nessun dato di lancio ricevuto!")
    end
    end
    Players.PlayerAdded:Connect(onPlayerAdded)
  3. Se i dati di lancio esistono, puoi usarli per una vasta gamma di scenari di design, inclusi:

    • Far spawnare l'amico in ingresso all'inizio di un impegnativo percorso ad ostacoli che il mittente ha appena completato, basato su una posizione coordinata fornita tramite i dati di lancio.
    • Controllare se il mittente è nel luogo, basato sul proprio Player.UserId nei dati di lancio, e teletrasportare il personaggio dell'amico vicino al loro personaggio.
© 2026 Roblox Corporation. Roblox, il logo Roblox e Powering Imagination sono tra i nostri marchi registrati e non registrati negli Stati Uniti. e altri paesi.