冰楓論壇

標題: TwMs v269.3 自動按鍵和自動藥水 [打印本頁]

作者: wangjiaxin857    時間: 2025-4-2 17:13
標題: TwMs v269.3 自動按鍵和自動藥水
  1. //TwMs v269.3 自動按鍵和自動藥水
  2. [ENABLE]
  3. Alloc(Auto_Key_Hook,512,1430AE992)
  4. Alloc(KeyTable,256,1430AE992)
  5. Alloc(HPMPTable,256,1430AE992)
  6. Alloc(AutoPotion,4,1430AE992)
  7. Alloc(AutoKey,4,1430AE992)

  8. AutoPotion://自動藥水開關(0=關閉,1=開啟)
  9. dd 0

  10. AutoKey://自動按鍵(0=關閉,1=開啟)
  11. dd 1

  12. HPMPTable://格式:按鍵代碼,鍵碼,延遲(毫秒),初始計時,閾值
  13. dd 01490000, 21, #500, 0, #1500  //HP藥水 默認使用按鍵是 PgUp
  14. dd 01510000, 22, #500, 0, #500     //MP藥水 默認使用按鍵是 PgDn
  15. dd 0, 0, 0, 0, 0  //這行務必要保留

  16. //請自行添加按鍵
  17. KeyTable://格式:按鍵代碼,鍵碼,延遲(毫秒),初始計時
  18. dd 001D0030, 11, #60000, 0  //默認是 ctrl

  19. dd 0, 0, 0, 0  //這行務必要保留

  20. Auto_Key_Hook:
  21. push rbx
  22. push rsi
  23. push rcx
  24. push rdx
  25. push r8
  26. push r9
  27. push r10
  28. push r11
  29. sub rsp,20

  30. //獲取當前時間
  31. call 14565A690
  32. mov ebx,eax

  33. //檢查自動喝藥開關
  34. cmp dword ptr [AutoPotion],1
  35. jne Check_AutoKey                //如果自動藥水開關關閉,檢查普通按鍵開關

  36. //檢查HP/MP
  37. mov rsi,HPMPTable
  38. Check_HPMP:
  39. mov ecx,dword ptr [rsi]    //讀取按鍵代碼
  40. cmp ecx,0                  //檢查是否到表尾
  41. je Check_AutoKey           //檢查完自動藥水後檢查普通按鍵開關

  42. //檢查延遲時間
  43. mov edx,ebx
  44. mov edi,dword ptr [rsi+0C] //獲取上次使用時間
  45. sub edx,edi
  46. cmp edx,dword ptr [rsi+8]  //比較是否達到延遲時間
  47. jb Next_Check

  48. //檢查HP/MP值
  49. mov rcx,148E7C3B0
  50. mov rcx,[rcx]
  51. mov edx,dword ptr [HPMPTable+4]  //獲取HP藥水的鍵碼
  52. cmp dword ptr [rsi+4],edx        //與當前項的鍵碼比較
  53. jne Check_MP_Value

  54. Check_HP_Value:
  55. mov rcx,[rcx+338]          //HP偏移
  56. jmp Check_Value

  57. Check_MP_Value:
  58. mov rcx,[rcx+348]          //MP偏移

  59. Check_Value:
  60. mov eax,[rcx+40]           //讀取當前值
  61. cmp eax,dword ptr [rsi+10] //比較當前值和閾值
  62. jg Next_Check

  63. //使用藥水
  64. mov r8,dword ptr [rsi]     //按鍵代碼
  65. mov edx,dword ptr [rsi+4]  //鍵碼
  66. mov rcx,148B6C768//Key_Base
  67. mov rcx,qword ptr [rcx]
  68. call 1452BE2D0//Key_Call
  69. mov dword ptr [rsi+0C],ebx //更新使用時間
  70. jmp Loop_End               //使用藥水後直接結束

  71. Next_Check:
  72. add rsi,14                 //移到下一個配置
  73. jmp Check_HPMP

  74. //檢查自動按鍵開關
  75. Check_AutoKey:
  76. cmp dword ptr [AutoKey],1
  77. jne Loop_End              //如果自動按鍵開關關閉,直接結束

  78. //自動按鍵
  79. Auto_Key:
  80. mov rsi,KeyTable

  81. Loop_Start:
  82. mov ecx,dword ptr [rsi]
  83. cmp ecx,0
  84. je Loop_End
  85. mov edx,ebx
  86. mov edi,dword ptr [rsi+0C]
  87. sub edx,edi
  88. cmp edx,dword ptr [rsi+8]
  89. jb Skip_Key
  90. mov dword ptr [rsi+0C],ebx
  91. mov r8,dword ptr [rsi]
  92. mov edx,dword ptr [rsi+4]
  93. mov rcx,148B6C768
  94. mov rcx,qword ptr [rcx]
  95. call 1452BE2D0

  96. Skip_Key:
  97. add rsi,10
  98. jmp Loop_Start

  99. Loop_End:
  100. add rsp,20
  101. pop r11
  102. pop r10
  103. pop r9
  104. pop r8
  105. pop rdx
  106. pop rcx
  107. pop rsi
  108. pop rbx
  109. call 143725980//Hook_Opcode
  110. jmp 1430AE992+5//Hook_Address+5

  111. 1430AE992://Hook_Address
  112. jmp Auto_Key_Hook

  113. [DISABLE]
  114. 1430AE992://Hook_Address
  115. call 143725980//Hook_Opcode

  116. DeAlloc(Auto_Key_Hook)
  117. DeAlloc(KeyTable)
  118. DeAlloc(HPMPTable)
  119. DeAlloc(AutoPotion)
  120. DeAlloc(AutoKey)
複製代碼





歡迎光臨 冰楓論壇 (https://bingfong.com/) Powered by 冰楓