Sistema di ricompensa di invito di amici

*Questo contenuto è tradotto usando AI (Beta) e potrebbe contenere errori. Per visualizzare questa pagina in inglese, clicca qui.


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.
Il pop-up Invita gli amici e le ricompense di riferimento degli amici banner saranno disponibili all'inizio del 2025.

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:

  1. Configura un RemoteEvent in ReplicatedStorage per creare un evento remoto per comunicare con il client quando viene ricevuta una referenza.
  2. 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