ReOpenGame.cs 1.2 KB

123456789101112131415161718192021222324252627282930313233343536
  1. using ET.Client;
  2. using ET.EventType;
  3. namespace ET
  4. {
  5. [Event]
  6. public class ReOpenGame : BEvent<ReOpenGame>
  7. {
  8. protected override async ETTask OnEvent(ReOpenGame a)
  9. {
  10. UnitMgr.Instance.RecycleUnits();
  11. BattleMgr.Instance.InitBattleLayer();
  12. BattleUnit.Reset();
  13. var session = PlayerComponent.Instance.ClientScene().GetComponent<SessionComponent>().Session;
  14. var ret = await session.Call(new C2G_BindPlayer() { PlayerId = PlayerComponent.Instance.PlayerId }) as G2C_BindPlayer;
  15. if(ret.Error != ErrorCode.ERR_Success)
  16. {
  17. Log.Error($"login error: {ret.Error}:{ret.Message}");
  18. return;
  19. }
  20. G2C_EnterMap g2CEnterMap = await session.Call(new C2G_EnterMap() { InstanceId = ret.Player.instanceId }) as G2C_EnterMap;
  21. if (g2CEnterMap.Error != 0)
  22. {
  23. Log.Error(g2CEnterMap.Message);
  24. return;
  25. }
  26. //告诉战斗服 i am ready,然后战斗服才会在场景创建其它单位
  27. session.Send(new BattleClientReady());
  28. EventSystem.Instance.Publish<ShowHUDEvent>();
  29. }
  30. }
  31. }