Devil HunterDevil Docs
Payment In Game

การแก้ปัญหาที่พบบ่อย (Troubleshooting)

คำแนะนำการแก้ไขปัญหาและข้อผิดพลาดที่พบบ่อยใน Devil Market

รวมคำถามและปัญหาที่ผู้ดูแลเซิร์ฟเวอร์มักพบเจอในการติดตั้งและใช้งาน Devil Market พร้อมแนวทางการแก้ไขปัญหาอย่างทีละขั้นตอน


1. ปัญหารูปภาพสินค้าไม่ขึ้น (Image 404 / Broken Image)

สาเหตุ

เกิดจากค่า ImagePath ใน config_main.lua ไม่ตรงกับพาธเก็บรูปของสคริปต์ Inventory บนเซิร์ฟเวอร์ของคุณ

วิธีแก้ไข

เปิดไฟล์ devil_market/config/config_main.lua แล้วแก้ไข ImagePath:

config_main.lua
-- ตัวอย่างสำหรับ nc_inventory
Config_Main.Settings.ImagePath = "nui://nc_inventory/html/img/items"

-- ตัวอย่างสำหรับ ox_inventory
-- Config_Main.Settings.ImagePath = "nui://ox_inventory/web/images"

-- ตัวอย่างสำหรับ esx_inventoryhud
-- Config_Main.Settings.ImagePath = "nui://esx_inventoryhud/html/img/items"

ข้อสังเกต

ชื่อไฟล์รูปภาพในโฟลเดอร์ inventory ต้องตรงกับ spawnName ของไอเทม (เช่น water.png, bread.png)


2. ปัญหาเกี่ยวกับฐานข้อมูล (Database Error / JSON Support)

สาเหตุ

ตาราง devil_purchase_history และ devil_payment_sessions มีคอลัมน์ประเภท JSON ซึ่งต้องการ MySQL 5.7+ หรือ MariaDB 10.2+

ข้อความ error ที่พบ

1064 - You have an error in your SQL syntax near 'JSON NULL DEFAULT NULL'

วิธีแก้ไข

  1. อัปเกรดระบบฐานข้อมูลบนเซิร์ฟเวอร์ MySQL/MariaDB ให้เป็นเวอร์ชันปัจจุบัน
  2. หากไม่สามารถอัปเกรดได้ ให้เปลี่ยนประเภทคอลัมน์ JSON ในไฟล์ @installme.sql เป็น LONGTEXT ก่อนนำเข้าอีกครั้ง:
-- เปลี่ยนจาก
`metadata` JSON NULL DEFAULT NULL

-- เป็น
`metadata` LONGTEXT NULL DEFAULT NULL

3. ปัญหา Addon หรือบริการภายนอกไม่ทำงาน (Devil Market Addons Offline)

สาเหตุ

devil_marketaddons (ระบบตรวจสลิป / Stripe / Discord Bot) เป็น Node.js application ไม่ใช่ FiveM Lua Resource

ข้อผิดพลาดที่พบ

  • ใน NUI หน้าเติมเงินแสดงข้อความ "บริการไม่พร้อมใช้งาน" หรือ "Connection Failed"
  • กดสร้าง QR Code แล้วหมุนค้าง

วิธีแก้ไข

  1. ตรวจสอบว่าได้สั่งเปิด devil_marketaddons แยกต่างหากหรือยัง (ผ่าน start.bat หรือ node index.js)
  2. ตรวจสอบไฟล์ .env ในโฟลเดอร์ devil_marketaddons:
    • PORT ต้องตรงกับ URL ที่ config_topup.lua เรียกใช้ (ค่าเริ่มต้น 3000)
    • DB_HOST, DB_USER, DB_PASS, DB_NAME กำหนดถูกต้องแล้ว
  3. ตรวจสอบว่าได้สั่งรัน npm install ภายในโฟลเดอร์ devil_marketaddons เรียบร้อยแล้ว

4. ปัญหาคำสั่ง Admin ใช้งานไม่ได้ (Insufficient Permission)

สาเหตุ

ชื่อ ESX Admin Group ในเซิร์ฟเวอร์ของคุณไม่ตรงกับค่าเริ่มต้นใน config_admins.lua

วิธีแก้ไข

เปิดไฟล์ devil_market/config/config_admins.lua แล้วแก้ไขฟังก์ชัน IsAdmin:

config_admins.lua
local function IsAdmin(source)
    local xPlayer = ESX.GetPlayerFromId(source)
    if not xPlayer then return false end

    local group = xPlayer.getGroup()
    -- แก้ไขรายชื่อ group ให้ตรงกับ ESX ของเซิร์ฟเวอร์คุณ
    return group == 'admin' or group == 'superadmin' or group == 'owner'
end

5. ปัญหาสลิปเติมเงินถูกปฏิเสธหรือไม่ได้รับ Point

สาเหตุ

  • สลิปหมดอายุ (เกินค่า slipMaxAgeMinutes ใน config_topup.lua)
  • สลิปเดิมถูกนำมาใช้ซ้ำ (Duplicate Slip Detection)
  • ยอดเงินโอนจริงไม่ตรงกับยอดที่เลือกเติมในเกม

วิธีแก้ไข

  1. ตรวจสอบ Log การเติมเงินใน Console ของ devil_marketaddons
  2. ตรวจสอบตาราง devil_payment_sessions ในฐานข้อมูลเพื่อดูสถานะ status (pending, verified, completed, rejected)
  3. ปรับค่า slipMaxAgeMinutes ใน config_topup.lua ให้เหมาะสมกับความต้องการของเซิร์ฟเวอร์

On this page