Command

ภาพรวม

ฟังก์ชันสำหรับลงทะเบียนคำสั่งใหม่ในระบบ

ที่อยู่ไฟล์

source/modules/core/commands.lua

ฟังก์ชัน

RegisterCommand

ลงทะเบียนคำสั่งใหม่เข้าสู่ระบบ

พารามิเตอร์
ประเภท
คำอธิบาย

name

string|string[]

ชื่อคำสั่งเดี่ยว หรือ array ของชื่อคำสั่ง

group

string|string[]

กลุ่มผู้ใช้ที่สามารถใช้คำสั่งได้

cb

function

ฟังก์ชันที่จะทำงานเมื่อมีการเรียกใช้คำสั่ง

allowConsole

boolean

อนุญาตให้ใช้คำสั่งผ่าน Server Console หรือไม่

suggestion

table|nil

ข้อมูลคำแนะนำการใช้คำสั่ง (optional)

โครงสร้าง suggestion

{
    help = string,           -- คำอธิบายคำสั่ง
    arguments = {           -- พารามิเตอร์ของคำสั่ง
        {
            name = string,   -- ชื่อพารามิเตอร์
            help = string,   -- คำอธิบายพารามิเตอร์
            type = string,   -- ประเภทข้อมูล (number, string, player, playerId, item, weapon, any, merge, coordinate)
            validate = boolean -- ตรวจสอบความถูกต้องหรือไม่
        }
    },
    validate = boolean      -- ตรวจสอบจำนวนพารามิเตอร์หรือไม่
}

ตัวอย่างการใช้งาน

-- ลงทะเบียนคำสั่งพื้นฐาน
AFUCore.RegisterCommand('heal', 'admin', function(xPlayer, args, showNotification)
    if xPlayer then
        -- รักษา HP ผู้เล่น
        xPlayer.heal()
        showNotification('คุณได้รับการรักษาแล้ว')
    end
end, false)

-- ลงทะเบียนคำสั่งพร้อม suggestion
AFUCore.RegisterCommand('give', 'admin', function(xPlayer, args, showNotification)
    if xPlayer then
        local targetPlayer = args.playerId
        local itemName = args.item
        local amount = args.amount
        
        -- ให้ไอเทมกับผู้เล่น
        targetPlayer.addInventoryItem(itemName, amount)
        showNotification(('ให้ %s จำนวน %d ชิ้นกับ %s'):format(itemName, amount, targetPlayer.getName()))
    end
end, false, {
    help = 'ให้ไอเทมกับผู้เล่น',
    arguments = {
        {name = 'playerId', help = 'ID ผู้เล่น', type = 'playerId'},
        {name = 'item', help = 'ชื่อไอเทม', type = 'item'},
        {name = 'amount', help = 'จำนวน', type = 'number'}
    },
    validate = true
})

-- ลงทะเบียนหลายคำสั่งพร้อมกัน
AFUCore.RegisterCommand({'car', 'vehicle'}, {'admin', 'mod'}, function(xPlayer, args, showNotification)
    if xPlayer then
        -- สร้างรถ
        local vehicleName = args[1] or 'adder'
        -- ... โค้ดสร้างรถ ...
        showNotification(('สร้างรถ %s แล้ว'):format(vehicleName))
    end
end, false)

หมายเหตุ

  • คำสั่งสามารถใช้ได้ทั้งใน chat (/) และ console (ถ้า allowConsole = true)

  • สามารถกำหนดสิทธิ์การใช้งานผ่าน group ได้

  • suggestion ช่วยในการแนะนำวิธีใช้คำสั่งและตรวจสอบความถูกต้องของพารามิเตอร์