---@class KLEquipDropItem:UIKmlLuaPanelBase ---@field view KLEquipDropItemView local KLEquipDropItem = class(UIKmlLuaPanelBase) local this =KLEquipDropItem ---创建时调用一次 function this:Init() self.perewardInfos = {} GUI:DataListInitData(self.view.Perrewards, function() return table.count(self.perewardInfos) 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) end ---多个奖励道具 function this:DataListItemGetFunc(realIndex) end function this:DataListItemInitFunc(realIndex, kmlcontrol) end function this:DataListItemUpdateFunc(realIndex, kmlcontrol) local data = self.perewardInfos[realIndex + 1] local item = self.view.Perrewards:GetChildControl(realIndex, "itemreward") local count = ""..SL:GetSimpleNumber(tonumber(data[2]),0).."" GUI:AddOnClickEvent(item,self,function() SL:OpenTips(nil, data[1]) end) GUI:Item_UpdataData(item, { itemid = data[1], itemcustomcount = count, }) end ---创建或者刷新界面数据时调用 function this:Refresh() end function this:UpdateUI(data,ranking_id) self.data = data self.ranking_id = ranking_id self.personalrewardid = data.personalreward_type[1] self.rewardid = data.equip_item_id local state,usecount,rank = InfoManager.openServerInfo:GetRankAndNumByType(self.personalrewardid,data.personalreward_type[2]) local name,serstate = InfoManager.openServerInfo:GetRankNameBySort(self.rewardid,1) ---后端奖励领取状态:0 正常 1 可领取 2 已领取 self.state = state self.serstate = serstate local leftcount = data.personalreward_type[2] - usecount if self.state == 1 then leftcount = leftcount + 1 end local cfg = SL:FindConfigs("cfg_item","id",data.equip_item_id) local grade = SL:GetEquipValue(EMetaVarGetKey.EQUIP_GRADE, nil, data.equip_item_id, nil) local name_color = SL:GetConfigMultiKeys('cfg_equip_quality', grade, 'id').nameColor self.rewarditem = data.reward_item[1] local count = ""..SL:GetSimpleNumber(tonumber(self.rewarditem[2]),0).."" if cfg and cfg[1] then local name = cfg[1].name GUI:Text_setString(self.view.text60, name) GUI:Text_setTextColor(self.view.text60, tostring(name_color)) end GUI:Text_setString(self.view.text61, name) GUI:Text_setString(self.view.text66, "剩余:"..leftcount) ----个人剩余数量 --装备id GUI:Item_setItemId(self.view.item59,data.equip_item_id) --首曝 GUI:Item_setItemId(self.view.item62,self.rewarditem[1]) GUI:Item_UpdataData(self.view.item62,{itemcustomcount = count}) --itemcount = self.rewarditem[2] --个人 self.perewardInfos = data.personalreward_item if self.perewardInfos then GUI:DataListUpdateData(self.view.Perrewards) GUI:setVisible(self.view.Perrewards,true) else GUI:setVisible(self.view.Perrewards,false) end --按钮状态文本 if self.state == 0 then GUI:Text_setString(self.view.button64, "前往") else GUI:Text_setString(self.view.button64, "领取奖励") end GUI:setVisible(self.view.light_btn64,self.state == 1 ) GUI:setVisible(self.view.button64,self.state ~= 2 ) GUI:setVisible(self.view.img71, rank > 0 and self.state == 2 ) ---个人已领取 GUI:setVisible(self.view.img3,rank == 0 and self.state == 2) ---个人不可领取 --GUI:setVisible(self.view.text66,not (rank == 0 and self.state == 2)) GUI:setVisible(self.view.img10,self.serstate == 1 ) ---全服可领取 GUI:setVisible(self.view.img70,self.serstate == 2 ) ---全服已领取 end function this:SetPosEquipItem() GUI:setPositionX(self.view.Perlayout,0) end ---注册UI事件和服务器消息 function this:RegistEvents() GUI:AddOnClickEvent(self.view.item59,self,self.Equip_itemClick) GUI:AddOnClickEvent(self.view.item62,self,self.EquipFir_itemClick) GUI:AddOnClickEvent(self.view.button64,self,self.OnClickButton) end function this:Equip_itemClick() SL:OpenTips(nil,self.data.equip_item_id) end ---首曝奖励 function this:EquipFir_itemClick() if self.serstate ~=2 then if self.serstate ==1 then SL:SendLuaNetMsg(LuaMessageIdToSever.REQ_OPEN_SERVER_ACT_RANK_REWARD,{goalValue = self.rewardid, rankType = self.ranking_id }) else SL:OpenTips(nil,self.rewarditem[1]) end end end ---领取个人奖励 function this:OnClickButton() if self.state == 0 then --跳转首领挑战野外boss self.boss_id = 40006 self.boss_type = 2 if self.boss_type > 0 then SL.HideMainPanel() GUI:UIPanel_Close("dev/outui/ServerActivity/Panel/KLOpenServer/KLOpenServerPanel") GUI:UIPanel_Open("dev/outui/ChallengeBoss/Panel/KLChallengeBoss/KLChallengeBossPanel",nil, nil,{monsterId = self.boss_id,monsterType = self.boss_type }) end else if self.personalrewardid then SL:SendLuaNetMsg(LuaMessageIdToSever.REQ_OPEN_SERVER_ACT_PERSONAL_REWARD,{goalValue = self.personalrewardid, rankType = self.ranking_id }) end end end function this:Close() end return this