Công cụ thành viên

Công cụ trang web


script:feature:hp_ui

Kịch bản hiện thị thanh HP (UI)

Chức năng

Kịch bản cập nhập thanh HP hiện tại của người chơi
CHÚ Ý:

  • Kịch bản là một hàm chức năng có thể vận dụng cho nhiều trường hợp liên quan như các thuộc tính khác hoặc giá trị mang chức năng tương tự …
  • Hàm chỉ áp dụng được khi đã nhập các giá trị cần thiết vào bảng và có hàm khác kích hoạt

Giải thích các dòng lệnh

local uiid = [[7437132046194847619]]
local elementidTxt = [[7437132046194847619_3]]
local elementidBar = [[7437132046194847619_2]]
  • Định nghĩa các biến uiid, elementidTxt, và elementidBar để lưu trữ ID của UI và các thành phần UI như thanh máu và text hiển thị máu.
  • Chú ý: Thay ID thành ID giao diện và thành phần sử dụng

local WBar = 560
local tick = 0.08
  • WBar là chiều rộng của thanh máu khi đầy, và tick là thời gian cập nhật cho hoạt ảnh mượt mà.
  • Chú ý: Thay độ dài, thời gian tải thích hợp

    local function HP(uid)
  • Hàm HP nhận UID người chơi cập nhập hiển thị thanh HP

    local HPmax = select(2,Player:getAttr(uid,1)) HPmax = math.ceil(HPmax)
    local HP = select(2,Player:getAttr(uid,2)) HP = math.max(0, math.ceil(HP))
  • Hàm HP lấy tối đa (HPmax) và hiện tại (HP) của nhân vật uid. math.ceil làm tròn các giá trị HPmax và HP để tránh số thập phân, và math.max đảm bảo HP không âm.

    Trigger.UI:PlaySmoothAnim(uid, uiid, elementidBar, Trigger.UI:MakeSmoothScaleBy(tick,'w',3,(HP/HPmax)*WBar))
    Customui:setText(uid, uiid, elementidTxt, HP..' / '..HPmax)
end
  • Dòng đầu tiên tạo hoạt ảnh mượt cho thanh máu với chiều rộng tỷ lệ với phần trăm HP hiện tại. Dòng thứ hai cập nhật text hiển thị giá trị hiện tại của HP trên UI.

local function HPATTR(event)
    if event.playerattr == 1 or event.playerattr == 2 then
        HP(event.eventobjid)
    end
end
  • Hàm HPATTR được gọi khi có sự thay đổi về thuộc tính của người chơi. Nó kiểm tra nếu thuộc tính thay đổi là HP tối đa (1) hoặc HP hiện tại (2) thì sẽ gọi hàm HP để cập nhật thanh máu.

local function Login(event)
    HP(event.eventobjid)
end
ScriptSupportEvent:registerEvent('Game.AnyPlayer.EnterGame', Login)
  • Login được gọi khi người chơi vào game, nó cập nhật thanh máu ngay từ lúc đầu vào game. Đăng ký sự kiện khi người chơi vào game (Game.AnyPlayer.EnterGame) để gọi hàm Login thực hiện cập nhật thanh máu ban đầu.

Kịch Bản Tham Khảo:

  • Chú ý: Kịch bản cần bổ sung các thông số cần thiết để hoạt động
local uiid = 
local elementidTxt = 
local elementidBar = 
local WBar = 
local tick = 
local function HP(uid)
    local HPmax = select(2,Player:getAttr(uid,1)) HPmax = math.ceil(HPmax)
    local HP = select(2,Player:getAttr(uid,2)) HP = math.max(0, math.ceil(HP))
    Trigger.UI:PlaySmoothAnim(uid, uiid, elementidBar, Trigger.UI:MakeSmoothScaleBy(tick,'w',3,(HP/HPmax)*WBar))
    Customui:setText(uid, uiid, elementidTxt, HP..' / '..HPmax)
end
local function HPATTR(event)
    if event.playerattr == 1 or event.playerattr == 2 then
        HP(event.eventobjid)
    end
end
ScriptSupportEvent:registerEvent('Player.ChangeAttr', HPATTR)
local function Login(event)
    HP(event.eventobjid)
end
ScriptSupportEvent:registerEvent('Game.AnyPlayer.EnterGame', Login)

Cre:Nguyễn Khánh 2024/11/15 09:14


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

script/feature/hp_ui.txt · Sửa đổi lần cuối: 2024/11/15 09:31 bởi leo