Mục lục

Kịch bản nhập lệnh dịch chuyển

Kịch bản hoạt động



Giới thiệu chức năng

– Ví dụ về lệnh ( mẫu )
@tp 02, 73, 08
@tp -8, 984, 84
@tp 85.5, 948.0, -49

Giải thích các dòng chức năng

for x_y_z in string.gmatch(string.sub(input, #cau_lenh_mac_dinh + 1), '([^,]+)') do


if tonumber(x_y_z) then


if string.match(b.content, '^@tp%s+.*%d$') then


local nhom_x_y_z = kiem_tra_lenh(b.content)


if nhom_x_y_z and #nhom_x_y_z == 3 then


Actor:setPosition(b.eventobjid, nhom_x_y_z[1], nhom_x_y_z[2], nhom_x_y_z[3])


⇒ Nếu thoả mãn sẽ tiến hành dịch chuyển người chơi


Kịch Bản Tham Khảo:

local cau_lenh_mac_dinh = '@tp ' -- Câu lệnh kích hoạt
 
local function kiem_tra_lenh(input)
    local nhom_x_y_z = {}
 
    -- Tách chuỗi theo dấu phẩy và kiểm tra số
    for x_y_z in string.gmatch(string.sub(input, #cau_lenh_mac_dinh + 1), '([^,]+)') do
        if tonumber(x_y_z) then
            table.insert(nhom_x_y_z, tonumber(x_y_z)) -- Thêm thông số nếu thoả mãn là số
        else
            return false -- lập tức trả về giá trị SAI khi có thông số hỏng
        end
    end
 
    return nhom_x_y_z -- Nếu không có thông số hỏng sẽ trả về bảng thông số
end
 
local function miniworld_tp(b)
    -- Kiểm tra định dạng câu lệnh
    if string.match(b.content, '^@tp%s+.*%d$') then
        local nhom_x_y_z = kiem_tra_lenh(b.content) -- Kiểm tra thông số
 
        if nhom_x_y_z and #nhom_x_y_z == 3 then -- Xác định thông số thoả mãn thuộc số và đủ 3 thông số
            Actor:setPosition(b.eventobjid, nhom_x_y_z[1], nhom_x_y_z[2], nhom_x_y_z[3])
        else
            print('Câu lệnh không hợp lệ') -- Câu lệnh kiểm tra [ Nên xoá ]
        end
    end
end
 
ScriptSupportEvent:registerEvent('Player.InputContent', miniworld_tp)


Cre:Nguyễn Khánh 2024/09/28 15:54


Nếu bạn có bất kỳ câu hỏi nào về Chế Độ DEV Nâng Cao, vui lòng tham gia
Mini World Developer Việt Nam chính thức của chúng tôi