GoRunForm.cs 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. using Mir2Assistant.Common.Functions;
  2. using Mir2Assistant.Common.Models;
  3. using Mir2Assistant.Common.TabForms;
  4. using Mir2Assistant.Utils;
  5. using System.DirectoryServices.ActiveDirectory;
  6. using System.Runtime.InteropServices;
  7. using RadioButton = System.Windows.Forms.RadioButton;
  8. namespace Mir2Assistant.TabForms.Demo
  9. {
  10. /// <summary>
  11. /// 走路、跑路、寻路
  12. /// </summary>
  13. [Order(2)]
  14. public partial class GoRunForm : Form, ITabForm
  15. {
  16. public GoRunForm()
  17. {
  18. InitializeComponent();
  19. }
  20. public string Title => "走路跑路";
  21. public MirGameInstanceModel? GameInstance { get; set; }
  22. byte type { get; set; }
  23. byte direct { get; set; }
  24. int oldX = 0;
  25. int oldY = 0;
  26. private void GoRun_Load(object sender, EventArgs e)
  27. {
  28. }
  29. private void goRun(object sender, EventArgs e)
  30. {
  31. oldX = 0;
  32. oldY = 0;
  33. foreach (RadioButton radioButton in groupBox1.Controls.OfType<RadioButton>())
  34. {
  35. if (radioButton.Checked)
  36. {
  37. type = byte.Parse(radioButton.Tag!.ToString()!);
  38. break;
  39. }
  40. }
  41. direct = byte.Parse((sender as Button)!.Text);
  42. if (direct == 5)
  43. {
  44. timer1.Enabled = false;
  45. }
  46. else
  47. {
  48. timer1.Enabled = true;
  49. }
  50. }
  51. private void timer1_Tick(object sender, EventArgs e)
  52. {
  53. if (oldX != GameInstance!.CharacterStatus!.X!.Value || oldY != GameInstance.CharacterStatus.Y!)
  54. {
  55. GoRunFunction.GoRun(GameInstance, GameInstance.CharacterStatus.X!.Value, GameInstance.CharacterStatus.Y!.Value, direct, type);
  56. oldX = GameInstance!.CharacterStatus.X!.Value;
  57. oldY = GameInstance.CharacterStatus.Y!.Value;
  58. }
  59. }
  60. [DllImport("user32.dll")]
  61. public static extern bool PostMessage(IntPtr hWnd, uint Msg, IntPtr wParam, IntPtr lParam);
  62. private void button10_Click(object sender, EventArgs e)
  63. {
  64. timer1.Enabled = false;
  65. GoRunFunction.FindPath(GameInstance!, int.Parse(textBox1.Text), int.Parse(textBox2.Text));
  66. }
  67. private void button11_Click(object sender, EventArgs e)
  68. {
  69. SendMirCall.Send(GameInstance!, 9999,
  70. AsmUtils.Init(GameInstance!.MirPid)
  71. .Push6A(0)
  72. .Push6A(0)
  73. .Push6A(0)
  74. .Push6A(0)
  75. .Mov_EAX((int)GameInstance.MirConfig["通用参数"])
  76. .Mov_EAX_DWORD_Ptr_EAX()
  77. .Mov_EAX_DWORD_Ptr_EAX()
  78. .Mov_ECX(0)
  79. .Mov_EDX(0x11B2)
  80. .Mov_EBX((int)GameInstance!.MirConfig["对话CALL地址"])
  81. .Call_EBX()
  82. .GetAsmCode());
  83. }
  84. }
  85. }