Installation & Setup
Auto API Version Installation
คู่มือระบบ Limit - Devil Market
MarketCore Installation
MarketCore Self Installation
Devil Store Doc > Payment In Game to Discord > คู่มือระบบ Limit - Devil Market
คู่มือระบบ Limit - Devil Market
📋 คู่มือระบบ Limit - Devil Market ¶
🎯 ระบบ Limit คืออะไร? ¶
ระบบ Limit เป็นระบบที่ใช้ควบคุมการซื้อสินค้าของผู้เล่น มี 2 ประเภทหลัก:
1. Stock Limit (จำกัดจำนวนสินค้าในร้าน) ¶
- ควบคุมว่าสินค้าแต่ละชิ้นมีจำนวนเท่าไหร่ในร้าน
- เมื่อขายหมดแล้วจะไม่สามารถซื้อได้จนกว่าจะเติมสต็อก
2. Purchase Limit (จำกัดการซื้อต่อคน) ¶
- ควบคุมว่าผู้เล่นแต่ละคนสามารถซื้อสินค้าชิ้นนั้นได้กี่ครั้ง
- มีระบบรีเซ็ตตามเวลาที่กำหนด
🔧 วิธีการตั้งค่าระบบ Limit ¶
ขั้นตอนที่ 1: เพิ่มสินค้าใน config_main.lua ¶
{
["ป้ายชื่อ"] = "ปืนพก",
["ราคา"] = 5000,
["ประเภท"] = "weapon",
["ชื่อเสก"] = "WEAPON_PISTOL",
["limit_id"] = "pistol_limited" -- ชื่อ ID สำหรับเชื่อมโยงกับระบบ Limit
}
ขั้นตอนที่ 2: ตั้งค่า Limit ใน config_limit.lua ¶
["pistol_limited"] = {
name = "ปืนพก จำกัด",
-- การตั้งค่า Stock (จำนวนสินค้าในร้าน)
currentStock = 50, -- จำนวนปัจจุบัน
maxStock = 50, -- จำนวนสูงสุด
resetToMax = false, -- รีเซ็ตสต็อกเป็น maxStock หรือไม่
category = "weapon",
-- การตั้งค่า Purchase Limit (จำกัดการซื้อต่อคน)
purchaseLimit = {
enabled = true, -- เปิดใช้งานการจำกัดต่อคน
maxPerPlayer = 2, -- ซื้อได้สูงสุด 2 กระบอกต่อคน
resetType = "weekly" -- รีเซ็ตทุกสัปดาห์
}
}
⏰ ประเภทการรีเซ็ต (Reset Types) ¶
1. "daily" - รีเซ็ตทุกวัน ¶
- ผู้เล่นจะสามารถซื้อใหม่ได้ทุกวันเวลา 00:00
- เหมาะสำหรับสินค้าประจำวัน เช่น อาหาร น้ำ
2. "weekly" - รีเซ็ตทุกสัปดาห์ ¶
- ผู้เล่นจะสามารถซื้อใหม่ได้ทุกวันจันทร์เวลา 00:00
- เหมาะสำหรับสินค้าพิเศษ เช่น อาวุธ เครื่องมือ
3. "monthly" - รีเซ็ตทุกเดือน ¶
- ผู้เล่นจะสามารถซื้อใหม่ได้ทุกวันที่ 1 ของเดือนเวลา 00:00
- เหมาะสำหรับสินค้าแพง เช่น รถยนต์ บ้าน
4. "never" - ไม่รีเซ็ต ¶
- ผู้เล่นซื้อได้เพียงครั้งเดียวตลอดชีวิต
- เหมาะสำหรับสินค้าพิเศษ เช่น ไอเทมเอกสิทธิ์
🛠️ วิธีการจัดการระบบสำหรับเจ้าของเซิร์ฟเวอร์ ¶
1. การดูสถานะสินค้า ¶
ใน Game (สำหรับ Admin) ¶
/marketstock [limit_id] - ดูจำนวนสต็อกปัจจุบัน
/marketlimit [player_id] [limit_id] - ดูจำนวนที่ผู้เล่นซื้อไปแล้ว
ใน Database ¶
ข้อมูลจะถูกเก็บในตาราง:
devil_market_stock
- เก็บจำนวนสต็อกสินค้าdevil_market_purchases
- เก็บประวัติการซื้อของผู้เล่น
2. การเติมสต็อกสินค้า ¶
วิธีที่ 1: ใช้คำสั่งใน Game ¶
/addstock [limit_id] [จำนวน] - เติมสต็อกสินค้า
/resetstock [limit_id] - รีเซ็ตสต็อกเป็น maxStock
วิธีที่ 2: แก้ไขใน config_limit.lua ¶
["pistol_limited"] = {
currentStock = 100, -- เปลี่ยนจำนวนตรงนี้
maxStock = 100,
-- ...
}
หลังจากแก้ไขแล้วต้อง restart resource
3. การรีเซ็ตข้อมูลผู้เล่น ¶
รีเซ็ตผู้เล่นคนเดียว ¶
/resetplayer [player_id] [limit_id] - รีเซ็ตการซื้อของผู้เล่นคนนั้น
รีเซ็ตผู้เล่นทั้งหมด ¶
/resetallplayers [limit_id] - รีเซ็ตการซื้อของผู้เล่นทุกคน
รีเซ็ตผ่าน Database ¶
-- รีเซ็ตผู้เล่นคนเดียว
DELETE FROM devil_market_purchases
WHERE identifier = 'steam:xxxxxxxxx' AND limit_id = 'pistol_limited';
-- รีเซ็ตทุกคน
DELETE FROM devil_market_purchases WHERE limit_id = 'pistol_limited';
📊 ตัวอย่างการใช้งานจริง ¶
ตัวอย่างที่ 1: ร้านขายอาหาร (รีเซ็ตรายวัน) ¶
["daily_food"] = {
name = "อาหารประจำวัน",
currentStock = 1000,
maxStock = 1000,
resetToMax = true, -- เติมสต็อกเต็มทุกวัน
purchaseLimit = {
enabled = true,
maxPerPlayer = 10, -- ซื้อได้ 10 ชิ้นต่อวัน
resetType = "daily"
}
}
ตัวอย่างที่ 2: ร้านขายอาวุธ (รีเซ็ตรายสัปดาห์) ¶
["weekly_weapon"] = {
name = "อาวุธพิเศษ",
currentStock = 20,
maxStock = 20,
resetToMax = false, -- ไม่เติมสต็อกอัตโนมัติ
purchaseLimit = {
enabled = true,
maxPerPlayer = 1, -- ซื้อได้ 1 กระบอกต่อสัปดาห์
resetType = "weekly"
}
}
ตัวอย่างที่ 3: ร้านขายรถ (ไม่รีเซ็ต) ¶
["exclusive_car"] = {
name = "รถเอกสิทธิ์",
currentStock = 5,
maxStock = 5,
resetToMax = false,
purchaseLimit = {
enabled = true,
maxPerPlayer = 1, -- ซื้อได้ 1 คันตลอดชีวิต
resetType = "never"
}
}
🚨 การแก้ไขปัญหาที่พบบ่อย ¶
ปัญหา: ผู้เล่นซื้อไม่ได้แม้ว่าจะยังไม่ถึง limit ¶
สาเหตุ:
- สต็อกสินค้าหมด
- ข้อมูลใน database ผิดพลาด
- การตั้งค่า limit_id ไม่ตรงกัน
วิธีแก้:
1. ตรวจสอบสต็อก: /marketstock [limit_id]
2. ตรวจสอบการซื้อ: /marketlimit [player_id] [limit_id]
3. รีเซ็ตข้อมูล: /resetplayer [player_id] [limit_id]
ปัญหา: ระบบรีเซ็ตไม่ทำงาน ¶
วิธีแก้:
- ตรวจสอบการตั้งค่าใน
Config_Limit.Settings.AutoReset
- ตรวจสอบ server time
- รีสตาร์ท resource
ปัญหา: ข้อมูลหายหลัง restart ¶
วิธีแก้:
- ตรวจสอบการตั้งค่า database ใน
Config_Limit.Settings.Database
- ตรวจสอบว่าตารางถูกสร้างแล้วหรือยัง
- ตรวจสอบ permission ของ database
💡 เทคนิคการใช้งานขั้นสูง ¶
1. การตั้งค่าสินค้าแบบไม่จำกัด ¶
-- ไม่ต้องใส่ limit_id ในสินค้า
{
["ป้ายชื่อ"] = "น้ำเปล่า",
["ราคา"] = 10,
["ประเภท"] = "item",
["ชื่อเสก"] = "water"
-- ไม่มี limit_id = ไม่จำกัด
}
2. การตั้งค่าสินค้าแบบจำกัดเฉพาะสต็อก ¶
["stock_only"] = {
name = "จำกัดเฉพาะสต็อก",
currentStock = 100,
maxStock = 100,
purchaseLimit = {
enabled = false -- ไม่จำกัดต่อคน
}
}
3. การตั้งค่าสินค้าแบบจำกัดเฉพาะต่อคน ¶
["player_only"] = {
name = "จำกัดเฉพาะต่อคน",
currentStock = -1, -- -1 = ไม่จำกัดสต็อก
purchaseLimit = {
enabled = true,
maxPerPlayer = 5,
resetType = "daily"
}
}
📈 การติดตามและรายงาน ¶
1. การดูสถิติการขาย ¶
-- ดูสินค้าที่ขายดีที่สุด
SELECT limit_id, COUNT(*) as total_sales
FROM devil_market_purchases
GROUP BY limit_id
ORDER BY total_sales DESC;
-- ดูผู้เล่นที่ซื้อมากที่สุด
SELECT identifier, COUNT(*) as total_purchases
FROM devil_market_purchases
GROUP BY identifier
ORDER BY total_purchases DESC;
2. การสำรองข้อมูล ¶
-- สำรองข้อมูลสต็อก
CREATE TABLE devil_market_stock_backup AS
SELECT * FROM devil_market_stock;
-- สำรองข้อมูลการซื้อ
CREATE TABLE devil_market_purchases_backup AS
SELECT * FROM devil_market_purchases;
✅ สรุป ¶
ระบบ Limit ของ Devil Market ช่วยให้เจ้าของเซิร์ฟเวอร์สามารถ:
- ควบคุมเศรษฐกิจ - จำกัดสินค้าที่มีผลต่อ balance ของเกม
- สร้างความหายาก - ทำให้สินค้าบางชิ้นมีค่ามากขึ้น
- จัดการง่าย - ใช้คำสั่งหรือแก้ไข config ได้
- ยืดหยุ่น - รองรับการตั้งค่าแบบต่างๆ
- ปลอดภัย - ข้อมูลถูกเก็บใน database
หมายเหตุ: ระบบนี้ทำงานแบบ real-time และ sync กับ database อัตโนมัติ ทำให้ข้อมูลไม่หายแม้เซิร์ฟเวอร์จะ restart
Was this article helpful?
2 out of 5 found this helpful