KLUITeamTipsPanel.lua 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156
  1. ---@class KLUITeamTipsPanel:UIKmlLuaPanelBase
  2. ---@field view KLUITeamTipsPanelView
  3. ---@field onClickData TeamProto.TeamMember @点击数据
  4. ---@field teamId number @ 队伍id
  5. ---@field leaderId number @ 队长rid
  6. local KLUITeamTipsPanel = class(UIKmlLuaPanelBase)
  7. local this =KLUITeamTipsPanel
  8. ---创建时调用一次
  9. function this:Init()
  10. end
  11. ---创建或者刷新界面数据时调用
  12. function this:Refresh()
  13. self.unionName = ""
  14. self.unionPosition = 0
  15. if self.args and self.args.onClickData then
  16. self.onClickData = self.args.onClickData
  17. if self.onClickData.roleInfo.rid then
  18. self.playerID = self.onClickData.roleInfo.rid -- 队伍信息的类id命名的是rid
  19. else
  20. self.playerID = self.onClickData.roleInfo.id -- 人物信息的类id命名的是id
  21. end
  22. if self.onClickData.roleInfo.roleInfoExt then
  23. self.unionName = self.onClickData.roleInfo.roleInfoExt.unionName
  24. self.unionPosition = self.onClickData.roleInfo.roleInfoExt.position
  25. else
  26. self.unionName = self.onClickData.roleInfo.unionName
  27. self.unionPosition = self.onClickData.roleInfo.position
  28. end
  29. end
  30. if self.args and self.args.teamId then
  31. self.teamId = self.args.teamId
  32. end
  33. if self.args and self.args.leaderId then
  34. self.leaderId = self.args.leaderId
  35. end
  36. if self.args and self.args.listType then
  37. self.listType = self.args.listType
  38. end
  39. if not self.leaderId then
  40. self.leaderId = SL:TeamInfo_GetLeaderId()
  41. end
  42. self:ShowButton()
  43. end
  44. ---注册UI事件和服务器消息
  45. function this:RegistEvents()
  46. GUI:AddOnClickEvent(self.view.closeButton, self, self.OnClickButton,1)
  47. GUI:AddOnClickEvent(self.view.invitationButton, self, self.OnClickButton,2)
  48. GUI:AddOnClickEvent(self.view.leaveButton, self, self.OnClickButton,3)
  49. GUI:AddOnClickEvent(self.view.kickButton, self, self.OnClickButton,4)
  50. GUI:AddOnClickEvent(self.view.upCaptainButton, self, self.OnClickButton,5)
  51. GUI:AddOnClickEvent(self.view.lockButton, self, self.OnClickButton,6)
  52. GUI:AddOnClickEvent(self.view.chatButton, self, self.OnClickButton,7)
  53. GUI:AddOnClickEvent(self.view.selectPlayerButton, self, self.OnClickButton,8)
  54. GUI:AddOnClickEvent(self.view.reqPointButton, self, self.OnClickButton,9)
  55. GUI:AddOnClickEvent(self.view.joinButton, self, self.OnClickButton,10)
  56. end
  57. function this:Close()
  58. end
  59. function this:OnClickButton(control,data)
  60. if data == 2 then--邀请入队
  61. SL:ReqSendTeamInvitation(self.playerID, self.listType and self.listType or 1)
  62. elseif data == 3 then--离开队伍
  63. SL:DelBubbleTips(15)
  64. SL:ReqQuitTeam()
  65. elseif data == 4 then--踢出队伍
  66. SL:ReqKickOutMember(self.playerID, self.listType and self.listType or 1)
  67. elseif data == 5 then--升为队长
  68. SL:ReqChangeCaptain(self.playerID, self.listType and self.listType or 1)
  69. elseif data == 6 then--查看玩家
  70. SL:RequestLookPlayer(self.playerID)
  71. elseif data == 7 then--聊天
  72. elseif data == 8 then--选中玩家
  73. elseif data == 9 then--发送位置
  74. elseif data == 10 then--加入队伍
  75. end
  76. GUI:UIPanel_Close("dev/ui/Team/Panel/KLUITeamTips/KLUITeamTipsPanel")
  77. EventManager.Dispatch(Event.CloseTeamTipsUI)
  78. end
  79. ---显示玩家数据
  80. function this:ShowPlayInfo()
  81. GUI:Image_loadTexture(self.view.sp_careerIcon,"1"..self.onClickData.roleInfo.career.baseCareer,"Atlas/MUIcon.spriteatlas")
  82. GUI:Text_setString(self.view.lab_level,"等级:"..self.onClickData.roleInfo.level)
  83. ---@type cfg_career_column
  84. local careerTbl = SL:GetConfigMultiKeys("cfg_career",self.onClickData.roleInfo.career.baseCareer
  85. , self.onClickData.roleInfo.career.careerRank, "baseCareer", "careerRank")
  86. GUI:Text_setString(self.view.lab_career,careerTbl.name)
  87. GUI:Text_setString(self.view.lab_name,self.onClickData.roleInfo.name)
  88. GUI:Text_setTextColor(self.view.lab_name,"#E6E600")
  89. GUI:Text_setString(self.view.lab_union,self.unionName.." "..EUnionPositionToName[self.unionPosition])
  90. end
  91. function this:ShowButton()
  92. self:HideAllButton()
  93. self:ShowPlayInfo()
  94. ---处理队伍信息
  95. if SL:MeData_GetTeamId() > 0 then
  96. --是自己
  97. if self.playerID == SL:GetMetaValue(EMetaVarGetKey.UID) then
  98. GUI:SetActive(self.view.leaveButton,true)
  99. GUI:SetActive(self.view.reqPointButton,true)
  100. return
  101. end
  102. if self.teamId == SL:MeData_GetTeamId() then
  103. --队长点击队员
  104. if self.leaderId and self.leaderId == SL:GetMetaValue(EMetaVarGetKey.UID) then
  105. GUI:SetActive(self.view.kickButton,true)
  106. GUI:SetActive(self.view.lockButton,true)
  107. GUI:SetActive(self.view.chatButton,true)
  108. GUI:SetActive(self.view.upCaptainButton,true)
  109. GUI:SetActive(self.view.selectPlayerButton,true)
  110. return
  111. else
  112. GUI:SetActive(self.view.lockButton,true)
  113. GUI:SetActive(self.view.selectPlayerButton,true)
  114. GUI:SetActive(self.view.chatButton,true)
  115. return
  116. end
  117. else
  118. --不同队伍邀请玩家
  119. GUI:SetActive(self.view.invitationButton,true)
  120. GUI:SetActive(self.view.lockButton,true)
  121. GUI:SetActive(self.view.chatButton,true)
  122. return
  123. end
  124. end
  125. GUI:SetActive(self.view.joinButton,self.teamId > 0)
  126. GUI:SetActive(self.view.lockButton,true)
  127. GUI:SetActive(self.view.chatButton,true)
  128. end
  129. ---隐藏所有按钮
  130. function this:HideAllButton()
  131. GUI:SetActive(self.view.invitationButton,false)
  132. GUI:SetActive(self.view.leaveButton,false)
  133. GUI:SetActive(self.view.kickButton,false)
  134. GUI:SetActive(self.view.upCaptainButton,false)
  135. GUI:SetActive(self.view.lockButton,false)
  136. GUI:SetActive(self.view.selectPlayerButton,false)
  137. GUI:SetActive(self.view.chatButton,false)
  138. GUI:SetActive(self.view.reqPointButton,false)
  139. GUI:SetActive(self.view.joinButton,false)
  140. end
  141. return this