script:bai10

Dịch chuyển tức thời tới vị trí ngẫu nhiên trong khu vực người chơi

Mô tả:

- Khi người chơi sử dụng vật phẩm, dịch chuyển người chơi tới vị trí bất kì xung quanh mình

Các bước thực hành

Bước 1: tạo và gán function vào event

-- Tạo một function, gán function này cho sự kiện khi vật ném va chạm
-- dưới đây là bước tạo function, bạn có thể đổi tên function tùy ý
local function khi_su_dung_vat_pham(e) 
-- “e” là một biến table(bạn có thể đổi thành tên khác tùy ý), chứa các thành phần trong event mà function được gán vào (VD: eventobjid, objid, itemid,...)
-- các bạn sẽ tìm được các thành phần đó ở wiki script.
local itemids = 100 -- id của vật phẩm được sử dụng làm công cụ dịch chuyển (id này là id khối đất, vui lòng chuyển thành id khác để script hiện tại dùng được)
-- Dưới đây là bước khai báo event và gán function đã tạo vào event. 
--Tất cả những gì trong function sẽ được thực hiện khi event được kích hoạt
end
ScriptSupportEvent:registerEvent(“Player.UseItem”,khi_su_dung_vat_pham) 


Bước 2: xét xem vật phẩm sử dụng có giống vật phẩm mình muốn không

local itemids = 100 -- biến này có thể bỏ vào function hoặc để ở ngoài, thông thường nên để ở ngoài để dùng được trong nhiều function khác nhau
local function khi_su_dung_vat_pham(e) 
if e.itemid == itemids then
--điều kiện được thỏa mãn thì các hành động trong này được thực hiện
end
end
ScriptSupportEvent:registerEvent(“Player.UseItem”,khi_su_dung_vat_pham) 


Bước 3: thực hiện hành động dịch chuyển tức thời

local itemids = 100 
local function khi_su_dung_vat_pham(e) 
if e.itemid == itemids then
local re, x,y,z = Player:getPosition(e.eventobjid) 
	-- “re ” là biến mang giá trị 0 hoặc 1001 tương ứng với api thực hiện thành công và không thành công
	-- x,y,z là biến vị trí x,y,z của người chơi
	local randomx = math.random(x-5,x+5)
	local randomy = math.random(y-5,y+5)
	local randomz = math.random(z-5,z+5)
-- ở trên là bước tạo vị trí ngẫu nhiên từ vị trí x,y,z của người chơi
-- api math.random(số A, số B)  được sử dụng để lấy 1 giá trị bất kì trong khoảng từ A tới B, trong trường hợp này là vị trí x,y,z của người chơi - 5 và + 5 (khu vực 9x9x9 xung quanh người chơi)
 
Player:setPosition(e.eventobjid,randomx,randomy,randomz)
end
end
ScriptSupportEvent:registerEvent(“Player.UseItem”,khi_su_dung_vat_pham) 



Cre:Vũ Hoàng 2024/07/20 14:47

script/bai10.txt · Sửa đổi lần cuối: 2024/07/26 04:21 bởi leo