Il sistema di raccomandazione degli amici incoraggia i giocatori esistenti a portare nuovi giocatori nella tua esperienza, aumentando la conservazione dei giocatori e l'Coinvolgimento/Impregnogenerale. I giocatori possono accedere e condividere link di raccomandazione da invito del giocatore alla tua esperienza o direttamente dal menu in-experience invite default.
Come sviluppatore, puoi utilizzare questi link di riferimento condivisi per:
- Traccia quali giocatori hanno invitato con successo altri giocatori nella tua esperienza.
- Traccia quali giocatori hanno partecipato alla tua esperienza utilizzando un invito di link di riferimento da un altro Giocatore.
- Crea e distribuisci ricompense a tutti gli invitati e invitati.
Per implementare un sistema di raccomandazione di amici, imposta un evento di raccomandazione e crea ricompense di raccomandazione. La proprietà ReferredByPlayerId di 2> Class.Player:GetJoinData()|GetJoinData()2> viene popol
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 ricevuto un riferimento.
- Recupera l'ID utente dell'invitatore usando ReferredByPlayerId per tracciare l'adesione 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 raccomandazioni
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
-- Controlla se il giocatore è stato invitato tramite un riferimento
if referredByPlayerId then
-- Fai in modo che l'evento di riferimento al client, passando l'ID dell'invitatore
referrerEvent:FireClient(player, referredByPlayerId)
-- Logica aggiuntiva per il premio per l'invitato e l'invitato può essere aggiunto qui
-- ad esempio, rewardReferrer (referredByPlayerId)
-- ad esempio, rewardInvitee(Giocatore)
end
end
-- Connetti la funzione all'evento PlayerAdded
Players.PlayerAdded:Connect(onPlayerAdded)
Ricompense di riferimento di grant
Per incoraggiare la partecipazione, concedere i premi sia agli invitati che agli ospiti. Ad esempio, puoi dare agli invitati un badge o valuta in-experience quando il loro amico si unisce all'esperienza e dare agli ospiti una ricompensa di benvenuto per aver partecipato all'esperienza tramite un Callegaredi riferimento.
local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
-- Crea o ottieni l'evento remoto per gestire le raccomandazioni
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
-- Controlla se il giocatore è stato invitato tramite un riferimento
if referredByPlayerId then
-- Fai in modo che l'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
-- Fornisci l'invitatore la sua ricompensa
-- Esempio: referrerPlayer.leaderstats.Coins.Value (+100)
end
end
-- Ricompensa l'invitato
function rewardInvitee(player)
-- Fornisci al richiedente la sua ricompensa
-- Esempio: Giocatore.leaderstats.WelcomeBonus.Value (+50)
end
end
end
-- Connetti la funzione all'evento PlayerAdded
Players.PlayerAdded:Connect(onPlayerAdded)
Gestisci la prevenzione degli abusi
Puoi implementare salvaguardie per impedire ai giocatori di sfruttare il sistema di raccomandazione degli amici.
- Offri ricompense una volta per tracciare gli invitati e assicurarti che siano ricompensati una sola volta.
- Introduci un periodo di tempo di recupero prima che un invitatore possa inviare un altro riferimento.
- Monitora l'attività insolita e implementa misure correttive come il ban degli utenti o la cancellazione delle ricompense.
-- Tavolo per tracciare i giocatori che sono già stati inviati
local referredPlayers = {}
function onPlayerAdded(player)
local joinData = player:GetJoinData()
local referredByPlayerId = joinData.ReferredByPlayerId
-- Controlla se il giocatore è stato invitato e non ha già utilizzato un riferimento
if referredByPlayerId and not referredPlayers[player.UserId] then
-- Segna il giocatore come riferito
referredPlayers[player.UserId] = true
-- Invitatore e invitato
rewardReferrer(referredByPlayerId)
rewardInvitee(player)
end
end