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

163 lines
5.3 KiB
Lua

HuodongzhongxinOBJ = Up_BaseClassOBJ:new()
HuodongzhongxinOBJ.__cname = "HuodongzhongxinOBJ"
-- UI文件
HuodongzhongxinOBJ.UIfile = "game/Tongyong/HuodongzhongxinUI"
-- 配置文件
HuodongzhongxinOBJ.cfg = {}
HuodongzhongxinOBJ.other = nil
HuodongzhongxinOBJ.npcid = nil
function HuodongzhongxinOBJ:updata()
GUI:ListView_removeAllItems(self.ui.Listbtn_ListView)
for i, v in ipairs(self.cfg or {}) do
local list_btn = string.format("list_btn_%d", i)
self.ui[list_btn] = GUI:Button_Create(self.ui.Listbtn_ListView, list_btn, 0, 0, string.format("res/custom/27/btn/%s.png", self.id == i and tostring(i) or tostring(i) .. "a"))
GUI:addOnClickEvent(self.ui[list_btn], function()
GUI:Button_loadTextureNormal(self.ui["list_btn_" .. self.id], string.format("res/custom/27/btn/%s.png", self.id .. "a"))
GUI:Button_loadTextureNormal(self.ui[list_btn], string.format("res/custom/27/btn/%s.png", i))
self.id = i
self:set_show()
end)
end
self:set_show()
end
function HuodongzhongxinOBJ:set_show()
GUI:Image_loadTexture(self.ui.activity_bg, string.format("res/custom/27/bg/%d.png", self.id))
GUI:Text_setString(self.ui.activity_Text, self.cfg[self.id].msg or "")
GUI:addOnClickEvent(self.ui.Up_btn, function()
ssrMessage:SubLink(self.__cname .. "_up", self.id)
end)
self:daluandou()
end
----* 大乱斗功能
function HuodongzhongxinOBJ:daluandou()
GUI:setVisible(self.ui.LuandouRank_img, false)
local _daluandou = self.id == 3 and true or false
---* 报名是否开启
local BaoMing_bool = (tonumber(SL:Get_SERVER_VALUE("GLOBAL(INT_DALUANDOUBAOMING)")) or 0) > 0 and true or false
if not BaoMing_bool then
GUI:setVisible(self.ui.baomin_btn, false)
GUI:setVisible(self.ui.baomin_img, false)
else
GUI:setVisible(self.ui.baomin_img, true)
---* 个人是否报名
local self_register = (tonumber(SL:Get_SERVER_VALUE("HUMAN(INT_大乱斗已报名)")) or 0) > 0 and 1 or 2
if self_register == 1 then
GUI:setVisible(self.ui.baomin_btn, false)
else
GUI:setVisible(self.ui.baomin_btn, true)
end
GUI:Image_loadTexture(self.ui.baomin_img, string.format("res/custom/27/bq/%d.png", self_register))
end
if _daluandou then
GUI:setVisible(self.ui.Look_rank_btn, true)
GUI:setPositionX(self.ui.Up_btn, 106)
else
GUI:setVisible(self.ui.Look_rank_btn, false)
GUI:setPositionX(self.ui.Up_btn, 206)
end
GUI:setVisible(self.ui.daluandou_Layou, _daluandou)
GUI:addOnClickEvent(self.ui.baomin_btn, function()
ssrMessage:SubLink(self.__cname .. "_BaoMing")
end)
GUI:addOnClickEvent(self.ui.Look_rank_btn, function()
ssrMessage:SubLink("HuodongzhongxinOBJ_luandouGetData")
self:reloadLuanDou()
ssrMessage:SubLink("HuodongzhongxinOBJ_luandouGetData", 10002)
GUI:setVisible(self.ui.LuandouRank_img, true)
end)
end
function HuodongzhongxinOBJ:reloadLuanDou()
local BaoMingNum = tonumber(hk.getvalue("GLOBAL(INT_BAOMINGRENSHU)")) or 0
SL:dump(BaoMingNum)
GUI:Text_setString(self.ui.Text_BaoMingNum, BaoMingNum)
end
function HuodongzhongxinOBJ:reloadLuanDouRank(data)
GUI:ListView_removeAllItems(self.ui.Rank_ListView)
for i, v in ipairs(data.Rank or {}) do
local list_Layout = string.format("list_Layout_%d", i)
self.ui[list_Layout] = GUI:Layout_Create(self.ui.Rank_ListView, list_Layout, 0, 0, 200, 30, false)
local list_name = string.format("list_name_%d", i)
self.ui[list_name] = GUI:Text_Create(self.ui[list_Layout], list_name, 136, 16, 16, SL:GetHexColorByStyleId(255 - i), v[2])
GUI:setAnchorPoint(self.ui[list_name], 0.50, 0.50)
local list_jifen = string.format("list_jifen_%d", i)
self.ui[list_jifen] = GUI:Text_Create(self.ui[list_Layout], list_jifen, 304, 16, 16, SL:GetHexColorByStyleId(255 - i), v[3])
GUI:setAnchorPoint(self.ui[list_jifen], 0.50, 0.50)
end
end
function HuodongzhongxinOBJ:close()
if GUI:Win_IsNotNull(self._parent) then
GUI:Win_Close(self._parent)
end
end
---* 注册事件
function HuodongzhongxinOBJ:EventBind()
local function HuodongzhongxinOBJ_Var_Reload(data)
if GUI:Win_IsNotNull(self._parent) then
if data.key == "HUMAN(INT_大乱斗已报名)" and self.id == 3 then
self:daluandou()
end
end
end
SL:RegisterLUAEvent(LUA_EVENT_SERVER_VALUE_CHANGE, self.__cname, HuodongzhongxinOBJ_Var_Reload)
local function synData(msgID, arg1, arg2, arg3, jsonstr)
local msgData = jsonstr and SL:JsonDecode(jsonstr) or nil
if not msgData then
return
end
HuodongzhongxinOBJ:reloadLuanDouRank(msgData)
end
SL:RegisterLuaNetMsg(10002, synData)
--关闭窗口
SL:RegisterLUAEvent(LUA_EVENT_CLOSEWIN, self.__cname, function(widgetName)
self:OnClose(widgetName)
end)
end
--关闭窗口
function HuodongzhongxinOBJ:OnClose(widgetName)
if widgetName == self.__cname then
self:UnRegisterEvent()
end
end
function HuodongzhongxinOBJ:UnRegisterEvent()
SL:UnRegisterLUAEvent(LUA_EVENT_SERVER_VALUE_CHANGE, self.__cname)
SL:UnRegisterLUAEvent(LUA_EVENT_CLOSEWIN, self.__cname)
end
return HuodongzhongxinOBJ