GuildDemonData.lua 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549
  1. local GuildDemonData = class('GuildDemonData',require("DataBase"))
  2. local PlayerInfoReqLimit = 10
  3. local PlayerInfoMaxLimit = 50
  4. function GuildDemonData:ctor()
  5. self.SommonId = 0
  6. self.GuildRankReqPage = 1
  7. self.GuildMvpRankReqPage = 1
  8. end
  9. function GuildDemonData:InitData(data)
  10. end
  11. function GuildDemonData:StartGuildDemonBattle()
  12. local demoBattleInfo = self.demoBattleInfo
  13. if demoBattleInfo and demoBattleInfo.isBattling then
  14. return
  15. end
  16. local demonId = self:GetdemonId()
  17. local bossCfgData = ManagerContainer.CfgMgr:GetGuildDemonCfgCfgById(demonId)
  18. if not bossCfgData then return end
  19. if not demoBattleInfo then
  20. demoBattleInfo = {}
  21. self.demoBattleInfo = demoBattleInfo
  22. end
  23. demoBattleInfo.bossId = demonId
  24. demoBattleInfo.hurtValue = 0
  25. local teams = ManagerContainer.DataMgr.UserData:GetTeamData(true)
  26. local ourActors = System.Array.CreateInstance(Enum.TypeInfo.ActorData, #teams)
  27. for i = 1 , #teams do
  28. local actor = ManagerContainer.LuaActorDataMgr:GetActorsById(teams[i].uid,teams[i].id)
  29. --增加对应压制mark
  30. ManagerContainer.DataMgr.UserData:SetActorPveMark(teams[i].uid,actor)
  31. ourActors[i - 1] = actor
  32. end
  33. local enemyActors = System.Array.CreateInstance(Enum.TypeInfo.ActorData, 1)
  34. local bossLv = ManagerContainer.DataMgr.GuildDemonData:GetBossLv()
  35. local npcId = bossCfgData.SummonId or 0
  36. self.SommonId = npcId
  37. local npcCfgData = ManagerContainer.CfgMgr:GetNpcCfgById(npcId)
  38. if not npcCfgData then
  39. LogError("策划配表问题 怪物ID不存在 "..npcId)
  40. return
  41. end
  42. local actor = ManagerContainer.LuaActorDataMgr:CreateNpc(10001, npcId, 1, npcCfgData.BaseLv)
  43. actor.IsBoss = (npcCfgData.NpcType == 2)
  44. actor.IgnoreLife = true
  45. enemyActors[0] = actor
  46. local battleEndCondList = System.Array.CreateInstance(Enum.TypeInfo.BattleEndCondition, 2)
  47. battleEndCondList[0] = BattleEndCondition.New(Constants.EndBattle_By_UndeadCount,Constants.ResultType_Normal)
  48. battleEndCondList[1] = BattleEndCondition.New(Constants.EndBattle_By_BattleTime,bossCfgData.BattleTime,Constants.ResultType_Special,true)
  49. ManagerContainer.LuaGameMgr:EnterGuildHuntExBattle(bossCfgData.SummonScence, nil, bossCfgData.BattleTime, ourActors, enemyActors, battleEndCondList)
  50. end
  51. function GuildDemonData:RefreshRewardRankData()
  52. local demonId = self:GetdemonId()
  53. local demonData = ManagerContainer.CfgMgr:GetGuildDemonCfgCfgById(demonId)
  54. if not demonData then
  55. return
  56. end
  57. local totalHarm = self:GettotalHarm()
  58. local HarmSection = CommonUtil.DeserializeGlobalStrToNumberTable(demonData.DamageSegment)
  59. if HarmSection and #HarmSection > 0 then
  60. if totalHarm > HarmSection[#HarmSection][2] then
  61. self.DemonData.currRewardRank = HarmSection[#HarmSection][1]
  62. self.DemonData.nextRewardRank = HarmSection[#HarmSection][1] + 1
  63. return
  64. end
  65. for i = 1, #HarmSection - 1 do
  66. local lastvalue = HarmSection[i][2]
  67. local nextvalue = HarmSection[i][3]
  68. if totalHarm >= lastvalue and totalHarm <= nextvalue then
  69. self.DemonData.currRewardRank = HarmSection[i][1]
  70. self.DemonData.nextRewardRank = HarmSection[i][1] + 1
  71. -- if i == #HarmSection then
  72. -- self.DemonData.nextRewardRank = 0
  73. -- end
  74. break
  75. end
  76. end
  77. end
  78. end
  79. function GuildDemonData:StopGuildDemonBattle(isPlayRecord, battleTime)
  80. if isPlayRecord then
  81. self:ExitDemonBattle()
  82. return
  83. end
  84. if self.demoBattleInfo then
  85. if self.demoBattleInfo.timeOut then
  86. self.demoBattleInfo.timeOut:Stop()
  87. self.demoBattleInfo.timeOut = nil
  88. end
  89. self.demoBattleInfo.timeOut = Timer.New(function()
  90. self:ExitDemonBattle()
  91. end, 10)
  92. self.demoBattleInfo.timeOut:Start()
  93. end
  94. local bossId = self.demoBattleInfo.bossId
  95. local bossCfgData = ManagerContainer.CfgMgr:GetGuildDemonCfgCfgById(bossId)
  96. local hurtValue = Mathf.Floor(self:GetRecordDemonValue())
  97. self:SendGuildDemonBossChallengeReq(bossId, hurtValue, Mathf.Round(battleTime))
  98. end
  99. function GuildDemonData:RecordDemonValueChanged(hurtValue)
  100. if not hurtValue or hurtValue <= 0 then return end
  101. if not self.demoBattleInfo then return end
  102. self.demoBattleInfo.hurtValue = self.demoBattleInfo.hurtValue + hurtValue
  103. ManagerContainer.LuaEventMgr:Dispatch(UIEventNames.GUILD_HUNT_BOSS_HURT_CHANGED,true)
  104. end
  105. function GuildDemonData:ExitDemonBattle()
  106. if self:HasGuild() then
  107. ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIGuildDemon, nil, Enum.UIPageName.UIMainCity1)
  108. else
  109. ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIMainCity1, nil, false)
  110. if not ManagerContainer.LuaUIMgr:HasOpenPage(Enum.UIPageName.UIMain) then
  111. ManagerContainer.LuaUIMgr:Back2NormalBattleMain(Enum.MainViewPageType.Town)
  112. end
  113. end
  114. self:DisposeGuildDemonBattle()
  115. ManagerContainer.LuaEventMgr:Dispatch(UIEventNames.EID_SHUT_TIMEBATTLE)
  116. end
  117. function GuildDemonData:OpenDemonBattleRewardView()
  118. if self.demoBattleInfo and self.demoBattleInfo.timeOut then
  119. self.demoBattleInfo.timeOut:Stop()
  120. self.demoBattleInfo.timeOut = nil
  121. end
  122. local rewards = self.demoBattleInfo and self.demoBattleInfo.rewards or {cfgId = 2, num = 1000}
  123. local data = require('ExecuteSequenceData'):new()
  124. data:AppendUIListener(Enum.UIPageName.UIPOPGot, UIEventNames.UI_FILLCONTENT_COMPELETED, 5)
  125. data:AppendFuncAfterListener(false, ManagerContainer.LuaUIMgr, ManagerContainer.LuaUIMgr.Open, Enum.UIPageName.UIPOPGot, {rewards = rewards})
  126. data:AppendUIListener(Enum.UIPageName.UIPOPGot, UIEventNames.UI_PAGE_OUT_END_NTF)
  127. data:AppendFunc(true, self, self.ExitDemonBattle)
  128. ManagerContainer.ExecuteSequenceMgr:Execute(data)
  129. end
  130. function GuildDemonData:DisposeGuildDemonBattle()
  131. if self.demoBattleInfo and self.demoBattleInfo.timeOut then
  132. self.demoBattleInfo.timeOut:Stop()
  133. self.demoBattleInfo.timeOut = nil
  134. end
  135. self.demoBattleInfo = nil
  136. end
  137. function GuildDemonData:GetRecordDemonValue()
  138. if not self.demoBattleInfo then return 0 end
  139. return self.demoBattleInfo.hurtValue or 0
  140. end
  141. function GuildDemonData:HasGuild()
  142. return ManagerContainer.DataMgr.GuildDataMgr:GetGuildDataState() == Enum.GuildDataState.HasGuild
  143. end
  144. -- function GuildDemonData:GetNextLvDay()
  145. -- return self.DemonData and self.DemonData.nextLvDay or 0
  146. -- end
  147. function GuildDemonData:GetcurrRank()
  148. return self.DemonData and self.DemonData.currRewardRank or 0
  149. end
  150. function GuildDemonData:GetnextRank()
  151. return self.DemonData and self.DemonData.nextRewardRank or 0
  152. end
  153. function GuildDemonData:GetdemonId()
  154. return self.DemonData and self.DemonData.demonId or 0
  155. end
  156. function GuildDemonData:GetbuyCount()
  157. return self.DemonData and self.DemonData.buyCount or 0
  158. end
  159. function GuildDemonData:GetfightCount()
  160. return self.DemonData and self.DemonData.fightCount or 0
  161. end
  162. function GuildDemonData:GettotalHarm()
  163. return self.DemonData and self.DemonData.totalHarm or 0
  164. end
  165. function GuildDemonData:GetmyHarm()
  166. return self.DemonData and self.DemonData.myHarm or 0
  167. end
  168. function GuildDemonData:GetmvpHarm()
  169. return self.DemonData and self.DemonData.mvpHarm or 0
  170. end
  171. function GuildDemonData:GetmvpInfo()
  172. return self.DemonData and self.DemonData.mvpInfo
  173. end
  174. function GuildDemonData:GetMyGuildRankList()
  175. return self.DemonData and self.DemonData.allPlayerData
  176. end
  177. function GuildDemonData:GetSommonId()
  178. return self.SommonId
  179. end
  180. function GuildDemonData:GetGuildInfos()
  181. return self.GuildRankData and self.GuildRankData.allGuildInfos or {}
  182. end
  183. function GuildDemonData:GetGuildInfosLength()
  184. return self.GuildRankData and self.GuildRankData.allGuildInfos and #self.GuildRankData.allGuildInfos or 0
  185. end
  186. function GuildDemonData:GetGuildMvpInfos()
  187. return self.GuildMvpRankData and self.GuildMvpRankData.allMvpInfos or {}
  188. end
  189. function GuildDemonData:GetGuildMvpInfosLength()
  190. return self.GuildMvpRankData and self.GuildMvpRankData.allMvpInfos and #self.GuildMvpRankData.allMvpInfos or 0
  191. end
  192. function GuildDemonData:GetPlayerInfoLimit()
  193. return self.DemonData.PlayerInfoReqLimit and self.PlayerInfoReqLimit or 0
  194. end
  195. function GuildDemonData:GetGuildRankMvpLimit()
  196. return self.GuildMvpRankData and self.GuildMvpRankData.GuildRankMvpReqLimit or 5
  197. end
  198. function GuildDemonData:GetGuildRankLimit()
  199. return self.GuildRankData and self.GuildRankData.GuildRankReqLimit or 0
  200. end
  201. function GuildDemonData:GetBossEndTime()
  202. return self.DemonData and self.DemonData.endTime or 0
  203. end
  204. function GuildDemonData:GetBossLv()
  205. return self.DemonData and self.DemonData.bossLv or 1
  206. end
  207. function GuildDemonData:GetPlayerInfos()
  208. return self.DemonData and self.DemonData.playerInfos
  209. end
  210. function GuildDemonData:GetPlayerInfosLength()
  211. return self.DemonData and self.DemonData.playersLength or 0
  212. end
  213. function GuildDemonData:GetMvpInfos()
  214. return self.GuildMvpRankData and self.GuildMvpRankData.mvpBirefInfos
  215. end
  216. function GuildDemonData:GetMvpInfosLength()
  217. return self.GuildMvpRankData and self.GuildMvpRankData.mvpsLength or 0
  218. end
  219. function GuildDemonData:GetRankSelfGuildBrief()
  220. return self.GuildRankData and self.GuildRankData.selfGuildInfo
  221. end
  222. function GuildDemonData:GetRankSelfMvpBrief()
  223. return self.GuildMvpRankData and self.GuildMvpRankData.selfMvpBrief
  224. end
  225. function GuildDemonData:GetRankSelfMvpInfo()
  226. return self.GuildMvpRankData and self.GuildMvpRankData.selfMvpInfo
  227. end
  228. function GuildDemonData:OnGuildDemonInfoAck(data)
  229. if data then
  230. if not self.DemonData then
  231. self.DemonData = {}
  232. self.DemonData.playerReqIndex = 0
  233. self.DemonData.PlayerInfoReqLimit = GlobalConfig.Instance:GetConfigIntValue(338) or 50
  234. end
  235. self.DemonData.demonId = data.demon_id or 0
  236. -- local servertime = ManagerContainer.LuaTimerMgr:CurLuaServerTime()
  237. -- local time = (data.next_up_time - servertime)/1000/60/60
  238. -- time = type(time) == "number" and time or #time
  239. -- self.DemonData.nextLvDay = math.ceil(time / 24) or 0
  240. self.DemonData.bossLv = data.demon_level or 0
  241. self.DemonData.endTime = data.end_time or 0
  242. self.DemonData.fightCount = data.left_fight_count or 0
  243. self.DemonData.buyCount = data.left_buy_count or 0
  244. self.DemonData.totalHarm = (type(data.total_boss_damage) == "number" and data.total_boss_damage or #data.total_boss_damage) or 0
  245. self.DemonData.myHarm = (type(data.damage) == "number" and data.damage or #data.damage) or 0
  246. self.DemonData.mvpHarm = (type(data.mvp_damage) == "number" and data.mvp_damage or #data.mvp_damage) or 0
  247. if data.mvp_brief then
  248. self.DemonData.mvpInfo = data.mvp_brief
  249. end
  250. local ranklist = data.rank_list
  251. if ranklist and #ranklist > 0 then
  252. table.sort(ranklist,function(a,b)
  253. if a.damage == b.damage then
  254. return a.fight_time < b.fight_time
  255. else
  256. return a.damage > b.damage
  257. end
  258. end)
  259. end
  260. local allPlayerData = {}
  261. self.DemonData.playerInfos = {}
  262. self.DemonData.playersLength = 0
  263. for i = 1, #ranklist do
  264. local rank = ranklist[i]
  265. table.insert(allPlayerData,{rank = i,damage = rank.damage,uid = rank.uid})
  266. end
  267. self.isCanSendInfoReq = true
  268. self.DemonData.allPlayerData = allPlayerData
  269. self.DemonData.PlayerInfoReqLimit = self.DemonData.allPlayerData and #self.DemonData.allPlayerData or 0
  270. local uids = self:GetPlayerUids()
  271. self:SendGetGuildMemberInfoReq(Enum.FriendTogglePageType.GuildDemonPlayerInfo,uids)
  272. self:RefreshRewardRankData()
  273. ManagerContainer.LuaEventMgr:Dispatch(UIEventNames.REFRESH_DEMON_VIEW_INFO)
  274. end
  275. end
  276. function GuildDemonData:GetPlayerUids()
  277. local uids = {}
  278. local data = self:GetMyGuildRankList()
  279. local lastReqIndex = self:GetPlayerInfosLength()
  280. for i = lastReqIndex, lastReqIndex + PlayerInfoReqLimit do
  281. if data[i] then
  282. table.insert(uids,data[i].uid)
  283. end
  284. end
  285. return uids
  286. end
  287. function GuildDemonData:OnGuildPlayerBriefInfoAck(data)
  288. self.isCanSendInfoReq = true
  289. if data then
  290. if not self.DemonData then
  291. self.DemonData = {}
  292. end
  293. if not self.DemonData.playerInfos then
  294. self.DemonData.playerInfos = {}
  295. self.DemonData.playersLength = 0
  296. end
  297. if data.type == Enum.FriendTogglePageType.GuildDemonPlayerInfo then
  298. local brief_info = data.brief_info
  299. if brief_info and #brief_info > 0 then
  300. local list = self.DemonData.playerInfos
  301. for i = 1, #brief_info do
  302. local info = brief_info[i]
  303. if not list[info.uid] then
  304. self.DemonData.playersLength = self.DemonData.playersLength + 1
  305. end
  306. list[info.uid] = info
  307. end
  308. end
  309. ManagerContainer.LuaEventMgr:Dispatch(UIEventNames.REFRESH_DEMON_PLAYER_RANK_INFO)
  310. elseif data.type == Enum.FriendTogglePageType.GuildDemonMvpInfo then
  311. local brief_info = data.brief_info
  312. if brief_info and #brief_info > 0 then
  313. local list = self.GuildMvpRankData.mvpBirefInfos
  314. for i = 1, #brief_info do
  315. local info = brief_info[i]
  316. if not list[info.uid] then
  317. self.GuildMvpRankData.mvpsLength = self.GuildMvpRankData.mvpsLength + 1
  318. end
  319. list[info.uid] = info
  320. end
  321. end
  322. ManagerContainer.LuaEventMgr:Dispatch(UIEventNames.REFRESH_DEMON_RANK_INFO)
  323. end
  324. end
  325. end
  326. function GuildDemonData:OnGuildDemonFightAck(data)
  327. if data and data.error == 0 then
  328. if not self:HasGuild() then return end
  329. if self.demoBattleInfo and self.demoBattleInfo.bossId == data.demon_id then
  330. local rewards = {}
  331. for i = 1, #data.base_reward do
  332. local reward = data.base_reward[i]
  333. rewards[#rewards + 1] = {cfgId = reward.key, num = reward.value}
  334. end
  335. self.demoBattleInfo.rewards = rewards
  336. end
  337. if not self.DemonData then
  338. self.DemonData = {}
  339. end
  340. self.DemonData.fightCount = data.left_fight_count or 0
  341. self.DemonData.demonId = data.demon_id or 0
  342. self.DemonData.totalHarm = (type(data.total_damage) == "number" and data.total_damage or #data.total_damage) or 0
  343. self.DemonData.myHarm = (type(data.self_damage) == "number" and data.self_damage or #data.self_damage) or 0
  344. self:OpenDemonBattleRewardView()
  345. ManagerContainer.LuaEventMgr:Dispatch(UIEventNames.REFRESH_DEMON_VIEW_INFO)
  346. end
  347. end
  348. function GuildDemonData:OnGuildBuyFightCountAck(data)
  349. if data and data.error == 0 then
  350. self.DemonData.fightCount = data.left_fight_count or 0
  351. self.DemonData.buyCount = data.left_buy_count or 0
  352. ManagerContainer.LuaEventMgr:Dispatch(UIEventNames.REFRESH_DEMON_FIGHT_VIEW_INFO)
  353. end
  354. end
  355. function GuildDemonData:OnGuildDemonGuildRankAck(data)
  356. if data and data.error == 0 then
  357. if not self.GuildRankData then
  358. self.GuildRankData = {}
  359. self.GuildRankData.allGuildInfos = {}
  360. self.GuildRankData.GuildRankReqLimit = GlobalConfig.Instance:GetConfigIntValue(338) or 50
  361. end
  362. if data.self_guild then
  363. self.GuildRankData.selfGuildInfo = data.self_guild
  364. end
  365. local ranklist = data.rank_list
  366. if ranklist and #ranklist > 0 then
  367. for i = 1, #ranklist do
  368. table.insert(self.GuildRankData.allGuildInfos,{rank = ranklist[i].rank,damage = ranklist[i].damage,brief = ranklist[i].data.brief})
  369. end
  370. self.GuildRankReqPage = self.GuildRankReqPage + 1
  371. end
  372. if data.is_end then
  373. self.GuildRankData.GuildRankReqLimit = self.GuildRankData.allGuildInfos and #self.GuildRankData.allGuildInfos or 0
  374. end
  375. ManagerContainer.LuaEventMgr:Dispatch(UIEventNames.REFRESH_DEMON_RANK_INFO)
  376. end
  377. end
  378. function GuildDemonData:OnGuildDemonMvpRankAck(data)
  379. if data and data.error == 0 then
  380. if not self.GuildMvpRankData then
  381. self.GuildMvpRankData = {}
  382. self.GuildMvpRankData.allMvpInfos = {}
  383. self.GuildMvpRankData.mvpBirefInfos = {}
  384. self.GuildMvpRankData.refreshBriefInfoCount = 1
  385. self.GuildMvpRankData.mvpsLength = 0
  386. self.GuildMvpRankData.GuildRankMvpReqLimit = GlobalConfig.Instance:GetConfigIntValue(338) or 50
  387. end
  388. if data.self_guild_mvp then
  389. self.GuildMvpRankData.selfMvpInfo = data.self_guild_mvp
  390. end
  391. if data.mvp_brief then
  392. self.GuildMvpRankData.selfMvpBrief = data.mvp_brief
  393. end
  394. local ranklist = data.rank_list
  395. local uids = {}
  396. if ranklist and #ranklist > 0 then
  397. for i = 1, #ranklist do
  398. table.insert(self.GuildMvpRankData.allMvpInfos,{rank = ranklist[i].rank,damage = ranklist[i].damage,guildName = ranklist[i].guild_name,guildBadeg = ranklist[i].guild_badge,uid = ranklist[i].uuid})
  399. table.insert(uids,ranklist[i].uuid)
  400. end
  401. self.GuildMvpRankReqPage = self.GuildMvpRankReqPage + 1
  402. end
  403. self.isCanSendInfoReq = true
  404. self:SendGetGuildMemberInfoReq(Enum.FriendTogglePageType.GuildDemonMvpInfo,uids)
  405. if data.is_end then
  406. self.GuildMvpRankData.GuildRankMvpReqLimit = self.GuildMvpRankData.allMvpInfos and #self.GuildMvpRankData.allMvpInfos or 0
  407. end
  408. ManagerContainer.LuaEventMgr:Dispatch(UIEventNames.REFRESH_DEMON_RANK_INFO)
  409. end
  410. end
  411. function GuildDemonData:RegisterNetEvents()
  412. ManagerContainer.LuaEventMgr:RegisterEvent(UIEventNames.GUILD_DEMON_GET_OTHER_PLAYER_BRIEF_INFO_ACK,self,self.OnGuildPlayerBriefInfoAck)
  413. ManagerContainer.NetManager:NetRegister(ProtoMsgId.SC_GUILD_DEMON_INFO_ACK, self.OnGuildDemonInfoAck,self)
  414. ManagerContainer.NetManager:NetRegister(ProtoMsgId.SC_GUILD_DEMON_FIGHT_ACK, self.OnGuildDemonFightAck,self)
  415. ManagerContainer.NetManager:NetRegister(ProtoMsgId.SC_GUILD_DEMON_GUILD_RANK_ACK, self.OnGuildDemonGuildRankAck,self)
  416. ManagerContainer.NetManager:NetRegister(ProtoMsgId.SC_GUILD_DEMON_MVP_RANK_ACK, self.OnGuildDemonMvpRankAck,self)
  417. ManagerContainer.NetManager:NetRegister(ProtoMsgId.SC_GUILD_DEMON_BUY_FIGHT_COUNT_ACK,self.OnGuildBuyFightCountAck,self)
  418. end
  419. function GuildDemonData:Clear()
  420. end
  421. function GuildDemonData:ClearGuildDemonViewInfos()
  422. self.DemonData = nil
  423. end
  424. function GuildDemonData:ClearGuildRankViewInfos()
  425. self.GuildRankData = nil
  426. self.GuildRankReqPage = 1
  427. end
  428. function GuildDemonData:ClearGuildMvpRankViewInfos()
  429. self.GuildMvpRankData = nil
  430. self.GuildMvpRankReqPage = 1
  431. end
  432. function GuildDemonData:Destroy()
  433. if self.Clear then
  434. self.DemonData = nil
  435. self.SommonId = nil
  436. self.GuildRankData = nil
  437. self.GuildMvpRankData = nil
  438. self.GuildRankReqPage = nil
  439. self.GuildMvpRankReqPage = nil
  440. end
  441. self:UnRegisterNetEvents()
  442. end
  443. function GuildDemonData:UnRegisterNetEvents()
  444. ManagerContainer.LuaEventMgr:UnregisterEvent(UIEventNames.GUILD_DEMON_GET_OTHER_PLAYER_BRIEF_INFO_ACK,self,self.OnGuildPlayerBriefInfoAck);
  445. ManagerContainer.NetManager:UnRegisterPbIdCallback(ProtoMsgId.SC_GUILD_DEMON_INFO_ACK)
  446. ManagerContainer.NetManager:UnRegisterPbIdCallback(ProtoMsgId.SC_GUILD_DEMON_FIGHT_ACK)
  447. ManagerContainer.NetManager:UnRegisterPbIdCallback(ProtoMsgId.SC_GUILD_DEMON_GUILD_RANK_ACK)
  448. ManagerContainer.NetManager:UnRegisterPbIdCallback(ProtoMsgId.SC_GUILD_DEMON_MVP_RANK_ACK)
  449. ManagerContainer.NetManager:UnRegisterPbIdCallback(ProtoMsgId.SC_GUILD_DEMON_BUY_FIGHT_COUNT_ACK)
  450. end
  451. --分批请求玩家信息数据
  452. function GuildDemonData:SendGetGuildMemberInfoReq(type,uids)
  453. if self.isCanSendInfoReq then
  454. self.isCanSendInfoReq = false
  455. ManagerContainer.NetManager:SendMessage(ProtoMsgId.CS_GET_OTHER_PLAYER_BRIEF_INFO_REQ, {type = type,player_list=uids})
  456. end
  457. end
  458. --分批请求公会排名消息
  459. function GuildDemonData:SendGetGuildDemonRankInfoReq()
  460. ManagerContainer.NetManager:SendMessage(ProtoMsgId.CS_GUILD_DEMON_GUILD_RANK_REQ, {page = self.GuildRankReqPage})
  461. end
  462. --分批请求公会Mvp排名消息
  463. function GuildDemonData:SendGetGuildDemonMvpRankInfoReq()
  464. ManagerContainer.NetManager:SendMessage(ProtoMsgId.CS_GUILD_DEMON_MVP_RANK_REQ, {page = self.GuildMvpRankReqPage})
  465. end
  466. --获取魔王信息数据
  467. function GuildDemonData:SendGuildDemonInfoReq()
  468. ManagerContainer.NetManager:SendMessage(ProtoMsgId.CS_GUILD_DEMON_INFO_REQ)
  469. end
  470. --发送魔王战斗消息
  471. function GuildDemonData:SendGuildDemonBossChallengeReq(bossId, damage, battleTime)
  472. ManagerContainer.NetManager:SendMessage(ProtoMsgId.CS_GUILD_DEMON_FIGHT_REQ, { demon_id = bossId, damage = damage})
  473. end
  474. --发送购买魔王战斗次数
  475. function GuildDemonData:SendGuildDemonBuyFighCountReq(count)
  476. ManagerContainer.NetManager:SendMessage(ProtoMsgId.CS_GUILD_DEMON_BUY_FIGHT_COUNT_REQ, { fight_count = count})
  477. end
  478. return GuildDemonData