System poleceń znajomych zachęca istniejące gracze do przynoszenia nowych graczy do swojego doświadczenia, zwiększając retencję graczy i ogólne zaangażowanie. Gracze mogą uzyskać dostęp i dzielić się linkami polecenia z zaproszeń graczy lub bezpośrednio z menu zaproszeń w grze.
Jako rozwójca możesz używać tych współdzielnych linków do:
- Śledź, którzy gracze z sukcesem zaprosili innych graczy do twojego doświadczenia.
- Śledź, którzy gracze dołączyli do twojego doświadczenia za pośrednictwem zaproszenia do dołączenia poprzez link polecenia od innego gracza.
- Twórz i rozdawaj nagrody zarówno dla zaproszonych, jak i zaproszonych.
Aby zaimplementować system polecenia gracz, zorganizuj wydarzenie poleceniowe i utwórz nagrody za polecenie. Właściwość ReferredByPlayerId z wartości 2> Class.Player:GetJoinData()|GetJoin
function onPlayerAdded(player)
local referredByPlayerId = player:GetJoinData().ReferredByPlayerId
local referrerEvent: RemoteEvent = ReplicatedStorage:FindFirstChild("ReferralReceivedEvent")
referrerEvent:FireClient(player, referredByPlayerId)
end
Players.PlayerAdded:Connect(onPlayerAdded)
Zorganizuj wydarzenie poleceniowe
Aby ustawić wydarzenie referencji:
- Ustaw RemoteEvent w ReplicatedStorage, aby utworzyć zdalne wydarzenie do komunikacji z klientem, gdy otrzymuje się odniesienie.
- Odzyskaj ID użytkownika zaprosiciela używając ReferredByPlayerId aby śledzić dołączenie gracza i zarządzać logiką referencji w twoim serwerowym skrypcie podczas wydarzenia Players.PlayerAdded .
local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
-- Utwórz lub uzyskaj zdarzeń zdalnych do przetwarzania odniesień
local referrerEvent: RemoteEvent = ReplicatedStorage:FindFirstChild("ReferralReceivedEvent")
-- Funkcja, która zostaje wywołana, gdy gracz dołącza
function onPlayerAdded(player)
local joinData = player:GetJoinData()
local referredByPlayerId = joinData.ReferredByPlayerId
-- Sprawdź, czy gracz został zaproszony poprzez polecenie
if referredByPlayerId then
-- Zainicjuj wydarzenie poleceniowe dla klienta, przekazując ID zaproszającego
referrerEvent:FireClient(player, referredByPlayerId)
-- Dodatkowa logika dla nagradzania zaproszonych i zaproszonych może być dodaна tutaj
-- e.g., rewardReferrer(referredByPlayerId)
-- e.g., rewardInvitee(gracz)
end
end
-- Połącz funkcję z wydarzeniem PlayerAdded
Players.PlayerAdded:Connect(onPlayerAdded)
Nagrody za referencje
Aby zachęcić do udziału, oferuj nagrody zarówno dla zaproszonych, jak i dla zaproszonych. Na przykład możesz dać zaproszonym nagrodę za doświadczenie lub walutę w grze w wymianie, gdy ich przyjaciel dołącza do doświadczenia poprzez łączyćpolecenia.
local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
-- Utwórz lub uzyskaj zdarzeń zdalnych do przetwarzania odniesień
local referrerEvent: RemoteEvent = ReplicatedStorage:FindFirstChild("ReferralReceivedEvent")
-- Funkcja, która zostaje wywołana, gdy gracz dołącza
function onPlayerAdded(player)
local joinData = player:GetJoinData()
local referredByPlayerId = joinData.ReferredByPlayerId
-- Sprawdź, czy gracz został zaproszony poprzez polecenie
if referredByPlayerId then
-- Zainicjuj wydarzenie poleceniowe dla klienta, przekazując ID zaproszającego
referrerEvent:FireClient(player, referredByPlayerId)
-- Nagroda gościa
function rewardReferrer(referrerId)
local referrerPlayer = Players:GetPlayerByUserId(referrerId)
if referrerPlayer then
-- Daj gościom nagrodę za zaproszenie
-- Przykład: referPlayer.leaderstats.Coins.Value (+100)
end
end
-- Nagroda gościa
function rewardInvitee(player)
-- Daj gościowi 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żyć
Możesz zaimplementować zabezpieczenia, aby zapobiec graczom wykorzystywaniu systemu polecenia przyjaciół.
- Oferuj jednorazowe nagrody, aby śledzić zaproszonych gości i upewnić się, że są nagradzani tylko raz.
- Wprowadź okres regeneracji, zanim wysłannik może złożyć kolejne zgłoszenie.
- Monitoruj nieprawid?owe dzia?anie i wdra?aj korektywne mierzenia, takie jak zbanowanie u?ytkowników lub anulowanie nagród.
-- Tabela do śledzenia graczy, którzy zostały już zgłoszeni
local referredPlayers = {}
function onPlayerAdded(player)
local joinData = player:GetJoinData()
local referredByPlayerId = joinData.ReferredByPlayerId
-- Sprawdź, czy gracz został zaproszony i nie użył już referencji
if referredByPlayerId and not referredPlayers[player.UserId] then
-- Zaznacz gracza jako odniesiony
referredPlayers[player.UserId] = true
-- Zachętuj zaproszonych i zaproszonych
rewardReferrer(referredByPlayerId)
rewardInvitee(player)
end
end