NEXTCODE-Utils [Escrow]

NEXTCODE-Utils [Escrow]

This item is free.

Add to Basket

# NEXTCODE-Utils

`NEXTCODE-Utils` คือชุดเครื่องมือ (Utility Resource) ที่มีประสิทธิภาพสูงสำหรับเซิร์ฟเวอร์ RedM พัฒนาขึ้นเพื่อช่วยให้นักพัฒนาสามารถจัดการระบบต่าง ๆ ในเกมได้อย่างง่ายดายและเป็นระเบียบ ด้วยสถาปัตยกรรมแบบ OOP (Object-Oriented Programming) และการสตรีมข้ามระบบ (Exports)

---

## 🚀 วิธีการเริ่มต้นใช้งาน (Initialization)

คุณสามารถดึงชุดเครื่องมือทั้งหมดไปใช้งานในสคริปต์อื่น ๆ ได้อย่างสะดวกสบายผ่านระบบ Export:

### วิธีนำเข้าสคริปต์ (Importing)

```lua

local NEXTCODEUtils = exports["NEXTCODE-Utils"]:initiate()

```

---

## 📦 โมดูลระบบที่มีให้ใช้งาน (Available Modules)

เครื่องมือนี้ประกอบไปด้วย API ต่าง ๆ แบ่งตามการใช้งานดังนี้:

### 1. 🎛️ ปุ่มและการกดปุ่ม (Button & Keys)

* **`NEXTCODEUtils.Button`**: คลาสขั้นสูงในการจัดการปุ่มกด ตรวจจับการคลิกธรรมดา, การกดซ้ำ (Double Click), การกดค้าง (Long Press), และการกดรัว (Mash keys)

* **`NEXTCODEUtils.Keys`**: รายการรหัสปุ่มทั้งหมด และระบบดักจับการกดปุ่มแบบ Global (Key Listeners)

### 2. 🗺️ แผนที่และการนำทาง (Map & Blips)

* **`NEXTCODEUtils.Blips`**: สร้างจุดแผนที่ (Blips), ปรับแต่งสี/สเกล, ใส่รัศมี (Radius), และเพิ่มตัวดัดแปลง (Modifiers)

* **`NEXTCODEUtils.Map`**: จัดการการเปิด/ปิด Radar (มินิแมพ), การซ่อนหมอก (FOW), และระบบนำทาง GPS หลายจุดแบบไดนามิก

### 3. 🐎 ระบบการจัดการสัตว์ขี่ (Horse API)

* **`NEXTCODEUtils.Horse`**: จัดการการสร้างและสปอนม้า, เปลี่ยนสกินและอานม้า (Outfit), กำหนดค่าความอึด (Stamina) และพลังชีวิต (Health), เล่นแอนิเมชันสำหรับม้า, และตรวจจับการเชื่อง (Taming State)

### 4. 🧍 ระบบบอทและตัวละคร (Ped API)

* **`NEXTCODEUtils.Ped`**: สร้างและจัดการ NPC ทั้งบนบก, ในพาหนะ และบนหลังม้า. ตั้งค่าพฤติกรรมการต่อสู้ (Combat Attributes), รูปแบบการโจมตี (Combat Styles), การหนี (Flee Attributes), และกลุ่มความสัมพันธ์ (Relationship Groups)

### 5. 📦 การจัดการวัตถุ (Object API)

* **`NEXTCODEUtils.Object`**: สปอนวัตถุ/พร็อพ (Props), ตั้งค่าฟิสิกส์และการขยับสไลด์ (Slide to), ตั้งเอฟเฟกต์ไฟไหม้, และการกำหนดคุณสมบัติการถือพกพา (Carriable/Portable)

### 6. 🛒 จุดเก็บของ (Pickup API)

* **`NEXTCODEUtils.Pickup`**: ระบบสร้างไอเทมดร็อปบนพื้น ทั้งแบบคงที่ แบบหมุน หรือจุดเก็บของทั่วไป รวมถึงจัดการสิทธิการเก็บไอเทมสำหรับผู้เล่น

### 7. 💬 ปุ่มโต้ตอบและป๊อปอัป (Prompts UI)

* **`NEXTCODEUtils.Prompt`**: ออกแบบปุ่มโต้ตอบกับวัตถุหรือสถานที่รูปแบบต่าง ๆ (กดทีเดียว, กดค้าง, กดรัว, ตรวจสอบระยะทางและขอบเขต 3 มิติรอบตัว)

### 8. 🎨 การวาดเอฟเฟกต์และข้อความ (Render API)

* **`NEXTCODEUtils.Render`**: การแปลงพิกัดโลก 3D เป็นพิกัดหน้าจอ 2D, การวาดรูปสี่เหลี่ยม, การวาดสัญลักษณ์ (Markers), และการแสดงผลข้อความ 3D (3D Text) เหนือวัตถุหรือหัวผู้เล่น

### 9. 🗄️ ไฟล์และฐานข้อมูล (File & Database)

* **`NEXTCODEUtils.file`** (Server-Side): เครื่องมืออ่าน เขียน และอัปเดตไฟล์ JSON เพื่อเก็บข้อมูลแบบออฟไลน์

* **`NEXTCODEUtils.Database`** (Server-Side): ตัวช่วยเรียกคิวรี MySQL อย่างปลอดภัย ป้องกันปัญหา SQL Injection

### 10. 🌐 ระบบเครือข่ายและการควบคุมมิติ (RPC & Instances)

* **`NEXTCODEUtils.RPC` / `NEXTCODEUtils.Crypt`**: การส่งข้อมูลแบบ Remote Procedure Calls (RPC) ระหว่างฝั่ง Client และ Server ทั้งแบบปกติและแบบเข้ารหัส/บีบอัดข้อมูลความปลอดภัยสูง (sRPC)

* **`NEXTCODEUtils.instance`** (Server-Side): ระบบแยกมิติของผู้เล่น (Routing Bucket/Virtual Instance) ป้องกันการทับซ้อนพื้นที่หรือการรบกวนกันของผู้เล่น

### 11. 🔔 เครื่องมือทั่วไปและประวัติการทำงาน (Misc & Versioner)

* **`NEXTCODEUtils.Discord`**: ส่งข้อความแจ้งเตือนพร้อมรูปแบบการ์ด Embed เข้า Discord Webhook

* **`NEXTCODEUtils.Versioner`** (Server-Side): ระบบตรวจสอบความปลอดภัยและการอัปเดตเวอร์ชันของสคริปต์อัตโนมัติผ่าน GitHub

---

## 🛠️ ตัวอย่างการปรับแต่งไฟล์ `config.lua`

คุณสามารถควบคุมการแสดงผลบันทึกระบบได้ใน `config.lua`:

```lua

Config = {

    DevMode = false -- ใช้สำหรับการเปิดประวัติบันทึกการกดปุ่ม (keylistener), ตัวรับเหตุการณ์ (event listener) และบันทึกแก้ไขข้อผิดพลาด (Debug logs)

}

```

---

## 📝 ตัวอย่างการนำไปใช้งานจริง (Usage Example)

### การแสดงข้อความ 3D บนแผนที่

```lua

local NEXTCODEUtils = exports["NEXTCODE-Utils"]:initiate()

Citizen.CreateThread(function()

    while true do

        Citizen.Wait(0)

        local playerCoords = GetEntityCoords(PlayerPedId())

       

        -- วาดข้อความ 3D บนพิกัดที่ระบุ

        NEXTCODEUtils.Render:Draw3DText(

            vector3(playerCoords.x, playerCoords.y, playerCoords.z + 1.0),

            "ยินดีต้อนรับสู่ NEXTCODE",

            1.0,

            {r = 255, g = 215, b = 0, a = 255},

            1

        )

    end

end)

```

---

*จัดทำเอกสารโดยทีมงานพัฒนา NEXTCODE Utility*