213 lines
7.5 KiB
Lua
213 lines
7.5 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:removeAllChildren(self.ui.give_Layout)
|
|
local give = self.cfg[self.id].give or {}
|
|
hk.SettingXhShow(self.ui, self.ui.give_Layout, give, nil, nil, nil, 0, nil, 8, 0.85, false)
|
|
|
|
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()
|
|
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
|
|
GUI:Text_setString(self.ui.Text_BaoMingNum, BaoMingNum)
|
|
end
|
|
|
|
function HuodongzhongxinOBJ:reloadLuanDouRank(data)
|
|
GUI:ListView_removeAllItems(self.ui.Rank_ListView)
|
|
|
|
local rankMap = {}
|
|
for _, v in ipairs(data.Rank or {}) do
|
|
local rank = tonumber(v[1]) or 0
|
|
if rank > 0 then
|
|
rankMap[rank] = v
|
|
end
|
|
end
|
|
|
|
local rewardList = data.RewardList or {}
|
|
if #rewardList == 0 then
|
|
rewardList = {
|
|
{ rank = 1, rankName = "第一名", rewardItems = {} },
|
|
{ rank = 2, rankName = "第二名", rewardItems = {} },
|
|
{ rank = 3, rankName = "第三名", rewardItems = {} },
|
|
{ rank = 4, rankName = "第四名", rewardItems = {} },
|
|
{ rank = 5, rankName = "第五名", rewardItems = {} },
|
|
{ rank = 6, rankName = "第六名", rewardItems = {} },
|
|
{ rank = 7, rankName = "第七名", rewardItems = {} },
|
|
{ rank = 8, rankName = "第八名", rewardItems = {} },
|
|
{ rank = 9, rankName = "第九名", rewardItems = {} },
|
|
{ rank = 10, rankName = "第十名", rewardItems = {} },
|
|
{ rank = 0, rankName = "参与奖", rewardItems = {} },
|
|
}
|
|
end
|
|
|
|
for i, rewardCfg in ipairs(rewardList) do
|
|
local rank = tonumber(rewardCfg.rank or 0) or 0
|
|
local rankData = rankMap[rank]
|
|
local rankText = rewardCfg.rankName or (rank > 0 and tostring(rank) or "参与奖")
|
|
local name = rank > 0 and "暂无玩家" or "排行低于前十"
|
|
local jifen = rank > 0 and "-" or "积分>0"
|
|
if rankData then
|
|
name = rankData[2] or name
|
|
jifen = rankData[3] or jifen
|
|
end
|
|
local color = SL:GetHexColorByStyleId(255 - i)
|
|
|
|
local list_bg = string.format("list_bg_%d", i)
|
|
self.ui[list_bg] = GUI:Image_Create(self.ui.Rank_ListView, list_bg, 0, 0, "res/custom/27/list.png")
|
|
|
|
local list_rank = string.format("list_rank_%d", i)
|
|
self.ui[list_rank] = GUI:Text_Create(self.ui[list_bg], list_rank, 34, 30, 16, color, rankText)
|
|
GUI:setAnchorPoint(self.ui[list_rank], 0.50, 0.50)
|
|
|
|
local list_name = string.format("list_name_%d", i)
|
|
self.ui[list_name] = GUI:Text_Create(self.ui[list_bg], list_name, 148, 30, 16, color, name)
|
|
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_bg], list_jifen, 270, 30, 16, color, jifen)
|
|
GUI:setAnchorPoint(self.ui[list_jifen], 0.50, 0.50)
|
|
|
|
local rewardShowList = {}
|
|
for _, itemInfo in ipairs(rewardCfg.rewardItems or {}) do
|
|
table.insert(rewardShowList, { itemInfo.name, itemInfo.count or 1 })
|
|
end
|
|
|
|
local item_Layout = string.format("item_Layout_%d", i)
|
|
self.ui[item_Layout] = GUI:Layout_Create(self.ui[list_bg], item_Layout, 328, -2, 190, 70, false)
|
|
hk.SettingXhShow(self.ui, self.ui[item_Layout], rewardShowList, nil, nil, nil, 0, nil, 0, 0.9, false)
|
|
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
|