🛍️AFU Enhanced Shop

รายละเอียด

AFU Enhanced Shop เป็นระบบร้านค้าขั้นสูงสำหรับเซิร์ฟเวอร์ FiveM ที่พัฒนาโดย AFU Squad (Danyouknowme x Txrxx x Hex) ระบบนี้รองรับการสร้างร้านค้าหลากหลายประเภท พร้อมฟีเจอร์ส่วนลด การซื้อสินค้าด้วยเงินสดหรือธนาคาร และการบันทึกรายการสินค้าที่ต้องการซื้อบ่อยๆ

ฟีเจอร์หลัก

  • 🏪 ร้านค้าหลากหลายประเภท: สร้างร้านค้าได้ไม่จำกัดพร้อมหมวดหมู่สินค้าต่างๆ

  • 💰 ระบบชำระเงินหลายช่องทาง: รองรับการชำระด้วยเงินสดหรือเงินในธนาคาร พร้อมกำหนดภาษีแยกตามช่องทางการชำระเงิน

  • 🎯 ระบบส่วนลด: รองรับการกำหนดส่วนลดตามไอเทมที่ผู้เล่นมี เช่น บัตร VIP

  • 🛒 บันทึกรายการสั่งซื้อ: ผู้เล่นสามารถบันทึกรายการสินค้าที่ต้องการซื้อบ่อยๆ เพื่อความสะดวกในการซื้อครั้งต่อไป

  • 👮 ระบบจำกัดอาชีพ: สามารถกำหนดให้ร้านค้าเฉพาะอาชีพเข้าถึงได้ เช่น ร้านอาวุธตำรวจ

  • 📦 ตรวจสอบน้ำหนักสิ่งของ: รองรับทั้งระบบน้ำหนัก (Weight System) และระบบจำกัดจำนวน (Limit System)

  • 🖼️ ภาพสินค้า: รองรับการแสดงภาพสินค้าจากไอเทมในระบบ Inventory

การตั้งค่า

ไฟล์การตั้งค่า

  • config/settings.lua: ตั้งค่าพื้นฐานของระบบร้านค้า เช่น เส้นทางรูปภาพ, ภาษี, และส่วนลด

  • config/shops/: โฟลเดอร์สำหรับกำหนดร้านค้าประเภทต่างๆ

    • general.lua: ตัวอย่างร้านค้าทั่วไป

    • police.lua: ตัวอย่างร้านค้าสำหรับตำรวจ

การกำหนดร้านค้า

local shop = {
    name = "ชื่อร้านค้า",
    categories = {
        {
            name = "หมวดหมู่",
            items = {
                {
                    name = "ชื่อไอเทม",
                    type = EItemType.ITEM, -- หรือ EItemType.WEAPON สำหรับอาวุธ
                    price = 100, -- ราคา
                },
                -- เพิ่มสินค้าอื่นๆ
            }
        },
        -- เพิ่มหมวดหมู่อื่นๆ
    },
    allowJobs = ESystem.ALLOW_ALL_JOBS, -- หรือระบุอาชีพเฉพาะ เช่น {"police"}
    allowDiscountPresets = {
        ENUMDiscountPreset.PRESET_1, -- ส่วนลดที่อนุญาตให้ใช้ในร้านนี้
    },
    locations = {
        vector4(x, y, z, heading), -- พิกัดร้านค้า
    },
}

การกำหนดส่วนลด

Config.DiscountPresets = {
    [ENUMDiscountPreset.PRESET_1] = {
        label = "ส่วนลด VIP Card Lv.1",
        percentDiscount = 10, -- เปอร์เซ็นต์ส่วนลด
        maxDiscountPrice = 1000, -- จำนวนเงินส่วนลดสูงสุด
        Remove = true, -- ลบไอเทมที่ใช้เป็นส่วนลดหรือไม่
        itemsDiscount = {
           "vip_card_lv_1", -- ไอเทมที่ใช้เป็นส่วนลด
        },
        AlwaysHas = function(source)
            -- ฟังก์ชันตรวจสอบเงื่อนไขอื่นๆ
            return true
        end,
    },
}

การใช้งานระบบ

  1. เมื่อผู้เล่นเข้าใกล้จุดร้านค้า ระบบจะแสดงหน้าต่างร้านค้า

  2. ผู้เล่นสามารถเลือกสินค้าที่ต้องการซื้อได้

  3. ระบบจะตรวจสอบว่าผู้เล่นมีเงินเพียงพอและสามารถพกพาสินค้าได้หรือไม่

  4. ผู้เล่นสามารถเลือกชำระเงินด้วยเงินสดหรือเงินในธนาคาร

  5. หากมีไอเทมส่วนลด ระบบจะนำมาคำนวณส่วนลดโดยอัตโนมัติ

  6. ผู้เล่นสามารถบันทึกรายการสั่งซื้อสำหรับการซื้อครั้งต่อไปได้

การรองรับระบบอินเวนทอรี่

  • รองรับทั้งระบบน้ำหนัก (Weight System) และระบบจำกัดจำนวน (Limit System)

  • ตรวจสอบว่าผู้เล่นสามารถพกพาสินค้าได้หรือไม่ก่อนทำการซื้อ

ระบบฐานข้อมูล

ระบบใช้ฐานข้อมูล MySQL สำหรับเก็บข้อมูลรายการสั่งซื้อที่บันทึกไว้ (Presets) โดยจะสร้างตาราง afu_shop_preset เมื่อเริ่มต้นใช้งาน

การแก้ไขฮุค (Hooks)

ระบบมีฮุคสำหรับปรับแต่งการทำงาน:

  • config/hooks/client.lua: ฮุคฝั่งไคลเอนต์สำหรับตรวจสอบไอเทม เงิน และการแสดงผล

  • config/hooks/server.lua: ฮุคฝั่งเซิร์ฟเวอร์สำหรับการตรวจสอบสิทธิ์ การเพิ่มลบไอเทม และการจัดการเงิน

ข้อกำหนดระบบ

  • ESX Framework

  • MySQL Async Library

คำแนะนำเพิ่มเติม

  • ตรวจสอบให้แน่ใจว่าไอเทมที่กำหนดในร้านค้ามีอยู่ในระบบ Inventory ของเซิร์ฟเวอร์

  • สามารถเพิ่มร้านค้าใหม่ได้โดยสร้างไฟล์ใหม่ในโฟลเดอร์ config/shops/

  • หากต้องการเพิ่มส่วนลดประเภทใหม่ ให้เพิ่มใน ENUMDiscountPreset และกำหนดค่าใน Config.DiscountPresets


💬 พัฒนาโดย AFU Squad 🐌 @Copyright Danyouknowme x Txrxx x Hex ☕ ขอบคุณสำหรับการสนับสนุน 💳 ซื้อโทเคนได้ที่ awayfromus.dev