System poleceń przyjaciół zachęca istniejących graczy do przyprowadzania nowych graczy do twojej gry, zwiększając retencję graczy i ogólne zaangażowanie. Gracze mogą uzyskać dostęp do linków polecających i je udostępniać z podpowiedzi zaproszeń graczy lub bezpośrednio z domyślnego menu zaproszeń w grze.
Jako deweloper możesz tworzyć spersonalizowane banery, aby reklamować swój system nagród i używać linków polecających do:
- Śledzenia, którzy gracze skutecznie zaprosili innych graczy do twojej gry.
- Śledzenia, którzy gracze dołączyli do twojej gry za pomocą zaproszenia z linku polecającego od innego gracza.
- Tworzenia i dystrybucji nagród zarówno dla zapraszających, jak i zapraszanych.
Aby wdrożyć system poleceń, skonfiguruj zdarzenie polecenia i stwórz nagrody za polecenia w Studio. Właściwość ReferredByPlayerId obiektu GetJoinData() automatycznie wypełnia się dla wszystkich typów zaproszeń i daje dostęp do identyfikatora użytkownika zapraszającego gracza. Następnie możesz uzyskać dostęp do tych danych w zdarzeniu Players.PlayerAdded, aby zidentyfikować zapraszającego i przyznać nagrody zarówno zapraszającemu, jak i zapraszanemu.
function onPlayerAdded(player)
local referredByPlayerId = player:GetJoinData().ReferredByPlayerId
local referrerEvent: RemoteEvent = ReplicatedStorage:FindFirstChild("ReferralReceivedEvent")
referrerEvent:FireClient(player, referredByPlayerId)
end
Players.PlayerAdded:Connect(onPlayerAdded)Aby upewnić się, że gracze rozumieją system nagród, wdroż spersonalizowany baner nagród na górze swojego modalu zaproszeń przyjaciół, pokazując im szczegóły dotyczące nagród, które mogą zdobyć.
Skonfiguruj zdarzenie polecenia
Aby skonfigurować zdarzenie polecenia:
- Skonfiguruj RemoteEvent w ReplicatedStorage, aby utworzyć zdalne zdarzenie do komunikacji z klientem, gdy otrzymane zostanie polecenie.
- Pobierz identyfikator użytkownika zapraszającego za pomocą ReferredByPlayerId, aby śledzić dołączenia graczy i obsługiwać logikę polecenia w swoim skrypcie po stronie serwera podczas zdarzenia Players.PlayerAdded.
local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
-- Utwórz lub uzyskaj RemoteEvent do obsługi poleceń
local referrerEvent: RemoteEvent = ReplicatedStorage:FindFirstChild("ReferralReceivedEvent")
-- Funkcja, która uruchamia się, gdy gracz dołącza
function onPlayerAdded(player)
local joinData = player:GetJoinData()
local referredByPlayerId = joinData.ReferredByPlayerId
-- Sprawdź, czy gracz został zaproszony przez polecenie
if referredByPlayerId and referredByPlayerId ~= 0 then
-- Wyślij zdarzenie polecenia do klienta, przekazując identyfikator zapraszającego
referrerEvent:FireClient(player, referredByPlayerId)
-- Dodatkowa logika nagradzania zapraszającego i zapraszanego może być dodana tutaj
-- np. rewardReferrer(referredByPlayerId)
-- np. rewardInvitee(player)
end
end
-- Połącz funkcję z zdarzeniem PlayerAdded
Players.PlayerAdded:Connect(onPlayerAdded)Przyznaj nagrody za polecenia
Aby zachęcić do uczestnictwa, przyznaj nagrody zarówno zapraszającym, jak i zapraszanym. Na przykład, możesz przyznać zapraszającym odznakę lub walutę w grze, gdy ich przyjaciel dołączy do gry, a zapraszanym nagrodę powitalną za dołączenie do gry za pomocą linku polecającego.
local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
-- Utwórz lub uzyskaj RemoteEvent do obsługi poleceń
local referrerEvent: RemoteEvent = ReplicatedStorage:FindFirstChild("ReferralReceivedEvent")
-- Funkcja, która uruchamia się, gdy gracz dołącza
function onPlayerAdded(player)
local joinData = player:GetJoinData()
local referredByPlayerId = joinData.ReferredByPlayerId
-- Sprawdź, czy gracz został zaproszony przez polecenie
if referredByPlayerId and referredByPlayerId ~= 0 then
-- Wyślij zdarzenie polecenia do klienta, przekazując identyfikator zapraszającego
referrerEvent:FireClient(player, referredByPlayerId)
-- Nagradzaj zapraszającego
function rewardReferrer(referrerId)
local referrerPlayer = Players:GetPlayerByUserId(referrerId)
if referrerPlayer then
-- Przyznaj zapraszającemu jego nagrodę
-- Przykład: referrerPlayer.leaderstats.Coins.Value += 100
end
end
-- Nagradzaj zapraszanego
function rewardInvitee(player)
-- Przyznaj zapraszanemu jego nagrodę
-- Przykład: player.leaderstats.WelcomeBonus.Value += 50
end
end
end
-- Połącz funkcję z zdarzeniem PlayerAdded
Players.PlayerAdded:Connect(onPlayerAdded)Stwórz baner nagród
Banery nagród zachęcają użytkowników do zapraszania przyjaciół do dołączenia do twojej gry, pokazując im szczegóły dotyczące nagród za polecenia, które mogą zdobyć. Te banery są wyświetlane na górze twojego modalu zaproszeń przyjaciół.
Aby stworzyć spersonalizowany baner nagród:
- W Centrum Twórcy przejdź do Tworzenia i wybierz grę, dla której skonfigurowałeś zdarzenie polecenia.
- Przejdź do Zaangażowanie ⟩ Nagrody za polecenia.
- Kliknij Dodaj szczegóły nagrody.
- Na stronie Nagrody za polecenia:
- Zastąp domyślną ikonę obrazem, który reprezentuje twoją grę.
- Wprowadź nazwę nagrody, aby wyświetlić ją na banerze.
- Wybierz datę rozpoczęcia i zakończenia, w której chcesz pokazać baner graczom.
- OPCJONALNEWprowadź opis z szczegółami na temat nagrody.
- OPCJONALNEJeśli chcesz dodać ograniczenia nagród, wprowadź limit nagród. Na przykład, limit do 3 nagród na zapraszającego.
- Kliknij Zapisz, aby zapisać zmiany.
- Kliknij Opublikuj, aby baner był widoczny dla graczy.
Możesz stworzyć wiele różnych banerów, ale tylko jeden baner może być opublikowany i wyświetlany w danym czasie. Upewnij się, że opublikowany baner dokładnie opisuje system poleceń, który wdrożyłeś w Studio.
Zapobiegaj nadużywaniu systemu poleceń
Możesz wdrożyć zabezpieczenia, aby zapobiec wykorzystywaniu systemu poleceń przyjaciół.
- Oferuj jednorazowe nagrody, aby śledzić zapraszanych i upewnić się, że są nagradzani tylko raz.
- Wprowadź okres chłodzenia, zanim zapraszający będzie mógł złożyć kolejne polecenie.
- Monitoruj nietypową aktywność i wdrażaj środki zaradcze, takie jak banowanie użytkowników lub anulowanie nagród.
local DataStoreService = game:GetService("DataStoreService")
local Players = game:GetService("Players")
-- Utwórz lub uzyskaj magazyn danych dla poleceń
local referralDataStore = DataStoreService:GetDataStore("ReferralDataStore")
-- Funkcja do sprawdzania i oznaczania polecenia
local function onPlayerAdded(player)
local joinData = player:GetJoinData()
local referredByPlayerId = joinData.ReferredByPlayerId
-- Załaduj dane polecenia gracza
local success, alreadyReferred = pcall(function()
return referralDataStore:GetAsync(tostring(player.UserId))
end)
if not success then
warn("Nie udało się uzyskać danych polecenia dla gracza:", player.UserId)
return
end
if referredByPlayerId and referredByPlayerId ~= 0 and not alreadyReferred then
-- Nagradzaj zapraszającego i zapraszanego
rewardReferrer(referredByPlayerId)
rewardInvitee(player)
-- Oznacz gracza jako zaproszonego w magazynie danych
local saveSuccess, err = pcall(function()
referralDataStore:SetAsync(tostring(player.UserId), true)
end)
if not saveSuccess then
warn("Nie udało się zapisać statusu polecenia dla gracza:", player.UserId, err)
end
end
end
-- Połącz funkcję z dołączeniem gracza
Players.PlayerAdded:Connect(onPlayerAdded)Najczęściej zadawane pytania
Które gry mogą korzystać z tej funkcji?
Ta funkcja jest dostępna dla każdej gry, która była aktywna przez co najmniej jeden dzień i nie narusza Standardów Społeczności.
Którzy gracze mogą korzystać z poleceń?
Wszyscy gracze mogą zdobywać nagrody za pomocą poleceń.
Czy zaproszenie jest ograniczone do przyjaciół gracza na Robloxie?
Nie, gracze mogą wysyłać zaproszenia do przyjaciół, z którymi jeszcze nie są połączeni na platformie Roblox.
Czy link polecający wygasa?
Link nigdy nie wygasa.
Jak mogę maksymalnie wykorzystać tę funkcję?
Możesz dodać przycisk w grze, aby reklamować system poleceń, zachęcając graczy do korzystania z poleceń. Następnie możesz nadać przyciskowi opisowy tytuł i połączyć zdarzenie kliknięcia przycisku z modalem zaproszeń przyjaciół, gdzie gracze mogą zobaczyć baner nagród.