C2G_BattleNotifyHandler.cs 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text.Json;
  5. namespace ET.Server
  6. {
  7. /// <summary>
  8. /// 向战斗服发送特定消息(触发编辑器事件)
  9. /// </summary>
  10. [MessageHandler(SceneType.Game)]
  11. public class C2G_BattleNotifyHandler : AMRpcHandler<C2G_BattleNotify, G2C_BattleNotify>
  12. {
  13. protected override async ETTask Run(Session session, C2G_BattleNotify request, G2C_BattleNotify response, Action reply)
  14. {
  15. WNPlayer player = session.GetComponent<SessionPlayerComponent>().GetMyPlayer();
  16. if (player == null)
  17. {
  18. Log.Debug($"操作错误, player is null");
  19. response.Error = ErrorCode.ERR_OperationError;
  20. reply();
  21. return;
  22. }
  23. // 判断参数
  24. if (string.IsNullOrEmpty(request.Message))
  25. {
  26. Log.Debug($"参数错误, request.NameType={request.Message}");
  27. response.Error = ErrorCode.ERR_ParameterError;
  28. reply();
  29. return;
  30. }
  31. // 通知战斗服
  32. player.GetXmdsManager().notifyBattleServer(player.Map.Id.ToString(), NotifyBSName.TriggerEvent, JsonSerializer.Serialize(new Struct.TriggerEventNotify() { message = request.Message }));
  33. reply();
  34. await ETTask.CompletedTask;
  35. }
  36. }
  37. }