Mục lục
Hướng dẫn script
Bài 4: Làm quen với script mini world, return và break
Dừng vòng lặp: break
Khi sử dụng các vòng lặp như for, while chúng ta có thể thêm break vào để dừng vòng lặp khi điều kiện được thỏa mãn.
VD:
local a = {1,3,4} for i, v in pairs(a) do if v == 3 then break end Chat:sendChat(“hello”) end
→ Table a có 3 phần tử thì vòng lặp for ở trên sẽ lặp 3 lần. Tuy nhiên, với điều kiện if kia, nếu giá trị của v = 3 thì vòng lặp sẽ dừng → chỉ lặp 1 lần vì đến lần thứ 2, giá trị của v = 3 → điều kiện được thỏa mãn → dừng vòng lặp.
• Trả về giá trị: return
· Khi dùng các syntax như if, vòng lặp, function, các bạn có thể dùng “return” để trả về 1 giá trị sau khi hành động kết thúc
· Cấu trúc: return (giá trị muốn trả về)
VD:
local a = 1 local b = 2 local function hello() if a == b then local e = 1 return e else local e = 2 return e end end local c = hello()
→ Khi đó, biến c sẽ có giá trị là 2, do đã thỏa mãn điều kiện thứ 2 (tạm gọi là điều kiện “else”). Nếu điều kiện 1 được thỏa mãn (tạm gọi là điều kiện “if”) thì giá trị của c là 1
Làm quen với script mini world:
· Giống với trigger, script của mini world sẽ có sự kiện, điều kiện, hành động, vòng lặp,…
· Trong bài này chúng ta sẽ làm quen với sự kiện trước
· Trong script mini world, một sự kiện sẽ có một table, mỗi một table đó sẽ chứa các thành phần của sự kiện như: Id sinh vật trong sự kiện(eventobjid), id của loại hình sinh vật trong sự kiện(actorid), id của loại khối trong sự kiện(blockid),… Chúng ta lấy các giá trị này bằng cách tạo một biến trong function (để ở giữa hai dấu ngoặc đơn trong function) mình sẽ ví dụ với biến “haha” và sự kiện khi người chơi click vào khối. Khi đó, id người chơi là haha.eventobjid hoặc haha[“eventobjid”], tương tự với khối vuông trong sự kiện (blockid)
· Cách để tạo một sự kiện
local function huhu(a) Chat:sendChat(a.eventobjid) end ScriptSupportEvent:registerEvent([=[Player.ClickBlock]=], huhu)
→ Mình tạo 1 function tên là “huhu”, function này sẽ được kích hoạt mỗi khi người chơi click vào khối, hành động sẽ là hiện id người chơi lên thanh chat. Mình lấy id người chơi từ table “a” và sử dụng api sendChat để hiện id lên thanh chat.
→ mình đã gán function “huhu” vào sự kiện người chơi click vào khối (Player.ClickBlock) bằng “ScriptSupportEvent:register…” (các bạn có thể xem cú pháp ở trên)
→ Sự kiện là “Player.ClickBlock” và function được gán vào sự kiện là “huhu”
Các bạn có thể tìm api, sự kiện trong wiki của trung quốc, link ở bài 1. Về cách sử dụng wiki, mình sẽ hướng dẫn vào tối thứ 7 tuần này ở server discord của mình nha <3
Bài tập:
khi người chơi sử dụng vật phẩm, nếu là kiếm kim cương thì không có gì xảy ra, nếu là giáo đá, hiển thị id vật phẩm trên thanh chat cùng id người chơi.
— Cre:Vũ Hoàng 2024/06/21 17:31