System polecania znajomych zachęca istniejących graczy do przynoszenia nowych graczy do twojego doświadczenia, zwiększając utrzymanie graczy i ogólne zaangażowanie.Gracze mogą uzyskać dostęp i udostępniać linki poleceń od menu zaproszeń gracza lub bezpośrednio z domyślnego menu zaproszeń w doświadczeniu.
Jako programista możesz używać tych udostępnianych linków poleceń do:
- Śledź, którzy gracze pomyślnie zaprosili innych graczy do swojego doświadczenia.
- Śledź, którzy gracze dołączyli do twojego doświadczenia za pomocą zaproszenia z linkiem polecającym od innego gracza.
- Twórz i rozdzielaj nagrody zarówno dla zapraszających, jak i zaproszanych.

Aby wdrożyć system poleceń przyjaciół, ustaw wydarzenie poleceń i stwórz nagrody za polecenia.Właściwość ReferredByPlayerId z witryny GetJoinData() automatycznie wypełnia wszystkie rodzaje zaproszeń i daje dostęp do ID użytkownika odsyłającego gracza.Następnie możesz uzyskać dostęp do tych danych w wydarzeniu Players.PlayerAdded, aby zidentyfikować zapraszającego i przyznać nagrody zapraszanemu i zapraszającemu.
function onPlayerAdded(player)
local referredByPlayerId = player:GetJoinData().ReferredByPlayerId
local referrerEvent: RemoteEvent = ReplicatedStorage:FindFirstChild("ReferralReceivedEvent")
referrerEvent:FireClient(player, referredByPlayerId)
end
Players.PlayerAdded:Connect(onPlayerAdded)
Ustaw wydarzenie polecające
Aby skonfigurować wydarzenie polecające:
- Ustaw RemoteEvent w ReplicatedStorage , aby utworzyć zdarzenie zdalne, aby komunikować się z klientem, gdy otrzymane zostanie polecenie odsyłania.
- Odzyskaj ID użytkownika zapraszającego za pomocą ReferredByPlayerId , aby śledzić dołączenia graczy i obsługiwać logikę poleceń w skrypcie po stronie serwera podczas wydarzenia Players.PlayerAdded.
local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
-- Stwórz lub zdobądź zdarzenie zdalne 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 za pośrednictwem polecenia
if referredByPlayerId and referredByPlayerId ~= 0 then
-- Wystrzel wydarzenie poleceń do klienta, przekazując ID zapraszającego
referrerEvent:FireClient(player, referredByPlayerId)
-- Dodatkowa logika nagradzania zapraszającego i zaproszanego może być dodana tutaj
-- np.: rewardReferrer(referredByPlayerId)
-- np.: rewardInvitee(gracz)
end
end
-- Połącz funkcję z wydarzeniem PlayerAdded
Players.PlayerAdded:Connect(onPlayerAdded)
Nagrody za polecenie przyznawania
Aby zachęcić do uczestnictwa, przyznaj nagrody zarówno dla zapraszających, jak i zaproszanych.Na przykład możesz dać organizatorom odznakę lub walutę w doświadczeniu, gdy ich znajomy dołączy do doświadczenia, i dać gościom nagrodę powitalną za dołączenie do doświadczenia za pośrednictwem łączyćpolecającego.
local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
-- Stwórz lub zdobądź zdarzenie zdalne 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 za pośrednictwem polecenia
if referredByPlayerId and referredByPlayerId ~= 0 then
-- Wystrzel wydarzenie poleceń do klienta, przekazując ID zapraszającego
referrerEvent:FireClient(player, referredByPlayerId)
-- Nagrodz invitera
function rewardReferrer(referrerId)
local referrerPlayer = Players:GetPlayerByUserId(referrerId)
if referrerPlayer then
-- Przyznaj zaproszonemu nagrodę
-- Przykład: referrerPlayer.leaderstats.Coins.Value += 100
end
end
-- Nagrodz gościa
function rewardInvitee(player)
-- Nagrodz invitowanego jego nagrodą
-- Przykład: gracz.leaderstats.WelcomeBonus.Value += 50
end
end
end
-- Połącz funkcję z wydarzeniem PlayerAdded
Players.PlayerAdded:Connect(onPlayerAdded)
Zarządzaj zapobieganiem nadużyciom
Możesz wdrożyć środki bezpieczeństwa, aby zapobiec wykorzystaniu przez graczy systemu poleceń przyjaciół.
- Zaoferuj jednorazowe nagrody, aby śledzić zaproszonych gości i upewnij się, że zostaną nagrodzeni tylko raz.
- Wprowadź okres odnowienia, zanim zaproszony może przedstawić kolejne polecenie referencyjne.
- Monitoruj niezwykłą aktywność i wdrażaj środki korygujące, takie jak zakazanie użytkowników lub anulowanie nagród.
-- Tabela, aby śledzić graczy, którzy już zostali skierowani
local referredPlayers = {}
function onPlayerAdded(player)
local joinData = player:GetJoinData()
local referredByPlayerId = joinData.ReferredByPlayerId
-- Sprawdź, czy gracz został zaproszony i nie użył już polecenia
if referredByPlayerId and referredByPlayerId ~= 0 and not referredPlayers[player.UserId] then
-- Oznacz gracza jako odwołany
referredPlayers[player.UserId] = true
-- Nagrodzony zapraszacz i zaproszony
rewardReferrer(referredByPlayerId)
rewardInvitee(player)
end
end