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

211 lines
6.3 KiB
Lua

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