朋友邀请奖励系统

*此内容使用人工智能(Beta)翻译,可能包含错误。若要查看英文页面,请点按 此处


朋友推荐系统鼓励现有玩家向您的体验带来新玩家,增加玩家的留存和总体参互动。玩家可以通过从 玩家邀请提示 或直接从默认在体验中邀请菜单中访问和分享推荐链接。

作为开发人员,您可以使用这些可分享的引用链接:

  • 跟踪哪些玩家成功邀请了其他玩家到您的体验。
  • 跟踪哪些玩家使用其他玩家的推荐链接邀请加入您的体验。
  • 创建和分配奖励给邀请者和邀请者。

邀请朋友弹出窗口和 朋友推荐奖励 banner将在2025年初推出。



要实现朋友推荐系统,请设置一个推荐事件和创建一个奖励。 ReferredByPlayerId 属性的 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)

设置一个推荐事件

要设置一个参考事件:

  1. RemoteEvent 中设置一个 ReplicatedStorage 来创建一个远程事件,与客户端通信,当收到参考。
  2. 使用 ReferredByPlayerId 来追踪玩家加入,并在服务器端脚本中处理参考机制在 Players.PlayerAdded 活动期间。

local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
-- 创建或获取处理反馈的远程事件
local referrerEvent: RemoteEvent = ReplicatedStorage:FindFirstChild("ReferralReceivedEvent")
-- 玩家加入时触发的函数
function onPlayerAdded(player)
local joinData = player:GetJoinData()
local referredByPlayerId = joinData.ReferredByPlayerId
-- 查看玩家是否通过推荐被邀请
if referredByPlayerId then
-- 向客户端发射指示事件,传递邀请者的 ID
referrerEvent:FireClient(player, referredByPlayerId)
-- 可以在此添加奖励邀请者和邀请者的逻辑
-- 例如:奖励转发器(rewardReferrer(referredByPlayerId))
-- 例如,奖励玩家请(player)
end
end
-- 将函数连接到 PlayerAdded 事件
Players.PlayerAdded:Connect(onPlayerAdded)

授予参考奖励

要鼓励参与,请向邀请者和邀请者授予奖励。例如,您可以给邀请者一个徽章或经验货币,当他们的朋友加入体验,并给邀请者一份欢迎奖励,加入体验通过推荐链关联。


local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
-- 创建或获取处理反馈的远程事件
local referrerEvent: RemoteEvent = ReplicatedStorage:FindFirstChild("ReferralReceivedEvent")
-- 玩家加入时触发的函数
function onPlayerAdded(player)
local joinData = player:GetJoinData()
local referredByPlayerId = joinData.ReferredByPlayerId
-- 查看玩家是否通过推荐被邀请
if referredByPlayerId then
-- 向客户端发射指示事件,传递邀请者的 ID
referrerEvent:FireClient(player, referredByPlayerId)
-- 奖励邀请者
function rewardReferrer(referrerId)
local referrerPlayer = Players:GetPlayerByUserId(referrerId)
if referrerPlayer then
-- 向邀请者授予他们的奖励
-- 示例:引用Player.leaderstats.Coins.Value + 100
end
end
-- 奖励邀请者
function rewardInvitee(player)
-- 向邀请者授予他们的奖励
-- 示例:玩家layer.leaderstats.WelcomeBonus.Value + 50
end
end
end
-- 将函数连接到 PlayerAdded 事件
Players.PlayerAdded:Connect(onPlayerAdded)

管理滥用防止

您可以实现保护措施,防止玩家滥用好友推荐系统。

  • 提供一次性奖励来追踪邀请人,并确保他们只有一次奖励。
  • 在邀请者提交另一个引导后,请介绍一个冷却期。
  • 监控不寻常的活动,并实施像封禁用户或取消奖励等纠正措施。

-- 用于追踪已经被推荐的玩家
local referredPlayers = {}
function onPlayerAdded(player)
local joinData = player:GetJoinData()
local referredByPlayerId = joinData.ReferredByPlayerId
-- 检查玩家是否被邀请,否则还没有使用一个推荐
if referredByPlayerId and not referredPlayers[player.UserId] then
-- 将玩家标记为参考
referredPlayers[player.UserId] = true
-- 奖励邀请者和邀请者
rewardReferrer(referredByPlayerId)
rewardInvitee(player)
end
end