KLUIChallengeBossPosItem.lua 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. ---@class KLUIChallengeBossPosItem:UIKmlLuaPanelBase
  2. ---@field view KLUIChallengeBossPosItemView
  3. local KLUIChallengeBossPosItem = class(UIKmlLuaPanelBase)
  4. local this = KLUIChallengeBossPosItem
  5. ---创建时调用一次
  6. function this:Init()
  7. end
  8. ---创建或者刷新界面数据时调用
  9. function this:Refresh()
  10. end
  11. function this:RefreshItem(data, mapId, panel)
  12. self.isOpen = true
  13. self.mapId = mapId
  14. self.panel = panel
  15. self.data = data
  16. self.monsterId = self.data.monsterId
  17. --self.monsterid = self.data
  18. self.x = self.data.x
  19. self.y = self.data.y
  20. self.relivetime = self.data.reviveTime
  21. --SL:LogError(self.relivetime)
  22. local tab = SL:GetConfigMultiKeys('cfg_repfairyland', self.mapId, 'id')
  23. local monster_tab = SL:GetConfigMultiKeys('cfg_monster', self.mapId, 'id')
  24. --local map_info = SL:FindConfigs("cfg_map_info","id",self.mapId)
  25. local name = self.data.monsterName
  26. local pos = "坐标 " .. self.x .. "," .. self.y
  27. self.is_dead = false
  28. GUI:Text_setString(self.view.name, name)
  29. GUI:Text_setString(self.view.pos_str, pos)
  30. GUI:Text_setString(self.view.info, "待击杀")
  31. if self.relivetime and self.relivetime ~= 0 and self.relivetime ~= "0" then
  32. self.relivetime = tonumber(self.relivetime)
  33. GUI:setVisible(self.view.info, false)
  34. GUI:setVisible(self.view.revive_time, true)
  35. local current_time = Time.GetServerTime()
  36. self.relivetime = math.ceil((self.relivetime - current_time) / 1000)
  37. if self.relivetime > 0 then
  38. SL:ScheduleOnce(self.relivetime + 0.5, function()
  39. self:RefreshData()
  40. end)
  41. GUI:SetControl_time(self.view.revive_time, self.relivetime)
  42. self.is_dead = true
  43. else
  44. GUI:setVisible(self.view.info, true)
  45. GUI:setVisible(self.view.revive_time, false)
  46. end
  47. else
  48. GUI:setVisible(self.view.info, true)
  49. GUI:setVisible(self.view.revive_time, false)
  50. end
  51. self:ReqFirst()
  52. end
  53. function this:RefreshData()
  54. if not self.isOpen then
  55. return
  56. end
  57. self.panel:GetBossList()
  58. end
  59. function this:HideItem()
  60. GUI:setVisible(self.view.level_select, false)
  61. end
  62. ---注册UI事件和服务器消息
  63. function this:RegistEvents()
  64. GUI:AddOnClickEvent(self.view.btn, self, self.Onclick)
  65. SL:RegisterLuaNetMsg(LuaMessageIdToClient.SECRET_REALM_HURT_TOP1, self.FirstInfo, self)
  66. end
  67. function this:Onclick()
  68. SL:Pathfinding(self.mapId, 1, self.x, self.y,self.PosEnd)
  69. end
  70. function this:PosEnd()
  71. SL:StartOnHook(true,true,self.monsterId)
  72. end
  73. function this:ReqFirst()
  74. SL:SendLuaNetMsg(LuaMessageIdToSever.REQ_SECRET_REALM_HURT_TOP1, { monsterId = self.monsterId })
  75. end
  76. function this:FirstInfo(id, message)
  77. if not self.isOpen then
  78. return
  79. end
  80. if self.is_dead then
  81. return
  82. end
  83. if message and message.monsterId and message.monsterId == self.monsterId then
  84. if message.name then
  85. local str = "伤害第一:" .. message.name
  86. GUI:Text_setString(self.view.info, str)
  87. end
  88. end
  89. end
  90. function this:RefreshFirstData()
  91. end
  92. function this:Close()
  93. self.isOpen = false
  94. end
  95. return this