---@class KLChallengeBossPanel:UIKmlLuaPanelBase
---@field view KLChallengeBossPanelView
local KLChallengeBossPanel = class(UIKmlLuaPanelBase)
local this = KLChallengeBossPanel
---创建时调用一次
function this:Init()
SL.HideMainPanel()
GUI:UIPanel_Close("dev/outui/ChallengeBoss/Panel/KLPrivilegeBossOpen/KLPrivilegeBossOpenPanel")
GUI:DataListInitData(self.view.gold_boss_level, function()
return self:GoldBossBtnDataListItemCountFunc()
end, function(realIndex)
return self:GoldBossBtnDataListItemGetFunc(realIndex)
end, function(realIndex, kmlcontrol)
return self:GoldBossBtnDataListItemInitFunc(realIndex, kmlcontrol)
end, function(realIndex, kmlcontrol)
return self:GoldBossBtnDataListItemUpdateFunc(realIndex, kmlcontrol)
end)
self.glod_boss_level_btn_all_item = {}
GUI:DataListInitData(self.view.gold_boss_data_list, function()
return self:GoldBossDataListItemCountFunc()
end, function(realIndex)
return self:GoldBossDataListItemGetFunc(realIndex)
end, function(realIndex, kmlcontrol)
return self:GoldBossDataListItemInitFunc(realIndex, kmlcontrol)
end, function(realIndex, kmlcontrol)
return self:GoldBossDataListItemUpdateFunc(realIndex, kmlcontrol)
end)
self.glod_boss_level_all_item = {}
GUI:DataListInitData(self.view.gold_boss_reward, function()
return self:GoldRewardDataListItemCountFunc()
end, function(realIndex)
return self:GoldRewardDataListItemGetFunc(realIndex)
end, function(realIndex, kmlcontrol)
return self:GoldRewardDataListItemInitFunc(realIndex, kmlcontrol)
end, function(realIndex, kmlcontrol)
return self:GoldRewardDataListItemUpdateFunc(realIndex, kmlcontrol)
end)
self.outdoor_reward_level_all_item = {}
GUI:DataListInitData(self.view.outdoor_boss_level_data_list, function()
return self:OutdoorBossBtnDataListItemCountFunc()
end, function(realIndex)
return self:OutdoorBossBtnDataListItemGetFunc(realIndex)
end, function(realIndex, kmlcontrol)
return self:OutdoorBossBtnDataListItemInitFunc(realIndex, kmlcontrol)
end, function(realIndex, kmlcontrol)
return self:OutdoorBossBtnDataListItemUpdateFunc(realIndex, kmlcontrol)
end)
self.outdoor_boss_level_btn_all_item = {}
GUI:DataListInitData(self.view.outdoor_boss_line_data_list, function()
return self:OutdoorBossLineDataListItemCountFunc()
end, function(realIndex)
return self:OutdoorBossLineDataListItemGetFunc(realIndex)
end, function(realIndex, kmlcontrol)
return self:OutdoorBossLineDataListItemInitFunc(realIndex, kmlcontrol)
end, function(realIndex, kmlcontrol)
return self:OutdoorBossLineDataListItemUpdateFunc(realIndex, kmlcontrol)
end)
self.outdoor_boss_line_data_list_all_item = {}
GUI:DataListInitData(self.view.outdoor_boss_reward_data_list, function()
return self:OutdoorRewardDataListItemCountFunc()
end, function(realIndex)
return self:OutdoorRewardDataListItemGetFunc(realIndex)
end, function(realIndex, kmlcontrol)
return self:OutdoorRewardDataListItemInitFunc(realIndex, kmlcontrol)
end, function(realIndex, kmlcontrol)
return self:OutdoorRewardDataListItemUpdateFunc(realIndex, kmlcontrol)
end)
self.glod_reward_level_all_item = {}
GUI:DataListInitData(self.view.secret_boss_level_data_list, function()
return self:SecretBossBtnDataListItemCountFunc()
end, function(realIndex)
return self:SecretBossBtnDataListItemGetFunc(realIndex)
end, function(realIndex, kmlcontrol)
return self:SecretBossBtnDataListItemInitFunc(realIndex, kmlcontrol)
end, function(realIndex, kmlcontrol)
return self:SecretBossBtnDataListItemUpdateFunc(realIndex, kmlcontrol)
end)
self.secrect_boss_level_btn_all_item = {}
GUI:DataListInitData(self.view.secret_boss_line_data_list, function()
return self:SecretBossLineDataListItemCountFunc()
end, function(realIndex)
return self:SecretBossLineDataListItemGetFunc(realIndex)
end, function(realIndex, kmlcontrol)
return self:SecretBossLineDataListItemInitFunc(realIndex, kmlcontrol)
end, function(realIndex, kmlcontrol)
return self:SecretBossLineDataListItemUpdateFunc(realIndex, kmlcontrol)
end)
self.secrect_boss_line_data_list_all_item = {}
GUI:DataListInitData(self.view.secret_reward_data_list, function()
return self:SecretRewardDataListItemCountFunc()
end, function(realIndex)
return self:SecretRewardDataListItemGetFunc(realIndex)
end, function(realIndex, kmlcontrol)
return self:SecretRewardDataListItemInitFunc(realIndex, kmlcontrol)
end, function(realIndex, kmlcontrol)
return self:SecretRewardDataListItemUpdateFunc(realIndex, kmlcontrol)
end)
self.secrect_reward_level_all_item = {}
GUI:DataListInitData(self.view.secret_reward_box_data_list, function()
return self:SecretRewardBoxDataListItemCountFunc()
end, function(realIndex)
return self:SecretRewardBoxDataListItemGetFunc(realIndex)
end, function(realIndex, kmlcontrol)
return self:SecretRewardBoxDataListItemInitFunc(realIndex, kmlcontrol)
end, function(realIndex, kmlcontrol)
return self:SecretRewardBoxDataListItemUpdateFunc(realIndex, kmlcontrol)
end)
self.secrect_reward_box_level_all_item = {}
GUI:DataListInitData(self.view.privilege_boss_level_data_list, function()
return self:PrivilegeBossBtnDataListItemCountFunc()
end, function(realIndex)
return self:PrivilegeBossBtnDataListItemGetFunc(realIndex)
end, function(realIndex, kmlcontrol)
return self:PrivilegeBossBtnDataListItemInitFunc(realIndex, kmlcontrol)
end, function(realIndex, kmlcontrol)
return self:PrivilegeBossBtnDataListItemUpdateFunc(realIndex, kmlcontrol)
end)
self.privilege_boss_level_btn_all_item = {}
GUI:DataListInitData(self.view.privilege_boss_reward_data_list, function()
return self:PrivilegeRewardDataListItemCountFunc()
end, function(realIndex)
return self:PrivilegeRewardDataListItemGetFunc(realIndex)
end, function(realIndex, kmlcontrol)
return self:PrivilegeRewardDataListItemInitFunc(realIndex, kmlcontrol)
end, function(realIndex, kmlcontrol)
return self:PrivilegeRewardDataListItemUpdateFunc(realIndex, kmlcontrol)
end)
self.privilege_reward_level_all_item = {}
--圣域BOSS
GUI:DataListInitData(self.view.sanctuary_boss_level_data_list, function()
return self:SanctuaryBossBtnDataListItemCountFunc()
end, function(realIndex)
return self:SanctuaryBossBtnDataListItemGetFunc(realIndex)
end, function(realIndex, kmlcontrol)
return self:SanctuaryBossBtnDataListItemInitFunc(realIndex, kmlcontrol)
end, function(realIndex, kmlcontrol)
return self:SanctuaryBossBtnDataListItemUpdateFunc(realIndex, kmlcontrol)
end)
self.sanctuary_boss_level_btn_all_item = {}
GUI:DataListInitData(self.view.sanctuary_boss_line_data_list, function()
return self:SanctuaryBossLineDataListItemCountFunc()
end, function(realIndex)
return self:SanctuaryBossLineDataListItemGetFunc(realIndex)
end, function(realIndex, kmlcontrol)
return self:SanctuaryBossLineDataListItemInitFunc(realIndex, kmlcontrol)
end, function(realIndex, kmlcontrol)
return self:SanctuaryBossLineDataListItemUpdateFunc(realIndex, kmlcontrol)
end)
---@type KLUIChallengeBossLineItem[]
self.sanctuary_boss_line_data_list_all_item = {}
GUI:DataListInitData(self.view.sanctuary_reward_data_list, function()
return self:SanctuaryRewardDataListItemCountFunc()
end, function(realIndex)
return self:SanctuaryRewardDataListItemGetFunc(realIndex)
end, function(realIndex, kmlcontrol)
return self:SanctuaryRewardDataListItemInitFunc(realIndex, kmlcontrol)
end, function(realIndex, kmlcontrol)
return self:SanctuaryRewardDataListItemUpdateFunc(realIndex, kmlcontrol)
end)
self.sanctuary_reward_level_all_item = {}
GUI:DataListInitData(self.view.sanctuary_reward_box_data_list, function()
return self:SanctuaryRewardBoxDataListItemCountFunc()
end, function(realIndex)
return self:SanctuaryRewardBoxDataListItemGetFunc(realIndex)
end, function(realIndex, kmlcontrol)
return self:SanctuaryRewardBoxDataListItemInitFunc(realIndex, kmlcontrol)
end, function(realIndex, kmlcontrol)
return self:SanctuaryRewardBoxDataListItemUpdateFunc(realIndex, kmlcontrol)
end)
self.sanctuary_reward_box_level_all_item = {}
self.secretBossLineLoadEnd = nil
end
---创建或者刷新界面数据时调用
function this:Refresh()
--SL:LogTable(self.args,true)
if self.args and self.args.monsterType then
--MonsterType 1黄金 ,2野外,3秘境,4特权
self.monsterId = self.args.monsterId
---转换一下,策划说按cfg_BOSS_challenge表的type走,之前黄金和野外是反的
if self.args.monsterType == 2 then
self.args.monsterType = 1
elseif self.args.monsterType == 1 then
self.args.monsterType = 2
end
if self.args.monsterType == 2 then
--self.view.boss_1_toggle:SetTogDefaultThis()
GUI:SetTogDefaultThis(self.view.boss_1_toggle)
elseif self.args.monsterType == 1 then
--self.view.boss_2_toggle:SetTogDefaultThis()
GUI:SetTogDefaultThis(self.view.boss_2_toggle)
elseif self.args.monsterType == 3 then
--self.view.boss_3_toggle:SetTogDefaultThis()
GUI:SetTogDefaultThis(self.view.boss_3_toggle)
elseif self.args.monsterType == 4 then
--self.view.boss_4_toggle:SetTogDefaultThis()
GUI:SetTogDefaultThis(self.view.boss_4_toggle)
elseif self.args.monsterType == 6 then
--self.view.boss_4_toggle:SetTogDefaultThis()
GUI:SetTogDefaultThis(self.view.boss_6_toggle)
end
else
self.monsterId = nil
--self.view.boss_1_toggle:SetTogDefaultThis()
GUI:SetTogDefaultThis(self.view.boss_1_toggle)
end
-- local level = InfoManager.newVipInfo.vipLevel
-- if level > 0 or PrivilegeCardManager.HavePriviege() then
-- else
-- GUI:setVisible(self.view.boss_4,false)
-- end
end
---注册UI事件和服务器消息
function this:RegistEvents()
GUI:SetToggleOnValueChange(self.view.boss_1_toggle, self, self.Boss1Click)
GUI:SetToggleOnValueChange(self.view.boss_2_toggle, self, self.Boss2Click)
GUI:SetToggleOnValueChange(self.view.boss_3_toggle, self, self.Boss3Click)
GUI:SetToggleOnValueChange(self.view.boss_4_toggle, self, self.Boss4Click)
GUI:SetToggleOnValueChange(self.view.boss_5_toggle, self, self.Boss5Click)
GUI:SetToggleOnValueChange(self.view.boss_6_toggle, self, self.Boss6Click)
GUI:AddOnClickEvent(self.view.btn_close, self, self.CloseOnclick)
GUI:AddOnClickEvent(self.view.privilege_boss_join_btn, self, self.privilege_boss_join)
SL:RegisterLuaNetMsg(LuaMessageIdToClient.NEAREST_MONSTER, self.MonserPos, self)
SL:RegisterLuaNetMsg(LuaMessageIdToClient.SECRET_REALM_COUNT, self.SecretCount, self)
SL:RegisterLuaNetMsg(LuaMessageIdToClient.RES_PRIVILEGE_BOSS_PANEL, self.RES_PRIVILEGE_BOSS_PANEL, self)
SL:RegisterLuaNetMsg(LuaMessageIdToClient.MONSTER_COUNT_RESULT_BY_ID, self.MONSTER_COUNT_RESULT_BY_ID, self)
SL:RegisterLuaNetMsg(LuaMessageIdToClient.SEND_SECRET_REALM_MONSTER_COUNT, self.MonserCopyCount, self)
SL:RegisterLUAEvent(LUA_EVENT_CHALLENGE_BOSS_MONSTER_POS, self.LUA_EVENT_CHALLENGE_BOSS_MONSTER_POS, self)
end
function this:CloseOnclick()
GUI:UIPanel_Close("dev/outui/ChallengeBoss/Panel/KLChallengeBoss/KLChallengeBossPanel")
SL.ShowMainPanel()
end
function this:Boss1Click(kmlCtrl, eventData, args)
if args[1] then
GUI:setColor(self.view.boss_1_toggle_t, "#e6e6e6")
self:ShowBossPanel(EBossChallengeType.Gold)
self:SelectGoldBoss()
else
GUI:setColor(self.view.boss_1_toggle_t, "#999999")
end
end
function this:Boss2Click(kmlCtrl, eventData, args)
if args[1] then
self:ShowBossPanel(EBossChallengeType.Field)
self:SelectOutdoorBoss()
self.monsterId = nil
else
GUI:setColor(self.view.boss_2_toggle_t, "#999999")
end
end
function this:Boss3Click(kmlCtrl, eventData, args)
if args[1] then
GUI:setColor(self.view.boss_3_toggle_t, "#e6e6e6")
self:ShowBossPanel(EBossChallengeType.Secret)
self:SelectSecretBoss()
self.monsterId = nil
else
GUI:setColor(self.view.boss_3_toggle_t, "#999999")
end
end
function this:Boss4Click(kmlCtrl, eventData, args)
if args[1] then
GUI:setColor(self.view.boss_4_toggle_t, "#e6e6e6")
self:ShowBossPanel(EBossChallengeType.Privilege)
self:SelectPrivilegeBoss()
self.monsterId = nil
else
GUI:setColor(self.view.boss_4_toggle_t, "#999999")
end
end
function this:Boss5Click(kmlCtrl, eventData, args)
if args[1] then
GUI:setColor(self.view.boss_5_toggle_t, "#e6e6e6")
self:ShowBossPanel(0)
---跨服boss不在表类型里
self.monsterId = nil
self.kuaFuInfoItem = GUI:UIPanel_Open("dev/outui/ChallengeBoss/Item/KLKuaFuBossInfo/KLKuaFuBossInfoItem",
self.view.root, self)
else
GUI:setColor(self.view.boss_5_toggle_t, "#999999")
self.kuaFuInfoItem = nil
GUI:UIPanel_Close("dev/outui/ChallengeBoss/Item/KLKuaFuBossInfo/KLKuaFuBossInfoItem")
end
end
function this:Boss6Click(kmlCtrl, eventData, args)
if args[1] then
GUI:setColor(self.view.boss_6_toggle_t, "#e6e6e6")
self:ShowBossPanel(EBossChallengeType.Sanctuary)
self:SelectSanctuaryBoss()
self.monsterId = nil
else
GUI:setColor(self.view.boss_6_toggle_t, "#999999")
end
end
function this:ShowBossPanel(type)
GUI:setVisible(self.view.gold_boss_panel, type == EBossChallengeType.Gold)
GUI:setVisible(self.view.outdoor_boss_panel, type == EBossChallengeType.Field)
GUI:setVisible(self.view.mi_boss_panel, type == EBossChallengeType.Secret)
GUI:setVisible(self.view.privilege_boss_panel, type == EBossChallengeType.Privilege)
GUI:setVisible(self.view.sanctuary_boss_panel, type == EBossChallengeType.Sanctuary)
end
--黄金boss
function this:SelectGoldBoss()
local playerLevel = SL:GetMetaValue(EMetaVarGetKey.LEVEL)
if self.monsterId then
playerLevel = SL:GetConfig("cfg_BOSS_challenge", self.monsterId, "monsterid").level
end
if not self.allGoldLevel then
self.allGoldLevel = {}
--local allBoss = SL:GetConfigMultiKeys('cfg_BOSS_challenge', 1, 'monsterType')
local allBoss = SL:FindConfigs("cfg_BOSS_challenge", "monsterType", 1)
for i, boss in ipairs(allBoss) do
local level = boss.level
if not table.contains(self.allGoldLevel, level) then
table.insert(self.allGoldLevel, level)
end
end
self.select_gold_level = nil
local index = 0
for i, level in ipairs(self.allGoldLevel) do
if not self.select_gold_level then
self.select_gold_level = level
index = i
else
if level <= playerLevel and level > self.select_gold_level then
self.select_gold_level = level
index = i
end
end
end
local percentage = index / #self.allGoldLevel
percentage = percentage - percentage % 0.00001
GUI:DataListUpdateData(self.view.gold_boss_level)
GUI:SetScrollView_scrollpos(self.view.gold_boss_select, percentage)
end
self:RefreshGoldBoss()
end
function this:RefreshGoldBoss()
if not self.monsterId then
end
--self.GoldOneLevel = SL:GetConfigMultiKeys("cfg_BOSS_challenge",1,self.select_gold_level,"monsterType","level")
self.GoldOneLevel = {}
local index = 0
if self.monsterId then
local tab = SL:FindConfigs("cfg_BOSS_challenge", "monsterType", 1)
local isFind = false
for i, v in ipairs(tab) do
if v.level == self.select_gold_level then
table.insert(self.GoldOneLevel, v)
if v.monsterid == self.monsterId then
isFind = true
end
if not isFind then
index = index + 1
end
end
end
--GUI:DataListUpdateData(self.view.gold_boss_data_list)
--GUI:SetScrollView_scrollpos(self.view.gold_boss_view, index)
SL:ScheduleOnce(0.1, function()
self.monsterId = nil
if self.count_data then
self:MonserCount(nil, self.count_data)
end
end)
else
--GUI:DataListUpdateData(self.view.gold_boss_data_list)
--GUI:SetScrollView_scrollpos(self.view.gold_boss_view, 0)
local tab = SL:FindConfigs("cfg_BOSS_challenge", "monsterType", 1)
for i, v in ipairs(tab) do
if v.level == self.select_gold_level then
table.insert(self.GoldOneLevel, v)
end
end
--GUI:DataListUpdateData(self.view.gold_boss_data_list) --TODO CH
self.monsterId = nil
end
self.GoldAllRwward = {}
if #self.GoldOneLevel > 0 then
local Rwward = self.GoldOneLevel[1].monsterDrop
local baseCareer = SL:GetMetaValue(EMetaVarGetKey.JOB)
for i, one_reward in ipairs(Rwward) do
if one_reward[1] == baseCareer then
table.insert(self.GoldAllRwward, one_reward[2])
end
end
end
GUI:DataListUpdateData(self.view.gold_boss_reward)
local message = {}
for i, v in ipairs(self.GoldOneLevel) do
table.insert(message, { id = v.id, state = 1 })
end
GUI:DataListUpdateData(self.view.gold_boss_data_list,true,function()
SL:ScheduleOnce(0.1, function()
SL:SendLuaNetMsg(LuaMessageIdToSever.REQ_MONSTER_COUNT_BY_ID, message)
GUI:SetScrollView_scrollpos(self.view.gold_boss_view, index)
end)
end)
end
function this:GoldBossBtnDataListItemCountFunc()
return #self.allGoldLevel
end
function this:GoldBossBtnDataListItemGetFunc(realIndex)
local data = self.allGoldLevel[realIndex + 1]
local item = GUI:UIPanel_Open("dev/outui/ChallengeBoss/Item/KLUIChallengeBossBtnItem/KLUIChallengeBossBtnItem", self.view.gold_boss_level, self, {}, true)
self.glod_boss_level_btn_all_item[item.view.root] = item
return item.view.root
end
function this:GoldBossBtnDataListItemInitFunc(realIndex, kmlcontrol)
end
function this:GoldBossBtnDataListItemUpdateFunc(realIndex, kmlcontrol)
local data = self.allGoldLevel[realIndex + 1]
self.glod_boss_level_btn_all_item[kmlcontrol]:RefreshItem(data, self.select_gold_level, self)
if data == self.select_gold_level then
self.GoldBossLevelBtn = self.glod_boss_level_btn_all_item[kmlcontrol]
end
end
function this:GoldBossDataListItemCountFunc()
return #self.GoldOneLevel
end
function this:GoldBossDataListItemGetFunc(realIndex)
local data = self.GoldOneLevel[realIndex + 1]
local item = GUI:UIPanel_Open("dev/outui/ChallengeBoss/Item/KLUIChallengeBossItem/KLUIChallengeBossItem", self.view.gold_boss_data_list, self, {}, true)
self.glod_boss_level_all_item[realIndex + 1] = item
return item.view.root
end
function this:GoldBossDataListItemInitFunc(realIndex, kmlcontrol)
end
function this:GoldBossDataListItemUpdateFunc(realIndex, kmlcontrol)
local data = self.GoldOneLevel[realIndex + 1]
--SL:LogTable(data,true)
self.glod_boss_level_all_item[realIndex + 1]:RefreshItem(data, self.select_gold_level, self)
if self.monsterId == data.monsterid then
self.glod_boss_level_all_item[realIndex + 1]:ShowSelectImg()
end
end
function this:HideSelectLevel()
self.GoldBossLevelBtn:HideItem()
end
function this:SelectLevel(level, Btn)
self.monsterId = nil
self.GoldBossLevelBtn = Btn
self.select_gold_level = level
self:RefreshGoldBoss()
end
function this:GoldRewardDataListItemCountFunc()
return #self.GoldAllRwward
end
function this:GoldRewardDataListItemGetFunc(realIndex)
local item = GUI:UIPanel_Open("dev/outui/ChallengeBoss/Item/KLUIChallengeBossRewardItem/KLUIChallengeBossRewardItem", self.view.gold_boss_reward, self, {}, true)
self.glod_reward_level_all_item[item.view.root] = item
return item.view.root
end
function this:GoldRewardDataListItemInitFunc(realIndex, kmlcontrol)
end
function this:GoldRewardDataListItemUpdateFunc(realIndex, kmlcontrol)
local data = self.GoldAllRwward[realIndex + 1]
self.glod_reward_level_all_item[kmlcontrol]:RefreshItem({ cfgId = data }, self.select_gold_level, self)
end
--野外boss
function this:SelectOutdoorBoss()
local playerLevel = SL:GetMetaValue(EMetaVarGetKey.LEVEL)
-- if self.monsterId then
-- playerLevel = SL:GetConfig("cfg_BOSS_challenge",self.monsterId,"monsterid").level
-- end
if not self.allOutdoorLevel then
self.allOutdoorLevel = {}
--local allBoss = SL:GetConfigMultiKeys('cfg_BOSS_challenge', 1, 'monsterType')
self.allOutdoorLevel = SL:FindConfigs("cfg_BOSS_challenge", "monsterType", 2)
self.select_outdoor_level = nil
self.select_outdoor_index = 1
local index = 0
for i, data in ipairs(self.allOutdoorLevel) do
data.index = i
local level = data.level
if self.monsterId then
if data.monsterid == self.monsterId then
self.select_outdoor_level = level
self.select_outdoor_index = i
index = i
end
else
if not self.select_outdoor_level then
self.select_outdoor_level = level
self.select_outdoor_index = i
index = i
else
if level <= playerLevel and level > self.select_outdoor_level then
self.select_outdoor_level = level
self.select_outdoor_index = i
index = i
end
end
end
end
local percentage = index / #self.allOutdoorLevel
percentage = percentage - percentage % 0.00001
GUI:DataListUpdateData(self.view.outdoor_boss_level_data_list)
GUI:SetScrollView_scrollpos(self.view.outdoor_boss_select, percentage)
end
self:RefreshOutdoorBoss()
end
function this:RefreshOutdoorBoss()
self.current_outdoor_data = nil
local current_data
for i, data in ipairs(self.allOutdoorLevel) do
local level = data.level
if data.index == self.select_outdoor_index then
self.current_outdoor_data = data
break
end
end
self.OutdoorAllRwward = {}
local monsterid = nil
if self.current_outdoor_data then
monsterid = self.current_outdoor_data.monsterid
local tab = SL:GetConfigMultiKeys('cfg_monster', monsterid, 'id')
local name = tab.name
local icon = tab.icon
local appr = tab.appr
local path = SL:GetConfigMultiKeys('cfg_model_monster', appr, 'id').path
GUI:Text_setString(self.view.outdoor_boss_name, name)
local mscale = ""
if self.current_outdoor_data.size then
local scale = math.ceil(self.current_outdoor_data.size / 100)
mscale = scale .. "," .. scale .. "," .. scale
end
GUI:Model_setSrc(self.view.outdoor_boss_path, path, mscale)
if self.current_outdoor_data.offset and #self.current_outdoor_data.offset >= 2 then
GUI:setPosition(self.view.outdoor_boss_path, self.current_outdoor_data.offset[1], self.current_outdoor_data.offset[2])
end
GUI:DataListUpdateData(self.view.outdoor_boss_line_data_list,true,function()
SL:ScheduleOnce(Time.deltaTime, function()
SL:SendLuaNetMsg(LuaMessageIdToSever.REQ_MONSTER_COUNT_BY_ID, { { id = self.current_outdoor_data.id, state = 1 } })
end)
end)
if self.current_outdoor_data then
local Rwward = self.current_outdoor_data.monsterDrop
local baseCareer = SL:GetMetaValue(EMetaVarGetKey.JOB)
for i, one_reward in ipairs(Rwward) do
if one_reward[1] == baseCareer then
table.insert(self.OutdoorAllRwward, one_reward[2])
end
end
end
GUI:DataListUpdateData(self.view.outdoor_boss_reward_data_list)
end
InfoManager.uiHuntingDemonsInfo:SetIntegralInControl(self.view.outdoor_boss_Integral_BG,self.view.outdoor_boss_Integral_Text,monsterid)
end
function this:MONSTER_COUNT_RESULT_BY_ID(id, message)
self.count_data = message
self:MonserCount(id, self.count_data)
end
function this:MonserCount(id, message)
--SL:LogError("MonserCount")
--SL:LogTable(message,true)
if not message then
return
end
if self.current_outdoor_data then
local id = tostring(self.current_outdoor_data.id)
if message[id] then
local msg = message[id]
for i = 1, 10000, 1 do
if msg[tostring(i)] and self.outdoor_boss_line_data_list_all_item[i] then
self.outdoor_boss_line_data_list_all_item[i]:MonserCount(nil, msg[tostring(i)])
else
break
end
end
end
end
if self.GoldOneLevel and #self.GoldOneLevel > 0 then
for i = 1, 10000, 1 do
if self.GoldOneLevel[i] then
local id = tostring(self.GoldOneLevel[i].id)
if message[id] and self.glod_boss_level_all_item[i] then
self.glod_boss_level_all_item[i]:MonserCount(nil, message[id])
else
break
end
else
break
end
end
end
if self.current_Sanctuary_data then
local id = tostring(self.current_Sanctuary_data.id)
if message[id] then
local msg = message[id]
for i = 1, 10000, 1 do
if msg[tostring(i)] and self.sanctuary_boss_line_data_list_all_item[i] then
self.sanctuary_boss_line_data_list_all_item[i]:MonserCount(nil, msg[tostring(i)])
else
break
end
end
end
end
end
function this:OutdoorBossBtnDataListItemCountFunc()
return #self.allOutdoorLevel
end
function this:OutdoorBossBtnDataListItemGetFunc(realIndex)
local data = self.allOutdoorLevel[realIndex + 1]
local item = GUI:UIPanel_Open("dev/outui/ChallengeBoss/Item/KLUIChallengeBossSelectBtnItem/KLUIChallengeBossSelectBtnItem", self.view.outdoor_boss_level_data_list, self, {}, true)
self.outdoor_boss_level_btn_all_item[item.view.root] = item
return item.view.root
end
function this:OutdoorBossBtnDataListItemInitFunc(realIndex, kmlcontrol)
end
function this:OutdoorBossBtnDataListItemUpdateFunc(realIndex, kmlcontrol)
local data = self.allOutdoorLevel[realIndex + 1]
self.outdoor_boss_level_btn_all_item[kmlcontrol]:RefreshItem(data, self.select_outdoor_index, self, 2)
if data.index == self.select_outdoor_index then
self.OutdoorBossLevelBtn = self.outdoor_boss_level_btn_all_item[kmlcontrol]
end
end
function this:HideSelectLevelOutdoor()
self.OutdoorBossLevelBtn:HideItem()
end
function this:SelectLevelOutdoor(level, Btn)
self.OutdoorBossLevelBtn = Btn
self.select_outdoor_index = level
self:RefreshOutdoorBoss()
end
function this:OutdoorBossLineDataListItemCountFunc()
return #self.current_outdoor_data.mapId
end
function this:OutdoorBossLineDataListItemGetFunc(realIndex)
local item = GUI:UIPanel_Open("dev/outui/ChallengeBoss/Item/KLUIChallengeBossLineItem/KLUIChallengeBossLineItem", self.view.outdoor_boss_line_data_list, self, {}, true)
self.outdoor_boss_line_data_list_all_item[realIndex + 1] = item
return item.view.root
end
function this:OutdoorBossLineDataListItemInitFunc(realIndex, kmlcontrol)
end
function this:OutdoorBossLineDataListItemUpdateFunc(realIndex, kmlcontrol)
local data = self.current_outdoor_data.mapId[realIndex + 1]
local move = self.current_outdoor_data.mapMoveId[realIndex + 1]
local monsterid = self.current_outdoor_data.monsterid
self.outdoor_boss_line_data_list_all_item[realIndex + 1]:RefreshItem(monsterid, data, move, self, 210)
end
function this:OutdoorRewardDataListItemCountFunc()
return #self.OutdoorAllRwward
end
function this:OutdoorRewardDataListItemGetFunc(realIndex)
local item = GUI:UIPanel_Open("dev/outui/ChallengeBoss/Item/KLUIChallengeBossRewardItem/KLUIChallengeBossRewardItem", self.view.outdoor_boss_reward_data_list, self, {}, true)
self.outdoor_reward_level_all_item[item.view.root] = item
return item.view.root
end
function this:OutdoorRewardDataListItemInitFunc(realIndex, kmlcontrol)
end
function this:OutdoorRewardDataListItemUpdateFunc(realIndex, kmlcontrol)
local data = self.OutdoorAllRwward[realIndex + 1]
self.outdoor_reward_level_all_item[kmlcontrol]:RefreshItem({ cfgId = data }, self.select_gold_level, self)
end
--秘境boss
function this:SelectSecretBoss()
local playerLevel = SL:GetMetaValue(EMetaVarGetKey.LEVEL)
if self.monsterId then
playerLevel = SL:GetConfig("cfg_BOSS_challenge", self.monsterId, "monsterid").level
end
if not self.allSecretLevel then
self.allSecretLevel = {}
--local allBoss = SL:GetConfigMultiKeys('cfg_BOSS_challenge', 1, 'monsterType')
self.allSecretLevel = SL:FindConfigs("cfg_BOSS_challenge", "monsterType", 3)
self.select_Secret_level = nil
local index = 0
for i, data in ipairs(self.allSecretLevel) do
local level = data.level
if not self.select_Secret_level then
self.select_Secret_level = level
index = i
else
if level <= playerLevel and level > self.select_Secret_level then
self.select_Secret_level = level
index = i
end
end
end
local percentage = index / #self.allSecretLevel
percentage = percentage - percentage % 0.00001
GUI:DataListUpdateData(self.view.secret_boss_level_data_list)
GUI:SetScrollView_scrollpos(self.view.secret_boss_level_select, percentage)
end
self:RefreshSecretBoss()
end
function this:RefreshSecretBoss()
self.current_secrect_data = nil
local current_data
for i, data in ipairs(self.allSecretLevel) do
local level = data.level
if level == self.select_Secret_level then
self.current_secrect_data = data
break
end
end
self.SecretAllRwward = {}
self.SecretAllBoxRwward = {}
self.SecretAllLine = {}
self.repId = 0
local monsterid = nil
if self.current_secrect_data then
monsterid = self.current_secrect_data.monsterid
local tab = SL:GetConfigMultiKeys('cfg_monster', monsterid, 'id')
local name = tab.name
local icon = tab.icon
local appr = tab.appr
local repId = self.current_secrect_data.repId
local path = SL:GetConfigMultiKeys('cfg_model_monster', appr, 'id').path
GUI:Text_setString(self.view.secret_boss_name, name)
local mscale = ""
if self.current_secrect_data.size then
local scale = math.ceil(self.current_secrect_data.size / 100)
mscale = scale .. "," .. scale .. "," .. scale
end
GUI:Model_setSrc(self.view.secret_boss_path, path, mscale)
if self.current_secrect_data.offset and #self.current_secrect_data.offset >= 2 then
GUI:setPosition(self.view.secret_boss_path, self.current_secrect_data.offset[1], self.current_secrect_data.offset[2])
end
--SL:LogError(#self.current_secrect_data.mapId)
if self.current_secrect_data then
local Rwward = self.current_secrect_data.monsterDrop
local baseCareer = SL:GetMetaValue(EMetaVarGetKey.JOB)
for i, one_reward in ipairs(Rwward) do
if one_reward[1] == baseCareer then
table.insert(self.SecretAllRwward, one_reward[2])
end
end
local box = self.current_secrect_data.boxDrop
if box and #box > 0 then
table.insert(self.SecretAllBoxRwward, box[1])
end
end
local tab = SL:GetConfigMultiKeys('cfg_repfairyland_monster', repId, 'id')
self.SecretAllLine = tab.monster1
self.repId = repId
GUI:DataListUpdateData(self.view.secret_boss_line_data_list)
GUI:DataListUpdateData(self.view.secret_reward_box_data_list)
GUI:DataListUpdateData(self.view.secret_reward_data_list)
SL:SendLuaNetMsg(LuaMessageIdToSever.GET_SECRET_REALM_MONSTER_COUNT, { repId = self.repId })
end
GUI:Text_setString(self.view.last_num, "")
SL:SendLuaNetMsg(LuaMessageIdToSever.REQ_GET_SECRET_REALM_COUNT, {})
InfoManager.uiHuntingDemonsInfo:SetIntegralInControl(self.view.mijing_boss_Integral_BG,self.view.mijing_boss_Integral_Text,monsterid)
end
function this:SecretCount(id, message)
--SL:LogTable(message,true)
self.last_num = message.count
GUI:Text_setString(self.view.last_num, tostring(message.count))
end
--圣域boss
function this:SelectSanctuaryBoss()
local playerLevel = SL:GetMetaValue(EMetaVarGetKey.LEVEL)
if self.monsterId then
playerLevel = SL:GetConfig("cfg_BOSS_challenge", self.monsterId, "monsterid").level
end
if not self.allSanctuaryLevel or table.count(self.allSanctuaryLevel) == 0 then
self.allSanctuaryLevel = {}
self.allSanctuaryLevel = SL:FindConfigs("cfg_BOSS_challenge", "monsterType", EBossChallengeType.Sanctuary)
self.select_Sanctuary_level = nil
local index = 0
for i, data in ipairs(self.allSanctuaryLevel) do
local level = data.level
if not self.select_Sanctuary_level then
self.select_Sanctuary_level = level
index = i
else
if level <= playerLevel and level > self.select_Sanctuary_level then
self.select_Sanctuary_level = level
index = i
end
end
end
local percentage = index / #self.allSanctuaryLevel
percentage = percentage - percentage % 0.00001
GUI:DataListUpdateData(self.view.sanctuary_boss_level_data_list)
GUI:SetScrollView_scrollpos(self.view.sanctuary_boss_level_select, percentage)
end
self:RefreshSanctuaryBoss()
end
function this:RefreshSanctuaryBoss()
self.current_Sanctuary_data = nil
local current_data
for i, data in ipairs(self.allSanctuaryLevel) do
local level = data.level
if level == self.select_Sanctuary_level then
self.current_Sanctuary_data = data
break
end
end
self.sanctuaryAllRwward = {}
self.sanctuaryAllBoxRwward = {}
self.sanctuaryAllLine = {}
self.repId = 0
local monsterid = nil
if self.current_Sanctuary_data then
monsterid = self.current_Sanctuary_data.monsterid
local tab = SL:GetConfigMultiKeys('cfg_monster', monsterid, 'id')
local name = tab.name
local icon = tab.icon
local appr = tab.appr
local mapData = self.current_Sanctuary_data.mapId[1]
local path = SL:GetConfigMultiKeys('cfg_model_monster', appr, 'id').path
GUI:Text_setString(self.view.sanctuary_boss_name, name)
local mscale = ""
if self.current_Sanctuary_data.size then
local scale = math.ceil(self.current_Sanctuary_data.size / 100)
mscale = scale .. "," .. scale .. "," .. scale
end
GUI:Model_setSrc(self.view.sanctuary_boss_path, path, mscale)
if self.current_Sanctuary_data.offset and #self.current_Sanctuary_data.offset >= 2 then
GUI:setPosition(self.view.sanctuary_boss_path, self.current_Sanctuary_data.offset[1], self.current_Sanctuary_data.offset[2])
end
--SL:LogError(#self.current_Sanctuary_data.mapId)
if self.current_Sanctuary_data then
local Rwward = self.current_Sanctuary_data.monsterDrop
local baseCareer = SL:GetMetaValue(EMetaVarGetKey.JOB)
for i, one_reward in ipairs(Rwward) do
if one_reward[1] == baseCareer then
table.insert(self.sanctuaryAllRwward, one_reward[2])
end
end
local box = self.current_Sanctuary_data.boxDrop
if box and #box > 0 then
table.insert(self.sanctuaryAllBoxRwward, box[1])
end
end
self.sanctuaryAllLine = self.current_Sanctuary_data.mapId
self.repId = mapData[1]
GUI:DataListUpdateData(self.view.sanctuary_boss_line_data_list)
GUI:DataListUpdateData(self.view.sanctuary_reward_box_data_list)
GUI:DataListUpdateData(self.view.sanctuary_reward_data_list)
GUI:DataListUpdateData(self.view.sanctuary_boss_line_data_list,true,function()
SL:ScheduleOnce(Time.deltaTime, function()
SL:SendLuaNetMsg(LuaMessageIdToSever.REQ_MONSTER_COUNT_BY_ID, { { id = self.current_Sanctuary_data.id, state = 1 } })
end)
end)
end
GUI:Text_setString(self.view.last_num, "")
InfoManager.uiHuntingDemonsInfo:SetIntegralInControl(self.view.sanctuary_boss_Integral_BG,self.view.sanctuary_boss_Integral_Text,monsterid)
--SL:SendLuaNetMsg(LuaMessageIdToSever.REQ_GET_SECRET_REALM_COUNT, {})
end
function this:SanctuaryCount(id, message)
--SL:LogTable(message,true)
self.last_num = message.count
GUI:Text_setString(self.view.last_num, tostring(message.count))
end
function this:isJoin()
if not self.last_num or self.last_num < 1 then
return false
end
return true
end
function this:MonserCopyCount(id, message)
--SL:LogTable(message,true)
if not self.secretBossLineLoadEnd then
return
end
if not message then
return
end
if not message["1"] then
return
end
if not self.repId then
return
end
if message["1"].repId ~= self.repId then
return
end
for i = 1, 1000, 1 do
if message[tostring(i)] then
if self.secrect_boss_line_data_list_all_item[i] then
self.secrect_boss_line_data_list_all_item[i]:MonserCopyCount(nil, message[tostring(i)])
end
else
break
end
end
end
function this:SecretBossBtnDataListItemCountFunc()
return #self.allSecretLevel
end
function this:SecretBossBtnDataListItemGetFunc(realIndex)
local data = self.allSecretLevel[realIndex + 1]
local item = GUI:UIPanel_Open("dev/outui/ChallengeBoss/Item/KLUIChallengeBossSelectBtnItem/KLUIChallengeBossSelectBtnItem", self.view.secret_boss_level_data_list, self, {}, true)
self.secrect_boss_level_btn_all_item[item.view.root] = item
return item.view.root
end
function this:SecretBossBtnDataListItemInitFunc(realIndex, kmlcontrol)
end
function this:SecretBossBtnDataListItemUpdateFunc(realIndex, kmlcontrol)
local data = self.allSecretLevel[realIndex + 1]
self.secrect_boss_level_btn_all_item[kmlcontrol]:RefreshItem(data, self.select_Secret_level, self, 3)
if data.level == self.select_Secret_level then
self.SecrectrBossLevelBtn = self.secrect_boss_level_btn_all_item[kmlcontrol]
end
end
function this:HideSelectLevelSecret()
self.SecrectrBossLevelBtn:HideItem()
end
function this:SelectLevelSecret(level, Btn)
self.SecrectrBossLevelBtn = Btn
self.select_Secret_level = level
self:RefreshSecretBoss()
end
function this:HideSanctuaryLevelSecret()
self.sanctuaryBossLevelBtn:HideItem()
end
function this:SelectSanctuarySecret(level, Btn)
self.sanctuaryBossLevelBtn = Btn
self.select_Sanctuary_level = level
self:RefreshSanctuaryBoss()
end
function this:SecretBossLineDataListItemCountFunc()
return #self.SecretAllLine
end
function this:SecretBossLineDataListItemGetFunc(realIndex)
local item = GUI:UIPanel_Open("dev/outui/ChallengeBoss/Item/KLUIChallengeBossLineItem/KLUIChallengeBossLineItem", self.view.secret_boss_line_data_list, self, { is_copy = 1 }, true,
function(_item)
self.secrect_boss_line_data_list_all_item[realIndex + 1] = _item
if not self.secretBossLineLoadEnd then
self.secretBossLineLoadEnd = true
SL:SendLuaNetMsg(LuaMessageIdToSever.GET_SECRET_REALM_MONSTER_COUNT, { repId = self.repId })
end
end)
self.secrect_boss_line_data_list_all_item[realIndex + 1] = item
return item.view.root
end
function this:SecretBossLineDataListItemInitFunc(realIndex, kmlcontrol)
end
function this:SecretBossLineDataListItemUpdateFunc(realIndex, kmlcontrol)
local data = self.SecretAllLine[realIndex + 1]
--local monsterid = self.current_secrect_data.monsterid
self.secrect_boss_line_data_list_all_item[realIndex + 1]:RefreshItem(self.repId, data, 0, self, 210)
end
function this:SecretRewardDataListItemCountFunc()
return #self.SecretAllRwward
end
function this:SecretRewardDataListItemGetFunc(realIndex)
local item = GUI:UIPanel_Open("dev/outui/ChallengeBoss/Item/KLUIChallengeBossRewardItem/KLUIChallengeBossRewardItem", self.view.secret_reward_data_list, self, {}, true)
self.secrect_reward_level_all_item[item.view.root] = item
return item.view.root
end
function this:SecretRewardDataListItemInitFunc(realIndex, kmlcontrol)
end
function this:SecretRewardDataListItemUpdateFunc(realIndex, kmlcontrol)
local data = self.SecretAllRwward[realIndex + 1]
self.secrect_reward_level_all_item[kmlcontrol]:RefreshItem({ cfgId = data }, self.select_Secret_level, self)
end
function this:SecretRewardBoxDataListItemCountFunc()
return #self.SecretAllBoxRwward
end
function this:SecretRewardBoxDataListItemGetFunc(realIndex)
local item = GUI:UIPanel_Open("dev/outui/ChallengeBoss/Item/KLUIChallengeBossRewardItem/KLUIChallengeBossRewardItem", self.view.secret_reward_box_data_list, self, {}, true)
self.secrect_reward_box_level_all_item[item.view.root] = item
return item.view.root
end
function this:SecretRewardBoxDataListItemInitFunc(realIndex, kmlcontrol)
end
function this:SecretRewardBoxDataListItemUpdateFunc(realIndex, kmlcontrol)
local data = self.SecretAllBoxRwward[realIndex + 1]
self.secrect_reward_box_level_all_item[kmlcontrol]:RefreshItem({ cfgId = data }, self.select_Secret_level, self)
end
function this:MonserPos(id, message)
if not message then
return
end
if not message.mapCfgId or not message.line or not message.monsterCfgId then
return
end
if SL:GetMetaValue(EMetaVarGetKey.MAP_ID) == message.mapCfgId and SL:GetMetaValue(EMetaVarGetKey.MAP_LINE) == message.line then
else
if InfoManager.redNameInfo:IsLimitTransferById(SL:GetMetaValue("MAIN_ACTOR_ID")) then
SL:TipMessage(SL:GetConfig('cfg_string', 262).text, 1, NoticeType.NoticeMid)--"pk值较高,无法传送",
return
end
end
--SL:LogError(table.toString(message))
SL:StopOnHook(true)
this.pos_monster_id = message.monsterCfgId
GUI:UIPanel_Close("dev/outui/ChallengeBoss/Panel/KLChallengeBoss/KLChallengeBossPanel")
this.map_data = { message.mapCfgId, message.line, message.x, message.y }
SL:Pathfinding(message.mapCfgId, message.line, message.x, message.y, this.MonserPosEnd, this.pos_monster_id)
SL.ShowMainPanel()
end
function this:MonserPosEnd(pos)
--SL:StartOnHook(true,true)
if pos and pos.x and pos.z then
this.scheduleId = SL:ScheduleOnce(0.1, function()
SL:Pathfinding(this.map_data[1], this.map_data[2], pos.x, pos.z, this.BossPointOnHook)
end)
else
SL:StartOnHook(true, true, this.pos_monster_id)
end
end
function this:BossPointOnHook()
SL:StartOnHook(true, true, this.pos_monster_id)
end
function this:Close()
self.monsterId = nil
self:UnRegistEvents()
end
---选择特权boss
function this:SelectPrivilegeBoss()
local playerLevel = SL:GetMetaValue(EMetaVarGetKey.LEVEL)
if self.monsterId then
playerLevel = SL:GetConfig("cfg_BOSS_challenge", self.monsterId, "monsterid").level
end
if not self.allPrivilegeLevel then
self.allPrivilegeLevel = {}
--local allBoss = SL:GetConfigMultiKeys('cfg_BOSS_challenge', 1, 'monsterType')
local allBoss = SL:FindConfigs("cfg_rep", "type", 18001)
for i, boss in ipairs(allBoss) do
boss.index = i
table.insert(self.allPrivilegeLevel, boss)
end
self.select_privilege_level = nil
self.select_privilege_index = nil
local index = 0
for i, boss in ipairs(self.allPrivilegeLevel) do
local level = boss.level[1]
if not self.select_privilege_level then
self.select_privilege_level = level
self.select_privilege_index = i
index = i
else
if level <= playerLevel and level > self.select_privilege_level then
self.select_privilege_level = level
self.select_privilege_index = i
index = i
end
end
end
local percentage = index / #self.allPrivilegeLevel
percentage = percentage - percentage % 0.00001
GUI:DataListUpdateData(self.view.privilege_boss_level_data_list)
GUI:SetScrollView_scrollpos(self.view.privilege_boss_select, percentage)
end
self:RefreshPrivilegeBoss()
end
function this:RefreshPrivilegeBoss()
self.current_Privilege_data = self.allPrivilegeLevel[self.select_privilege_index]
--SL:LogTable(self.current_Privilege_data,true)
self.PrivilegeAllRwward = {}
self.repId = 0
local monsterid = nil
if self.current_Privilege_data then
monsterid = self.current_Privilege_data.monsterUI
local tab = SL:GetConfigMultiKeys('cfg_monster', monsterid, 'id')
local name = tab.name
local icon = tab.icon
local appr = tab.appr
local path = SL:GetConfigMultiKeys('cfg_model_monster', appr, 'id').path
GUI:Text_setString(self.view.privilege_boss_name, name)
local mscale = ""
if self.current_Privilege_data.size then
local scale = math.ceil(self.current_Privilege_data.size / 100)
mscale = scale .. "," .. scale .. "," .. scale
end
GUI:Model_setSrc(self.view.privilege_boss_path, path, mscale)
if self.current_Privilege_data.offset and #self.current_Privilege_data.offset >= 2 then
GUI:setPosition(self.view.privilege_boss_path, self.current_Privilege_data.offset[1], self.current_Privilege_data.offset[2])
end
local baseCareer = SL:GetMetaValue(EMetaVarGetKey.JOB)
for i, one_reward in ipairs(self.current_Privilege_data.UIJobReward) do
if one_reward[1] == baseCareer then
table.insert(self.PrivilegeAllRwward, one_reward[2])
end
end
GUI:DataListUpdateData(self.view.privilege_boss_reward_data_list)
end
GUI:Text_setString(self.view.privilege_boss_last_num, "")
self.privilege_num = 0
SL:SendLuaNetMsg(LuaMessageIdToSever.REQ_PRIVILEGE_BOSS_PANEL, { configId = self.current_Privilege_data.id })
InfoManager.uiHuntingDemonsInfo:SetIntegralInControl(self.view.tequan_boss_Integral_BG,self.view.tequan_boss_Integral_Text,monsterid)
end
function this:PrivilegeBossBtnDataListItemCountFunc()
return #self.allPrivilegeLevel
end
function this:PrivilegeBossBtnDataListItemGetFunc(realIndex)
local item = GUI:UIPanel_Open("dev/outui/ChallengeBoss/Item/KLUIChallengeBossSelectBtnItem/KLUIChallengeBossSelectBtnItem", self.view.privilege_boss_level_data_list, self, {}, true)
self.privilege_boss_level_btn_all_item[item.view.root] = item
return item.view.root
end
function this:PrivilegeBossBtnDataListItemInitFunc(realIndex, kmlcontrol)
end
function this:PrivilegeBossBtnDataListItemUpdateFunc(realIndex, kmlcontrol)
local _level = self.allPrivilegeLevel[realIndex + 1].level[1]
local monsterUI = self.allPrivilegeLevel[realIndex + 1].monsterUI
local data = { level = _level, monsterid = monsterUI, index = self.allPrivilegeLevel[realIndex + 1].index }
self.privilege_boss_level_btn_all_item[kmlcontrol]:RefreshItem(data, self.select_privilege_index, self, 4)
if self.allPrivilegeLevel[realIndex + 1].index == self.select_privilege_index then
self.PrivilegeBossLevelBtn = self.privilege_boss_level_btn_all_item[kmlcontrol]
end
end
function this:HideSelectLevelPrivilege()
self.PrivilegeBossLevelBtn:HideItem()
end
function this:SelectLevelPrivilege(level, Btn)
self.PrivilegeBossLevelBtn = Btn
self.select_privilege_index = level
self:RefreshPrivilegeBoss()
end
function this:PrivilegeRewardDataListItemCountFunc()
return #self.PrivilegeAllRwward
end
function this:PrivilegeRewardDataListItemGetFunc(realIndex)
local item = GUI:UIPanel_Open("dev/outui/ChallengeBoss/Item/KLUIChallengeBossRewardItem/KLUIChallengeBossRewardItem", self.view.privilege_boss_reward_data_list, self, {}, true)
self.privilege_reward_level_all_item[item.view.root] = item
return item.view.root
end
function this:PrivilegeRewardDataListItemInitFunc(realIndex, kmlcontrol)
end
function this:PrivilegeRewardDataListItemUpdateFunc(realIndex, kmlcontrol)
local data = self.PrivilegeAllRwward[realIndex + 1]
self.privilege_reward_level_all_item[kmlcontrol]:RefreshItem({ cfgId = data }, self.select_Secret_level, self)
end
---圣域BOSS
function this:SanctuaryBossBtnDataListItemCountFunc()
return #self.allSanctuaryLevel
end
function this:SanctuaryBossBtnDataListItemGetFunc(realIndex)
local data = self.allSanctuaryLevel[realIndex + 1]
local item = GUI:UIPanel_Open("dev/outui/ChallengeBoss/Item/KLUIChallengeBossSelectBtnItem/KLUIChallengeBossSelectBtnItem", self.view.sanctuary_boss_level_data_list, self, {}, true)
self.sanctuary_boss_level_btn_all_item[item.view.root] = item
return item.view.root
end
function this:SanctuaryBossBtnDataListItemInitFunc(realIndex, kmlcontrol)
end
function this:SanctuaryBossBtnDataListItemUpdateFunc(realIndex, kmlcontrol)
local data = self.allSanctuaryLevel[realIndex + 1]
self.sanctuary_boss_level_btn_all_item[kmlcontrol]:RefreshItem(data, self.select_Sanctuary_level, self, EBossChallengeType.Sanctuary)
if data.level == self.select_Sanctuary_level then
self.sanctuaryBossLevelBtn = self.sanctuary_boss_level_btn_all_item[kmlcontrol]
end
end
function this:SanctuaryBossLineDataListItemCountFunc()
return #self.sanctuaryAllLine
end
function this:SanctuaryBossLineDataListItemGetFunc(realIndex)
local item = GUI:UIPanel_Open("dev/outui/ChallengeBoss/Item/KLUIChallengeBossLineItem/KLUIChallengeBossLineItem", self.view.sanctuary_boss_line_data_list, self, { is_copy = 1 }, true)
self.sanctuary_boss_line_data_list_all_item[realIndex + 1] = item
return item.view.root
end
function this:SanctuaryBossLineDataListItemInitFunc(realIndex, kmlcontrol)
end
function this:SanctuaryBossLineDataListItemUpdateFunc(realIndex, kmlcontrol)
local data = self.allSanctuaryLevel[realIndex + 1]
local mapMoveId = self.current_Sanctuary_data.mapMoveId[1][1]
self.sanctuary_boss_line_data_list_all_item[realIndex + 1]:RefreshItem(self.repId, data, mapMoveId, self, 210, self.current_Sanctuary_data)
end
function this:SanctuaryRewardDataListItemCountFunc()
return #self.sanctuaryAllRwward
end
function this:SanctuaryRewardDataListItemGetFunc(realIndex)
local item = GUI:UIPanel_Open("dev/outui/ChallengeBoss/Item/KLUIChallengeBossRewardItem/KLUIChallengeBossRewardItem", self.view.sanctuary_reward_data_list, self, {}, true)
self.sanctuary_reward_level_all_item[item.view.root] = item
return item.view.root
end
function this:SanctuaryRewardDataListItemInitFunc(realIndex, kmlcontrol)
end
function this:SanctuaryRewardDataListItemUpdateFunc(realIndex, kmlcontrol)
local data = self.sanctuaryAllRwward[realIndex + 1]
self.sanctuary_reward_level_all_item[kmlcontrol]:RefreshItem({ cfgId = data }, self.select_Sanctuary_level, self)
end
function this:SanctuaryRewardBoxDataListItemCountFunc()
return #self.sanctuaryAllBoxRwward
end
function this:SanctuaryRewardBoxDataListItemGetFunc(realIndex)
local item = GUI:UIPanel_Open("dev/outui/ChallengeBoss/Item/KLUIChallengeBossRewardItem/KLUIChallengeBossRewardItem", self.view.sanctuary_reward_box_data_list, self, {}, true)
self.sanctuary_reward_box_level_all_item[item.view.root] = item
return item.view.root
end
function this:SanctuaryRewardBoxDataListItemInitFunc(realIndex, kmlcontrol)
end
function this:SanctuaryRewardBoxDataListItemUpdateFunc(realIndex, kmlcontrol)
local data = self.sanctuaryAllBoxRwward[realIndex + 1]
self.sanctuary_reward_box_level_all_item[kmlcontrol]:RefreshItem({ cfgId = data }, self.select_Sanctuary_level, self)
end
function this:RES_PRIVILEGE_BOSS_PANEL(id, message)
local leftCount = message.leftCount
local numStr = tostring(leftCount)
-- if not self:IsHavePrivilege() or leftCount == 0 then
-- numStr = "0"
-- end
if leftCount == 0 then
numStr = "0"
end
self.privilege_num = leftCount
GUI:Text_setString(self.view.privilege_boss_last_num, numStr)
end
function this:privilege_boss_join()
local map_id = SL:GetMetaValue(EMetaVarGetKey.MAP_ID)
local mapTab = SL:GetConfig("cfg_map_info", map_id)
if mapTab.nopositionmove and mapTab.nopositionmove == 1 then
SL:MessageTip({ id = 116 })--"副本中无法传送",
return
end
-- if self:IsHavePrivilege() then
-- else
-- --无特权
-- GUI:UIPanel_Close("dev/outui/ChallengeBoss/Panel/KLChallengeBoss/KLChallengeBossPanel")
-- GUI:UIPanel_Open("dev/outui/MonthCard/Panel/KLUIMonthCardMain/KLUIMonthCardMainPanel")
-- return
-- end
local playerLevel = SL:GetMetaValue(EMetaVarGetKey.LEVEL)
if self.current_Privilege_data.level[1] > playerLevel then
SL:TipMessage(SL:GetConfig('cfg_string', 263).text, 1, NoticeType.NoticeMid)--"当前等级不足",
return
end
if self.privilege_num <= 0 then
SL:TipMessage(SL:GetConfig('cfg_string', 264).text, 1, NoticeType.NoticeMid)--"挑战次数不足",
return
end
SL:SendLuaNetMsg(LuaMessageIdToSever.REQ_ENTER_DUPLICATE, self.current_Privilege_data.id)
end
function this:IsHavePrivilege()
if InfoManager.monthCardInfo.IsGetMonthCard or InfoManager.monthCardInfo.IsGetDailyCard then
--有月卡或是日卡
return true
elseif PrivilegeCardManager.goldPrivilege or PrivilegeCardManager.diamondPrivilege then
--有黄金或者钻石特权
return true
else
--无特权
end
return false
end
function this:UnRegistEvents()
SL:UnRegisterLuaNetMsg(LuaMessageIdToClient.NEAREST_MONSTER, self.MonserPos, self)
SL:UnRegisterLuaNetMsg(LuaMessageIdToClient.SECRET_REALM_COUNT, self.SecretCount, self)
SL:UnRegisterLuaNetMsg(LuaMessageIdToClient.RES_PRIVILEGE_BOSS_PANEL, self.RES_PRIVILEGE_BOSS_PANEL, self)
SL:UnRegisterLuaNetMsg(LuaMessageIdToClient.MONSTER_COUNT_RESULT_BY_ID, self.MonserCount, self)
SL:UnRegisterLuaNetMsg(LuaMessageIdToClient.SEND_SECRET_REALM_MONSTER_COUNT, self.MonserCopyCount, self)
end
function this:LUA_EVENT_CHALLENGE_BOSS_MONSTER_POS(_id, message)
self:MonserPos(nil, message)
end
return this