using ET.Client; using ET.EventType; namespace ET { [Event] public class ReOpenGame : BEvent<ReOpenGame> { protected override async ETTask OnEvent(ReOpenGame a) { UnitMgr.Instance.RecycleUnits(); BattleMgr.Instance.InitBattleLayer(); BattleUnit.Reset(); var session = PlayerComponent.Instance.ClientScene().GetComponent<SessionComponent>().Session; var ret = await session.Call(new C2G_BindPlayer() { PlayerId = PlayerComponent.Instance.PlayerId }) as G2C_BindPlayer; if(ret.Error != ErrorCode.ERR_Success) { Log.Error($"login error: {ret.Error}:{ret.Message}"); return; } G2C_EnterMap g2CEnterMap = await session.Call(new C2G_EnterMap() { InstanceId = ret.Player.instanceId }) as G2C_EnterMap; if (g2CEnterMap.Error != 0) { Log.Error(g2CEnterMap.Message); return; } //告诉战斗服 i am ready,然后战斗服才会在场景创建其它单位 session.Send(new BattleClientReady()); EventSystem.Instance.Publish<ShowHUDEvent>(); } } }