冰楓論壇

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

作者: xfmxd52    時間: 前天 15:35
標題: TwMs v279.1 自動按鍵和自動藥水
//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)  有大大更新嗎






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