Công cụ thành viên

Công cụ trang web


script:feature:what_is_scriptsupportevent:registerevent

Giải thích về ScriptSupportEvent:registerEvent (Dành cho Mini World: CREATA)

Trong Mini World: CREATA, trò chơi cung cấp một API đặc biệt gọi là ScriptSupportEvent:registerEvent. API này được dùng để đăng ký các sự kiện mới trong game mà script Lua của bạn có thể lắng nghe và phản hồi.

Cách hoạt động

Hàm ScriptSupportEvent:registerEvent được sử dụng để liên kết một sự kiện cụ thể trong game với một hàm Lua, để khi sự kiện đó xảy ra trong game, hàm Lua tương ứng sẽ được thực thi. Điều này cho phép bạn tạo ra hành vi dựa trên sự kiện trong các script của mình.

Cú pháp:

ScriptSupportEvent:registerEvent(EventName, FunctionToExecute)
  • EventName: Tên của sự kiện bạn muốn lắng nghe (ví dụ: “Game.Start” hoặc “Player.ClickBlock”).
  • FunctionToExecute: Hàm Lua sẽ được gọi mỗi khi sự kiện xảy ra.

👉 Tên Tất Cả Lớp Sự Kiện


Ví dụ 1: Sự kiện bắt đầu trò chơi

Sự kiện “Game.Start” sẽ được kích hoạt bất cứ khi nào trò chơi bắt đầu. Bạn có thể sử dụng sự kiện này để chạy đoạn mã khi game bắt đầu. Trong trường hợp này, sự kiện không truyền bất kỳ tham số nào cho hàm.

ScriptSupportEvent:registerEvent("Game.Start", function()
    print("The game has started!")
end)

Trong ví dụ này, mỗi khi game bắt đầu, dòng chữ “The game has started!” sẽ được in ra.

  • Tên sự kiện: “Game.Start”
  • Tham số hàm: Không có (không có tham số nào được truyền vào hàm trong trường hợp này).

Ví dụ 2: Sự kiện người chơi nhấp vào khối (block)

Sự kiện “Player.ClickBlock” sẽ được kích hoạt khi người chơi nhấp vào một khối trong game. Khi sự kiện này được kích hoạt, nó sẽ truyền một bảng (table) làm tham số vào hàm, trong đó chứa các thông tin sau:

  • eventobjid: ID đối tượng của sự kiện.
  • x, y, z: Tọa độ của khối mà người chơi đã nhấp vào.
  • blockid: ID của khối đã được nhấp.
Ví dụ:
ScriptSupportEvent:registerEvent("Player.ClickBlock", function(eventData)
    local objid = eventData.eventobjid
    local x = eventData.x
    local y = eventData.y
    local z = eventData.z
    local blockid = eventData.blockid
 
    print("Player clicked block at position:", x, y, z, "with block ID:", blockid)
end)

Trong trường hợp này, mỗi khi người chơi nhấp vào một khối, hệ thống sẽ in ra tọa độ và ID của khối đó.

  • Tên sự kiện: “Player.ClickBlock”
  • Tham số hàm: Một bảng (table) chứa thông tin chi tiết về khối bị nhấp.

Các điểm cần lưu ý:

ScriptSupportEvent:registerEvent là đặc trưng của Mini World: CREATA và không thuộc về Lua chuẩn.

Hàm nhận vào hai đối số: tên sự kiện (kiểu chuỗi) và hàm cần thực thi. Mỗi sự kiện sẽ truyền vào kiểu tham số khác nhau cho hàm xử lý. Ví dụ: “Game.Start”: không truyền tham số. “Player.ClickBlock”: truyền một bảng chứa thông tin. Bằng cách sử dụng API này, bạn có thể khiến script của mình phản hồi theo các sự kiện trong game một cách linh hoạt, từ đó tạo ra các hành vi tương tác và sống động hơn trong game.


script/feature/what_is_scriptsupportevent/registerevent.txt · Sửa đổi lần cuối: 2025/04/25 07:54 bởi leo