System nagrody za zaproszenie przyjaciela

*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.


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.
Wyskakujące okienko Zaproś znajomych i Nagrody za polecenie przyjaciół banner stanie się dostępny na początku 2025 r.

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:

  1. Ustaw RemoteEvent w ReplicatedStorage , aby utworzyć zdarzenie zdalne, aby komunikować się z klientem, gdy otrzymane zostanie polecenie odsyłania.
  2. 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