MeiriXianGouOBJ = Up_BaseClassOBJ:new() MeiriXianGouOBJ.__cname = "FuLiDaTingOBJ" function MeiriXianGouOBJ:main(parent) GUI:LoadExport(parent, "game/FuLiDaTing/MeiriXianGouUI") self._parent = parent self.ui = GUI:ui_delegate(parent) if not self.ui then return false end ---* 绑定事件 self:EventBind() self:updata() end function MeiriXianGouOBJ:updata() self.cfg = FuLiDaTingOBJ.cfg[3] local Keycfg = hk.getkeytbl("HUMAN(STR_每日限购)") GUI:ListView_removeAllItems(self.ui.xg_ListView) for i, v in ipairs(self.cfg or {}) do local list_Layout = string.format("list_Layout_%d", i) self.ui[list_Layout] = GUI:Image_Create(self.ui.xg_ListView, list_Layout, 0, 0, "res/custom/02/line1.png") GUI:setContentSize(self.ui[list_Layout], 530, 70) local list_index = string.format("list_index_%d", i) self.ui[list_index] = GUI:Text_Create(self.ui[list_Layout], list_index, 17, 35, 16, "#ff0000", i) GUI:setAnchorPoint(self.ui[list_index], 0.00, 0.50) GUI:Text_enableOutline(self.ui[list_index], "#000000", 2) local list_xh_text = string.format("list_xh_text_%d", i) self.ui[list_xh_text] = GUI:Text_Create(self.ui[list_Layout], list_xh_text, 57, 35, 16, "#00ff00", string.format("%sx%d", v.xh[1][1], v.xh[1][2])) GUI:setAnchorPoint(self.ui[list_xh_text], 0.00, 0.50) GUI:Text_enableOutline(self.ui[list_xh_text], "#000000", 2) local list_give_Layout = string.format("list_give_Layout_%d", i) self.ui[list_give_Layout] = GUI:Layout_Create(self.ui[list_Layout], list_give_Layout, 148, 35, 195, 60, false) GUI:setAnchorPoint(self.ui[list_give_Layout], 0.00, 0.50) for gives_id, give_info in ipairs(v.gives or {}) do local list_give_bg = string.format("list_give_bg_%d_%d", i, gives_id) self.ui[list_give_bg] = GUI:Image_Create(self.ui[list_give_Layout], list_give_bg, 0, 0, "res/custom/02/9.png") GUI:Win_SetParam(self.ui[list_give_bg], gives_id) local list_give_item = string.format("list_give_item_%d_%d", i, gives_id) self.ui[list_give_item] = GUI:ItemShow_Create(self.ui[list_give_bg], list_give_item, 29.00, 29.00, { index = SL:GetMetaValue("ITEM_INDEX_BY_NAME", give_info[1]), count = give_info[2], bgVisible = false, look = true }) GUI:setAnchorPoint(self.ui[list_give_item], 0.50, 0.50) end GUI:UserUILayout(self.ui[list_give_Layout], { dir = 2, addDir = 2, interval = 1, gap = { x = 1 }, sortfunc = function(lists) table.sort(lists, function(a, b) return GUI:Win_GetParam(a) > GUI:Win_GetParam(b) end) end }) local y_buy = Keycfg and (Keycfg[i] or 0) or 0 local list_limitbuy = string.format("list_limitbuy_%d", i) self.ui[list_limitbuy] = GUI:Text_Create(self.ui[list_Layout], list_limitbuy, 384, 35, 16, "#ffffff", string.format("%d/%d", y_buy, v.limitbuy)) GUI:setAnchorPoint(self.ui[list_limitbuy], 0.50, 0.50) GUI:Text_enableOutline(self.ui[list_limitbuy], "#000000", 2) GUI:Text_setTextColor(self.ui[list_limitbuy], y_buy >= v.limitbuy and "#ff0000" or "#00ff00") local list_btn = string.format("list_btn_%d", i) self.ui[list_btn] = GUI:Button_Create(self.ui[list_Layout], list_btn, 430, 20, "res/custom/02/17.png") GUI:Button_loadTexturePressed(self.ui[list_btn], "res/custom/02/18.png") GUI:addOnClickEvent(self.ui[list_btn], function() ssrMessage:SubLink(MeiriXianGouOBJ.__cname .. "_mrxg", { id = i }) end) end end function MeiriXianGouOBJ:EventBind() local function MeiriXianGouOBJ_Var_Change(data) if GUI:Win_IsNotNull(self._parent) then if data.key == "HUMAN(STR_每日限购)" then self:updata() end end end SL:RegisterLUAEvent(LUA_EVENT_SERVER_VALUE_CHANGE, self.__cname, MeiriXianGouOBJ_Var_Change) --关闭窗口 SL:RegisterLUAEvent(LUA_EVENT_CLOSEWIN, self.__cname .. "mrcz", function(widgetName) self:OnClose(widgetName) end) end --关闭窗口 function MeiriXianGouOBJ:OnClose(widgetName) if widgetName == self.__cname then self:UnRegisterEvent() end end function MeiriXianGouOBJ:UnRegisterEvent() SL:UnRegisterLUAEvent(LUA_EVENT_SERVER_VALUE_CHANGE, self.__cname) SL:UnRegisterLUAEvent(LUA_EVENT_CLOSEWIN, self.__cname) end --注册到全局红点系统:任意限购项未买满 → 福利按钮 3 + 顶部福利图标都亮 if RedDotMgr and RedDotMgr.register then RedDotMgr:register("FuLi_MeiriXianGou", { owner = "FuLiDaTingOBJ", parent = "TopIcon_FuLi", target = function() return FuLiDaTingOBJ and FuLiDaTingOBJ.ui and FuLiDaTingOBJ.ui.class_btn_3 end, offset = { x = 105, y = 35 }, watchKeys = { "HUMAN(STR_每日限购)" }, check = function() local cfg = FuLiDaTingOBJ and FuLiDaTingOBJ.cfg and FuLiDaTingOBJ.cfg[3] if not cfg then return false end local Keycfg = hk.getkeytbl("HUMAN(STR_每日限购)") local _money = tonumber(SL:Get_MONEY_ASSOCIATED(2) or 0) for i, v in ipairs(cfg) do local y_buy = Keycfg and (Keycfg[i] or 0) or 0 if y_buy < (v.limitbuy or 0) and _money >= cfg.xh[1][2] then return true end end return false end, }) end return MeiriXianGouOBJ