Oprócz standardowych metod promocji mających na celu zwiększenie liczby graczy, możesz wdrożyć prośby o zaproszenie bezpośrednio w swojej grze, zachęcając graczy do zapraszania przyjaciół i zwiększania wspólnej zabawy.
System prośby o zaproszenie oferuje następujące funkcje:
- Dynamiczne zapraszane osoby — Zachęcaj graczy do zapraszania wielu przyjaciół z listy wyboru lub zapraszania jednego konkretnego przyjaciela.
- Dane uruchamiania — Dołącz opcjonalne dane uruchamiania, które można odczytać za pomocą Player:GetJoinData(), gdy zaproszony przyjaciel dołącza. Przykłady zastosowań obejmują kierowanie zaproszonych przyjaciół do konkretnej lokalizacji lub personalizowanie gra wchodzącą dla zapraszanego.
- Tekst do dostosowania — Dostosuj wiadomość zaproszenia oraz wiadomość powiadomienia. Na przykład, prośba o zaproszenie dla gracza może brzmieć "Poproś swoich przyjaciół o dołączenie do przygody!", a wiadomość powiadomienia dla zaproszonych przyjaciół może brzmieć "{displayName} chce, żebyś dołączył do jego przygody w {experienceName}!".
Możesz również śledzić i nagradzać osoby zapraszające oraz zapraszane, korzystając z Systemu Nagród za Zaproszenia Przyjaciół.

Ustawienia opcji zaproszenia
Domyślnie prośba o zaproszenie dla gracza pokazuje menu jego przyjaciół z przyciskami Zapraszam. Aby dostosować wiadomość prośby, wybrać konkretnego przyjaciela lub dołączyć dane uruchamiania do zaproszenia, musisz skonfigurować obiekt ExperienceInviteOptions z pożądanymi właściwościami.
| Właściwość | Typ | Opis |
|---|---|---|
| PromptMessage | string | Własny tekst wyświetlany w prośbie o zaproszenie dla wysyłającego gracza, na przykład "Poproś swoich przyjaciół o dołączenie do przygody!" dla zaproszeń do wielu przyjaciół lub "Zaprosij tego przyjaciela do dołączenia do przygody!" dla zaproszeń do konkretnego przyjaciela. Zauważ, że jeśli Twój własny tekst prośby o zaproszenie jest na tyle długi, że wychodzi poza granice UI, nie zostanie wyświetlony. |
| InviteUser | number | Roblox UserId konkretnego przyjaciela do zaproszenia; jeśli nie podano, gracz zostanie poproszony o wybranie z listy przyjaciół. |
| InviteMessageId | string | ID zasobu, który odpowiada typowi zasobu Powiadomienie. Ten zasób jest używany do przechowywania/lokalizacji własnego ciągu dla powiadomienia o zaproszeniu, które otrzymują przyjaciele. Zobacz Ustawianie opcji powiadomienia po szczegóły. |
| LaunchData | string | Używane do ustawienia parametru w Player:GetJoinData(), gdy przyjaciel dołącza z powiadomienia o zaproszeniu. Maksymalnie 200 znaków. Zobacz Dołącz dane uruchamiania aby poznać przykład użycia. |
local SocialService = game:GetService("SocialService")
local Players = game:GetService("Players")
local player = Players.LocalPlayer
-- Konstruowanie opcji zaproszenia z własnym komunikatem prośby
local inviteOptions = Instance.new("ExperienceInviteOptions")
inviteOptions.PromptMessage = "Poproś swoich przyjaciół o dołączenie do przygody!"Ustawienia opcji powiadomienia
Domyślnie powiadomienie o zaproszeniu, które otrzymują przyjaciele, zawiera DisplayName nadawcy, nazwę użytkownika oraz nazwę gry. Aby dostosować wiadomość, możesz utworzyć zasób Powiadomienie na Dashbordzie Kreatora i dołączyć jego ID zasobu jako parametr ExperienceInviteOptions.
Przejdź do Dashbordu Kreatora.
Podobnie jak w przypadku odznak, ciągi powiadomień są związane z konkretną grą. Znajdź miniaturkę tej gry i kliknij na nią.
W lewej kolumnie, w sekcji Zaangażowanie, kliknij Powiadomienia.
W centralnym regionie kliknij przycisk Utwórz ciąg powiadomienia.
Wypełnij nazwę identyfikatora (widoczną tylko dla Ciebie) oraz własny tekst powiadomienia. Zauważ, że musisz dołączyć {experienceName} jako miejsce na nazwę gry dla zapraszanych przyjaciół, a opcjonalnie możesz dołączyć DisplayName nadawcy poprzez zastąpienie {displayName}.
Przykłady ciągów powiadomień:
- {displayName} chce, żebyś dołączył do jego przygody w {experienceName}!
- {displayName} właśnie ukończył szósty etap {experienceName}. Czy potrafisz?
Gdy będziesz gotowy, kliknij przycisk Utwórz ciąg powiadomienia.
Na stronie powiadomień, w tabeli powiadomień, kliknij przycisk ⋯ w kolumnie Akcje i wybierz Skopiuj ID zasobu.
W obiekcie ExperienceInviteOptions dla prośby o zaproszenie wklej ID zasobu jako wartość właściwości InviteMessageId.
LocalScript - Zaproszenie wielu przyjaciółlocal SocialService = game:GetService("SocialService")local Players = game:GetService("Players")local player = Players.LocalPlayer-- Konstruowanie opcji zaproszenia z ID użytkownika przyjacielalocal inviteOptions = Instance.new("ExperienceInviteOptions")inviteOptions.InviteMessageId = "ef0e0790-e2e8-4441-9a32-93f3a5783bf1"
Prośba o zaproszenie
Aby zaproponować zaproszenie, najpierw musisz ustalić, czy gracz może wysłać zaproszenie, ponieważ ta zdolność może się różnić w zależności od platformy lub gracza. Po potwierdzeniu, możesz wyświetlić graczowi prośbę o zaproszenie.
- Wywołaj SocialService:CanSendGameInviteAsync(), owiniętą w pcall(), ponieważ jest to asynchroniczne wywołanie sieciowe, które może od czasu do czasu zawieść.
- Jeśli potwierdzono możliwość zaproszenia, wywołaj SocialService:PromptGameInvite() z opcjonalnym obiektem opcji zaproszenia jako drugim argumentem.
Gdy zaproszenie zostanie zaproponowane, gracz zobaczy na ekranie prośbę o zaproszenie wielu przyjaciół lub konkretnego przyjaciela zdefiniowanego w obiekcie opcji zaproszenia. Gdy gracz kliknie przycisk Zapraszam dla jednego lub więcej przyjaciół, ci przyjaciele otrzymają powiadomienie zawierające DisplayName, nazwę użytkownika oraz nazwę doświadczenia. Powiadomienia mogą być dalej dostosowywane zgodnie z opisem w Ustawienia opcji powiadomienia.
local SocialService = game:GetService("SocialService")
local Players = game:GetService("Players")
local player = Players.LocalPlayer
-- Funkcja sprawdzająca, czy gracz może wysłać zaproszenie
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)
endDołącz dane uruchamiania
Aby jeszcze bardziej poprawić współpracę w grze lub zachęcić do zaproszeń graczy, możesz dołączyć dane uruchamiania do prośby o zaproszenie, co jest przydatne w scenariuszach takich jak kierowanie zapraszanych przyjaciół do konkretnej lokalizacji lub personalizowanie gry dołączającej dla zapraszanych.
Przy proponowaniu zaproszenia dołącz obiekt ExperienceInviteOptions z odpowiednimi danymi, które będą używane, gdy przyjaciel dołączy do gry, na przykład ID użytkownika nadawcy, ID odznaki, która zostanie przyznana przyjacielowi po dołączeniu, lub lokalizację współrzędnych, w której zostanie stworzony przyjaciel. Jeśli musisz połączyć wiele elementów danych, zakoduj je, używając JSONEncode().
LocalScript - Zaproszenie wielu przyjaciółlocal 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)-- Konstruowanie opcji zaproszenia z danymi uruchamianialocal inviteOptions = Instance.new("ExperienceInviteOptions")inviteOptions.LaunchData = launchData-- Funkcja sprawdzająca, czy gracz może wysłać zaproszenielocal 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)endDla przyjaciół, którzy dołączają do powiadomienia, sprawdź dane uruchamiania po stronie serwera za pomocą Player:GetJoinData(). Jeśli zakodowałeś wiele elementów danych w formacie JSON do prośby o zaproszenie, pamiętaj, aby je dekodować za pomocą JSONDecode().
Script - Użycie danych uruchamiania zaproszenialocal 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("Brak danych uruchamiania!")endendPlayers.PlayerAdded:Connect(onPlayerAdded)Jeśli dane uruchamiania istnieją, możesz je wykorzystać w szerokim zakresie scenariuszy projektowych, w tym:
- Stworzyć przybyłego przyjaciela na początku trudnego toru przeszkód, który nadawca właśnie ukończył, w oparciu o lokalizację współrzędnych przekazaną w danych uruchamiania.
- Sprawdzić, czy nadawca znajduje się w miejscu, na podstawie jego Player.UserId w danych uruchamiania, i teleportować postać przyjaciela w pobliżu postaci nadawcy.