BadgeService

แสดงที่เลิกใช้งานแล้ว

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

ไม่สามารถสร้าง
บริการ

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

ตัวอย่างโค้ด

ตัวอย่างต่อไปนี้สร้างฟังก์ชัน awardBadge() ที่จัดการกับข้อผิดพลาดที่อาจเกิดขึ้นเมื่อมอบรางวัลตราโดยใช้คุณสมบัติของตราที่ดึงผ่าน BadgeService:GetBadgeInfoAsync() มันยืนยันว่าตราสามารถได้รับและทำเช่นนั้นโดยใช้ BadgeService:AwardBadge()

มอบรางวัลตรา

local BadgeService = game:GetService("BadgeService")
local Players = game:GetService("Players")
local BADGE_ID = 0
local function awardBadge(player, badgeId)
-- ดึงข้อมูลตราสัญลักษณ์ไม่ดี
local success, badgeInfo = pcall(function()
return BadgeService:GetBadgeInfoAsync(badgeId)
end)
if success then
-- ยืนยันว่าตราสามารถได้รับได้
if badgeInfo.IsEnabled then
-- รางวัลตรา
local awardSuccess, result = pcall(function()
return BadgeService:AwardBadge(player.UserId, badgeId)
end)
if not awardSuccess then
-- ฟังก์ชันรางวัลแบดจ์โยนข้อผิดพลาด
warn("Error while awarding badge:", result)
elseif not result then
-- ฟังก์ชันรางวัลไม่ได้มอบรางวัล
warn("Failed to award badge.")
end
end
else
warn("Error while fetching badge info: " .. badgeInfo)
end
end
local function onPlayerAdded(player)
awardBadge(player, BADGE_ID)
end
Players.PlayerAdded:Connect(onPlayerAdded)

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

ตรวจสอบตราที่ได้รับ

local BadgeService = game:GetService("BadgeService")
local Players = game:GetService("Players")
local badgeId = 00000000 -- เปลี่ยนเป็นรหัสประจำตัวของเหรียญของคุณ
local function onPlayerAdded(player)
-- ตรวจสอบว่าผู้เล่นมีตราหรือไม่
local success, hasBadge = pcall(function()
return BadgeService:UserHasBadgeAsync(player.UserId, badgeId)
end)
-- หากมีข้อผิดพลาดให้ออกคำเตือนและออกจากฟังก์ชัน
if not success then
warn("Error while checking if player has badge!")
return
end
if hasBadge then
-- จัดการการเป็นเจ้าของเหรียญตราของผู้เล่นตามที่จำเป็น
print(player.Name, "has badge", badgeId)
end
end
-- เชื่อมต่ออีเวนต์ "PlayerAdded" กับฟังก์ชัน "onPlayerAdded()"
Players.PlayerAdded:Connect(onPlayerAdded)

สคริปต์นี้ตรวจสอบว่าตราไหนที่ผู้ใช้เป็นเจ้าของเมื่อพวกเขาเข้าร่วมประสบการณ์

ตรวจสอบตราที่ได้รับในรอบต่อๆ มา

local BadgeService = game:GetService("BadgeService")
local Players = game:GetService("Players")
local badgeIds = { 0000000000, 1111111111, 2222222222 } -- เปลี่ยนเป็นรายการของรหัสบัตรประจำตัวที่ไม่ดีของคุณ
local function onPlayerAdded(player)
-- ตรวจสอบว่าผู้เล่นมีตราใดหรือไม่
local success, result = pcall(function()
return BadgeService:CheckUserBadgesAsync(player.UserId, badgeIds)
end)
-- หากมีข้อผิดพลาดให้ออกคำเตือนและออกจากฟังก์ชัน
if not success then
warn("Error while checking if player", player.Name, "has badges:", result)
return
end
local ownedBadgeIds = result
if #ownedBadgeIds == 0 then
print(player.Name, "does not have any of the badges")
else
print(player.Name, "has the following badges:", table.concat(ownedBadgeIds, ", "))
end
end
Players.PlayerAdded:Connect(onPlayerAdded)

This sample prints badge information fetched via BadgeService:GetBadgeInfoAsync().

Getting Badge Info

local BadgeService = game:GetService("BadgeService")
-- Fetch badge information
local success, result = pcall(function()
return BadgeService:GetBadgeInfoAsync(00000000) -- Change this to desired badge ID
end)
-- Output the information
if success then
print("Badge:", result.Name)
print("Enabled:", result.IsEnabled)
print("Description:", result.Description)
print("Icon:", "rbxassetid://" .. result.IconImageId)
else
warn("Error while fetching badge info:", result)
end

สรุป

วิธีการ

  • AwardBadge(userId : number,badgeId : number):boolean
    ผลตอบแทน

    มอบตราให้กับผู้เล่นโดยให้รหัสของแต่ละคน

  • CheckUserBadgesAsync(userId : number,badgeIds : Array):Array
    ผลตอบแทน

    ตรวจสอบรายการของรหัสป้ายกำกับกับ UserId และส่งคืนรายการรหัสป้ายกำกับที่ผู้เล่นเป็นเจ้าของ

  • ผลตอบแทน

    ดึงข้อมูลเกี่ยวกับตราที่มอบรหัสไปยังมัน

  • ผลตอบแทน

    ตรวจสอบว่าผู้เล่นมีตราหรือไม่โดยให้รหัสตรา Player.UserId และรหัสตรา

คุณสมบัติ

วิธีการ

AwardBadge

ผลตอบแทน

ให้ตรา Player ที่มีรหัส UserId และรหัสตราขีดจำกัดอัตรา: 50 + 35 * [จํานวนผู้ใช้] ต่อนาที .เหรียญตรา:

  • ผู้เล่นต้องเชื่อมต่อกับเกมในปัจจุบัน
  • ผู้เล่นไม่ควรมีตราแล้ว (โปรดทราบว่าผู้เล่นอาจลบตราที่ได้รับจากโปรไฟล์และได้รับตราอีกครั้ง)
  • ตราต้องได้รับจากฝั่งเซิร์ฟเวอร์ Script หรือจาก ModuleScript ในที่สุดที่จำเป็นโดย Script ไม่ใช่จาก LocalScript
  • เหรียญตรา
  • ตราต้องเปิดใช้งาน; ตรวจสอบนี้โดยใช้คุณสมบัติ IsEnabled ของตราที่ดึงผ่าน BadgeService:GetBadgeInfoAsync()

ดูเพิ่ม:

พารามิเตอร์

userId: number

The Player.UserId ของผู้ใช้ที่ตราจะถูกมอบให้

ค่าเริ่มต้น: ""
badgeId: number

รหัสของตราที่จะได้รับรางวัล

ค่าเริ่มต้น: ""

ส่งค่ากลับ

บูลีนของ true หากได้รับตราสัญลักษณ์สําเร็จ

ตัวอย่างโค้ด

ตัวอย่างต่อไปนี้สร้างฟังก์ชัน awardBadge() ที่จัดการกับข้อผิดพลาดที่อาจเกิดขึ้นเมื่อมอบรางวัลตราโดยใช้คุณสมบัติของตราที่ดึงผ่าน BadgeService:GetBadgeInfoAsync() มันยืนยันว่าตราสามารถได้รับและทำเช่นนั้นโดยใช้ BadgeService:AwardBadge()

มอบรางวัลตรา

local BadgeService = game:GetService("BadgeService")
local Players = game:GetService("Players")
local BADGE_ID = 0
local function awardBadge(player, badgeId)
-- ดึงข้อมูลตราสัญลักษณ์ไม่ดี
local success, badgeInfo = pcall(function()
return BadgeService:GetBadgeInfoAsync(badgeId)
end)
if success then
-- ยืนยันว่าตราสามารถได้รับได้
if badgeInfo.IsEnabled then
-- รางวัลตรา
local awardSuccess, result = pcall(function()
return BadgeService:AwardBadge(player.UserId, badgeId)
end)
if not awardSuccess then
-- ฟังก์ชันรางวัลแบดจ์โยนข้อผิดพลาด
warn("Error while awarding badge:", result)
elseif not result then
-- ฟังก์ชันรางวัลไม่ได้มอบรางวัล
warn("Failed to award badge.")
end
end
else
warn("Error while fetching badge info: " .. badgeInfo)
end
end
local function onPlayerAdded(player)
awardBadge(player, BADGE_ID)
end
Players.PlayerAdded:Connect(onPlayerAdded)

CheckUserBadgesAsync

ผลตอบแทน

ตรวจสอบรายการของรหัสป้ายกำกับกับ UserId และส่งคืนรายการรหัสป้ายกำกับที่ผู้เล่นเป็นเจ้าของ

วิธีนี้สนับสนุนล็อตของเหรียญถึง 10 เหรียญ ใช้ BadgeService:UserHasBadgeAsync() สำหรับการค้นหาเหรียญเดียว

ขีดจํากัดอัตรา: 10 + 5 * [จํานวนผู้เล่น] ต่อนาที ในแต่ละเซิร์ฟเวอร์

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

พารามิเตอร์

userId: number

The UserId ของผู้เล่นที่จะตรวจสอบสิทธิ์การเป็นเจ้าของของตราสัญลักษณ์ที่ระบุ

ค่าเริ่มต้น: ""
badgeIds: Array

รายการรหัสของตราสัญลักษณ์ที่ตรวจสอบสิทธิ์การเป็นเจ้าของ ความยาวสูงสุดคือ 10

ค่าเริ่มต้น: ""

ส่งค่ากลับ

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

ตัวอย่างโค้ด

สคริปต์นี้ตรวจสอบว่าตราไหนที่ผู้ใช้เป็นเจ้าของเมื่อพวกเขาเข้าร่วมประสบการณ์

ตรวจสอบตราที่ได้รับในรอบต่อๆ มา

local BadgeService = game:GetService("BadgeService")
local Players = game:GetService("Players")
local badgeIds = { 0000000000, 1111111111, 2222222222 } -- เปลี่ยนเป็นรายการของรหัสบัตรประจำตัวที่ไม่ดีของคุณ
local function onPlayerAdded(player)
-- ตรวจสอบว่าผู้เล่นมีตราใดหรือไม่
local success, result = pcall(function()
return BadgeService:CheckUserBadgesAsync(player.UserId, badgeIds)
end)
-- หากมีข้อผิดพลาดให้ออกคำเตือนและออกจากฟังก์ชัน
if not success then
warn("Error while checking if player", player.Name, "has badges:", result)
return
end
local ownedBadgeIds = result
if #ownedBadgeIds == 0 then
print(player.Name, "does not have any of the badges")
else
print(player.Name, "has the following badges:", table.concat(ownedBadgeIds, ", "))
end
end
Players.PlayerAdded:Connect(onPlayerAdded)

GetBadgeInfoAsync

ผลตอบแทน

ฟังก์ชันนี้รับข้อมูลเกี่ยวกับตราที่ให้ ID ของมันใช้เวลาสั้น ๆ ในการโหลดข้อมูลจากเว็บไซต์ Roblox; การโทรซ้ำจะแคชไว้เป็นระยะเวลาสั้น ๆมันจะคืนสารานุกรมที่มีฟิลด์ต่อไปนี้:


<th>ประเภท</th>
<th>คําอธิบาย</th>
</tr>
</thead>
<tbody>
<tr>
<td><b>ชื่อ</b></td>
<td>สตริง</td>
<td>เหรียญตรา</td>
</tr>
<tr>
<td><b>คําอธิบาย</b></td>
<td>สตริง</td>
<td>เหรียญตรา</td>
</tr>
<tr>
<td><b>ไอคอนรูปภาพID</b></td>
<td>ตัวเลข 64 บิต</td>
<td>ID สินทรัพย์ของภาพสำหรับตราสัญลักษณ์</td>
</tr>
<tr>
<td><b>เปิดใช้งานแล้ว</b></td>
<td>บูล</td>
<td>บ่งบอกว่าตราสัญลักษณ์มีให้มอบหรือไม่</td>
</tr>
</tbody>
กุญแจ

ดูเพิ่ม:

พารามิเตอร์

badgeId: number

รหัสประกาศของประกาศที่ข้อมูลควรได้รับ

ค่าเริ่มต้น: ""

ส่งค่ากลับ

เหรียญตรา

ตัวอย่างโค้ด

This sample prints badge information fetched via BadgeService:GetBadgeInfoAsync().

Getting Badge Info

local BadgeService = game:GetService("BadgeService")
-- Fetch badge information
local success, result = pcall(function()
return BadgeService:GetBadgeInfoAsync(00000000) -- Change this to desired badge ID
end)
-- Output the information
if success then
print("Badge:", result.Name)
print("Enabled:", result.IsEnabled)
print("Description:", result.Description)
print("Icon:", "rbxassetid://" .. result.IconImageId)
else
warn("Error while fetching badge info:", result)
end

UserHasBadgeAsync

ผลตอบแทน

ตรวจสอบและส่งคืนว่า Player มีตราสัญลักษณ์หรือไม่โดยใช้ UserId และรหัสตราสัญลักษณ์ขีดจำกัดอัตรา: 50 + 35 * [จํานวนผู้เล่น] ต่อนาที .คุณสามารถเรียกฟังก์ชันจากเซิร์ฟเวอร์ใน Script หรือ ModuleScript ในที่สุดที่จำเป็นโดย Script และผู้ใช้ในคำถามจะต้องอยู่ในเซิร์ฟเวอร์เพื่อให้คำถามทำงานเมื่อเรียกวิธีจากไคลเอนต์ใน LocalScript จะทำงานได้เฉพาะสำหรับผู้ใช้ท้องถิ่นที่ไคลเอนต์ของเขากําลังดําเนินการตามสคริปต์

ตราใดๆ สำหรับเกมใดๆ สามารถสอบถามได้ ไม่ว่าใครจะสร้างตราหรือใช้ประสบการณ์สำหรับตรานั้น

ดูเพิ่ม:

พารามิเตอร์

userId: number

The Player.UserId เหรียญตรา

ค่าเริ่มต้น: ""
badgeId: number

ID ตราของตราที่จะตรวจสอบสิทธิ์การเป็นเจ้าของ

ค่าเริ่มต้น: ""

ส่งค่ากลับ

เหรียญตรา

ตัวอย่างโค้ด

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

ตรวจสอบตราที่ได้รับ

local BadgeService = game:GetService("BadgeService")
local Players = game:GetService("Players")
local badgeId = 00000000 -- เปลี่ยนเป็นรหัสประจำตัวของเหรียญของคุณ
local function onPlayerAdded(player)
-- ตรวจสอบว่าผู้เล่นมีตราหรือไม่
local success, hasBadge = pcall(function()
return BadgeService:UserHasBadgeAsync(player.UserId, badgeId)
end)
-- หากมีข้อผิดพลาดให้ออกคำเตือนและออกจากฟังก์ชัน
if not success then
warn("Error while checking if player has badge!")
return
end
if hasBadge then
-- จัดการการเป็นเจ้าของเหรียญตราของผู้เล่นตามที่จำเป็น
print(player.Name, "has badge", badgeId)
end
end
-- เชื่อมต่ออีเวนต์ "PlayerAdded" กับฟังก์ชัน "onPlayerAdded()"
Players.PlayerAdded:Connect(onPlayerAdded)

อีเวนต์