Hệ thống phần thưởng mời bạn bè

*Nội dung này được dịch bằng AI (Beta) và có thể có lỗi. Để xem trang này bằng tiếng Anh, hãy nhấp vào đây.


Hệ thống giới thiệu bạn bè khuyến khích các người chơi hiện tại mang những người chơi mới vào trải nghiệm của bạn, tăng tỷ lệ giữ chân người chơi và tổng sự tham tương tác.Người chơi có thể truy cập và chia sẻ liên kết giới thiệu từ thông báo mời người chơi hoặc trực tiếp từ menu mời trải nghiệm mặc định.

Là một nhà phát triển, bạn có thể sử dụng các liên kết giới thiệu có thể chia sẻ này để:

  • Theo dõi những người chơi nào đã thành công mời người chơi khác vào trải nghiệm của bạn.
  • Theo dõi những người chơi đã tham gia trải nghiệm của bạn bằng lời mời liên kết giới thiệu từ người chơi khác.
  • Tạo và phân phối phần thưởng cho cả người mời và người được mời.
Cửa sổ bật lên Mời bạn bèPhần thưởng giới thiệu bạn bè sẽ có sẵn vào đầu năm 2025.

Để triển khai hệ thống giới thiệu bạn bè, thiết lập một sự kiện giới thiệutạo phần thưởng giới thiệu .Thuộc tính ReferredByPlayerId của GetJoinData() tự động điền vào tất cả các loại lời mời và cho bạn quyền truy cập vào ID người dùng của người chơi giới thiệu.Bạn có thể truy cập dữ liệu này trong sự kiện Players.PlayerAdded để xác định người mời và trao phần thưởng cho người mời và người được mời.


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

Thiết lập một sự kiện giới thiệu

Để thiết lập sự kiện giới thiệu:

  1. Thiết lập một RemoteEvent trong ReplicatedStorage để tạo một sự kiện remote để giao tiếp với khách hàng khi nhận được một lời giới thiệu.
  2. Lấy ID người dùng của người mời bằng cách sử dụng ReferredByPlayerId để theo dõi sự tham gia của người chơi và xử lý logic giới thiệu trong kịch bản bên máy chủ của bạn trong sự kiện Players.PlayerAdded.

local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
-- Tạo hoặc nhận RemoteEvent để xử lý giới thiệu
local referrerEvent: RemoteEvent = ReplicatedStorage:FindFirstChild("ReferralReceivedEvent")
-- Chức năng kích hoạt khi một người chơi tham gia
function onPlayerAdded(player)
local joinData = player:GetJoinData()
local referredByPlayerId = joinData.ReferredByPlayerId
-- Kiểm tra xem người chơi đã được mời qua giới thiệu hay không
if referredByPlayerId and referredByPlayerId ~= 0 then
-- Bắn sự kiện giới thiệu cho khách hàng, truyền ID của người mời
referrerEvent:FireClient(player, referredByPlayerId)
-- Logic bổ sung để thưởng cho người mời và người mời có thể được thêm vào đây
-- Ví dụ: rewardReferrer(referredByPlayerId)
-- Ví dụ:奖励邀请人(phần thưởngInvitee(người chơi))
end
end
-- Kết nối chức năng với sự kiện PlayerAdded
Players.PlayerAdded:Connect(onPlayerAdded)

Tặng phần thưởng giới thiệu

Để khuyến khích tham gia, trao phần thưởng cho cả người mời và người được mời.Ví dụ, bạn có thể cung cấp cho người mời một huy hiệu hoặc tiền trong kinh nghiệm khi bạn bè của họ tham gia kinh nghiệm, và tặng cho người mời phần thưởng chào mừng vì đã tham gia kinh nghiệm thông qua một liên kết giới thiệu.


local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
-- Tạo hoặc nhận RemoteEvent để xử lý giới thiệu
local referrerEvent: RemoteEvent = ReplicatedStorage:FindFirstChild("ReferralReceivedEvent")
-- Chức năng kích hoạt khi một người chơi tham gia
function onPlayerAdded(player)
local joinData = player:GetJoinData()
local referredByPlayerId = joinData.ReferredByPlayerId
-- Kiểm tra xem người chơi đã được mời qua giới thiệu hay không
if referredByPlayerId and referredByPlayerId ~= 0 then
-- Bắn sự kiện giới thiệu cho khách hàng, truyền ID của người mời
referrerEvent:FireClient(player, referredByPlayerId)
-- Thưởng cho người mời
function rewardReferrer(referrerId)
local referrerPlayer = Players:GetPlayerByUserId(referrerId)
if referrerPlayer then
-- Tặng người mời phần thưởng của họ
-- Ví dụ: referrerPlayer.leaderstats.Coins.Value += 100
end
end
-- Thưởng cho người mời
function rewardInvitee(player)
-- Tặng người mời phần thưởng của họ
-- Ví dụ: người chơi.leaderstats.WelcomeBonus.Value += 50
end
end
end
-- Kết nối chức năng với sự kiện PlayerAdded
Players.PlayerAdded:Connect(onPlayerAdded)

Quản lý ngăn chặn lạm dụng

Bạn có thể triển khai các biện pháp bảo vệ để ngăn chặn người chơi lạm dụng hệ thống giới thiệu bạn bè.

  • Cung cấp phần thưởng một lần để theo dõi những người được mời và đảm bảo rằng họ chỉ được thưởng một lần.
  • Giới thiệu thời gian chờ trước khi người mời có thể gửi lại một lời giới thiệu khác.
  • Theo dõi các hoạt động bất thường và thực hiện các biện pháp khắc phục như cấm người dùng hoặc hủy bỏ phần thưởng.

-- Bảng để theo dõi người chơi đã được giới thiệu
local referredPlayers = {}
function onPlayerAdded(player)
local joinData = player:GetJoinData()
local referredByPlayerId = joinData.ReferredByPlayerId
-- Kiểm tra xem người chơi đã được mời và chưa sử dụng giới thiệu hay chưa
if referredByPlayerId and referredByPlayerId ~= 0 and not referredPlayers[player.UserId] then
-- Đánh dấu người chơi như được đề cập
referredPlayers[player.UserId] = true
-- Người mời phần thưởng và người mời
rewardReferrer(referredByPlayerId)
rewardInvitee(player)
end
end