Sistema di invito amico

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

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.
La finestra pop-up Invita amici e Ricompense di riferimento diventerà disponibile all'inizio del 2025.

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:

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