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

141 lines
5.6 KiB
Lua

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