朋友邀請獎勵系統

*此內容是使用 AI(Beta 測試版)翻譯,可能含有錯誤。若要以英文檢視此頁面,請按一下這裡


朋友推薦系統會勵勵現有玩家帶來新玩家,增加玩家保留和總體互動。玩家可以從 玩家邀請提示 或直接從預設在體驗中邀請選單中存取並分享推薦連結。

作為開發人員,您可以使用這些可分享的引用鏈接來:

  • 追蹤哪些玩家成功邀請其他玩家到您的體驗。
  • 追蹤哪些玩家使用其他玩家的推薦鏈邀請加入您的體驗。
  • 創建並分配獎勵給邀請者和受邀者。

邀請朋友 pop-up和 朋友推薦獎勵 橫幅將在2025年初推出。



要實現朋友推薦系統,請 設置一個推薦事件 和 創建推薦獎勵 。 ReferredByPlayerId 屬性的 2>Class.Player:GetJoin


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

設置一個推薦事件

要設置一個推薦事件:

  1. 設置 RemoteEventReplicatedStorage 以創建一個遠程事件來與客戶端通信,當收到一個指示時。
  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)
-- 例如:rewardInvitee(playe玩家)
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
-- 授予邀請者獎勵
-- 範例: referrerPlayer.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