C2G_AddUnitsToMapHandler.cs 3.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. using System;
  2. using System.Numerics;
  3. namespace ET.Server
  4. {
  5. /// <summary>
  6. /// 向场景增加单位
  7. /// </summary>
  8. [MessageHandler(SceneType.Game)]
  9. public class C2G_AddUnitsToMapHandler: AMRpcHandler<C2G_AddUnitsToMap, G2C_AddUnitsToMap>
  10. {
  11. protected override async ETTask Run(Session session, C2G_AddUnitsToMap request, G2C_AddUnitsToMap response, Action reply)
  12. {
  13. if (session.DomainScene().SceneType != SceneType.Game)
  14. {
  15. Log.Debug($"Game 请求的Scene错误...SceneType={session.DomainScene().SceneType}");
  16. session.Dispose();
  17. return;
  18. }
  19. // 移除session自动超时组件
  20. session.RemoveComponent<SessionAcceptTimeoutComponent>();
  21. WNPlayer player = session.GetComponent<SessionPlayerComponent>().GetMyPlayer();
  22. if (player == null)
  23. {
  24. Log.Debug($"操作错误, player is null");
  25. response.Error = ErrorCode.ERR_OperationError;
  26. reply();
  27. return;
  28. }
  29. // 参数判断
  30. if (request.UnitId <= 0 || request.Force < 0 || request.Force > (int)AreaForce.FORCEB )
  31. {
  32. Log.Debug($"参数错误...unitId={request.UnitId}, force={request.Force}");
  33. response.Error = ErrorCode.ERR_ParameterError;
  34. reply();
  35. return;
  36. }
  37. // 临时openId
  38. // while (true)
  39. // {
  40. // string _openId = (10000 + new Random().Next(99999999)).ToString();
  41. // if (player.Map.GetUnitPlayerByOpenId(_openId) != null) continue;
  42. // await player.Map.AddUnitPlayer(_openId, request.UnitId, request.Force, request.Flag, request.X, request.Y, GetRandomPlayerName(), GetRandomUrl());
  43. // break;
  44. // }
  45. reply();
  46. await ETTask.CompletedTask;
  47. }
  48. private string GetRandomPlayerName()
  49. {
  50. string[] names =
  51. {
  52. "好人", "小新", "精钢侠", "带投大戈", "奥仔", "袄特门", "兔比斯", "张剑闯天牙", "窝耗帅", "大白"
  53. };
  54. var rand = new Random();
  55. var first = names[rand.Next(names.Length)];
  56. return first + rand.Next(99);
  57. }
  58. private string GetRandomUrl()
  59. {
  60. string[] url =
  61. {
  62. "https://pic1.zhimg.com/v2-3f475a4727cdff2c7289ce3c728a0e67_r.jpg",
  63. "https://img.zcool.cn/community/01cfd95d145660a8012051cdb52093.png@1280w_1l_2o_100sh.png",
  64. "https://pic4.zhimg.com/v2-ceb6cc092425322d0b4cab403cd403d7_r.jpg",
  65. "https://pic3.zhimg.com/50/v2-e1ad5394ae2d3b2dc9d04c1d7a63f0e6_hd.jpg",
  66. "https://pic1.zhimg.com/v2-9ee4a6f411b9a8ff076c38f1dcb03024_b.jpg"
  67. };
  68. var rand = new Random();
  69. return url[rand.Next(url.Length)];
  70. }
  71. }
  72. }