ZhuangBeiFenJieOBJ = {} ZhuangBeiFenJieOBJ.__cname = "ZhuangBeiFenJieOBJ" -- 配置文件 ZhuangBeiFenJieOBJ.cfg = {} ZhuangBeiFenJieOBJ.onlywhere = { [3] = true, [4] = true, [5] = true, [6] = true, [7] = true, [8] = true, [10] = true, [11] = true, } local function ZhuangBeiFenJieOBJ_for() local tbl = {} for i, v in pairs(SL:Get_STD_ITEMS() or {}) do if i >= 50000 then if v.Need == 4 and v.NeedLevel <= 5 then local where = SL:Get_TIP_POSLIST_BY_STDMODE(v.StdMode, false)[1] if ZhuangBeiFenJieOBJ.onlywhere[where] and string.find(v.Name, "废弃", 1, true) == nil and string.find(v.Name, "凡品", 1, true) == nil and string.find(v.Name, "珍品", 1, true) == nil then table.insert(tbl, v.Name) end end end end return tbl end ZhuangBeiFenJieOBJ.zsequip = ZhuangBeiFenJieOBJ_for() function ZhuangBeiFenJieOBJ: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/ZhuangBeiFenJieUI") 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) ---* 绑定事件 self:EventBind() if data and data.cfg then self.cfg = data.cfg end self.select = nil self:all_itme() -- self:updata() end function ZhuangBeiFenJieOBJ:all_itme() -- GUI:ListView_removeAllItems(self.ui.sel_ListView) self.id = self.id or nil GUI:removeAllChildren(self.ui.Layout) for i, v in ipairs(self.cfg.list or {}) do local list_bg = string.format("all_item_bg_%d", i) self.ui[list_bg] = GUI:Image_Create(self.ui.Layout, list_bg, 0.00, 0.00, "res/custom/04/1.png") GUI:Win_SetParam(self.ui[list_bg], #self.cfg.list - i) local list_item = "list_item_" .. i self.ui[list_item] = GUI:ItemShow_Create(self.ui[list_bg], list_item, 57 / 2 - 2, 57 / 2 + 2, { index = 1, look = true, bgVisible = false, count = 1 }) hk.reloadItemShow(self.ui[list_item], v.name, 1, nil, nil, true) GUI:setAnchorPoint(self.ui[list_item], 0.50, 0.50) if self.id == i then GUI:ItemShow_setItemShowChooseState(self.ui[list_item], true) end GUI:ItemShow_addDoubleEvent(self.ui[list_item], function() if SL:Get_ITEM_COUNT(v.name) > 0 then if self.id then GUI:ItemShow_setItemShowChooseState(self.ui["list_item_" .. self.id], false) end GUI:ItemShow_setItemShowChooseState(self.ui[list_item], true) self.id = i self.select = v.name self:updata() end end) end GUI:UserUILayout(self.ui.Layout, { dir = 3, addDir = 1, interval = 0, colnum = 4, gap = { x = 5, y = 5 }, sortfunc = function(lists) table.sort(lists, function(a, b) return GUI:Win_GetParam(a) > GUI:Win_GetParam(b) end) end }) end function ZhuangBeiFenJieOBJ:updata() if self.select then GUI:setVisible(self.ui.select_Item, true) self:fjget() else GUI:setVisible(self.ui.select_Item, false) GUI:Text_setString(self.ui.select_Text, "点击上方框选择分解装备") GUI:Text_setTextColor(self.ui.select_Text, "#ff0000") end end function ZhuangBeiFenJieOBJ:fjget() if not self.select then return end local itemIndex = SL:Get_ITEM_INDEX_BY_NAME(self.select) local itemData = SL:Get_ITEM_DATA(itemIndex) if not itemData then return end if itemData.Need ~= 4 then return end local NeedLevel = itemData.NeedLevel GUI:Text_setString(self.ui.select_Text, string.format("本次分解将消耗:金币x%d", self.cfg.xh[NeedLevel][2])) hk.reloadItemShow(self.ui.select_Item, self.select, 1, nil, nil, true) GUI:Text_setTextColor(self.ui.select_Text, "#00ff00") local fjGet_cfg = self.cfg.fj[NeedLevel] GUI:ListView_removeAllItems(self.ui.ListView) for i, v in ipairs(fjGet_cfg) do local list_bg = string.format("list_bg_%d", i) self.ui[list_bg] = GUI:Image_Create(self.ui.ListView, list_bg, 0.00, 0.00, "res/public/1900000651.png") local bg_zise = GUI:getContentSize(self.ui[list_bg]) local list_item = string.format("list_item_%d", i) self.ui[list_item] = GUI:ItemShow_Create(self.ui[list_bg], list_item, bg_zise.width / 2, bg_zise.height / 2, { count = v[2], index = SL:GetMetaValue("ITEM_INDEX_BY_NAME", v[1]), bgVisible = false, look = true }) GUI:setAnchorPoint(self.ui[list_item], 0.50, 0.50) end GUI:addOnClickEvent(self.ui.Button, function() ssrMessage:SubLink("ZhuangBeiFenJieOBJ_up", self.select) end) end function ZhuangBeiFenJieOBJ:reddot() end ---* 注册事件 function ZhuangBeiFenJieOBJ:EventBind() ---* 背包 和 货币 物品变化 local function ZhuangBeiFenJieOBJ_REINLEVELCHANGE(data) if GUI:Win_IsNotNull(self._parent) then self:fjget() self:all_itme() end end SL:RegisterLUAEvent(LUA_EVENT_BAG_ITEM_CHANGE, self.__cname, ZhuangBeiFenJieOBJ_REINLEVELCHANGE) -- SL:RegisterLUAEvent(LUA_EVENT_MONEY_CHANGE, self.__cname, ZhuangBeiFenJieOBJ_REINLEVELCHANGE) --关闭窗口 SL:RegisterLUAEvent(LUA_EVENT_CLOSEWIN, self.__cname, function(widgetName) self:OnClose(widgetName) end) end --关闭窗口 function ZhuangBeiFenJieOBJ:OnClose(widgetName) if widgetName == self.__cname then self:UnRegisterEvent() end end function ZhuangBeiFenJieOBJ:UnRegisterEvent() SL:UnRegisterLUAEvent(LUA_EVENT_BAG_ITEM_CHANGE, self.__cname) -- SL:UnRegisterLUAEvent(LUA_EVENT_MONEY_CHANGE, self.__cname) SL:UnRegisterLUAEvent(LUA_EVENT_CLOSEWIN, self.__cname) end return ZhuangBeiFenJieOBJ