Devil HunterDevil Docs
Payment In Game

ขายตามเวลา / อีเวนต์

เปิดขายสินค้าตามช่วงเวลา เทศกาล หรืออีเวนต์ พร้อมระบบ Dynamic Stock เพิ่มสต็อกอัตโนมัติ

ระบบ saleSchedule และ Dynamic Stock ช่วยให้คุณเปิดขายสินค้าตามเวลาที่กำหนด เช่น เปิดขายเฉพาะกลางคืน ช่วงเทศกาล หรือเพิ่มสต็อกอัตโนมัติเมื่อมีผู้เล่นเยอะ

สถานการณ์ที่ใช้บ่อย

สถานการณ์วิธีทำเหมาะกับ
เปิดขายเฉพาะกลางคืนsaleScheduleร้านค้าที่อยากให้มี "เวลาเปิด-ปิด"
สินค้าเทศกาล (Halloween, ปีใหม่)saleSchedule.saleEndDateไอเทมอีเวนต์ที่หายไปหลังวันหมดอายุ
เพิ่มสต็อกตอนคนเยอะdynamic (player_count)เซิร์ฟเวอร์ที่มี peak time
โบนัสตอนกลางคืนdynamic (time_based)โปรโมชั่นช่วงค่ำ

สถานการณ์ที่ 1: เปิดขายเฉพาะกลางคืน

สมมติต้องการให้ร้าน "ตลาดมืด" เปิดขายเฉพาะ 20:00 - 02:00 ทุกคืน

config_limit.lua
["black_market_item"] = {
    name = "Black Market Item",
    currentStock = 50,
    maxStock = 50,
    resetToMax = true,
    category = "item",

    saleSchedule = {
        enabled = true,
        startTime = "20:00",        -- เปิดขาย 8 โมงเย็น
        endTime = "02:00",          -- ปิด 2 ทุ่ม (รองรับข้ามเที่ยงคืน)
        restockTime = "20:00",      -- เติมสต็อกตอนเปิด
        restockDay = "daily",
    },
}

นอกเวลาที่กำหนด สินค้าจะแสดงว่า "ปิดขายชั่วคราว" และซื้อไม่ได้

สถานการณ์ที่ 2: สินค้าเทศกาล

สินค้า Halloween ที่ขายตั้งแต่ 25 ต.ค. ถึง 1 พ.ย. แล้วหายไปตลอด

config_limit.lua
["halloween_pumpkin_2026"] = {
    name = "Pumpkin Hat (Halloween 2026)",
    currentStock = 200,
    maxStock = 200,
    resetToMax = false,             -- ขายครบแล้วจบ
    category = "event",

    saleSchedule = {
        enabled = true,
        startTime = "00:00",
        endTime = "23:59",
        restockDay = "never",

        saleEndDate = {
            enabled = true,
            date = "2026-11-01",    -- ปิดขายถาวรวันที่ 1 พ.ย.
            showCountdown = true,   -- แสดงนับถอยหลังใน UI
        }
    },

    purchaseLimit = {
        enabled = true,
        maxPerPlayer = 2,           -- คนละไม่เกิน 2 ชิ้น
        resetType = "never",
        expireAfterSeconds = 0
    },
}

showCountdown

เมื่อเปิด showCountdown = true UI จะแสดงนับถอยหลังวันที่สินค้าจะหายไป สร้างความเร่งด่วนให้ผู้เล่นรีบซื้อ

สถานการณ์ที่ 3: เพิ่มสต็อกตอนผู้เล่นเยอะ (Dynamic Stock)

ระบบ Dynamic Stock เพิ่มสต็อกอัตโนมัติเมื่อตรงเงื่อนไข เช่น ถ้ามีผู้เล่น 30 คนขึ้นไป จะเพิ่มสต็อกเพื่อให้ทุกคนมีโอกาสซื้อ

config_limit.lua
["popular_item"] = {
    name = "Popular Item",
    currentStock = 20,
    maxStock = 20,
    resetToMax = true,
    category = "item",

    dynamic = {
        enabled = true,
        conditions = {
            {
                type = "player_count",     -- เพิ่มตามจำนวนผู้เล่น
                min_players = 30,           -- ถ้ามี 30 คนขึ้นไป
                bonus_stock = 15            -- เพิ่มสต็อก 15 ชิ้น
            },
            {
                type = "player_count",
                min_players = 50,           -- ถ้ามี 50 คนขึ้นไป
                bonus_stock = 30            -- เพิ่มอีก 30 (รวมเป็น 45)
            }
        }
    }
}

วิธีคำนวณ: bonus_stock ของทุกเงื่อนไขที่ตรงจะรวมกัน ถ้ามี 50 คน จะได้ 15 + 30 = 45 ชิ้นเพิ่ม

สถานการณ์ที่ 4: โบนัสตอนกลางคืน

เพิ่มสต็อกสินค้ายอดนิยมในช่วง peak time (18:00 - 22:00) เพื่อให้ผู้เล่นหลังเลิกงานมีของซื้อ

config_limit.lua
["dinner_special"] = {
    name = "Dinner Special Menu",
    currentStock = 30,
    maxStock = 30,
    resetToMax = true,
    category = "item",

    dynamic = {
        enabled = true,
        conditions = {
            {
                type = "time_based",        -- เพิ่มตามเวลา
                start_time = "18:00",
                end_time = "22:00",
                bonus_stock = 50            -- เพิ่ม 50 ชิ้นในช่วง 18-22 โมง
            }
        }
    }
}

รูปแบบเวลาทั้งหมด

ระบบใช้รูปแบบเวลา 24 ชั่วโมง (HH:MM):

รูปแบบตัวอย่างหมายถึง
08:0008:008 โมงเช้า
12:0012:00เที่ยง
18:3018:306 โมงครึ่งเย็น
00:0000:00เที่ยงคืน

ข้ามเที่ยงคืน: ถ้า startTime = "22:00" และ endTime = "02:00" ระบบจะตีความเป็น "22:00 ของวันนี้ ถึง 02:00 ของวันถัดไป" อัตโนมัติ

กำหนดวันขายเฉพาะบางวัน

ถ้าอยากให้สินค้าบางตัวเปิดขายเฉพาะวันหยุดสุดสัปดาห์ ใช้ days:

config_limit.lua
saleSchedule = {
    enabled = true,
    startTime = "10:00",
    endTime = "22:00",
    days = {1, 7}              -- เฉพาะอาทิตย์ (1) และเสาร์ (7)
}

ค่า days: 1=อาทิตย์, 2=จันทร์, 3=อังคาร, 4=พุธ, 5=พฤหัส, 6=ศุกร์, 7=เสาร์

ถ้าไม่ระบุ days จะเปิดทุกวัน

เช็คสถานะการขาย

ดูว่าสินค้ากำลังเปิดขายอยู่หรือไม่ ด้วยคำสั่งแอดมิน:

/marketstock popular_item

ถ้านอกเวลาขาย UI จะแสดงสถานะ "ปิดขายชั่วคราว" และนับถอยหลังถึงเวลาเปิดครั้งถัดไป

On this page