|

- UID
- 231336
- 帖子
- 77
- 主題
- 31
- 精華
- 0
- 積分
- 130
- 楓幣
- 15650
- 威望
- 118
- 存款
- 0
- 贊助金額
- 0
- 推廣
- 0
- GP
- 70
- 閱讀權限
- 20
- 性別
- 保密
- 在線時間
- 249 小時
- 註冊時間
- 2018-4-11
- 最後登入
- 2025-12-5
|
|
- //TwMs v269.3 自動按鍵和自動藥水
- [ENABLE]
- Alloc(Auto_Key_Hook,512,1430AE992)
- Alloc(KeyTable,256,1430AE992)
- Alloc(HPMPTable,256,1430AE992)
- Alloc(AutoPotion,4,1430AE992)
- Alloc(AutoKey,4,1430AE992)
- AutoPotion://自動藥水開關(0=關閉,1=開啟)
- dd 0
- AutoKey://自動按鍵(0=關閉,1=開啟)
- dd 1
- HPMPTable://格式:按鍵代碼,鍵碼,延遲(毫秒),初始計時,閾值
- dd 01490000, 21, #500, 0, #1500 //HP藥水 默認使用按鍵是 PgUp
- dd 01510000, 22, #500, 0, #500 //MP藥水 默認使用按鍵是 PgDn
- dd 0, 0, 0, 0, 0 //這行務必要保留
- //請自行添加按鍵
- KeyTable://格式:按鍵代碼,鍵碼,延遲(毫秒),初始計時
- dd 001D0030, 11, #60000, 0 //默認是 ctrl
- dd 0, 0, 0, 0 //這行務必要保留
- Auto_Key_Hook:
- push rbx
- push rsi
- push rcx
- push rdx
- push r8
- push r9
- push r10
- push r11
- sub rsp,20
- //獲取當前時間
- call 14565A690
- mov ebx,eax
- //檢查自動喝藥開關
- cmp dword ptr [AutoPotion],1
- jne Check_AutoKey //如果自動藥水開關關閉,檢查普通按鍵開關
- //檢查HP/MP
- mov rsi,HPMPTable
- Check_HPMP:
- mov ecx,dword ptr [rsi] //讀取按鍵代碼
- cmp ecx,0 //檢查是否到表尾
- je Check_AutoKey //檢查完自動藥水後檢查普通按鍵開關
- //檢查延遲時間
- mov edx,ebx
- mov edi,dword ptr [rsi+0C] //獲取上次使用時間
- sub edx,edi
- cmp edx,dword ptr [rsi+8] //比較是否達到延遲時間
- jb Next_Check
- //檢查HP/MP值
- mov rcx,148E7C3B0
- mov rcx,[rcx]
- mov edx,dword ptr [HPMPTable+4] //獲取HP藥水的鍵碼
- cmp dword ptr [rsi+4],edx //與當前項的鍵碼比較
- jne Check_MP_Value
- Check_HP_Value:
- mov rcx,[rcx+338] //HP偏移
- jmp Check_Value
- Check_MP_Value:
- mov rcx,[rcx+348] //MP偏移
- Check_Value:
- mov eax,[rcx+40] //讀取當前值
- cmp eax,dword ptr [rsi+10] //比較當前值和閾值
- jg Next_Check
- //使用藥水
- mov r8,dword ptr [rsi] //按鍵代碼
- mov edx,dword ptr [rsi+4] //鍵碼
- mov rcx,148B6C768//Key_Base
- mov rcx,qword ptr [rcx]
- call 1452BE2D0//Key_Call
- mov dword ptr [rsi+0C],ebx //更新使用時間
- jmp Loop_End //使用藥水後直接結束
- Next_Check:
- add rsi,14 //移到下一個配置
- jmp Check_HPMP
- //檢查自動按鍵開關
- Check_AutoKey:
- cmp dword ptr [AutoKey],1
- jne Loop_End //如果自動按鍵開關關閉,直接結束
- //自動按鍵
- Auto_Key:
- mov rsi,KeyTable
- Loop_Start:
- mov ecx,dword ptr [rsi]
- cmp ecx,0
- je Loop_End
- mov edx,ebx
- mov edi,dword ptr [rsi+0C]
- sub edx,edi
- cmp edx,dword ptr [rsi+8]
- jb Skip_Key
- mov dword ptr [rsi+0C],ebx
- mov r8,dword ptr [rsi]
- mov edx,dword ptr [rsi+4]
- mov rcx,148B6C768
- mov rcx,qword ptr [rcx]
- call 1452BE2D0
- Skip_Key:
- add rsi,10
- jmp Loop_Start
- Loop_End:
- add rsp,20
- pop r11
- pop r10
- pop r9
- pop r8
- pop rdx
- pop rcx
- pop rsi
- pop rbx
- call 143725980//Hook_Opcode
- jmp 1430AE992+5//Hook_Address+5
- 1430AE992://Hook_Address
- jmp Auto_Key_Hook
- [DISABLE]
- 1430AE992://Hook_Address
- call 143725980//Hook_Opcode
- DeAlloc(Auto_Key_Hook)
- DeAlloc(KeyTable)
- DeAlloc(HPMPTable)
- DeAlloc(AutoPotion)
- DeAlloc(AutoKey)
複製代碼 |
|