C2G_EnterMapHandler.cs 1.1 KB

1234567891011121314151617181920212223242526272829303132
  1. using System;
  2. using System.Net;
  3. using Model;
  4. namespace Hotfix
  5. {
  6. [MessageHandler(AppType.Gate)]
  7. public class C2G_EnterMapHandler : AMRpcHandler<C2G_EnterMap, G2C_EnterMap>
  8. {
  9. protected override async void Run(Session session, C2G_EnterMap message, Action<G2C_EnterMap> reply)
  10. {
  11. G2C_EnterMap response = new G2C_EnterMap();
  12. try
  13. {
  14. Log.Debug(MongoHelper.ToJson(message));
  15. Player player = session.GetComponent<SessionPlayerComponent>().Player;
  16. // 在map服务器上创建战斗Unit
  17. IPEndPoint mapAddress = Game.Scene.GetComponent<StartConfigComponent>().MapConfigs[0].GetComponent<InnerConfig>().IPEndPoint;
  18. Session mapSession = Game.Scene.GetComponent<NetInnerComponent>().Get(mapAddress);
  19. M2G_CreateUnit createUnit = (M2G_CreateUnit)await mapSession.Call(new G2M_CreateUnit() { PlayerId = player.Id, GateSessionId = session.Id });
  20. player.UnitId = createUnit.UnitId;
  21. response.UnitId = createUnit.UnitId;
  22. response.Count = createUnit.Count;
  23. reply(response);
  24. }
  25. catch (Exception e)
  26. {
  27. ReplyError(response, e, reply);
  28. }
  29. }
  30. }
  31. }