ReconnectCommand.lua 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. local ReconnectCommand = class('ReconnectCommand', framework.SimpleCommand)
  2. function ReconnectCommand:ctor()
  3. end
  4. function ReconnectCommand:execute(note)
  5. releasePrint( "reconnect success")
  6. local facade = global.Facade
  7. local disconnectProxy = facade:retrieveProxy( global.ProxyTable.Disconnect )
  8. disconnectProxy:SetDisconnect( false )
  9. local NativeBridgeProxy = facade:retrieveProxy(global.ProxyTable.NativeBridgeProxy)
  10. if NativeBridgeProxy then
  11. NativeBridgeProxy:GN_Game_Duration_State( {isGameDuration=true} )
  12. end
  13. global.BuffManager:Cleanup()
  14. global.ActorEffectManager:Cleanup()
  15. global.gameMapController:CleanupActor( true )
  16. global.monsterManager:SetPetOfMainAlive( false )
  17. -- 角色是否活着
  18. local PlayerProperty = global.Facade:retrieveProxy( global.ProxyTable.PlayerProperty )
  19. if not PlayerProperty:IsAlive() then
  20. PlayerProperty:setAlive( true )
  21. end
  22. local BagProxy = global.Facade:retrieveProxy( global.ProxyTable.Bag )
  23. BagProxy:SetReconnect(true)
  24. BagProxy:ClearItemData(true)
  25. BagProxy:Inited(false)
  26. local EquipProxy = global.Facade:retrieveProxy(global.ProxyTable.Equip)
  27. EquipProxy:ClearEquipData()
  28. local PetsEquipProxy = global.Facade:retrieveProxy(global.ProxyTable.PetsEquipProxy)
  29. PetsEquipProxy:ClearEquipData()
  30. local ItemManagerProxy = global.Facade:retrieveProxy(global.ProxyTable.ItemManagerProxy)
  31. ItemManagerProxy:CleanItemBelongs()
  32. local MoneyProxy = global.Facade:retrieveProxy(global.ProxyTable.MoneyProxy)
  33. MoneyProxy:ResetInitStatus()
  34. SL:CloseBagUI()
  35. SL:CloseMyPlayerUI()
  36. BagProxy:RequestBagData()
  37. local TeamProxy = global.Facade:retrieveProxy(global.ProxyTable.TeamProxy)
  38. TeamProxy:ClearTeam()
  39. local npcProxy = global.Facade:retrieveProxy(global.ProxyTable.NPC)
  40. npcProxy:Cleanup()
  41. local StallProxy = global.Facade:retrieveProxy(global.ProxyTable.StallProxy)
  42. global.Facade:sendNotification( global.NoticeTable.Layer_StallLayer_Close)
  43. StallProxy:CleanMySellData()
  44. StallProxy:SetMyTradingStatus(false)
  45. local GameSettingProxy = global.Facade:retrieveProxy(global.ProxyTable.GameSettingProxy)
  46. GameSettingProxy:OnReConnectInited()
  47. local ChatProxy = global.Facade:retrieveProxy(global.ProxyTable.Chat)
  48. ChatProxy:ClearChatExItemsData()
  49. ---------------------------------
  50. -- ssr
  51. ssr.ssrBridge:onReconnect()
  52. SLBridge:onLUAEvent(LUA_EVENT_RECONNECT)
  53. ---------------------------------英雄清理
  54. local HeroBagProxy = global.Facade:retrieveProxy( global.ProxyTable.HeroBagProxy )
  55. HeroBagProxy:ClearItemData()
  56. HeroBagProxy:Inited(false)
  57. local HeroEquipProxy = global.Facade:retrieveProxy(global.ProxyTable.HeroEquipProxy)
  58. HeroEquipProxy:ClearEquipData()
  59. local HeroPropertyProxy = global.Facade:retrieveProxy(global.ProxyTable.HeroPropertyProxy)
  60. HeroPropertyProxy:NoticeOut()
  61. -----召唤物按钮刷新
  62. local SummonsProxy = global.Facade:retrieveProxy( global.ProxyTable.SummonsProxy )
  63. SummonsProxy:clear()
  64. local PetsEquipProxy = global.Facade:retrieveProxy( global.ProxyTable.PetsEquipProxy )
  65. PetsEquipProxy:clear()
  66. global.Facade:sendNotification( global.NoticeTable.SummonsAliveStatusChange)
  67. global.Facade:sendNotification(global.NoticeTable.MainExChatClean)
  68. local ServerTimeProxy = global.Facade:retrieveProxy(global.ProxyTable.ServerTimeProxy)
  69. ServerTimeProxy:CloseCheckDisconnectTimer()
  70. end
  71. return ReconnectCommand