123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837 |
- ---@class KLOpenServerPanel:UIKmlLuaPanelBase
- ---@field view KLOpenServerPanelView
- local KLOpenServerPanel = class(UIKmlLuaPanelBase)
- local this = KLOpenServerPanel
- ---创建时调用一次
- function this:Init()
- self.Info = {}
- self.bossInfos = {}
- self.strengtInfos = {}
- self.rewardInfo = {}
- self.athleticsInfos = {}
- self.rewardbotInfo = {}
- self.equipDropInfos = {}
- self.personalRewardItem = {} --追加强化个人奖励
- self.athleticsRewardItem = {} --竞技排行个人奖励
- ---页签
- GUI:DataListInitData(self.view.datalist1, function()
- return self:DataListItemCountFunc()
- end, function(realIndex)
- return self:DataListItemGetFunc(realIndex)
- end, function(realIndex, kmlcontrol)
- return self:DataListItemInitFunc(realIndex, kmlcontrol)
- end, function(realIndex, kmlcontrol)
- return self:DataListItemUpdateFunc(realIndex, kmlcontrol)
- end)
- ---首杀
- GUI:DataListInitData(self.view.datalist34, function()
- return self:BossKillItemCountFunc()
- end, function(realIndex)
- return self:BossKillItemGetFunc(realIndex)
- end, function(realIndex, kmlcontrol)
- return self:BossKillItemInitFunc(realIndex, kmlcontrol)
- end, function(realIndex, kmlcontrol)
- return self:BossKillItemUpdateFunc(realIndex, kmlcontrol)
- end)
- ---追加强化
- GUI:DataListInitData(self.view.datalist83, function()
- return self:StrengtItemCountFunc()
- end, function(realIndex)
- return self:StrengtItemGetFunc(realIndex)
- end, function(realIndex, kmlcontrol)
- return self:StrengtItemInitFunc(realIndex, kmlcontrol)
- end, function(realIndex, kmlcontrol)
- return self:StrengtItemUpdateFunc(realIndex, kmlcontrol)
- end)
- ---追加强化个人奖励
- GUI:DataListInitData(self.view.datalist92, function()
- return table.count(self.rewardInfo)
- end, function(realIndex)
- return self:PersonalItemGetFunc(realIndex)
- end, function(realIndex, kmlcontrol)
- return self:PersonalItemInitFunc(realIndex, kmlcontrol)
- end, function(realIndex, kmlcontrol)
- return self:PersonalItemUpdateFunc(realIndex, kmlcontrol)
- end)
- ---竞技排行
- GUI:DataListInitData(self.view.datalistMid, function()
- return self:AthleticsItemCountFunc()
- end, function(realIndex)
- return self:AthleticsItemGetFunc(realIndex)
- end, function(realIndex, kmlcontrol)
- return self:AthleticsItemInitFunc(realIndex, kmlcontrol)
- end, function(realIndex, kmlcontrol)
- return self:AthleticsItemUpdateFunc(realIndex, kmlcontrol)
- end)
- ---竞技排行个人奖励
- GUI:DataListInitData(self.view.datalistbot, function()
- return table.count(self.rewardbotInfo)
- end, function(realIndex)
- return self:AthleticsPersonalItemGetFunc(realIndex)
- end, function(realIndex, kmlcontrol)
- return self:AthleticsPersonalItemInitFunc(realIndex, kmlcontrol)
- end, function(realIndex, kmlcontrol)
- return self:AthleticsPersonalItemUpdateFunc(realIndex, kmlcontrol)
- end)
- ---装备首曝
- GUI:DataListInitData(self.view.datalist54, function()
- return self:EquipDropItemCountFunc()
- end, function(realIndex)
- return self:EquipDropItemGetFunc(realIndex)
- end, function(realIndex, kmlcontrol)
- return self:EquipDropItemInitFunc(realIndex, kmlcontrol)
- end, function(realIndex, kmlcontrol)
- return self:EquipDropItemUpdateFunc(realIndex, kmlcontrol)
- end)
- end
- ---竞技排行个人奖励
- function this:AthleticsPersonalItemGetFunc(realIndex)
- local data = self.rewardbotInfo[realIndex + 1]
- local item = GUI:Item_Create(self.view.datalistbot,{
- width = "55",
- height = "55",
- itemid = data[1],
- mfixsize = "55,55",
- tips = "1",
- itemcustomcount = SL:GetSimpleNumber(data[2],0),
- })
- GUI:AddOnClickEvent(item,self,function()
- SL:OpenTips(nil, data[1])
- end)
- self.athleticsRewardItem[item.kmlControl] = item
- return item
- end
- function this:AthleticsPersonalItemInitFunc(realIndex, kmlcontrol)
- end
- function this:AthleticsPersonalItemUpdateFunc(realIndex, kmlcontrol)
- local data = self.rewardbotInfo[realIndex + 1]
- local item = self.athleticsRewardItem[kmlcontrol]
- local count = "<color=#fbd994>"..SL:GetSimpleNumber(tonumber(data[2]),0).."</color>"
- GUI:Item_UpdataData(item, {
- itemid = data[1],
- itemcustomcount = count,
- })
- GUI:AddOnClickEvent(item, self, function()
- SL:OpenTips(nil, data[1])
- end)
- end
- ---追加强化个人奖励
- function this:PersonalItemGetFunc(realIndex)
- local data = self.rewardInfo[realIndex + 1]
- local item = GUI:Item_Create(self.view.datalist92,{
- width = "55",
- height = "55",
- itemid = data[1],
- mfixsize = "55,55",
- tips = "1",
- itemcustomcount = SL:GetSimpleNumber(data[2],0),
- })
- GUI:AddOnClickEvent(item,self,function()
- SL:OpenTips(nil, data[1])
- end)
- self.personalRewardItem[item.kmlControl] = item
- return item
- end
- function this:PersonalItemInitFunc(realIndex, kmlcontrol)
- end
- function this:PersonalItemUpdateFunc(realIndex, kmlcontrol)
- local data = self.rewardInfo[realIndex + 1]
- local item = self.personalRewardItem[kmlcontrol]
- local count = "<color=#fbd994>"..SL:GetSimpleNumber(tonumber(data[2]),0).."</color>"
- GUI:Item_UpdataData(item, {
- itemid = data[1],
- itemcustomcount = count,
- })
- GUI:AddOnClickEvent(item, self, function()
- SL:OpenTips(nil, data[1])
- end)
- end
- ---左侧页签添加
- function this:DataListItemCountFunc()
- return table.count(self.Info)
- end
- function this:DataListItemGetFunc(realIndex)
- end
- function this:DataListItemInitFunc(realIndex, kmlcontrol)
- end
- function this:DataListItemUpdateFunc(realIndex, kmlcontrol)
- local idx = realIndex + 1
- local data = self.Info[idx]
- local btn = self.view.datalist1:GetChildControl(realIndex, 'toggle')
- local red = self.view.datalist1:GetChildControl(realIndex, "red")
- local text3 = self.view.datalist1:GetChildControl(realIndex, "text3")
- GUI:SetActive(red, false)
- self.btn[realIndex] = btn
- GUI:AddOnClickEvent(self.btn[realIndex], self, function()
- self:LoadPanel(realIndex, data.id)
- end)
- GUI:Text_setString(text3, data.name)
- end
- ---判断活动开启条件
- function this:CheckIsTabOpenData()
- local Info2 = {}
- --local cfg = SL:GetConfig("cfg_system_switch",216)
- local newareaTab = SL:GetConfigTable("cfg_newarea_ranking")
- for i, v in pairs(newareaTab) do
- local isLv = SL:CheckCalculateConditionGroup(v.condition)
- if isLv then
- local condition = "checkRunDay>" .. v.startTime[1] .. "&checkRunDay<" .. v.endTime[1]
- local lefttime = InfoManager.openServerInfo:GetLeftTimeByRankingId(v.id)
- --local isTime = SL:CheckCalculateConditionGroup(condition)
- if lefttime > 0 then
- table.insert(Info2, v)
- end
- end
- end
- return Info2
- end
- ---创建或者刷新界面数据时调用
- function this:Refresh()
- ---左侧页签
- self.btn = {}
- self.Info = self:CheckIsTabOpenData() --SL:GetConfigTable("cfg_newarea_ranking")
- if table.count(self.Info) > 0 then
- SL.HideMainPanel()
- table.sort(self.Info, function(a, b)
- return a.sort < b.sort
- end)
- GUI:DataListUpdateData(self.view.datalist1)
- ---默认第一页签
- self:LoadPanel(0, self.Info[1].id)
- end
- end
- function this:HideTabPanel()
- GUI:SetActive(self.view.BossKillPanel, false)
- GUI:SetActive(self.view.StrengthenPanel, false)
- GUI:SetActive(self.view.EquipDropPanel, false)
- GUI:SetActive(self.view.AthleticsPanel, false)
- end
- ---切换页签UI
- function this:LoadPanel(index, id)
- if self.selectid and self.selectid == index + 1 then
- return
- end
- self:HideTabPanel()
- self.selectid = index + 1
- for i, v in pairs(self.btn) do
- if i == index then
- GUI:Button_loadTextureNormal(v, "one_button_select_bg", "Atlas/UITradePanel.spriteatlas")
- else
- GUI:Button_loadTextureNormal(v, "one_button_bg", "Atlas/UITradePanel.spriteatlas")
- end
- end
- self:SelectTabPanel(id)
- end
- function this:SelectTabPanel(id)
- self.ranking_id = id
- if id == EOpenServerType.BossKill or id == EOpenServerType.GoldBossKill then
- self:SetBossKillPanelData(id)
- SL:SendLuaNetMsg(LuaMessageIdToSever.REQ_OPEN_SERVER_FIRST_KILL_INFO)
- if id == EOpenServerType.BossKill then
- GUI:Button_loadTextureNormal(self.view.img8, "bg_boss_kill", "Atlas/KmlXWServerLaunchActivitiesUI.spriteatlas")
- else
- GUI:Button_loadTextureNormal(self.view.img8, "bg_huangjin_boss", "Atlas/KmlXWServerLaunchActivitiesUI.spriteatlas")
- end
- GUI:SetActive(self.view.BossKillPanel, true)
- elseif id == EOpenServerType.StrengtPlacard or id == EOpenServerType.SupplementPlacard then
- SL:SendLuaNetMsg(LuaMessageIdToSever.REQ_OPEN_SERVER_ACT_TYPE_RANK_INFO, id)
- if id == EOpenServerType.StrengtPlacard then
- GUI:Button_loadTextureNormal(self.view.img5, "bg_strengthen", "Atlas/KmlXWServerLaunchActivitiesUI.spriteatlas")
- else
- GUI:Button_loadTextureNormal(self.view.img5, "bg_zhuijia", "Atlas/KmlXWServerLaunchActivitiesUI.spriteatlas")
- end
- self:SetStrengtPanelData(id)
- GUI:SetActive(self.view.StrengthenPanel, true)
- elseif id == EOpenServerType.LevelAthletics or id == EOpenServerType.ExcellenceAthletics or id == EOpenServerType.JewelryAthletics then
- SL:SendLuaNetMsg(LuaMessageIdToSever.REQ_OPEN_SERVER_ACT_TYPE_RANK_INFO, id)
- if id == EOpenServerType.LevelAthletics then
- GUI:Button_loadTextureNormal(self.view.imgtip, "bg_level_athletics", "Atlas/TS_OpenServerPanel.spriteatlas")
- elseif id == EOpenServerType.ExcellenceAthletics then
- GUI:Button_loadTextureNormal(self.view.imgtip, "bg_excellence_athletics", "Atlas/TS_OpenServerPanel.spriteatlas")
- else
- GUI:Button_loadTextureNormal(self.view.imgtip, "bg_jewelry_athletics", "Atlas/TS_OpenServerPanel.spriteatlas")
- end
- self:SetAthleticsPanelData(id)
- GUI:SetActive(self.view.AthleticsPanel, true)
- else
- SL:SendLuaNetMsg(LuaMessageIdToSever.REQ_OPEN_SERVER_ACT_TYPE_RANK_INFO, id)
- self:SetEquipDropPanelData(id)
- GUI:SetActive(self.view.EquipDropPanel, true)
- end
- local lefttime = InfoManager.openServerInfo:GetLeftTimeByRankingId(self.ranking_id)
- if lefttime > 0 then
- self.countdown = lefttime // 1000
- self:SetActivityTimeSchedule()
- end
- end
- ---活动结束时间倒计时
- function this:SetActivityTimeSchedule()
- self.sectimer = SL:Schedule(self.sectimer, 0, 1, self.countdown, function()
- self.countdown = self.countdown - 1
- if self.countdown > 0 then
- GUI:Text_setString(self.view.countdown1, GUIUtil.FormatTimeDHM(self.countdown))
- else
- GUI:Text_setString(self.view.countdown1, "00:00:00")
- local info = self:CheckIsTabOpenData()
- if table.count(info) > 0 then
- self:Refresh()
- else
- if self.sectimer then
- SL:UnSchedule(self.sectimer)
- self.sectimer = nil
- end
- SL:onLUAEvent(LUA_EVENT_HIDE_RIGHT_BTN_VIEW)
- self:CloseBtnClick()
- end
- end
- end)
- end
- ---注册UI事件和服务器消息
- function this:RegistEvents()
- GUI:AddOnClickEvent(self.view.CloseImg, self, self.CloseBtnClick)
- GUI:AddOnClickEvent(self.view.img2, self, self.SelectTabHelpPanel)
- ---帮助提示
- GUI:AddOnClickEvent(self.view.img15, self, self.SelectTabHelpPanel)
- GUI:AddOnClickEvent(self.view.img20, self, self.SelectTabHelpPanel)
- GUI:AddOnClickEvent(self.view.btntip, self, self.SelectTabHelpPanel)
- GUI:AddOnClickEvent(self.view.button22, self, self.MyAthleticsRankGetBtnClick)
- ---竞技排行
- GUI:AddOnClickEvent(self.view.button2, self, self.MyRankGetBtnClick)
- ---强化追加排行榜个人奖励领取
- SL:RegisterLuaNetMsg(LuaMessageIdToClient.OPEN_SERVER_ACT_TYPE_RANK_INFO, self.UpdateOPENRankInfo, self)
- ---排行信息
- SL:RegisterLuaNetMsg(LuaMessageIdToClient.OPEN_SERVER_ACT_REWARD_CHANGE, self.UpdateRankInfoCHANGE, self)
- ---排行
- SL:RegisterLuaNetMsg(LuaMessageIdToClient.OPEN_SERVER_ACT_RANK_CHANGE, self.UpdateRankInfoCHANGE, self)
- ---排行
- SL:RegisterLuaNetMsg(LuaMessageIdToClient.RES_OPEN_SERVER_FIRST_KILL_INFO, self.UpdateOpenDataSort, self)
- ---首杀信息
- SL:RegisterLuaNetMsg(LuaMessageIdToClient.RES_GLOBAL_FIRST_KILL_CHANGE, self.UpdateDataSort, self)
- ---全服首杀变化
- SL:RegisterLuaNetMsg(LuaMessageIdToClient.RES_PERSONAL_FIRST_KILL_CHANGE, self.UpdateDataSort, self)---个人首杀变化
- end
- ---首杀刷新排序
- function this:UpdateOpenDataSort(id, data)
- self:SetBossKillDataSort()
- GUI:DataListUpdateData(self.view.datalist34)
- end
- function this:UpdateDataSort(id, data)
- if data and table.count(data) > 0 then
- self:SetBossKillPanelData(tonumber(data.group))
- self:SetBossKillDataSort()
- GUI:DataListUpdateData(self.view.datalist34)
- end
- end
- ---排行榜总 刷新
- function this:UpdateOPENRankInfo(id, data)
- if data and data.rank_type then
- self:RefreshRankUI(data.rank_type)
- end
- end
- ---排行个人奖励/前三 领取刷新
- function this:UpdateRankInfoCHANGE(id, data)
- if data and data.rankType then
- self:RefreshRankUI(data.rankType)
- end
- end
- function this:RefreshRankUI(rankType)
- if rankType == EOpenServerType.StrengtPlacard or rankType == EOpenServerType.SupplementPlacard then
- self:SetStrengtPanelDataSort()
- GUI:DataListUpdateData(self.view.datalist83)
- self:SetStrengtPanelText(rankType) ---排名/文本des/个人奖励
- elseif rankType == EOpenServerType.LevelAthletics or rankType == EOpenServerType.ExcellenceAthletics or rankType == EOpenServerType.JewelryAthletics then
- self:SetAthleticsPanelText(rankType)
- ---重新获取数据
- self:SetAthleticsInfoData(rankType)
- GUI:DataListUpdateData(self.view.datalistMid)
- else
- self:SetEquipPanelDataSort()
- GUI:DataListUpdateData(self.view.datalist54)
- end
- end
- ---强化/追加
- function this:MyRankGetBtnClick(id, data)
- if self.personalrewardid then
- SL:SendLuaNetMsg(LuaMessageIdToSever.REQ_OPEN_SERVER_ACT_PERSONAL_REWARD, { goalValue = self.personalrewardid, rankType = self.ranking_id })
- end
- end
- ---等级/..竞技
- function this:MyAthleticsRankGetBtnClick(id, data)
- if self.athleticsrewardid then
- SL:SendLuaNetMsg(LuaMessageIdToSever.REQ_OPEN_SERVER_ACT_RANK_ALL_REWARD, { goalValue = self.athleticsrewardid, rankType = self.ranking_id })
- end
- end
- ---各页签帮助提示
- function this:SelectTabHelpPanel()
- if self.ranking_id == EOpenServerType.BossKill then
- SL:CommonStrTipsMessage({ title = "BOSS首杀", str = "1、开服第1天开启BOSS首杀活动,持续10天。\n2、活动期间,全服首次击杀指定BOSS的,其中伤害最高的玩家和致命一击的玩家可上榜,并获得巨额全服首杀奖励。\n3、活动期间,个人首次击杀指定BOSS也可以获得丰厚奖励。奖励领取次数有限,先到先得,不要错过!" })
- elseif self.ranking_id == EOpenServerType.GoldBossKill then
- SL:CommonStrTipsMessage({ title = "黄金怪首杀", str = "1、开服第1天开启黄金怪首杀活动,持续10天。\n2、活动期间,全服首次击杀指定黄金怪的,其中伤害最高的玩家和致命一击的玩家可上榜,并获得巨额全服首杀奖励。\n3、活动期间,个人首次击杀指定黄金怪也可以获得丰厚奖励。奖励领取次数有限,先到先得,不要错过!" })
- elseif self.ranking_id == EOpenServerType.StrengtPlacard then
- SL:CommonStrTipsMessage({ title = "强化冲榜", str = "1、开服第1天开启强化冲榜活动,持续10天。\n2、活动期间,全服前三位达到指定强化等级的玩家即可上榜,并获得巨额冲榜奖励。\n3、活动期间,个人首次到达指定强化等级,也可领取丰厚奖励。奖励领取次数有限,先到先得,不要错过!" })
- elseif self.ranking_id == EOpenServerType.SupplementPlacard then
- SL:CommonStrTipsMessage({ title = "追加冲榜", str = "1、开服第1天开启追加冲榜活动,持续10天。\n2、活动期间,全服前三位达到指定追加等级的玩家即可上榜,并获得巨额冲榜奖励。\n3、活动期间,个人首次到达指定追加等级,也可领取丰厚奖励。奖励领取次数有限,先到先得,不要错过!" })
- elseif self.ranking_id == EOpenServerType.EquipDropFirst then
- SL:CommonStrTipsMessage({ title = "装备首爆", str = "1、开服第1天开启装备首爆活动,持续10天。\n2、活动期间,玩家成功击杀BOSS首次拾取指定装备即可获得对应的丰厚奖励。\n3、全服指定装备首爆奖励领取次数有限,先到先得,不要错过!" })
- elseif self.ranking_id == EOpenServerType.LevelAthletics then
- SL:CommonStrTipsMessage({ title = "等级竞技", str = "1、开服第1天开启等级竞技活动,持续10天。\n2、活动期间,达成指定等级获得个人奖励,等级全服上榜时获得额外奖励。" })
- elseif self.ranking_id == EOpenServerType.ExcellenceAthletics then
- SL:CommonStrTipsMessage({ title = "卓越竞技", str = "1、开服第1天开启卓越竞技活动,持续10天。\n2、活动期间,达成指定等级获得个人奖励,等级全服上榜时获得额外奖励。" })
- else
- SL:CommonStrTipsMessage({ title = "首饰竞技", str = "1、开服第1天开启首饰竞技活动,持续10天。\n2、活动期间,达成指定等级获得个人奖励,等级全服上榜时获得额外奖励。" })
- end
- end
- ---关闭
- function this:CloseBtnClick()
- GUI:UIPanel_Close("dev/outui/ServerActivity/Panel/KLOpenServer/KLOpenServerPanel")
- SL.ShowMainPanel()
- end
- ------------------------------------------首杀界面数据---------------------------------------------------------
- function this:SetBossKillPanelData(ranking_id)
- self.bossInfos = {} --根据BOSS挑战组编号bossGroup读取怪物信息和奖励信息
- local cfg = SL:FindConfigs("cfg_newarea_ranking", "id", ranking_id)
- local boss_config_list = SL:FindConfigs("cfg_newarea_rankingboss", "group", cfg[1].bossGroup)
- for i, v in pairs(boss_config_list) do
- local bossdata = SL:FindConfigs("cfg_monster", "id", v.rankingBoss[1])
- local data_boss = {}
- data_boss.config_index = v.index
- data_boss.boss_group = v.group
- data_boss.cond_count = v.personalcondition
- data_boss.hurt_item = v.mostReward --伤害第一奖励道具
- data_boss.kill_item = v.lastReward --致命伤害奖励道具
- data_boss.personal_item = v.personalReward --个人奖励,可能配多个
- data_boss.boss_id = v.rankingBoss[1]
- if bossdata and bossdata[1] then
- data_boss.boss_name = bossdata[1].name
- data_boss.boss_type = SL:GetConfigMultiKeys('cfg_BOSS_challenge', v.rankingBoss[1], 'monsterid')
- end
- table.insert(self.bossInfos, data_boss)
- end
- end
- function this:SetBossKillDataSort()
- if table.count(self.bossInfos) > 0 then
- for i, v in pairs(self.bossInfos) do
- local state = InfoManager.openServerInfo:GetNomStateByBossInfo(v.boss_group, v.boss_id)
- local hurt_state, kill_state = InfoManager.openServerInfo:GetSerStateOrNameByBossInfo(v.boss_group, v.boss_id)
- local personal_count = InfoManager.openServerInfo:GetSerStateOrNameByBossInfo(v.boss_group, v.boss_id, 3)
- local left_count = v.cond_count - personal_count
- local isget = state == 1 or hurt_state == 1 or kill_state == 1
- if not isget and left_count <= 0 then
- v.config_index = v.config_index + 100000 ---不可领取
- elseif state == 2 and hurt_state == 2 and kill_state == 2 then
- v.config_index = v.config_index + 10000 ---全部已领取
- elseif state == 2 and hurt_state == 0 and kill_state == 0 then
- v.config_index = v.config_index + 1000 ---全部已领取2
- elseif state == 1 or hurt_state == 1 or kill_state == 1 then
- v.config_index = v.config_index - 1000 ---可领取
- --if hurt_state==1 or kill_state==1 then ---可领取
- -- v.config_index = v.config_index - 10000
- --end
- --if state==1 then
- -- v.config_index = v.config_index - 1000
- --end
- else
- v.config_index = v.config_index
- end
- end
- table.sort(self.bossInfos, function(a, b)
- return a.config_index < b.config_index
- end)
- end
- end
- function this:BossKillItemCountFunc()
- return table.count(self.bossInfos)
- end
- function this:BossKillItemGetFunc(realIndex)
- local item = GUI:UIPanel_Open("dev/outui/ServerActivity/Item/KLBossKill/KLBossKillItem", self.view.datalist34, self, nil, true)
- if not self.bosskillItems then
- self.bosskillItems = {}
- end
- local kmlCtrl = item.view.root
- self.bosskillItems[kmlCtrl] = item
- return kmlCtrl
- end
- function this:BossKillItemInitFunc(realIndex, kmlcontrol)
- end
- function this:BossKillItemUpdateFunc(realIndex, kmlcontrol)
- local item = self.bosskillItems[kmlcontrol]
- local luaIndex = realIndex + 1
- local info = self.bossInfos[luaIndex]
- item:UpdateUI(info)
- end
- -----------------------------------------强化冲榜面板数据----------------------------------------
- function this:SetStrengtPanelData(ranking_id)
- self.strengtInfos = {}
- local cfg = SL:FindConfigs("cfg_newarea_ranking", "id", ranking_id)
- local reward_config_list = SL:FindConfigs("cfg_newarea_rankingreward", "group", cfg[1].subtype)
- local taskTypedata = {}
- for i, v in pairs(reward_config_list) do
- if not taskTypedata[v.sort] then
- taskTypedata[v.sort] = {}
- table.insert(taskTypedata[v.sort], v)
- else
- table.insert(taskTypedata[v.sort], v)
- end
- end
- for k, v in pairs(taskTypedata) do
- local data = {}
- data.strengtLv = v[1].taskType --强化综合等级
- data.config_index = v[1].taskType
- data.first_item = v[1].taskReward[1] ---第一奖励道具
- data.second_item = v[2].taskReward[1] ---第二奖励道具
- data.third_item = v[3].taskReward[1] ---第三奖励道具
- table.insert(self.strengtInfos, data)
- end
- if table.count(self.strengtInfos) > 0 then
- table.sort(self.strengtInfos, function(a, b)
- return a.strengtLv < b.strengtLv
- end)
- end
- end
- ---都被领取完时(或者都是可领取状态),将该挡放到最底下
- function this:SetStrengtPanelDataSort()
- if self.strengtInfos and table.count(self.strengtInfos) > 0 then
- for k, v in pairs(self.strengtInfos) do
- local fist_state, second_state, third_state = InfoManager.openServerInfo:GetRankNameBytaskType(v.strengtLv, 2)
- if fist_state == 2 and second_state == 2 and third_state == 2 then
- v.config_index = v.strengtLv + 1000
- else
- v.config_index = v.strengtLv
- end
- end
- table.sort(self.strengtInfos, function(a, b)
- return a.config_index < b.config_index
- end)
- end
- end
- function this:SetStrengtPanelText(ranking_id)
- self.personalrewardid = nil
- local rankinfo = InfoManager.openServerInfo.rankInfo
- if rankinfo then
- local str = ""
- local des = "强化等级达到"
- local leftcount = 0 ---剩余数量
- local preLv = rankinfo.my_value ---当前强化/追加 等级
- local limiteLv, mystatus, ranksort, usecount = self:GetPersonalInfo(ranking_id)
- local allnum, data = InfoManager.openServerInfo:GetAllCountlimite(ranking_id, limiteLv) ---总次数
- local ismaxLv = self.maxlimiteLv == limiteLv and mystatus == 2
- if allnum - usecount > 0 then
- leftcount = allnum - usecount
- end
- if mystatus == 1 then
- leftcount = leftcount + 1
- end
- if data then
- self.personalrewardid = data.taskType[1] --v.index
- self.rewardInfo = data.taskReward
- GUI:DataListUpdateData(self.view.datalist92) ---个人奖励
- end
- if ranksort == 0 then
- GUI:Text_setString(self.view.text89, "未上榜")
- else
- GUI:Text_setString(self.view.text89, tostring(ranksort))
- end
- GUI:Text_setString(self.view.text66s, "剩余:" .. leftcount)
- GUI:Text_setString(self.view.text15, "强化综合等级")
- if ranking_id == EOpenServerType.SupplementPlacard then
- des = "追加等级达到"
- GUI:Text_setString(self.view.text15, "追加综合等级")
- end
- if preLv >= limiteLv then
- str = des .. "<color=#1add1f>" .. preLv .. "/" .. limiteLv .. "</color>" .. "级领取"
- else
- str = des .. "<color=#ff2323>" .. preLv .. "/" .. limiteLv .. "</color>" .. "级领取"
- end
- GUI:Text_setString(self.view.text103, str)
- GUI:SetActive(self.view.bgReciveImg, ismaxLv) --已领取
- if ismaxLv and self.rewardInfo and #self.rewardInfo > 0 then
- GUI:setPositionX(self.view.bgReciveImg, -260 + (#self.rewardInfo) * 20)
- end
- ---是否达到最高已领取,不显示该区域
- if ismaxLv then
- --GUI:Text_setString(self.view.text103, "")
- GUI:SetActive(self.view.button2, false)
- GUI:SetActive(self.view.light_btn2, false)
- else
- GUI:SetActive(self.view.button2, mystatus == 1 and preLv >= limiteLv)
- GUI:SetActive(self.view.light_btn2, mystatus == 1 and preLv >= limiteLv)
- end
- end
- end
- function this:StrengtItemCountFunc()
- return table.count(self.strengtInfos)
- end
- function this:StrengtItemGetFunc(realIndex)
- local item = GUI:UIPanel_Open("dev/outui/ServerActivity/Item/KLStrengthen/KLStrengthenItem", self.view.datalist83, self, nil, true)
- if not self.strengtItems then
- self.strengtItems = {}
- end
- local kmlCtrl = item.view.root
- self.strengtItems[kmlCtrl] = item
- return kmlCtrl
- end
- function this:StrengtItemInitFunc(realIndex, kmlcontrol)
- end
- function this:StrengtItemUpdateFunc(realIndex, kmlcontrol)
- local item = self.strengtItems[kmlcontrol]
- local luaIndex = realIndex + 1
- local info = self.strengtInfos[luaIndex]
- item:UpdateUI(info, self.ranking_id)
- end
- ------------------------------------------装备首爆面板数据-----------------------------------
- function this:SetEquipDropPanelData(ranking_id)
- self.equipDropInfos = {}
- local cfg = SL:FindConfigs("cfg_newarea_ranking", "id", ranking_id)
- local boss_config_list = SL:FindConfigs("cfg_newarea_rankingreward", "group", cfg[1].subtype)
- local personal_config_list = SL:FindConfigs("cfg_newarea_personalreward", "group", cfg[1].subtype)
- for i, v in pairs(boss_config_list) do
- local data = {}
- data.config_sort = v.sort
- data.equip_item_id = v.taskType --装备id
- data.reward_item = v.taskReward --首曝奖励道具
- if personal_config_list[i] then
- data.personalreward_type = personal_config_list[i].taskType
- data.personalreward_item = personal_config_list[i].taskReward --个人奖励道具
- end
- table.insert(self.equipDropInfos, data)
- end
- if table.count(self.equipDropInfos) > 0 then
- table.sort(self.equipDropInfos, function(a, b)
- return a.config_sort < b.config_sort
- end)
- end
- end
- ---刷新次数
- function this:SetEquipPanelDataSort()
- if self.equipDropInfos and table.count(self.equipDropInfos) > 0 then
- for k, v in pairs(self.equipDropInfos) do
- local state, usecount, rank = InfoManager.openServerInfo:GetRankAndNumByType(v.personalreward_type[1], v.personalreward_type[2])
- local name, serstate = InfoManager.openServerInfo:GetRankNameBySort(v.equip_item_id, 1)
- if state == 2 and serstate == 2 then
- v.config_sort = v.config_sort + 1000
- else
- v.config_sort = v.config_sort
- end
- end
- table.sort(self.equipDropInfos, function(a, b)
- return a.config_sort < b.config_sort
- end)
- end
- end
- function this:EquipDropItemCountFunc()
- return table.count(self.equipDropInfos)
- end
- function this:EquipDropItemGetFunc(realIndex)
- local item = GUI:UIPanel_Open("dev/outui/ServerActivity/Item/KLEquipDrop/KLEquipDropItem", self.view.datalist54, self, nil, true)
- if not self.equipDropItems then
- self.equipDropItems = {}
- end
- local kmlCtrl = item.view.root
- self.equipDropItems[kmlCtrl] = item
- return kmlCtrl
- end
- function this:EquipDropItemInitFunc(realIndex, kmlcontrol)
- end
- function this:EquipDropItemUpdateFunc(realIndex, kmlcontrol)
- local item = self.equipDropItems[kmlcontrol]
- for i, v in pairs(self.equipDropItems) do
- v:SetPosEquipItem()
- end
- local luaIndex = realIndex + 1
- local info = self.equipDropInfos[luaIndex]
- item:UpdateUI(info, self.ranking_id)
- end
- ---------------------------------------竞技面板数据-------------------------------
- function this:SetAthleticsPanelData(ranking_id)
- local cfg = SL:FindConfigs("cfg_newarea_ranking", "id", ranking_id)
- local config_list = SL:FindConfigs("cfg_newarea_rankingreward", "group", cfg[1].subtype)
- self.data_list = {}
- self.data_type = {}
- if table.count(config_list) > 0 then
- for k, v in pairs(config_list) do
- if not self.data_list[v.taskType] then
- self.data_list[v.taskType] = {}
- table.insert(self.data_list[v.taskType], v)
- table.insert(self.data_type, { taskType = v.taskType })
- else
- table.insert(self.data_list[v.taskType], v)
- end
- end
- end
- if table.count(self.data_type) > 0 then
- table.sort(self.data_type, function(a, b)
- return a.taskType < b.taskType
- end)
- end
- end
- function this:SetAthleticsInfoData(ranking_id)
- local limiteLv, mystatus, ranksort, usecount = self:GetPersonalInfo(ranking_id)
- self.athleticsInfos = {}
- local rankdata = {}
- if self.data_list and table.count(self.data_list) > 0 then
- for i, v in pairs(self.data_list) do
- if i == limiteLv then
- table.insert(rankdata, v)
- end
- end
- end
- if rankdata and table.count(rankdata) > 0 then
- self.athleticsInfos = rankdata[1]
- end
- --if self.data_list and self.data_type then
- -- local retdata = InfoManager.openServerInfo:GetAthleticsUnGetMinSortData(self.data_list,self.data_type,self.data_type[1].taskType)
- -- if retdata and table.count(retdata) > 0 then
- -- for k, v in pairs(retdata) do
- -- local taskdata = self.data_list[v.tasktype]
- -- local sortdata = taskdata[v.sort]
- -- table.insert(self.athleticsInfos,sortdata)
- -- end
- -- end
- -- if table.count( self.athleticsInfos) > 0 then
- -- table.sort(self.athleticsInfos, function(a, b)
- -- return a.sort < b.sort
- -- end)
- -- end
- --end
- end
- function this:GetPersonalInfo(ranking_id)
- local cfg = SL:FindConfigs("cfg_newarea_ranking", "id", ranking_id)
- local personal_list = SL:FindConfigs("cfg_newarea_personalreward", "group", cfg[1].subtype)
- if table.count(personal_list) > 0 then
- table.sort(personal_list, function(a, b)
- return a.sort < b.sort
- end)
- end
- self.mixlimiteLv = personal_list[1].taskType[1]
- self.maxlimiteLv = personal_list[#personal_list].taskType[1]
- local limiteLv, mystatus, ranksort, usecount = InfoManager.openServerInfo:GetUnGetMinlimiteLv(self.maxlimiteLv, self.mixlimiteLv, personal_list)
- return limiteLv, mystatus, ranksort, usecount
- end
- -----个人奖励,排行和描述---------
- function this:SetAthleticsPanelText(ranking_id)
- self.athleticsrewardid = nil
- local rankinfo = InfoManager.openServerInfo.rankInfo
- if rankinfo then
- local str = ""
- local leftcount = 0 ---剩余数量
- local preLv = rankinfo.my_value ---当前竞技等级
- local limiteLv, mystatus, ranksort, usecount = self:GetPersonalInfo(ranking_id)
- local allnum, data = InfoManager.openServerInfo:GetAllCountlimite(ranking_id, limiteLv) ---总次数
- local ismaxLv = self.maxlimiteLv == limiteLv and mystatus == 2
- if allnum - usecount > 0 then
- leftcount = allnum - usecount
- end
- if mystatus == 1 then
- leftcount = leftcount + 1
- end
- if data then
- self.athleticsrewardid = data.taskType[1]
- self.rewardbotInfo = data.taskReward
- GUI:DataListUpdateData(self.view.datalistbot) ---个人奖励
- end
- if ranksort == 0 then
- GUI:Text_setString(self.view.textrank, "未上榜")
- else
- GUI:Text_setString(self.view.textrank, tostring(ranksort)) ---排名
- end
- GUI:Text_setString(self.view.text77s, "剩余:" .. leftcount)
- local des = "等级达到"
- local desDw = "级"
- if ranking_id == EOpenServerType.ExcellenceAthletics then
- des = "卓越词条达到"
- desDw = "个"
- elseif ranking_id == EOpenServerType.JewelryAthletics then
- des = "首饰等级达到"
- end
- if preLv >= limiteLv then
- str = des .. "<color=#1add1f>" .. preLv .. "/" .. limiteLv .. "</color>" .. desDw .."领取"
- else
- str = des .. "<color=#ff2323>" .. preLv .. "/" .. limiteLv .. "</color>" .. desDw .."领取"
- end
- GUI:Text_setString(self.view.textrankLv, str)
- GUI:SetActive(self.view.botReciveImg, ismaxLv) --已领取
- if ismaxLv and self.rewardbotInfo and #self.rewardbotInfo > 0 then
- GUI:setPositionX(self.view.botReciveImg, -260 + (#self.rewardbotInfo) * 20)
- end
- if ismaxLv then
- --GUI:Text_setString(self.view.textrankLv, "")
- GUI:SetActive(self.view.button22, false)
- GUI:SetActive(self.view.light_btn22, false)
- else
- GUI:SetActive(self.view.button22, mystatus == 1 and preLv >= limiteLv) ---是否可领取
- GUI:SetActive(self.view.light_btn22, mystatus == 1 and preLv >= limiteLv)
- end
- end
- end
- function this:AthleticsItemCountFunc()
- return table.count(self.athleticsInfos)
- end
- function this:AthleticsItemGetFunc(realIndex)
- local item = GUI:UIPanel_Open("dev/outui/ServerActivity/Item/KLAthletics/KLAthleticsItem", self.view.datalistMid, self, nil, true)
- if not self.athleticsItems then
- self.athleticsItems = {}
- end
- local kmlCtrl = item.view.root
- self.athleticsItems[kmlCtrl] = item
- return kmlCtrl
- end
- function this:AthleticsItemInitFunc(realIndex, kmlcontrol)
- end
- function this:AthleticsItemUpdateFunc(realIndex, kmlcontrol)
- local item = self.athleticsItems[kmlcontrol]
- local luaIndex = realIndex + 1
- local info = self.athleticsInfos[luaIndex]
- item:UpdateUI(info, self.ranking_id)
- end
- function this:Close()
- if self.sectimer then
- SL:UnSchedule(self.sectimer)
- self.sectimer = nil
- end
- end
- return this
|