Skip to content

⚡ AFUCore

AFUCore เป็นเฟรมเวิร์กหลัก (Core Framework) สำหรับ FiveM ที่ออกแบบมาเพื่อเน้นความเสถียร ประสิทธิภาพระดับสูง (Performance-first) และโครงสร้างสถาปัตยกรรมที่เป็นระบบ รองรับการทำงานร่วมกับระบบสคริปต์สไตล์ ESX พร้อมทั้งขยายขีดความสามารถด้วยโมดูลสมัยใหม่ ทั้ง Client Services, Server Services, OneSync Helper และ Common Utilities

ข้อมูลเฟรมเวิร์ก

รายการรายละเอียด
ประเภทFiveM Core Framework
สภาพแวดล้อมfx_version cerulean · lua54 · OneSync Infinity
ฐานข้อมูลoxmysql (การจัดการแบบ Asynchronous ประสิทธิภาพสูง)
สถาปัตยกรรมModular Architecture (Client Services / Server Services / Common Helpers / Config)
ความเข้ากันได้รองรับโครงสร้าง xPlayer, SharedPlayerJob, และระบบบัญชี/ไอเทมมาตรฐาน

🧩 สถาปัตยกรรมระบบ (Architecture)

โครงสร้างภายในของ AFUCore แบ่งการทำงานออกเป็น 4 ส่วนหลักเพื่อความยืดหยุ่นในการพัฒนาและบำรุงรักษา:

text
┌──────────────────────────────────────────────────────────────────────────────┐
│                                   AFUCore                                    │
│                                                                              │
│  ┌───────────────────────┐  ┌───────────────────────┐  ┌──────────────────┐  │
│  │    Client Services    │  │    Server Services    │  │  Common Helpers  │  │
│  ├───────────────────────┤  ├───────────────────────┤  ├──────────────────┤  │
│  │ • PlayerData Service  │  │ • xPlayer Object      │  │ • Logger Module  │  │
│  │ • Accounts Service    │  │ • Player Registry     │  │ • Config Loader  │  │
│  │ • Item Service        │  │ • Item System         │  │ • Table Helper   │  │
│  │ • Job Service         │  │ • Job System          │  │ • String Helper  │  │
│  │ • Notification System │  │ • Custom Commands     │  │ • Math Helper    │  │
│  │                       │  │ • OneSync Utilities   │  │ • Timeout / Faker│  │
│  └───────────────────────┘  └───────────────────────┘  └──────────────────┘  │
│                                     ▲                                        │
│                                     │                                        │
│  ┌──────────────────────────────────┴─────────────────────────────────────┐  │
│  │                         Modular Configurations                         │  │
│  │  framework · player · weapon · inventory · notifications · queries    │  │
│  └────────────────────────────────────────────────────────────────────────┘  │
└──────────────────────────────────────────────────────────────────────────────┘

🛠️ Installation & Setup

1. โครงสร้างโฟลเดอร์ในเซิร์ฟเวอร์

นำ Resource ไปวางไว้ในไดเรกทอรี resources/ ของ FiveM Server:

text
resources/
└── AFUCore/
    ├── config/            ← ⚙️ ไฟล์ตั้งค่าทั้งหมด (framework, player, weapon ฯลฯ)
    ├── source/
    │   ├── client/        ← 💻 Client Services & Handlers
    │   ├── server/        ← 🖥️ Server Core, xPlayer & Database Handlers
    │   └── common/        ← 🧰 Common Helpers & Utilities
    └── fxmanifest.lua

2. ลำดับการ Start ใน server.cfg

จัดเรียงลำดับการสตาร์ทใน server.cfg ให้ oxmysql เริ่มทำงานก่อน AFUCore:

cfg
# ลำดับ Dependencies ที่จำเป็น
ensure oxmysql
ensure AFUCore

# ตามด้วยสคริปต์ผลิตภัณฑ์และส่วนเสริมอื่นๆ ของ AFU
ensure AFU.Status
ensure AFU.Shop
ensure AFU.VehicleShop

OneSync Infinity

แนะนำให้เปิดใช้งาน onesync on หรือ onesync legacy ใน server.cfg เพื่อให้โมดูล OneSync ของ AFUCore ทำงานได้อย่างเต็มประสิทธิภาพ


🚀 Quick Start: การเรียกใช้งาน

การเรียกใช้ฝั่ง Client

lua
-- ดึงข้อมูลผู้เล่นปัจจุบัน
local playerData = AFUCore.GetPlayerData()
print("Player Name:", playerData.name)

-- ตรวจสอบอาชีพ
if AFUCore.IsJob("police") then
    print("ผู้เล่นเป็นตำรวจ ระดับชั้น:", AFUCore.GetJobGrade())
end

-- แสดงการแจ้งเตือน
AFUCore.Notify({
    title = "แจ้งเตือนระบบ",
    message = "ยินดีต้อนรับสู่เซิร์ฟเวอร์!",
    type = "success",
    duration = 5000
})

การเรียกใช้ฝั่ง Server

lua
-- ดึงข้อมูล xPlayer จาก Server ID
local source = source
local xPlayer = AFUCore.GetPlayerFromId(source)

if xPlayer then
    -- เพิ่มเงินในบัญชีธนาคาร
    xPlayer.addAccountMoney('bank', 5000)
    
    -- เพิ่มไอเทมเข้ากระเป๋า
    xPlayer.addInventoryItem('bread', 2)
    
    -- ส่งข้อความแจ้งเตือนถึงผู้เล่น
    xPlayer.showNotification("คุณได้รับเงินเข้าบัญชีธนาคาร $5,000 และขนมปัง 2 ชิ้น")
end

📚 สารบัญเอกสารทั้งหมด (Documentation Directory)

⚙️ 1. Configuration (การตั้งค่าคอนฟิก)

  • Framework Config — การตั้งค่าหลักของเฟรมเวิร์ก (PVP, Paycheck, HUD, EventsPrefix)
  • Player Config — ค่าเริ่มต้นของผู้เล่น พิกัดเกิด เงินเริ่มต้น และการเซฟข้อมูล
  • Weapon Config — การกำหนดค่าอาวุธ กระสุน และความเสียหาย
  • Inventory Config — การเชื่อมต่อระบบกระเป๋าและน้ำหนักไอเทม
  • Notifications Config — การตั้งค่าระบบแสดงผลข้อความแจ้งเตือน
  • Queries Config — ชุด SQL Queries สำหรับจัดการข้อมูลในฐานข้อมูล
  • Jobs Events Overrides — การ Override Events ของระบบอาชีพ
  • Debug Config — การตั้งค่าโหมดการตรวจสอบและดีบั๊ก

💻 2. Client Services (บริการฝั่ง Client)

  • Player Data — การเข้าถึงข้อมูลผู้เล่น ตำแหน่ง เลือด และ Events การโหลดตัวละคร
  • Accounts — การดึงข้อมูลบัญชีเงินสด เงินธนาคาร และเงินดำฝั่ง Client
  • Item — การตรวจสอบและดึงข้อมูลไอเทมในกระเป๋า
  • Job — การตรวจสอบอาชีพ ตำแหน่งงาน และยศของผู้เล่น
  • Notifications — ฟังก์ชันการแสดง Help Notification และ UI Alert

🖥️ 3. Server (ระบบฝั่ง Server)

  • xPlayer Object — เอกสารคุณสมบัติ (Properties) และ Methods ทั้งหมดของ xPlayer
  • Player — การค้นหาผู้เล่นผ่าน ID, Identifier และการจัดการชุดผู้เล่นออนไลน์
  • Item — การลงทะเบียน Usable Items และการจัดการไอเทมฝั่ง Server
  • Job — การลงทะเบียนและจัดการข้อมูลโครงสร้างอาชีพ
  • Commands — ระบบลงทะเบียนคำสั่งพิเศษพร้อมสิทธิ์และการตรวจสอบ Permission
  • OneSync — เครื่องมือคำนวณระยะทาง พิกัด Entity และการระบุตำแหน่งผู้เล่น

🧰 4. Common Helpers (โมดูลตัวช่วยส่วนกลาง)

  • Config Helper — ยูทิลิตี้การโหลดและจัดการ Config
  • Logger — ระบบบันทึก Log สีสันตามระดับความสำคัญ (Debug, Info, Warn, Error)
  • Table — ฟังก์ชันเสริมสำหรับการจัดการ Table (DeepCopy, Merge, Contains ฯลฯ)
  • String — ฟังก์ชันจัดการข้อความ ตัดคำ และจัดรูปแบบตัวอักษร
  • Math — ฟังก์ชันคำนวณระยะทาง เวกเตอร์ และการปัดเศษ
  • Timeout — ระบบจัดการตัวจับเวลา Asynchronous Timer
  • Faker — เครื่องมือสร้างข้อมูลจำลองสำหรับทดสอบระบบ