Il sistema di riferimento degli amici incoraggia i giocatori esistenti a portare nuovi giocatori nella tua esperienza, aumentando la ritenzione dei giocatori e l'Coinvolgimento/Impregnogenerale.I giocatori possono accedere e condividere i link di riferimento da prompt di invito del giocatore o direttamente dal menu di invito predefinito in-experience.
Come sviluppatore, puoi utilizzare questi link di riferimento condivisibili per:
- Traccia i giocatori che hanno invitato con successo altri giocatori nella tua esperienza.
- Traccia quali giocatori si sono uniti alla tua esperienza utilizzando un invito di link di riferimento da un altro Giocatore.
- Crea e distribuisci ricompense a entrambi gli invitatori e gli invitati.

Per implementare un sistema di riferimento di amici, configura un evento di riferimento e crea ricompense di riferimento.La proprietà ReferredByPlayerId di GetJoinData() popola automaticamente per tutti i tipi di inviti e ti dà accesso all'ID utente del Giocatoredi riferimento.Puoi quindi accedere a questi dati nell'evento Players.PlayerAdded per identificare l'invitatore e concedere ricompense all'invitatore e all'invitato.
function onPlayerAdded(player)
local referredByPlayerId = player:GetJoinData().ReferredByPlayerId
local referrerEvent: RemoteEvent = ReplicatedStorage:FindFirstChild("ReferralReceivedEvent")
referrerEvent:FireClient(player, referredByPlayerId)
end
Players.PlayerAdded:Connect(onPlayerAdded)
Configura un evento di riferimento
Per configurare un evento di riferimento:
- Configura un RemoteEvent in ReplicatedStorage per creare un evento remoto per comunicare con il client quando viene ricevuta una referenza.
- Recupera l'ID utente dell'invitatore utilizzando ReferredByPlayerId per tracciare le adesioni del giocatore e gestire la logica di riferimento nel tuo script lato server durante l'evento Players.PlayerAdded.
local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
-- Crea o ottieni l'evento remoto per gestire le referenze
local referrerEvent: RemoteEvent = ReplicatedStorage:FindFirstChild("ReferralReceivedEvent")
-- Funzione che si attiva quando un giocatore si unisce
function onPlayerAdded(player)
local joinData = player:GetJoinData()
local referredByPlayerId = joinData.ReferredByPlayerId
-- Verifica se il giocatore è stato invitato attraverso un riferimento
if referredByPlayerId and referredByPlayerId ~= 0 then
-- Fai fuoco all'evento di riferimento al client, passando l'ID dell'invitatore
referrerEvent:FireClient(player, referredByPlayerId)
-- Logica aggiuntiva per ricompensare invitatore e invitato può essere aggiunta qui
-- e.g., rewardReferrer(referredByPlayerId)
-- ad esempio, rewardInvitee(Giocatore)
end
end
-- Connetti la funzione all'evento PlayerAdded
Players.PlayerAdded:Connect(onPlayerAdded)
Ricompense di riferimento concessione
Per incoraggiare la partecipazione, concedi premi a entrambi gli invitatori e gli invitati.Ad esempio, puoi dare ai promotori un badge o una valuta in-experience quando il loro amico si unisce all'esperienza e dare ai destinatari una ricompensa di benvenuto per aver partecipato all'esperienza attraverso un Callegaredi riferimento.
local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
-- Crea o ottieni l'evento remoto per gestire le referenze
local referrerEvent: RemoteEvent = ReplicatedStorage:FindFirstChild("ReferralReceivedEvent")
-- Funzione che si attiva quando un giocatore si unisce
function onPlayerAdded(player)
local joinData = player:GetJoinData()
local referredByPlayerId = joinData.ReferredByPlayerId
-- Verifica se il giocatore è stato invitato attraverso un riferimento
if referredByPlayerId and referredByPlayerId ~= 0 then
-- Fai fuoco all'evento di riferimento al client, passando l'ID dell'invitatore
referrerEvent:FireClient(player, referredByPlayerId)
-- Ricompensa l'invitatore
function rewardReferrer(referrerId)
local referrerPlayer = Players:GetPlayerByUserId(referrerId)
if referrerPlayer then
-- Concedi al mittente la sua ricompensa
-- Esempio: referrerPlayer.leaderstats.Coins.Value += 100
end
end
-- Premi l'invitato
function rewardInvitee(player)
-- Concedi al destinatario la sua ricompensa
-- Esempio: Giocatore.leaderstats.WelcomeBonus.Value += 50
end
end
end
-- Connetti la funzione all'evento PlayerAdded
Players.PlayerAdded:Connect(onPlayerAdded)
Gestire la prevenzione degli abusi
Puoi implementare salvaguardie per impedire ai giocatori di sfruttare il sistema di riferimento degli amici.
- Offri ricompense una sola volta per tracciare gli invitati e assicurati che vengano ricompensati solo una volta.
- Introduci un periodo di recupero prima che un invitatore possa inviare un altro riferimento.
- Monitora l'attività insolita e implementa misure correttive come il divieto di utenti o la cancellazione delle ricompense.
-- Tabella per tracciare i giocatori che sono già stati referiti
local referredPlayers = {}
function onPlayerAdded(player)
local joinData = player:GetJoinData()
local referredByPlayerId = joinData.ReferredByPlayerId
-- Verifica se il giocatore è stato invitato e non ha già utilizzato un riferimento
if referredByPlayerId and referredByPlayerId ~= 0 and not referredPlayers[player.UserId] then
-- Marca il giocatore come riferito
referredPlayers[player.UserId] = true
-- Invitatore e invitato di ricompensa
rewardReferrer(referredByPlayerId)
rewardInvitee(player)
end
end