Zaproś gracza

*Ta zawartość została przetłumaczona przy użyciu narzędzi AI (w wersji beta) i może zawierać błędy. Aby wyświetlić tę stronę w języku angielskim, kliknij tutaj.

Oprócz zwykłych metod promocji służących do zwiększenia swojej bazy graczy, możesz wdrożyć zaproszenia do zaproszeń bezpośrednio w swoim doświadczeniu, zachęcając graczy do zaproszenia znajomych i zwiększenia współpracy w rozgrywka.

System zaproszeń ma obserwujefunkcje:

  • Dynamiczni zaproszeni — Zaproś graczy z listy wyboru wielu przyjaciół lub zaproś jednego konkretnego znajomy.
  • Launch Data — Włącz opcjonalne dane startowe, które można przeczytać poprzez Player:GetJoinData() , gdy zaproszony przyjaciel dołącza. Przykładowe wypadki użycia obejmują przekierowanie zaproszonych przyjaciół na lokalizację koordynat lub personalizację doświadczenia łączenia dla zaproszonego.
  • Napiszczalny tekst — Napiszczalny tekst można ściągnąć z wiadomości Zaproś i wiadomości Powiadomienie. Na przykład zaproszenie dla gracza może czytać „Zapytaj swoich przyjaciół, aby dołączyli do przygodowe!”, a wiadomość dla zaproszonego znajomymoże czytać "displayName chce, aby dołączy

Możesz również śledzić i nagradzać gości zaproszonych za pomocą Systemu nagradzania gości zaproszonych.

Zaproś wielu przyjaciół
Zaproś specjalnego przyjaciela

Ustawienia zaproszeń

Domyślnie zaproszenie dla gracza pokazuje menu jego przyjaciół z zaproś przyciskami. Aby dostosować wiadomość zaproszenia, celuj się na określonego znajomylub włącz dane o uruchomieniu w zaproszeniu, będziesz musiał ustawić obiekt ExperienceInviteOptions z wymaganymi właściwościami.

WłasnośćTypOpis
PromptMessageciągNiestandardowy tekst pokazany na zaproszeniu gracza do wysyłania, na przykład "Zapytaj swoich przyjaciół, aby dołączyli do przygodowe!" dla wielu zaproszeń przyjaciół, lub "Zaproś tego przyjaciela, aby dołączył do przygodowe!" dla określnego zaproszenia przyjaciela. Uwaga, że jeśli twoje zaproszenie do wysyłania jest długość do przekroczenia granic UI, nie będzie pokazany.
InviteUserliczbaRoblox UserId znajomego specjalnie zaproszonego; jeśli nie zostanie to zapewnione, gracz będzie proszony o wybór z listy znajomych.
InviteMessageIdciągIdentyfikator zasobu, który mapuje się na powiadomienie wpisywaćzasobu. Ten identyfikator jest używany do przechowywania/lokalizacji niestandardowej linii dla powiadomienia zaproszenia, które otrzymują przyjaciele. Zobacz Ustawienia Opcji Powiadomienia dla szczegółów.
LaunchDataciągUżywany do ustawienia parametru w Player:GetJoinData() , gdy przyjaciel dołącza z powiadomienie. Maksymalnie 200 znaków. Zobacz włączającym dane o uruchomieniu dla przykładu użycia.
Lokalny Skrypt - Zaproś Wielu Przyjaciół

local SocialService = game:GetService("SocialService")
local Players = game:GetService("Players")
local player = Players.LocalPlayer
-- Konstruuj zaproszenia przy użyciu niestandardowego wiadomość
local inviteOptions = Instance.new("ExperienceInviteOptions")
inviteOptions.PromptMessage = "Ask your friends to join the adventure!"

Ustawienia Opcji Notyfikacji

Domyślnie zaproszenie, które otrzymują przyjaciele, zawiera zaproszenie nadawcy, nazwa użytkownikai imię doświadczenia. Aby dostosować wiadomość, możesz utworzyć DisplayName na karcie Twórcy i włączyć jego ID jako parametru Class.ExperienceInviteOptions.

  1. Przejdź do Panelu twórcy.

  2. Podobnie jak w przypadku nagrody, wiążą się wiążą się wiążą się wiążą się wiążą się wiążą się wiążą się wiążą się wiążą się wiążą się wiążą się wiążą się wiążą się wiążą się wiążą się wiążą się wiążą się wiążą się wiążą się wiążą się wiążą się wiążą się wiążą się wiążą się wiążą się wiążą się wiążą się wiążą się wiążą się wiążą się wiążą się wiążą się wiążą się wiążą się w

  3. W lewej kolumnie, pod zaangażowanie, kliknij Powiadomienia.

  4. W regionie centralnym, kliknij przycisk Utwórz Strumień Powiadomień .

  5. Wypełnij identyfikator (tylko dla ciebie widoczny) i tekst personalizowanej notyfikacji. Uwaga, musisz włączyć playerName jako miejsce wymiaru dla zaproszonych przyjaciół, a możesz opcjonalnie włączyć tekst DisplayName poprzez miejsce wymiaru.

    Struny powiadomienia przykładu:

    • displayName chce, abyś dołączył do ich przygody w experienceName!
    • displayName po prostu ukończył szósty etap experienceName. Czy możesz?
  6. Gdy będziesz gotowy, kliknij przycisk Utwórz Notatkę .

  7. Na stronie powiadomień kliknij przycisk dla powiadomienia i wybierz Kopiuj ID zasobu .

  8. W obiekcie ExperienceInviteOptions dla zaproszenia wpisz ID zasobu jako wartość właściwości InviteMessageId.

    Lokalny Skrypt - Zaproś Wielu Przyjaciół

    local SocialService = game:GetService("SocialService")
    local Players = game:GetService("Players")
    local player = Players.LocalPlayer
    -- Konstruuj zaproszenia z użyciem ID znajomy
    local inviteOptions = Instance.new("ExperienceInviteOptions")
    inviteOptions.InviteMessageId = "ef0e0790-e2e8-4441-9a32-93f3a5783bf1"

Prośba o zaproszenie

Aby zachęcić do zaproszenia, najpierw musisz określić, czy gracz może wysłać zaproszenie, ponieważ zdolność może się różnić w zależności od platformy lub gracza. Po potwierdzeniu możesz wyświetlić zaproszenie dla gracza.

  1. Zadzwoń do SocialService:CanSendGameInviteAsync() , zapakowane w pcall(), ponieważ jest to wewnętrzny wezwanie sieci, które czasami może się nie powodować.
  2. Jeśli zdolność zaproszenia zostanie potwierdzona, wezwij SocialService:PromptGameInvite() z opcjonalnym obiektem zaproszeń jako drugim argumentem.

Po zachęceniu gracza do zaproszenia wielu przyjaciół zobaczy on ekranowe powiadomienie, aby zaprosić wielu przyjaciół, lub Specjalne imię przyjaciela, nazwa użytkownikai DisplayName. Powiadomienia można dostos

Lokalny Skrypt - Zaproś Wielu Przyjaciół

local SocialService = game:GetService("SocialService")
local Players = game:GetService("Players")
local player = Players.LocalPlayer
-- Funkcja sprawdzenia, 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)
end

Włączone dane o uruchomieniu

Aby dalej poprawić współpracę w doświadczeniu lub zachęcić do zaproszeń graczy, możesz включить dane o uruchomieniu w wierszu zaproszenia, przydatnym dla scenariuszy takich jak przekierowanie zaproszonych przyjaciół do lokalizacji zaproszenia lub personalizacja doświadczenia przyłączenia dla zaproszonego.

  1. Kiedy żądasz zaproszenia, włącz ExperienceInviteOptions obiekt z odpowiednimi danymi, które zostaną użyte, gdy przyjaciel dołączy do doświadczenia, na przykład wysyłacz Class.Player.UserId

    Lokalny Skrypt - Zaproś Wielu Przyjaciół

    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)
    -- Konstruuj zaproszenia z danymi uruchomienia
    local inviteOptions = Instance.new("ExperienceInviteOptions")
    inviteOptions.LaunchData = launchData
    -- Funkcja sprawdzenia, 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, inviteOptions)
    end
  2. Dla przyjaciół, którzy dołączają poprzez powiadomienie, sprawdź dane o uruchomieniu na stronie serwera poprzez Player:GetJoinData(). Jeśli szyfrujesz wiele danych w JSON dla zaproszenia, pamiętaj o jego odczytaniu z użyciem JSONDecode().

    Skrypt - Korzystanie z danych zaproszenia

    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. Jeśli dane o uruchomieniu istnieją, możesz użyć go do szerokiej gamy scenariuszy projektowych, w tym:

    • Pojawь przyjaciela w początkach wyzwania, które przesyłacz właśnie ukończył, oparte na lokalizacji koordynat przekazanych poprzez dane uruchomienia.
    • Sprawdź, czy nadawca jest w miejsce, w oparciu o ich Player.UserId w danych uruchomienia, i teleportuj znakomitą postać znajomyw pobliżu ich znakomitego postaci.