KLQuintonInvasionRankListPanel.lua 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182
  1. ---@class KLQuintonInvasionRankListPanel:UIKmlLuaPanelBase
  2. ---@field view KLQuintonInvasionRankListPanelView
  3. local KLQuintonInvasionRankListPanel = class(UIKmlLuaPanelBase)
  4. local this = KLQuintonInvasionRankListPanel
  5. function this:AsyncLoadUI()
  6. end
  7. ---创建时调用一次
  8. function this:Init()
  9. SL:KeepOpenPanel("KLQuintonInvasionRankListPanelKml", true)
  10. self.rank_all_item = {}
  11. self.select_type = 0
  12. self.player_rankList = {}
  13. self.team_rankList = {}
  14. local name_str = SL:GetConfig("cfg_repGlobal",21001008).value
  15. self.name_list = SL:Split(name_str,'#')
  16. for i=1,#self.name_list,1 do
  17. self.name_list[i] = self.name_list[i] .. "阵营"
  18. end
  19. GUI:DataListInitData(
  20. self.view.rankList,
  21. function()
  22. return self:RankDataListItemCountFunc()
  23. end,
  24. function(realIndex)
  25. return self:RankDataListItemGetFunc(realIndex)
  26. end,
  27. function(realIndex, kmlcontrol)
  28. return self:RankDataListItemInitFunc(realIndex, kmlcontrol)
  29. end,
  30. function(realIndex, kmlcontrol)
  31. return self:RankDataListItemUpdateFunc(realIndex, kmlcontrol)
  32. end
  33. )
  34. end
  35. ---注册UI事件和服务器消息
  36. function this:RegistEvents()
  37. GUI:AddOnClickEvent(self.view.desBtn, self, self.OnCliCkDesBtn)
  38. --GUI:AddOnClickEvent(self.view.exitBtn, self, self.OnCliCkExitBtn)
  39. GUI:SetToggleOnValueChange(self.view.personBtn, self, self.PersonBtnOnClick)
  40. GUI:SetToggleOnValueChange(self.view.teamBtn, self, self.TeamBtnOnClick)
  41. SL:RegisterLuaNetMsg(LuaMessageIdToClient.RES_QUIT_DUPLICATE, self.RES_QUIT_SUCCESS, self)
  42. end
  43. function this:SetData(message)
  44. self.data = message
  45. self.player_rankList = {} --self.data.rankList
  46. if self.data.playerRank then
  47. for i = 1, 3, 1 do
  48. local id = tostring(i)
  49. if self.data.playerRank[id] then
  50. self.data.playerRank[id].rank = i
  51. table.insert(self.player_rankList, self.data.playerRank[id])
  52. else
  53. break
  54. end
  55. end
  56. end
  57. self.team_rankList = {} --self.data.rankList
  58. if self.data.factionRank then
  59. for i = 1, 3, 1 do
  60. local id = tostring(i)
  61. if self.data.factionRank[id] then
  62. self.data.factionRank[id].rank = i
  63. local name = self.name_list[self.data.factionRank[id].faction]
  64. self.data.factionRank[id].name = name
  65. table.insert(self.team_rankList, self.data.factionRank[id])
  66. else
  67. break
  68. end
  69. end
  70. end
  71. self:RefreshRank()
  72. end
  73. function this:OnCliCkDesBtn()
  74. local data = {
  75. content = "1、昆顿入侵可通过跨服入口-神之国度-昆顿入侵入口进入地图。\n2.活动开启后玩家进入活动后会被分为猎鹰阵营、巨龙阵营、苍狼阵营3个阵营。\n3、活动开启后每对昆顿造成一定伤害获得1点积分,获得1点积分所需的伤害会随着开服天数提升而提升。\n4、击杀其他玩家可以获得被击杀者20%的积分。\n5.活动结束后阵营积分第一的阵营可获得拍卖分红。\n6、活动结束后根据积分排名发放奖励。\n7、玩家每日只能获得一次积分奖励,获得每日活动排名奖励后再次参加活动将不能获得积分O\n8、排名奖励需积分大于30分才能领取。\n9、昆顿被击杀后还有概率在跨服拍卖行上架稀有坐骑,阵营积分第一阵营中的玩家个人积分超过30可获得拍卖分红。",
  76. title = "昆顿入侵规则说明"
  77. }
  78. GUI:UIPanel_Open("dev/outui/Activity/Panel/KLDescribeDetail/KLDescribeDetailPanel", nil, nil, data)
  79. end
  80. function this:OnCliCkExitBtn()
  81. end
  82. function this:PersonBtnOnClick(_, _, data)
  83. local isToggle = data[1]
  84. if isToggle then
  85. self.select_type = 1
  86. self:RefreshRank()
  87. end
  88. end
  89. function this:TeamBtnOnClick(_, _, data)
  90. local isToggle = data[1]
  91. if isToggle then
  92. self.select_type = 0
  93. self:RefreshRank()
  94. end
  95. end
  96. function this:RES_QUIT_SUCCESS(id, message)
  97. ---@type cfg_rep_column
  98. local tbl = SL:GetConfig("cfg_rep", message, "id")
  99. if tbl.type == EActivityType.QuintonInvasion then
  100. GUI:UIPanel_Close("dev/outui/Activity/Panel/KLQuintonInvasionTaskProgress/KLQuintonInvasionTaskProgressPanel")
  101. end
  102. end
  103. ---界面显示时调用一次
  104. function this:Show()
  105. end
  106. ---创建或者刷新界面数据时调用
  107. function this:Refresh()
  108. GUI:SetIsOnWithoutNotify(self.view.teamBtn, true)
  109. self:RefreshRank()
  110. end
  111. function this:RefreshRank()
  112. GUI:DataListUpdateData(self.view.rankList)
  113. end
  114. function this:RankDataListItemCountFunc()
  115. local rankData = nil
  116. if self.select_type == 0 then
  117. rankData = self.team_rankList
  118. else
  119. rankData = self.player_rankList
  120. end
  121. return #rankData
  122. end
  123. function this:RankDataListItemGetFunc(realIndex)
  124. local rankData = nil
  125. if self.select_type == 0 then
  126. rankData = self.team_rankList
  127. else
  128. rankData = self.player_rankList
  129. end
  130. local index = realIndex + 1
  131. local data = rankData[index]
  132. local item =
  133. GUI:UIPanel_Open(
  134. "dev/outui/Activity/Item/KLQuintonInvasionRank/KLQuintonInvasionRankItem",
  135. self.view.rankList,
  136. self,
  137. data,
  138. true
  139. )
  140. self.rank_all_item[item.view.root] = item
  141. return item.view.root
  142. end
  143. function this:RankDataListItemInitFunc(realIndex, kmlcontrol)
  144. end
  145. function this:RankDataListItemUpdateFunc(realIndex, kmlcontrol)
  146. local rankData = nil
  147. if self.select_type == 0 then
  148. rankData = self.team_rankList
  149. else
  150. rankData = self.player_rankList
  151. end
  152. local index = realIndex + 1
  153. local data = rankData[index]
  154. self.rank_all_item[kmlcontrol]:RefreshItem(data)
  155. end
  156. function this:SetVisible(isVisible)
  157. GUI:setVisible(self.view.root, isVisible)
  158. end
  159. function this:Close()
  160. InfoManager.copActivityInfo.hideTeam = false
  161. end
  162. return this