โค้ดที่คุณให้มาคือ โมดูลการจัดรูปแบบตัวเลข (Number Formatting Module) ในภาษา Lua ซึ่งมีชื่อฟังก์ชันว่า Format ครับ 🚀 หน้าที่หลักคือการแปลงตัวเลขจำนวนมาก (เช่น 1,000,000) ให้เป็นรูปแบบย่อที่อ่านง่าย (เช่น 1m) โดยใช้คำต่อท้าย (Suffixes)

นี่คือวิธีใช้โค้ดนี้อย่างละเอียด:

📚 ขั้นตอนที่ 1: การตั้งค่า (Setup)

คุณต้องบันทึกโค้ดนี้เป็นไฟล์โมดูล (ModuleScript) ในสภาพแวดล้อม Roblox ก่อนครับ

 * สร้าง ModuleScript: ใน Roblox Studio ให้สร้างไฟล์ ModuleScript (ตัวอย่างเช่น ใน ReplicatedStorage หรือ ServerScriptService) และตั้งชื่อว่า FormatModule (หรือชื่อใดก็ได้ที่คุณต้องการ).

 * คัดลอกโค้ด: คัดลอกโค้ด Lua ทั้งหมดที่คุณให้มาลงใน FormatModule นั้น.

💡 ขั้นตอนที่ 2: การเรียกใช้โมดูล (Requiring the Module)

ในสคริปต์ (Script) หรือสคริปต์ท้องถิ่น (LocalScript) ที่คุณต้องการใช้ฟังก์ชันนี้ คุณต้อง "เรียกใช้" (require) โมดูลนี้ก่อน:

-- ต้องเปลี่ยน PATH_TO_MODULE เป็นตำแหน่งที่คุณบันทึก ModuleScript ไว้จริง ๆ

local Format = require(game.ReplicatedStorage.FormatModule) 

-- หรืออาจเป็น local Format = require(game.ServerScriptService.Modules.FormatModule)


 * การเรียกใช้จะทำให้ตัวแปร Format กลายเป็นฟังก์ชันที่คุณสามารถเรียกใช้ได้ทันที

💻 ขั้นตอนที่ 3: การใช้งานฟังก์ชัน Format

เมื่อคุณเรียกใช้โมดูลมาแล้ว คุณก็สามารถส่งค่าตัวเลขเข้าไปในฟังก์ชัน Format() เพื่อให้มันแปลงค่าได้เลย:

ตัวอย่างการใช้งานพื้นฐาน

local Format = require(game.ReplicatedStorage.FormatModule) -- สมมติว่านี่คือตำแหน่ง


-- 1. ตัวเลขหลักพัน

local valueK = 1500

print(Format(valueK)) 

-- ผลลัพธ์: 1.50k


-- 2. ตัวเลขหลักล้าน

local valueM = 123456789

print(Format(valueM)) 

-- ผลลัพธ์: 123.46m (มีการปัดเศษทศนิยมตัวที่ 3)


-- 3. ตัวเลขหลักแสนล้าน

local valueB = 500000000000

print(Format(valueB)) 

-- ผลลัพธ์: 500.00b


-- 4. ตัวเลขที่น้อยกว่า 1,000

local valueSmall = 450

print(Format(valueSmall)) 

-- ผลลัพธ์: 450 (ไม่มี suffix)


-- 5. ค่าที่มากที่สุด (เกิน 1e306)

local valueMax = math.huge

print(Format(valueMax))

-- ผลลัพธ์: ♾️


การใช้งานในระบบ Leaderstats (ตัวอย่าง)

โค้ดนี้มักใช้ในการแสดงผลค่าสกุลเงินของ Leaderstats บนหน้าจอ (UI):

-- สมมติว่าคุณมี TextLabel ที่ชื่อ 'MoneyDisplay'

local Format = require(game.ReplicatedStorage.FormatModule)

local player = game.Players.LocalPlayer

local leaderstats = player:WaitForChild("leaderstats")

local cash = leaderstats:WaitForChild("Cash")


-- ใช้ .Changed event เพื่ออัปเดต UI ทุกครั้งที่ค่าเปลี่ยน

cash.Changed:Connect(function(newCashValue)

    local formattedCash = Format(newCashValue)

    MoneyDisplay.Text = "เงิน: " .. formattedCash

end)


🔧 การปรับแต่งค่าเริ่มต้น

คุณสามารถปรับแต่งพฤติกรรมของฟังก์ชันนี้ได้โดยการแก้ไขค่าสองตัวแรกในโมดูล FormatModule:

| ตัวแปร | ความหมาย | ตัวอย่างเดิม | ผลลัพธ์ที่เปลี่ยนไป |

|---|---|---|---|

| NUMBER_OF_DECIMALS | จำนวนทศนิยมที่ต้องการแสดง | 2 | ถ้าเปลี่ยนเป็น 1: 1,234,567 \rightarrow 1.2m |

| MAX_VALUE_PLACEHOLDER | สัญลักษณ์ที่จะแสดงเมื่อถึงค่าสูงสุด | `♾️` | ถ้าเปลี่ยนเป็น `"MAX!"`: ค่าสูงสุด \rightarrow MAX! |

ข้อควรระวัง: ห้าม เปลี่ยนแปลงค่าในตาราง cashSuffixes, MIN_VALUE, MAX_VALUE, DECIMAL_EXPONENT, หรือ thousandPowers เว้นแต่คุณจะเข้าใจอย่างถ่องแท้ว่าโค้ดทำงานอย่างไร เนื่องจากค่าเหล่านี้ถูกปรับให้เข้ากับข้อจำกัดของ Roblox/Lua แล้ว


ความคิดเห็น

โพสต์ยอดนิยมจากบล็อกนี้

Script key