Extending Functions

แนวทางเพิ่ม Functions ให้ NC Core พร้อมโครงสร้างไฟล์ การเปิดใช้งานผ่าน config และตัวอย่าง Client/Server

การเพิ่ม Functions

หน้านี้อธิบายแนวทางเพิ่ม Functions ให้ NC Core เนื้อหาเน้นโครงสร้างไฟล์ การเปิดใช้งานผ่าน config และรูปแบบการเขียนที่ดูแลง่าย

Functions คืออะไร

Functions คือฟังก์ชันส่วนกลางของ Framework ออกแบบให้เรียกใช้ซ้ำได้บ่อย และใช้งานได้หลาย resource

โฟลเดอร์ที่เกี่ยวข้อง

  • functions/client/ สำหรับฝั่ง Client

  • functions/server/ สำหรับฝั่ง Server

  • functions/shared/ สำหรับโค้ดที่ใช้ร่วมกัน

การเปิดใช้งาน (สำคัญ)

ต้องเปิดใช้งานใน config/config.functions.lua หากไม่เพิ่มใน config ฟังก์ชันจะไม่ถูกโหลด

circle-info

Functions vs Modules vs Player Class

  • Player Class Functions เหมาะกับเมธอดที่ผูกกับ xPlayer และทำงานรายผู้เล่น

  • Modules เหมาะกับเครื่องมือเสริม เปิด/ปิดได้ และไม่ได้เป็นแกนหลักของ Framework

  • Functions เหมาะกับฟังก์ชันส่วนกลางที่เรียกใช้บ่อย และเป็นส่วนขยายของ Framework หลัก

โครงสร้างไฟล์ (ขั้นต่ำ)

circle-exclamation

Steps to Add New Function

ขั้นตอนการเพิ่ม Function ใหม่

1

สร้างไฟล์ Function

เลือกตำแหน่งให้ถูกฝั่ง:

  • Client: functions/client/

  • Server: functions/server/

  • Shared: functions/shared/

2

เขียนฟังก์ชัน และใส่ comment ให้ครบ

แนะนำให้ระบุ:

  • วัตถุประสงค์

  • พารามิเตอร์ และชนิดข้อมูล

  • ค่าที่ return

3

เปิดใช้งานใน config/config.functions.lua

เพิ่มชื่อไฟล์ (ไม่ต้องใส่นามสกุล .lua) ลงในฝั่งที่เกี่ยวข้อง

4

ทดสอบการเรียกใช้งาน

ทดสอบในจุดใช้งานจริง และตรวจ error log

ตัวอย่าง: Client Function

ไฟล์: functions/client/PlayAnimationSync.lua

Enable in Config

เปิดใช้งานใน Config

วิธีใช้งาน (Client)

ตัวอย่าง: Server Function

ไฟล์: functions/server/GetPlayersInRadius.lua

Enable in Config

เปิดใช้งานใน Config

วิธีใช้งาน (Server)

แนวทางการเขียน (Best Practices)

เลือกประเภทให้ถูกงาน

ประเภท
ตำแหน่ง
Config
Object Context
Use Case

Player Class

server/classes/player/functions/

❌ ไม่ต้อง

player (xPlayer)

ฟังก์ชันเฉพาะผู้เล่น

Modules

modules/*/

config.modules.lua

ไม่มี

ฟังก์ชันเสริมทั่วไป

Functions

functions/*/

config.functions.lua

ไม่มี

ฟังก์ชันหลักของ Framework

การตั้งชื่อ

ตั้งชื่อให้สื่อความหมาย และสอดคล้องกับการใช้งานจริง

รูปแบบ Comment ที่แนะนำ

การ return ค่า

การตรวจสอบพารามิเตอร์ และ default value

Checklist การเพิ่ม Function

สรุป

Functions เหมาะเมื่อ:

  • เป็นฟังก์ชันส่วนกลางที่ใช้ซ้ำหลายจุด

  • ต้องการให้เรียกผ่าน ESX.YourFunction() ได้แบบมาตรฐาน

  • ต้องการควบคุมการโหลดผ่าน config/config.functions.lua

ตัวอย่าง: ESX.GetPlayersInRadius(), ESX.PlayAnimationSync()

circle-check

Last updated