KLEquipDropItem.lua 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149
  1. ---@class KLEquipDropItem:UIKmlLuaPanelBase
  2. ---@field view KLEquipDropItemView
  3. local KLEquipDropItem = class(UIKmlLuaPanelBase)
  4. local this =KLEquipDropItem
  5. ---创建时调用一次
  6. function this:Init()
  7. self.perewardInfos = {}
  8. GUI:DataListInitData(self.view.Perrewards, function()
  9. return table.count(self.perewardInfos)
  10. end, function(realIndex)
  11. return self:DataListItemGetFunc(realIndex)
  12. end, function(realIndex, kmlcontrol)
  13. return self:DataListItemInitFunc(realIndex, kmlcontrol)
  14. end, function(realIndex, kmlcontrol)
  15. return self:DataListItemUpdateFunc(realIndex, kmlcontrol)
  16. end)
  17. end
  18. ---多个奖励道具
  19. function this:DataListItemGetFunc(realIndex)
  20. end
  21. function this:DataListItemInitFunc(realIndex, kmlcontrol)
  22. end
  23. function this:DataListItemUpdateFunc(realIndex, kmlcontrol)
  24. local data = self.perewardInfos[realIndex + 1]
  25. local item = self.view.Perrewards:GetChildControl(realIndex, "itemreward")
  26. local count = "<color=#fbd994>"..SL:GetSimpleNumber(tonumber(data[2]),0).."</color>"
  27. GUI:AddOnClickEvent(item,self,function()
  28. SL:OpenTips(nil, data[1])
  29. end)
  30. GUI:Item_UpdataData(item, {
  31. itemid = data[1],
  32. itemcustomcount = count,
  33. })
  34. end
  35. ---创建或者刷新界面数据时调用
  36. function this:Refresh()
  37. end
  38. function this:UpdateUI(data,ranking_id)
  39. self.data = data
  40. self.ranking_id = ranking_id
  41. self.personalrewardid = data.personalreward_type[1]
  42. self.rewardid = data.equip_item_id
  43. local state,usecount,rank = InfoManager.openServerInfo:GetRankAndNumByType(self.personalrewardid,data.personalreward_type[2])
  44. local name,serstate = InfoManager.openServerInfo:GetRankNameBySort(self.rewardid,1)
  45. ---后端奖励领取状态:0 正常 1 可领取 2 已领取
  46. self.state = state
  47. self.serstate = serstate
  48. local leftcount = data.personalreward_type[2] - usecount
  49. if self.state == 1 then
  50. leftcount = leftcount + 1
  51. end
  52. local cfg = SL:FindConfigs("cfg_item","id",data.equip_item_id)
  53. local grade = SL:GetEquipValue(EMetaVarGetKey.EQUIP_GRADE, nil, data.equip_item_id, nil)
  54. local name_color = SL:GetConfigMultiKeys('cfg_equip_quality', grade, 'id').nameColor
  55. self.rewarditem = data.reward_item[1]
  56. local count = "<color=#fbd994>"..SL:GetSimpleNumber(tonumber(self.rewarditem[2]),0).."</color>"
  57. if cfg and cfg[1] then
  58. local name = cfg[1].name
  59. GUI:Text_setString(self.view.text60, name)
  60. GUI:Text_setTextColor(self.view.text60, tostring(name_color))
  61. end
  62. GUI:Text_setString(self.view.text61, name)
  63. GUI:Text_setString(self.view.text66, "剩余:"..leftcount) ----个人剩余数量
  64. --装备id
  65. GUI:Item_setItemId(self.view.item59,data.equip_item_id)
  66. --首曝
  67. GUI:Item_setItemId(self.view.item62,self.rewarditem[1])
  68. GUI:Item_UpdataData(self.view.item62,{itemcustomcount = count})
  69. --itemcount = self.rewarditem[2]
  70. --个人
  71. self.perewardInfos = data.personalreward_item
  72. if self.perewardInfos then
  73. GUI:DataListUpdateData(self.view.Perrewards)
  74. GUI:setVisible(self.view.Perrewards,true)
  75. else
  76. GUI:setVisible(self.view.Perrewards,false)
  77. end
  78. --按钮状态文本
  79. if self.state == 0 then
  80. GUI:Text_setString(self.view.button64, "前往")
  81. else
  82. GUI:Text_setString(self.view.button64, "领取奖励")
  83. end
  84. GUI:setVisible(self.view.light_btn64,self.state == 1 )
  85. GUI:setVisible(self.view.button64,self.state ~= 2 )
  86. GUI:setVisible(self.view.img71, rank > 0 and self.state == 2 ) ---个人已领取
  87. GUI:setVisible(self.view.img3,rank == 0 and self.state == 2) ---个人不可领取
  88. --GUI:setVisible(self.view.text66,not (rank == 0 and self.state == 2))
  89. GUI:setVisible(self.view.img10,self.serstate == 1 ) ---全服可领取
  90. GUI:setVisible(self.view.img70,self.serstate == 2 ) ---全服已领取
  91. end
  92. function this:SetPosEquipItem()
  93. GUI:setPositionX(self.view.Perlayout,0)
  94. end
  95. ---注册UI事件和服务器消息
  96. function this:RegistEvents()
  97. GUI:AddOnClickEvent(self.view.item59,self,self.Equip_itemClick)
  98. GUI:AddOnClickEvent(self.view.item62,self,self.EquipFir_itemClick)
  99. GUI:AddOnClickEvent(self.view.button64,self,self.OnClickButton)
  100. end
  101. function this:Equip_itemClick()
  102. SL:OpenTips(nil,self.data.equip_item_id)
  103. end
  104. ---首曝奖励
  105. function this:EquipFir_itemClick()
  106. if self.serstate ~=2 then
  107. if self.serstate ==1 then
  108. SL:SendLuaNetMsg(LuaMessageIdToSever.REQ_OPEN_SERVER_ACT_RANK_REWARD,{goalValue = self.rewardid, rankType = self.ranking_id })
  109. else
  110. SL:OpenTips(nil,self.rewarditem[1])
  111. end
  112. end
  113. end
  114. ---领取个人奖励
  115. function this:OnClickButton()
  116. if self.state == 0 then
  117. --跳转首领挑战野外boss
  118. self.boss_id = 40006
  119. self.boss_type = 2
  120. if self.boss_type > 0 then
  121. SL.HideMainPanel()
  122. GUI:UIPanel_Close("dev/outui/ServerActivity/Panel/KLOpenServer/KLOpenServerPanel")
  123. GUI:UIPanel_Open("dev/outui/ChallengeBoss/Panel/KLChallengeBoss/KLChallengeBossPanel",nil,
  124. nil,{monsterId = self.boss_id,monsterType = self.boss_type })
  125. end
  126. else
  127. if self.personalrewardid then
  128. SL:SendLuaNetMsg(LuaMessageIdToSever.REQ_OPEN_SERVER_ACT_PERSONAL_REWARD,{goalValue = self.personalrewardid, rankType = self.ranking_id })
  129. end
  130. end
  131. end
  132. function this:Close()
  133. end
  134. return this