using System; using System.Net; using ETModel; namespace ETHotfix { [MessageHandler(AppType.Gate)] public class C2G_EnterMapHandler : AMRpcHandler { protected override async void Run(Session session, C2G_EnterMap message, Action reply) { G2C_EnterMap response = new G2C_EnterMap(); try { Player player = session.GetComponent().Player; // 在map服务器上创建战斗Unit IPEndPoint mapAddress = Game.Scene.GetComponent().MapConfigs[0].GetComponent().IPEndPoint; Session mapSession = Game.Scene.GetComponent().Get(mapAddress); M2G_CreateUnit createUnit = (M2G_CreateUnit)await mapSession.Call(new G2M_CreateUnit() { PlayerId = player.Id, GateSessionId = session.InstanceId }); player.UnitId = createUnit.UnitId; response.UnitId = createUnit.UnitId; response.Count = createUnit.Count; reply(response); } catch (Exception e) { ReplyError(response, e, reply); } } } }