O sistema de indicação de amigos incentiva jogadores existentes a trazer novos jogadores para sua experiência, aumentando a retenção e o envolvimento geral. Os jogadores podem acessar e compartilhar links de indicação diretamente do menu de convite de jogador ou diretamente do menu de engajamento padrão.
Como desenvolvedor, você pode usar esses links de referência compartilháveis para:
- Rastreie quais jogadores convidaram outros jogadores com sucesso para sua experiência.
- Rastreie quais jogadores se juntaram à sua experiência usando um convite de link de referência de outro jogador.
- Crie e distribua recompensas aos convidados e convidantes.
Para implementar um sistema de indicação de amigos, crie um evento de indicação e crie recompensas de indicação. A propriedade ReferredByPlayerId de 2> Class.Player:GetJoinData()|GetJoinData()2> é ativ
function onPlayerAdded(player)
local referredByPlayerId = player:GetJoinData().ReferredByPlayerId
local referrerEvent: RemoteEvent = ReplicatedStorage:FindFirstChild("ReferralReceivedEvent")
referrerEvent:FireClient(player, referredByPlayerId)
end
Players.PlayerAdded:Connect(onPlayerAdded)
Configurar um Evento de Referência
Para configurar um evento de referência:
- Configure um RemoteEvent em ReplicatedStorage para criar um evento remoto para se comunicar com o cliente quando um referência for recebida.
- Recupere o ID do usuário do convidado usando ReferredByPlayerId para rastrear a entrada do jogador e lidar com a lógica de referência em seu script do lado do servidor durante o evento Players.PlayerAdded.
local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
-- Crie ou obtenha o RemoteEvent para lidar com referências
local referrerEvent: RemoteEvent = ReplicatedStorage:FindFirstChild("ReferralReceivedEvent")
-- Função que é acionada quando um jogador se junta
function onPlayerAdded(player)
local joinData = player:GetJoinData()
local referredByPlayerId = joinData.ReferredByPlayerId
-- Verifique se o jogador foi convidado por meio de um referência
if referredByPlayerId then
-- Gere o evento de referência para o cliente, passando o ID do convidado
referrerEvent:FireClient(player, referredByPlayerId)
-- Logic adicional para recompensar convidado e convidado pode ser adicionado aqui
-- e.g., rewardReferrer(referredByPlayerId)
-- Exemplo: rewardInvitee(jogador)
end
end
-- Conecte a função ao evento PlayerAdded
Players.PlayerAdded:Connect(onPlayerAdded)
Recompensas de Indicação
Para incentivar a participação, conceder recompensas a ambos os convidados e convidados. Por exemplo, você pode dar recompensas aos convidados quando seu amigo se juntar à experiência e dar recompensas de boas-vindas aos convidados que se juntarem à experiência através de um víncular / conectarde referência.
local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
-- Crie ou obtenha o RemoteEvent para lidar com referências
local referrerEvent: RemoteEvent = ReplicatedStorage:FindFirstChild("ReferralReceivedEvent")
-- Função que é acionada quando um jogador se junta
function onPlayerAdded(player)
local joinData = player:GetJoinData()
local referredByPlayerId = joinData.ReferredByPlayerId
-- Verifique se o jogador foi convidado por meio de um referência
if referredByPlayerId then
-- Gere o evento de referência para o cliente, passando o ID do convidado
referrerEvent:FireClient(player, referredByPlayerId)
-- Recompense o convidado
function rewardReferrer(referrerId)
local referrerPlayer = Players:GetPlayerByUserId(referrerId)
if referrerPlayer then
-- Conceder o convidado a sua recompensa
-- Exemplo: referrerPlayer.leaderstats.Coins.Value (+100)
end
end
-- Recompense o convidado
function rewardInvitee(player)
-- Conceder o convidado a sua recompensa
-- Exemplo: jogador.leaderstats.WelcomeBonus.Value (+50)
end
end
end
-- Conecte a função ao evento PlayerAdded
Players.PlayerAdded:Connect(onPlayerAdded)
Gerenciar Prevenção de Abuso
Você pode implementar salvaguardas para impedir que os jogadores explitem o sistema de indicação de amigos.
- Ofereça recompensas únicas para rastrear convidados e certifique-se de que eles só serão recompensados uma vez.
- Introduz um período de espera antes que um convidado possa enviar outro referência.
- Monitore atividades incomuns e implemente medidas correativas, como banir usuários ou cancelar recompensas.
-- Tabela para rastrear jogadores que já foram encaminhados
local referredPlayers = {}
function onPlayerAdded(player)
local joinData = player:GetJoinData()
local referredByPlayerId = joinData.ReferredByPlayerId
-- Verifique se o jogador foi convidado e ainda não usou um referral
if referredByPlayerId and not referredPlayers[player.UserId] then
-- Marque o jogador como referido
referredPlayers[player.UserId] = true
-- Convidado e Convidado
rewardReferrer(referredByPlayerId)
rewardInvitee(player)
end
end