Zusätzlich zu gängigen Förderungs- Methoden für das Erhöhen deiner Spielerbasis kannst du Lade-Einladungen direkt in deiner Erfahrung implementieren, um Spieler dazu einzuladen, ihre Freunde einzuladen und das Gameplaymit Co-Erlebnissen zu vergrößern.
Das Einladungssystem hat die gefolgte ProfileFunktionen:
- Dynamische Teilnehmer — Laden Sie Spieler von einer Auswahlliste ein, mehrere Freunde einzuladen, oder laden Sie einen bestimmten Freund:inein.
- Startdaten — Enthalten optionale Startdaten, die gelesen werden können durch Player:GetJoinData(), wenn der eingeladene Freund beitritt. Beispiel-Anwendungsfälle umfassen die Routierung von eingeladenen Freunden an einen bestimmten Ort oder die Anpassung der Beitrittserfahrung für den Einladenden.
- Anpassbarer Text — Passen Sie die Einladungsberechtigung -Nachricht und die Benachrichtigungsmeldung an. Zum Beispiel kann eine Einladung für den Spieler "Auf Ihre Freunde einladen sie das Abenteuer!" lesen und die Benachrichtigungsmeldung für die eingeladenen Freund:in"Ich möchte, dass Sie Ihrem Freund experienceName beitreten!" lesen.
Sie können auch Tracker und Belohnungen für Einladende und Teilnehmer verwenden, indem Sie das Freund-Einladungs-Belohnungssystem verwenden.
Einladungsoptionen einstellen
Standardmäßig zeigt eine Einladung für den Spieler ein Menü seiner Freunde mit Einladen -Schaltflächen. Um das Nachrichtanzupassen, zielen Sie auf einen bestimmten Freund:inoder enthalten Sie Startdaten im Einladung, müssen Sie ein ExperienceInviteOptions -Objekt mit den gewünschten Eigenschaften einrichten.
Eigenschaft | Typ | Beschreibung |
---|---|---|
PromptMessage | string | Benutzerdefinierter Text wird für die Einladung des Spieler:inangezeigt, z. B. "Fordere deine Freunde auf, sich dem Abenteuer anzuschließen!" für eine Multi-Freund-Einladung oder "Lade diesen Freund ein, sich dem Abenteuer anzuschließen!" für eine spezifische Freund-Einladung. Beachten Sie, dass wenn Ihre benutzerdefinierte Einladungsmeldung lang genug ist, um die Grenzen der UI zu überschreiten, sie nicht angezeigt wird. |
InviteUser | nummer | Roblox UserId des spezifischen Freundes, um einzuladen; wenn nicht angegeben, wird der Spieler aufgefordert, aus einer Liste von Freunden zu wählen. |
InviteMessageId | string | Asset-ID, die auf eine eingebenzuordnet. Dieses Asset wird verwendet, um einen benutzerdefinierten Stringspeicher/lokalisieren für die Einladungsbenachrichtigung, die Freunde erhalten. Siehe Einstellungen-Benachrichtigung-Optionen für Details. |
LaunchData | string | Wird verwendet, um einen Parameter in Player:GetJoinData() einzustellen, wenn ein Freund aus der Benachrichtigungenbeitritt. Maximal 200 Zeichen. Siehe Einschließlich Startdaten für ein Beispiel. |
Lokales Skript - Laden Sie mehrere Freunde ein
local SocialService = game:GetService("SocialService")local Players = game:GetService("Players")local player = Players.LocalPlayer-- Baue einladende Optionen mit einem benutzerdefinierten Nachrichtauflocal inviteOptions = Instance.new("ExperienceInviteOptions")inviteOptions.PromptMessage = "Ask your friends to join the adventure!"
Benachrichtigungsoptionen einstellen
Standardmäßig enthält die Einladungs-Benachrichtigung, die Freunde erhalten, die sendende DisplayName , den Benutzernamen und den Erlebnissenamen. Um die Nachricht anzupassen, kannst du ein Notification-Asset auf dem Creator-Dashboard erstellen und sein Asset-ID als参数 von 1> Class.ExperienceInviteOptions1> einfügen.
Navigiere zum Creator-Dashboard.
Ganz ähnlich wie bei Abzeichen , sind Benachrichtigungsschnüre an ein bestimmtes Erlebnis gebunden. Suchen Sie das Thumbnail dieses Erlebnisses und klicken Sie darauf.
In der linken Spalte, unter Engagement , klicken Sie auf Benachrichtigungen .
In der Mitte-Region klicken Sie auf die Schaltfläche Erstellen Sie eine Benachrichtigung-Schnur .
Füllen Sie einen Identifikator-Namen (nur für Sie sichtbar) und den benutzerdefinierten Notifikationstext aus. Beachten Sie, dass Sie playerName als Platzhalter einschließen müssen, um den Namen der Erlebnisfür eingeladene Freunde zu identifizieren, und Sie können optionaleweise den Sender durch den DisplayName-Platzhalter einfügen.
Beispiel-Benachrichtigungstexte:
- displayName möchte, dass du ihrem Abenteuer in experienceName beitrittst!
- displayName hat gerade die sechste Stufe von experienceName erledigt. Kannst du?
Wenn Sie bereit sind, klicken Sie auf die Schaltfläche Erstellen Sie Benachrichtigungsschrift .
On the notifications page, click the ⋯ button for the notification and select Kopieren Asset-ID .
In dem ExperienceInviteOptions-Objekt für die Einladungsmaske fügen Sie die Asset-ID als Wert der InviteMessageId Eigenschaftenein.
Lokales Skript - Laden Sie mehrere Freunde einlocal SocialService = game:GetService("SocialService")local Players = game:GetService("Players")local player = Players.LocalPlayer-- Baue einladende Optionen mit der Benutzer-ID deines Freund:inauflocal inviteOptions = Instance.new("ExperienceInviteOptions")inviteOptions.InviteMessageId = "ef0e0790-e2e8-4441-9a32-93f3a5783bf1"
Einladung einblenden
Um eine Einladung zu erstellen, musst du zuerst bestimmen, ob der Spieler eine Einladung senden kann, da die Fähigkeit je nach Plattform oder Spieler:invariieren kann. Sobald dies bestätigt ist, kannst du die Einladungsanfrage dem Spieler:inanzeigen.
- Rufe SocialService:CanSendGameInviteAsync() , umgeben in einen pcall() , da es ein asynchrones Netzwerk-Anruf ist, der gelegentlich fehlen kann.
- Wenn die Einladungsfunktion bestätigt ist, rufen Sie SocialService:PromptGameInvite() mit dem optionalen Invite-Optionen-Objekt als zweiten Argument auf.
Nachdem der Spieler eine Anfrage gegeben hat, wird der Spieler eine On-Screen-Anfrage sehen, um mehrere Freunde einzuladen, oder den spezifischen Freund, der in dem Invite-Optionen-Objekt definiert ist. Wenn der Spieler dann auf die Schaltfläche Einladen für einen oder mehreren Freunden klickt, wird der Freund benachricht
Lokales Skript - Laden Sie mehrere Freunde ein
local SocialService = game:GetService("SocialService")
local Players = game:GetService("Players")
local player = Players.LocalPlayer
-- Funktion zum Überprüfen, ob der Spieler eine Einladung senden kann
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
Launch-Daten enthalten
Um die In-Experience-Kooperation weiter zu verbessern oder die Zusammenarbeit mit Spielern zu verbessern, kannst du Launch-Daten in eine Einladung einfügen, nützlich für Szenarien wie das Routen von eingeladenen Freunden zu einem koordinierten Ort oder die Personalisierung der Beitrittserfahrung für den Einladenden.
Wenn Sie eine Einladung anbieten, beinhalten Sie ein Class.ExperienceInviteOptions -Objekt mit relevanten Daten, die verwendet werden, wenn der Freund der Erlebnisbeitritt, z. B. den Sender-ExperienceInviteOptions , die ID eines Player.UserId zum
Lokales Skript - Laden Sie mehrere Freunde einlocal HttpService = game:GetService("HttpService")local SocialService = game:GetService("SocialService")local Players = game:GetService("Players")local player = Players.LocalPlayerlocal data = {senderUserID = player.UserId,spawnLocation = {12, 48, 205.5}}local launchData = HttpService:JSONEncode(data)-- Baue Einladungsmöglichkeiten mit Startdaten auflocal inviteOptions = Instance.new("ExperienceInviteOptions")inviteOptions.LaunchData = launchData-- Funktion zum Überprüfen, ob der Spieler eine Einladung senden kannlocal function canSendGameInvite(sendingPlayer)local success, canSend = pcall(function()return SocialService:CanSendGameInviteAsync(sendingPlayer)end)return success and canSendendlocal canInvite = canSendGameInvite(player)if canInvite thenSocialService:PromptGameInvite(player, inviteOptions)endFür eingehende Freunde, die über die Benachrichtigungenbeitreten, überprüfen Sie auf der Serverseite auf Player:GetJoinData() . Wenn Sie mehrere Datenstücke in JSON für die Einladungsparameter encodieren, denken Sie daran, sie mit JSONDecode() zu entschlüsseln.
Script - Verwendung von Einladungs-Launch-Datenlocal HttpService = game:GetService("HttpService")local Players = game:GetService("Players")local ATTEMPT_LIMIT = 10local RETRY_DELAY = 1local function onPlayerAdded(player)local launchDatafor _ = 1, ATTEMPT_LIMIT dotask.wait(RETRY_DELAY)local joinData = player:GetJoinData()if joinData.LaunchData ~= "" thenlaunchData = joinData.LaunchDatabreakendendif launchData thenlocal data = HttpService:JSONDecode(launchData)print(data.senderUserID)print(data.spawnLocation)elsewarn("No launch data received!")endendPlayers.PlayerAdded:Connect(onPlayerAdded)Wenn die Startdaten existieren, können Sie sie für eine Vielzahl von Design-Szenarien verwenden, einschließlich:
- Lass den kommenden Freund am Beginn einer herausfordernden Hindernisstrecke, die der Sender gerade abgeschlossen hat, basierend auf einer Koordinatenposition, die durch die Startdaten durchgegeben wurde, spawnen.
- Überprüfen Sie, ob der Sender an Ort ist, basierend auf seiner Player.UserId in der Launch-Daten und teleportieren Sie den Freund:inin der Nähe seines Charakters.