Nếu như các bạn hay chơi các tựa game nhập vai đi cảnh chắc sẽ khá là ngán các nhiệm vụ yêu cầu người chơi phải chạy vòng vòng map. Những lúc như thế, bạn cần phải giữ đè nút W để giữ cho nhân vật chạy liên tục khá là… mỏi tay. Chính vì thế, trong bài viết này, mình sẽ hướng dẫn các bạn cách kích hoạt tính năng auto walk/run hay còn gọi là tự động đi bộ cho các game không có sẵn tính năng này bằng AutoHotkey.

Lưu ý: Thủ thuật này dành cho các game Offline thôi nha anh em. Đừng áp dụng cách này cho các game Online! 

Bước 1: Các bạn tải ứng dụng miễn phí AutoHotkey tại đây rồi chọn Download AutoHotkey Installer để tải về (nếu bạn tải rồi thì chuyển qua bước 3).

Bước 2: Sau khi tải xong, bạn mở file AutoHotkey_1.1.32.00_setup.exe lên để tiến hành cài đặt.

Bước 3: Sau khi cài đặt xong, bạn click chuột phải vào desktop chọn New rồi chọn Text Document để tạo Notepad.

Bước 4: Tiếp theo, copy paste dòng code sau đây vào Notepad.

~w::
AutoWalk()
Return
*/
InstallKeybdHook
InstallMouseHook
global AnyKey ;Declaring variable AnyKey as global variable. Variables in functions are local to that function.
AutoWalk()
{
AnyKey:=A_ThisHotkey ;Placing last pressed hotkey in variable AnyKey.
AnyKey:=StrReplace(AnyKey, "~") ;Remove the tilde character from variable Anykey, for none blocked hotkeys.
If(AnyKey = "w") ;Check to see if the hotkey is also the w key.
{
KeyWait, w, T0.5 ;Waiting half a second for w to be physically released.
If(errorlevel = 1) ;When w is still down after 500ms errorlevel is set to 1. You're probably walking manually.
{
KeyWait, w ;Waiting for w key to be released.
exit ;W is physically released, so we can exit here since movement is stopped.
}
}
keywait, %AnyKey% ;Waiting for the hotkey to be released.
If not W_VirtState:=GetKeyState("w") ;When the virtual status of the w key is not down, when W_VirtState is 0. Do whatever comes below.
{
SendInput, {w down} ;Virtually pressing w down. Virtual (logical state) is whatever your O.S. thinks the key status is in. Physical is the actual state on you're keyboard.
keywait, %AnyKey%
Loop
{ ;When you're hotkey, Lbutton or w key is physically pressed down, variable KeyState will be set to 1. The body of the "if" statement will then execute.
If(KeyState:=GetKeyState(AnyKey, "P") || KeyState:=GetKeyState("Lbutton", "P") || KeyState:=GetKeyState("w", "P"))
{
keywait, %AnyKey% ;Waiting for you're hotkey to be released.
SendInput, {w up} ;Virtually sending w up. Stop moving.
break ;Breaking free from the loop.
}
sleep, 100 ;Sleeping 1/10th of a second each time the loop is iterated. Prevents the function from using to much CPU cycles.
} ;You can increase the sleep period, but the function will be less responsive.
}
}
Return

Bước 5: Chọn File > Save as. Sau đó ở dòng File name bạn nhập tên bất kỳ với đuôi là .ahk. Ví dụ như 123.ahk. Còn ở dòng Save as type, bạn chọn All files rồi chọn Save.

Bước 6: Mở file 123.ahk hay tên bất kỳ mà bạn đặt khi nãy. Nếu biểu tượng chữ H của AutoHotkey xuất hiện dưới thanh Taskbar tức là bạn đã kích hoạt thành công.

Bước 7: Tiếp theo bạn vào game. Để bật tính năng tự động đi, bạn nhấn phím W một lần rồi thả ra. Nhật vật sẽ tự động đi tới mà bạn không cần phải nhấn giữ phím W. 

Khi nhân vật đang trong chế độ tự động đi tới, bạn có thể nhấn phím A, D để di chuyển sang trái hoặc phải hay nhấn phím cách để vừa đi vừa nhảy đều được (tùy game sẽ có phím nhảy khác nhau).

Bước 8: Để dừng tính năng tự động đi, bạn nhấn vào phím W một lần nữa hoặc click chuột trái đều được.

Bước 9: Nếu muốn tắt tính năng này đi, bạn chỉ cần click chuột phải vào biểu tượng chữ H trên thanh Taskbar rồi chọn Exit

Lưu ý: Đoạn code AutoHotkey bên trên thực chất là tính năng giữ đè phím W, nên đối với 1 số game có tính năng quay camera hay tính năng gì đó tương tự như vậy thì khi bạn nhấn phím W cũng sẽ kích hoạt luôn tính năng tự động đi tới của camera.

Cảm ơn các bạn đã quan tâm theo dõi!