เหรียญรางวัล (badge) เป็นรางวัลพิเศษที่คุณสามารถมอบให้ผู้เล่นเมื่อพวกเขาบรรลุเป้าหมายภายในเกมของคุณ เช่น การทำภารกิจที่ยากลำบากให้สำเร็จหรือการเล่นเป็นระยะเวลาหนึ่ง เมื่อผู้เล่นได้รับเหรียญรางวัล มันจะแสดงอยู่ในหมวด เหรียญรางวัล ของคลังของพวกเขา

สร้างเหรียญรางวัล
คุณสามารถสร้างเหรียญรางวัลได้สูงสุด 5 เหรียญฟรีในระยะเวลา 24 ชั่วโมง (GMT) สำหรับแต่ละเกมที่คุณเป็นเจ้าของ หากคุณต้องการสร้างมากกว่านี้ในระยะเวลา 24 ชั่วโมง จะมีค่าใช้จ่ายเหรียญรางวัลเพิ่มเติมแต่ละเหรียญ 100 Robux
ในการสร้างเหรียญรางวัล:
ไปที่ Creator Dashboard
เลื่อนเมาส์ไปที่ภาพขนาดย่อของเกม คลิกที่ปุ่ม ⋯ และเลือก สร้างเหรียญรางวัล.

ในหน้าสร้าง คลิกที่ปุ่ม อัปโหลดภาพ และจากนั้นเลือก/ยืนยันภาพที่คุณต้องการใช้เป็นไอคอนของเหรียญรางวัล เมื่อสร้างภาพเพื่อใช้สำหรับเหรียญรางวัล ให้พิจารณาดังต่อไปนี้:
ใช้เทมเพลตขนาด 512×512 พิกเซล.
กระบวนการอัปโหลดจะตัดและครอบภาพเหรียญรางวัลให้เป็นไอคอนวงกลม ดังนั้นควรหลีกเลี่ยงการใส่รายละเอียดที่สำคัญนอกขอบเขตวงกลม


กรอกข้อมูลในฟิลด์ต่อไปนี้:
- ชื่อ — ชื่อสำหรับเหรียญรางวัล
- คำอธิบาย — คำอธิบายเกี่ยวกับสิ่งที่ผู้เล่นสามารถทำเพื่อรับเหรียญรางวัล
- เหรียญรางวัลเปิดใช้งาน — ว่าเหรียญรางวัลจะเปิดใช้งานเมื่อสร้างหรือไม่ เหรียญรางวัลที่ปิดใช้งานจะไม่แสดงในส่วน เหรียญรางวัล ของหน้าหลักของเกมและไม่สามารถได้รับจากผู้เล่น
คลิกที่ปุ่ม สร้างเหรียญรางวัล เหรียญรางวัลใหม่จะแสดงอยู่ในส่วน การมีส่วนร่วม ⟩ เหรียญรางวัล บน Creator Dashboard หากเหรียญรางวัลใหม่เปิดใช้งาน มันจะถูกแสดงในส่วน เหรียญรางวัล ของหน้าหลักของเกมด้วย

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

ในหน้าจัดเรียงใหม่ ให้ลากและวางเหรียญรางวัลตามลำดับที่ต้องการ

เลือก บันทึก เพื่อบันทึกลำดับนี้ ลำดับที่กำหนดควรปรากฏในหน้ารายละเอียดเกม
สคริปต์เหรียญรางวัล
การทำงานของสคริปต์เหรียญรางวัลทั่วไปประกอบด้วย การมอบเหรียญรางวัล, การตรวจสอบว่าผู้เล่นเคย ได้รับ เหรียญรางวัลในเกมของคุณหรือไม่ และ การดึงข้อมูลเหรียญรางวัล
ค้นหา ID ของเหรียญรางวัล
ID ของเหรียญรางวัลคือรหัสประจำตัวที่ไม่ซ้ำกัน คุณจะต้องใช้ ID นี้เมื่อดำเนินการทำงานเช่น การมอบเหรียญรางวัล ให้กับผู้เล่น
บน Creator Dashboard ให้ไปที่ส่วน เหรียญรางวัล ของเกมที่เกี่ยวข้องภายใต้ การมีส่วนร่วม
เลื่อนเมาส์ไปที่ภาพขนาดย่อของเหรียญรางวัล คลิกที่ปุ่ม ⋯ และเลือก คัดลอก Asset ID จากเมนูบริบท

มอบเหรียญรางวัล
คุณสามารถมอบเหรียญรางวัลให้กับผู้เล่นตลอดทั้งเกมของคุณโดยการเรียกใช้เมธอด BadgeService:AwardBadgeAsync() ใน Script ฝั่งเซิร์ฟเวอร์ เมธอด BadgeService:GetBadgeInfoAsync() จะส่งคืนคุณสมบัติของเหรียญรางวัล รวมถึง IsEnabled ซึ่งยืนยันว่าเหรียญรางวัลสามารถมอบให้กับผู้เล่นได้หรือไม่ คุณสามารถเปิดหรือปิดเหรียญรางวัลจากแบบฟอร์ม กำหนดค่าเหรียญรางวัล บน Creator Dashboard
ต่อไปนี้คือตัวอย่างฟังก์ชันที่ปลอดภัยสำหรับการมอบเหรียญรางวัลให้กับผู้เล่น
local BadgeService = game:GetService("BadgeService")
local function awardBadge(player, badgeId)
-- ดึงข้อมูลเหรียญรางวัล
local success, badgeInfo = pcall(function()
return BadgeService:GetBadgeInfoAsync(badgeId)
end)
if success then
-- ยืนยันว่าเหรียญรางวัลสามารถมอบให้ได้
if badgeInfo.IsEnabled then
-- มอบเหรียญรางวัล
local awarded, errorMessage = pcall(BadgeService.AwardBadgeAsync, BadgeService, player.UserId, badgeId)
if not awarded then
warn("เกิดข้อผิดพลาดขณะมอบเหรียญรางวัล:", errorMessage)
end
end
else
warn("เกิดข้อผิดพลาดขณะดึงข้อมูลเหรียญรางวัล: " .. badgeInfo)
end
endตรวจสอบเหรียญรางวัลที่ได้รับ
สคริปต์ต่อไปนี้จะตรวจสอบเมื่อผู้เล่นใด ๆ เข้าสู่เกม จากนั้นใช้เมธอด BadgeService:UserHasBadgeAsync() เพื่อตรวจสอบว่าผู้เล่นนั้นมีเหรียญรางวัลที่มี ID ตรงกัน ที่ตั้งไว้ในตัวแปร BADGE_ID หรือไม่ คุณยังสามารถตรวจสอบการเป็นเจ้าของเหรียญรางวัลเป็นกลุ่มโดยใช้เมธอด BadgeService:GetUserBadgesAsync()
local BadgeService = game:GetService("BadgeService")
local Players = game:GetService("Players")
local BADGE_ID = 00000000 -- เปลี่ยนเป็น ID ของเหรียญรางวัลของคุณ
local function onPlayerAdded(player)
-- ตรวจสอบว่าผู้เล่นมีเหรียญรางวัลหรือไม่
local success, hasBadge = pcall(BadgeService.UserHasBadgeAsync, BadgeService, player.UserId, BADGE_ID)
-- หากมีข้อผิดพลาด ให้แสดงคำเตือนและออกจากฟังก์ชัน
if not success then
warn("เกิดข้อผิดพลาดขณะตรวจสอบว่าผู้เล่นมีเหรียญรางวัล")
return
end
if hasBadge then
-- จัดการการเป็นเจ้าของเหรียญรางวัลของผู้เล่นตามที่ต้องการ
end
end
-- เชื่อมต่อเหตุการณ์ "PlayerAdded" กับฟังก์ชัน "onPlayerAdded()"
Players.PlayerAdded:Connect(onPlayerAdded)ดึงข้อมูลเหรียญรางวัล
ในการดึงข้อมูลเกี่ยวกับเหรียญรางวัล เช่น คำอธิบายหรือ ID ของไอคอนแอสเซท ให้เรียกใช้เมธอด BadgeService:GetBadgeInfoAsync() พร้อมกับ ID ของเหรียญรางวัล ตัวอย่างเช่น:
local BadgeService = game:GetService("BadgeService")
local BADGE_ID = 00000000 -- เปลี่ยนเป็น ID ของเหรียญรางวัลของคุณ
-- ดึงข้อมูลเหรียญรางวัล
local success, result = pcall(BadgeService.GetBadgeInfoAsync, BadgeService, BADGE_ID)
-- แสดงข้อมูล
if success then
print("เหรียญรางวัล:", result.Name)
print("เปิดใช้งาน:", result.IsEnabled)
print("คำอธิบาย:", result.Description)
print("ไอคอน:", "rbxassetid://" .. result.IconImageId)
else
warn("เกิดข้อผิดพลาดขณะดึงข้อมูลเหรียญรางวัล:", result)
end