Sistema de invitación de amigos

*Este contenido se traduce usando la IA (Beta) y puede contener errores. Para ver esta página en inglés, haz clic en aquí.


El sistema de recomendación de amigos fomenta a los jugadores existentes a traer nuevos jugadores a su experiencia, aumentando la retención del jugador y el compromiso general. Los jugadores pueden acceder y compartir enlaces de recomendación desde invitaciones de jugador invitaciones o directamente desde el menú de invitación de experiencia por defecto.

Como desarrollador, puedes usar estos enlaces de referencia compartibles para:

  • Rastrea a los jugadores que han invitado con éxito a otros jugadores a tu experiencia.
  • Rastrea a los jugadores que se han unido a tu experiencia usando una invitación de enlace de otro jugador.
  • Crea y distribuye recompensas a los invitantes y a los invitados.
La ventana emergente de Invitar Amigos y Recompensas de Referencia de Amigos se lanzará en la primavera de 2025.

Para implementar un sistema de recomendación de amigos, configura un evento de recomendación y crea recompensas de recomendación . La propiedad ReferredByPlayerId de 2> Class.Player:GetJoinData()|GetJoinData()2>


function onPlayerAdded(player)
local referredByPlayerId = player:GetJoinData().ReferredByPlayerId
local referrerEvent: RemoteEvent = ReplicatedStorage:FindFirstChild("ReferralReceivedEvent")
referrerEvent:FireClient(player, referredByPlayerId)
end
Players.PlayerAdded:Connect(onPlayerAdded)

Configurar un evento de referencia

Para configurar un evento de referencia:

  1. Configura un RemoteEvent en ReplicatedStorage para crear un evento remoto para comunicarse con el cliente cuando se recibe una recomendación.
  2. Recupera el ID de usuario del invitado usando ReferredByPlayerId para rastrear la unión del jugador y manejar la lógica de recomendación en tu script del lado del servidor durante el evento Players.PlayerAdded .

local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
-- Cree o obtenga el evento remoto para manejar las recomendaciones
local referrerEvent: RemoteEvent = ReplicatedStorage:FindFirstChild("ReferralReceivedEvent")
-- Función que se activa cuando un jugador se une
function onPlayerAdded(player)
local joinData = player:GetJoinData()
local referredByPlayerId = joinData.ReferredByPlayerId
-- Consulta si el jugador fue invitado a través de una recomendación
if referredByPlayerId then
-- Inicia el evento de referencia al cliente, pasando el ID del invitador
referrerEvent:FireClient(player, referredByPlayerId)
-- Se puede añadir lógica adicional para recompensar a los invitados y a los invitados.
-- e.g., rewardReferrer(referredByPlayerId)
-- e.g., rewardInvitee(jugador)
end
end
-- Conecta la función al evento PlayerAdded
Players.PlayerAdded:Connect(onPlayerAdded)

Recompensas de Referencia

Para fomentar la participación, otorgue recompensas a los invitados y a los invitados. Por ejemplo, puede dar a los invitados una insignia o moneda de experiencia cuando su amigo se une a la experiencia, y puede dar a los invitados una recompensa de bienvenida por unirse a la experiencia a través de un enlazarde recomendación.


local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
-- Cree o obtenga el evento remoto para manejar las recomendaciones
local referrerEvent: RemoteEvent = ReplicatedStorage:FindFirstChild("ReferralReceivedEvent")
-- Función que se activa cuando un jugador se une
function onPlayerAdded(player)
local joinData = player:GetJoinData()
local referredByPlayerId = joinData.ReferredByPlayerId
-- Consulta si el jugador fue invitado a través de una recomendación
if referredByPlayerId then
-- Inicia el evento de referencia al cliente, pasando el ID del invitador
referrerEvent:FireClient(player, referredByPlayerId)
-- Recompensa al invitador
function rewardReferrer(referrerId)
local referrerPlayer = Players:GetPlayerByUserId(referrerId)
if referrerPlayer then
-- Otorga la recompensa al invitado
-- Ejemplo: referrerPlayer.leaderstats.Coins.Value (+100)
end
end
-- Recompensa al invitado
function rewardInvitee(player)
-- Otorga la invitación su recompensa
-- Ejemplo: jugador.leaderstats.WelcomeBonus.Value (+50)
end
end
end
-- Conecta la función al evento PlayerAdded
Players.PlayerAdded:Connect(onPlayerAdded)

Administrar prevención de abuso

Puede implementar medidas de seguridad para evitar que los jugadores exploten el sistema de recomendación de amigos.

  • Ofrece recompensas únicas para rastrear a los invitados y asegurarte de que solo sean recompensados una vez.
  • Introduce un período de tiempo de reutilización antes de que un invitador envíe otro referido.
  • Supervisa la actividad inusual y implementa medidas correctivas como el ban de usuarios o la cancelación de recompensas.

-- Tabla para rastrear jugadores que ya se han referido
local referredPlayers = {}
function onPlayerAdded(player)
local joinData = player:GetJoinData()
local referredByPlayerId = joinData.ReferredByPlayerId
-- Consulta si el jugador fue invitado y no ha utilizado una recomendación
if referredByPlayerId and not referredPlayers[player.UserId] then
-- Marca al jugador como se le ha atribuido
referredPlayers[player.UserId] = true
-- Invitador de recompensas y invitado
rewardReferrer(referredByPlayerId)
rewardInvitee(player)
end
end