bayuMIR/client/dev/GUILayout/game/A/ZhuanShengOBJ.lua
2026-06-12 02:32:15 +08:00

147 lines
5.3 KiB
Lua

ZhuanShengBJ = {}
ZhuanShengBJ.__cname = "ZhuanShengBJ"
-- 配置文件
ZhuanShengBJ.cfg = {}
function ZhuanShengBJ:main(arg1, arg2, arg3, data)
local parent = GUI:Win_Create(self.__cname, 0, 0, 0, 0, false, false, true, false)
if data and data.npcid then
GUI:Win_BindNPC(parent, data.npcid)
end
GUI:LoadExport(parent, "game/A/ZhuanShengUI")
self._parent = parent
self.ui = GUI:ui_delegate(parent)
--- 窗口初始化居中与动作
ssrUIManager:OpenAlgin(self)
--背景图关闭
GUI:addOnClickEvent(self.ui.bg_close, function()
GUI:Win_Close(self._parent)
end)
--关闭按钮背景板关闭
GUI:addOnClickEvent(self.ui.btn_close, function()
GUI:Win_Close(self._parent)
end)
if data and data.cfg then
ZhuanShengBJ.cfg = data.cfg
end
---* 绑定事件
self:EventBind()
self:updata()
end
function ZhuanShengBJ:updata(level)
level = level or tonumber(SL:GetMetaValue("RELEVEL"))
GUI:TextAtlas_setString(self.ui.TextAtlas, level)
GUI:ListView_removeAllItems(self.ui.d_ListView)
if level > 0 then
for i, v in ipairs(self.cfg[level].att or {}) do
local d_list = string.format("d_list_%d", i)
self.ui[d_list] = GUI:RichTextFCOLOR_Create(self.ui.d_ListView, d_list, 0, 0,
string.format("<%s:/FCOLOR=246>< %s%s/FCOLOR=250>", v[1], i > 1 and " " or "+ ", v[2]), 180, 16,
"#28EF01", 5, nil, nil, { outlineSize = 2, outlineColor = SL:ConvertColorFromHexString("#000000") })
end
end
GUI:ListView_removeAllItems(self.ui.x_ListView)
GUI:removeAllChildren(self.ui.xh_Layout)
if level < #self.cfg then
for i, v in ipairs(self.cfg[level + 1].att) do
local x_list = string.format("x_list_%d", i)
self.ui[x_list] = GUI:RichTextFCOLOR_Create(self.ui.x_ListView, x_list, 0, 0,
string.format("<%s:/FCOLOR=246>< %s%s/FCOLOR=250>", v[1], i > 1 and " " or "+ ", v[2]), 180, 16,
"#28EF01", 5, nil, nil, { outlineSize = 2, outlineColor = SL:ConvertColorFromHexString("#000000") })
end
hk.SettingXhShow(self.ui, self.ui.xh_Layout, self.cfg[level + 1].xh, nil, nil, nil, nil, "res/custom/15/1.png",
10, nil, true)
if GUI:Win_IsNotNull(self.ui.check_level) then
GUI:removeFromParent(self.ui.check_level)
end
if GUI:Win_IsNotNull(self.ui.jiesuo_level) then
GUI:removeFromParent(self.ui.jiesuo_level)
end
if GUI:Win_IsNotNull(self.ui.diaoji) then
GUI:removeFromParent(self.ui.diaoji)
end
self.ui.check_level = GUI:RichTextFCOLOR_Create(self.ui.img_bg, "check_level", 258, 104,
string.format("<当前转生人物等级需达到:/FCOLOR=246><%d级/FCOLOR=250>", self.cfg[level + 1].level), 300, 16, "#28EF01", 5,
nil, nil, { outlineSize = 2, outlineColor = SL:ConvertColorFromHexString("#000000") })
GUI:setAnchorPoint(self.ui.check_level, 0.50, 0.00)
self.ui.jiesuo_level = GUI:RichTextFCOLOR_Create(self.ui.img_bg, "jiesuo_level", 258, 74,
string.format("<转生后人物等级上限可达到:/FCOLOR=246><%d级/FCOLOR=250>", self.cfg[level + 1].level_top), 300, 16,
"#28EF01", 5, nil, nil, { outlineSize = 2, outlineColor = SL:ConvertColorFromHexString("#000000") })
GUI:setAnchorPoint(self.ui.jiesuo_level, 0.50, 0.00)
self.ui.diaoji = GUI:RichTextFCOLOR_Create(self.ui.img_bg, "diaoji", 258, 44,
string.format("<转生后人物等级下降:/FCOLOR=246><%d级/FCOLOR=250>", self.cfg[level + 1].d_l), 300, 16, "#28EF01", 5, nil,
nil, { outlineSize = 2, outlineColor = SL:ConvertColorFromHexString("#000000") })
GUI:setAnchorPoint(self.ui.diaoji, 0.50, 0.00)
else
self.ui.ym = GUI:RichTextFCOLOR_Create(self.ui.x_ListView, "ym", 0, 0, "已满级转生", 180, 16, "#ff0000", 5, nil, nil,
{ outlineSize = 2, outlineColor = SL:ConvertColorFromHexString("#000000") })
hk.SettingXhShow(self.ui, self.ui.xh_Layout, self.cfg[level].xh, nil, nil, nil, nil, "res/custom/15/1.png", 10,
nil, true)
end
self.xh = SL:CopyData(self.cfg[level < #self.cfg and level + 1 or level].xh)
GUI:addOnClickEvent(self.ui.Button, function()
ssrMessage:SubLink("ZhuanShengOBJ_up")
end)
end
------------------------网络消息------------------------
function ZhuanShengBJ:sync(p1, p2, p3, data)
ZhuanShengBJ.cfg = data.cfg
end
---* 注册事件
function ZhuanShengBJ:EventBind()
local function ZhuanShengBJ_bag_del_Reload(data)
if GUI:Win_IsNotNull(self._parent) then
self:updata(data.currReinLevel)
end
end
SL:RegisterLUAEvent(LUA_EVENT_REINLEVEL_CHANGE, self.__cname, ZhuanShengBJ_bag_del_Reload)
--关闭窗口
SL:RegisterLUAEvent(LUA_EVENT_CLOSEWIN, self.__cname, function(widgetName)
self:OnClose(widgetName)
end)
end
--关闭窗口
function ZhuanShengBJ:OnClose(widgetName)
if widgetName == self.__cname then
self:UnRegisterEvent()
end
end
function ZhuanShengBJ:UnRegisterEvent()
self.cfg = {}
SL:UnRegisterLUAEvent(LUA_EVENT_REINLEVEL_CHANGE, self.__cname)
SL:UnRegisterLUAEvent(LUA_EVENT_CLOSEWIN, self.__cname)
end
return ZhuanShengBJ