ReOpenGame.cs 1.2 KB

1234567891011121314151617181920212223242526272829303132333435
  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. var session = PlayerComponent.Instance.ClientScene().GetComponent<SessionComponent>().Session;
  13. var ret = await session.Call(new C2G_BindPlayer() { PlayerId = PlayerComponent.Instance.PlayerId }) as G2C_BindPlayer;
  14. if(ret.Error != ErrorCode.ERR_Success)
  15. {
  16. Log.Error($"login error: {ret.Error}:{ret.Message}");
  17. return;
  18. }
  19. G2C_EnterMap g2CEnterMap = await session.Call(new C2G_EnterMap() { InstanceId = ret.Player.instanceId }) as G2C_EnterMap;
  20. if (g2CEnterMap.Error != 0)
  21. {
  22. Log.Error(g2CEnterMap.Message);
  23. return;
  24. }
  25. //告诉战斗服 i am ready,然后战斗服才会在场景创建其它单位
  26. session.Send(new BattleClientReady());
  27. EventSystem.Instance.Publish<ShowHUDEvent>();
  28. }
  29. }
  30. }