EquipMeltFunc.cs 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using pomelo.connector;
  7. using CommonLang.Property;
  8. using pomelo.area;
  9. using XmdsBattleClientBot;
  10. using CommonLang;
  11. namespace XmdsBotTest.Runner
  12. {
  13. public class EquipMeltFunc : BotRunner.RunnerModule
  14. {
  15. private List<int> ls = new List<int>();
  16. private pomelo.player.Player player;
  17. public EquipMeltFunc() {
  18. module_name = "装备熔炼";
  19. }
  20. public EquipMeltFunc(BotRunner r) : base(r)
  21. {
  22. }
  23. private int getBagItemCounts() {
  24. int sum = 0;
  25. foreach (var grid in player.store.bag.bagGrids) {
  26. if (null != grid.item) {
  27. sum += 1;
  28. }
  29. }
  30. return sum;
  31. }
  32. protected internal override void OnGateBindPlayer(BindPlayerResponse e)
  33. {
  34. base.OnGateBindPlayer(e);
  35. runner.do_gm_add_gold(1000000);
  36. int canUnlockNum = e.s2c_player.store.bag.bagTotalCount - e.s2c_player.store.bag.bagGridCount;
  37. bot.Client.GameSocket.playerHandler.sendGMCmdRequest("@gm unlock " + canUnlockNum, (e1, r) =>
  38. {
  39. player = e.s2c_player;
  40. });
  41. }
  42. protected internal override void OnBattleActorReady(CommonAI.ZoneClient.ZoneLayer layer, CommonAI.ZoneClient.ZoneActor actor)
  43. {
  44. layer.AddTimePeriodicMS(Config.CheckIntervalMS, (t) =>
  45. {
  46. if (Enable)
  47. {
  48. equipMeltRequest();
  49. }
  50. });
  51. }
  52. private void equipMeltRequest()
  53. {
  54. if (Enable && player != null) {
  55. List<pomelo.item.Grid> bagGrids = player.store.bag.bagGrids;
  56. ls.Clear();
  57. //Console.WriteLine("xxxxxxxxxxxx-->>{0}", getBagItemCounts());
  58. if (getBagItemCounts() > 1)
  59. {
  60. foreach (var grid in bagGrids)
  61. {
  62. if (null != grid && null != grid.item && 0 != grid.item.itemType)
  63. {
  64. if (1 == grid.item.itemType ||
  65. 2 == grid.item.itemType ||
  66. 3 == grid.item.itemType)
  67. {
  68. if (ls.Count < 8)
  69. {
  70. ls.Add(grid.gridIndex);
  71. //Console.WriteLine("yyyyyyyyyyyy-->>{0}", grid.gridIndex);
  72. }
  73. }
  74. }
  75. }
  76. if (ls.Count > 0)
  77. {
  78. client.GameSocket.equipHandler.equipMeltRequest(ls,
  79. (err, rsp) =>
  80. {
  81. Console.WriteLine("tttttttttttt: {0}, {1}, {2}", rsp, rsp.s2c_msg, player.name);
  82. });
  83. }
  84. }
  85. else {
  86. if (getBagItemCounts() < 50)
  87. {
  88. int canAddNum = player.store.bag.bagGridCount - getBagItemCounts();
  89. canAddNum = canAddNum > 50 ? 50 : canAddNum;
  90. runner.do_gm_add_item("sweap1-10", canAddNum);
  91. }
  92. }
  93. }
  94. }
  95. [Desc("装备熔炼配置")]
  96. [Expandable]
  97. public class Config : ConfigBase
  98. {
  99. [Desc("装备熔炼检测间隔")]
  100. public static int CheckIntervalMS = 5000;
  101. public override string ToString()
  102. {
  103. return "装备熔炼配置";
  104. }
  105. public override void popG2DPropertyDialog()
  106. {
  107. CommonFroms.G2D.G2DPropertyDialog<EquipMeltFunc.Config>.Show("修改配置", this);
  108. }
  109. }
  110. }
  111. }