ระบบรางวัลการเชิญเพื่อน

*เนื้อหานี้แปลโดยใช้ AI (เวอร์ชัน Beta) และอาจมีข้อผิดพลาด หากต้องการดูหน้านี้เป็นภาษาอังกฤษ ให้คลิกที่นี่


ระบบแนะนำเพื่อนส่งเสริมให้ผู้เล่นที่มีอยู่นําผู้เล่นใหม่เข้าสู่ประสบการณ์ของคุณ เพิ่มการรักษาผู้เล่นและการมีส่วนร่วมโดยรวมผู้เล่นสามารถเข้าถึงและแชร์ลิงค์แนะนำจาก แจ้งเตือนการเชิญผู้เล่น หรือโดยตรงจากเมนูการเชิญปกติในประสบการณ์

ในฐานะนักพัฒนาคุณสามารถใช้ลิงก์อ้างอิงที่แชร์ได้เหล่านี้เพื่อ:

  • ติดตามผู้เล่นที่เชิญผู้เล่นอื่นสำเร็จในประสบการณ์ของคุณ
  • ติดตามผู้เล่นที่เข้าร่วมประสบการณ์ของคุณโดยใช้ลิงก์เชิญแนะนำจากผู้เล่นคนอื่น
  • สร้างและจัดส่งรางวัลให้กับทั้งผู้เชิญและผู้รับเชิญ
การเชิญเพื่อน ป๊อปอัพและ รางวัลการแนะนำเพื่อน แบนเนอร์จะมีให้ในต้นปี 2025

เพื่อใช้ระบบแนะนำเพื่อน, ตั้งค่าอีเวนต์การแนะนำ และ สร้างรางวัลการแนะนำคุณสมบัติ ReferredByPlayerId ของ GetJoinData() จะเติมอัตโนมัติสำหรับทุกประเภทของการเชิญและให้คุณเข้าถึงรหัสผู้ใช้ของผู้เล่นที่อ้างอิงจากนั้นคุณสามารถดูข้อมูลนี้ในอีเวนต์ Players.PlayerAdded เพื่อระบุผู้เชิญและมอบรางวัลให้กับผู้เชิญและผู้รับเชิญ


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 and referredByPlayerId ~= 0 then
-- ส่งอีเวนต์แนะนำไปยังไคลเอนต์โดยส่งรหัสผู้เชิญ
referrerEvent:FireClient(player, referredByPlayerId)
-- โลจิสเพิ่มเติมสำหรับการตอบแทนผู้เชิญและผู้รับสามารถเพิ่มได้ที่นี่
-- เช่น rewardReferrer(referredByPlayerId)
-- เช่น rewardInvitee(ผู้เล่น)
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 and referredByPlayerId ~= 0 then
-- ส่งอีเวนต์แนะนำไปยังไคลเอนต์โดยส่งรหัสผู้เชิญ
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)
-- ให้รางวัลแก่ผู้เชิญ
-- ตัวอย่าง: ผู้เล่น.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 referredByPlayerId ~= 0 and not referredPlayers[player.UserId] then
-- ทำเครื่องหมายผู้เล่นตามที่ระบุ
referredPlayers[player.UserId] = true
-- ผู้ชวนรางวัลและผู้รับเชิญ
rewardReferrer(referredByPlayerId)
rewardInvitee(player)
end
end