컴퓨터주제/어플리케이션

게임에서 치트키를 간단하게 써봅쎄요.

Namu(南無) 2007. 9. 19. 22:28
오토핫키라는 프로그램을 아시나요? 오토핫키는 강력한 스크립트로 무장하고 거기에 추가로 간단한 UI 구성 툴킷과 컴파일러로 구성된 프로그램입니다. 손쉽게 쓴다면 스크립트 기록기로 마우스와 키를 기록하고 바로 그것을 재생하는 것으로 마무리 질 수 있고, 어렵게 쓴다면 직접 스크립트를 프로그래밍해서 컴파일하여 자신만의 UI를 입혀서 쓸 수도 있습니다. 그런 프로그램이 바로 오토핫키입니다.

홈페이지 http://www.autohotkey.com
다운로드 http://www.autohotkey.com/download/
관련문서 http://www.autohotkey.com/docs/

스크립트 기반에 컴파일까지 가능해서 별도로 배포할 수도 있는 강력한 매크로 프로그램입니다. 이것 말고도 몇가지 상용 프로그램이 있으나, 사용법이 친절하지 않은 것을 빼면 오토핫키의 기능은 어떤 상용 매크로 프로그램보다 좋다고 볼 수 있습니다. 하지만 문제는 사용법이 어렵다는 거겠죠? 실제로 많은 분들이 매크로 프로그램으로 원하는 것은 특정 키를 누르면 특정 입력을 수행하는 걸 바라실 거라고 생각합니다. 그렇다면 그것을 손쉽게 예제와 함께 배워보도록 하죠.

아, 갑자기 이런 쌩뚱맞은 것을 쓰게 된 것은 제 친구 중 하나가 갑자기 메신저로 물어보더니 -근 몇달만에!- '스타에서 매번 치트키 치는 게 귀찮아 간단하게 매크로로 쓰는 거 안돼? 저번에 오토핫키 쓰는 거 보여줬잖아' 하는 겁니다. 그래서 간단하게 원하는 스크립트 만들어주고 보내고 보니 기왕 이렇게 된 거 블로그에도 남겨보자 이거죠.

자, 그럼 예제 나갑니다.

Hotkey, F12, CheatRun
return

CheatRun:
CheatKey()
return

CheatKey()
{
    SetKeyDelay,0
    Sleep, 100
    ControlSend, ,{ENTER}, Brood War
    Sleep, 100
    ControlSend, ,show me the money{ENTER}, Brood War
    Sleep, 100
    ControlSend, ,{ENTER}, Brood War
    Sleep, 100
    ControlSend, ,show me the money{ENTER}, Brood War
    Sleep, 100
    ControlSend, ,{ENTER}, Brood War
    Sleep, 100
    ControlSend, ,show me the money{ENTER}, Brood War
    Sleep, 100
    ControlSend, ,{ENTER}, Brood War
    Sleep, 100
    ControlSend, ,operation cwal{ENTER}, Brood War
    Sleep, 100
    ControlSend, ,{ENTER}, Brood War
    Sleep, 100
    ControlSend, ,black sheep wall{ENTER}, Brood War
    Sleep, 100
    ControlSend, ,{ENTER}, Brood War
    Sleep, 100
    ControlSend, ,the gathering{ENTER}, Brood War
    Sleep, 100
    ControlSend, ,{ENTER}, Brood War
    Sleep, 100
    ControlSend, ,food for thought{ENTER}, Brood War
}

예제 파일과 그것을 컴파일한 실행 파일은 아래 파일을 다운 받으면 됩니다.

이게 무슨 쌩뚱 맞은 거야? 싶겠죠. 이 스크립트는 F12를 누르면 스타크래프트: 브루드 워에서 지정된 치트키를 입력하도록 하는 스크립트입니다. 하나하나가 스크립트로 되어 있고 그것을 인터프리터로 동작하던가 컴파일해서 쓸 수 있는 게 오토핫키입니다만, 복잡한 기능을 이야기하자는 건 아니고 간단하게 쓸 수 있는 것을 배우기 위함이니 저 예제를 바꿔서 활용하는 법을 보도록 하죠.

우선 첫번째 부분입니다.

Hotkey, F12, CheatRun

이것은 F12가 눌리면 치트를 실행하라는 명령어입니다. 다른 거 필요 없죠? 무슨 키를 누르면 동작할 것인가만 알아봅시다. 각 키는 여기를 눌러보면 알 수 있습니다만 몇가지 우리가 쓸만한 것만 알아보도록 하죠.

Ctrl - ^
Alt - !
Shift - +
Windows - #

그외에도 많은 키 조합이 있습니다만, 이 정도면 충분합니다. 예를 들면 Ctrl+Alt+Shift+S 키라고 하면 다음과 같이 표현하면 됩니다.

Hotkey, ^!+S, CheatRun

간단하죠? 다음은 실제 원하는 키가 입력되는 부분입니다.

SetKeyDelay,0

여기서 숫자는 얼마나 빠른 속도로 타이핑을 칠것인가입니다. 0 또는 -1을 넣으면 아무런 딜레이 없이 번개같은 속도로 칩니다. 스타에서 돌려보시면 보이지도 않을 겁니다. 프로그램에 따라서는 너무 빨리 치면 제대로 인식되지 않을 수 있으니 적당한 속도를 넣어주세요.

Sleep, 100

이것은 키가 입력된 다음 일정 시간 동안 쉬어주는 겁니다. ms 단위이므로 100은 0.1초 되겠습니다. 별로 필요는 없지만 마찬가지로 너무 빨리 키 입력이 들어갈 경우 인식 못 하는 프로그램이 있으므로 이렇게 해주는 거죠.

ControlSend, ,{ENTER}, Brood War
ControlSend, ,show me the money{ENTER}, Brood War

스타의 경우 치트키나 채팅창을 입력할 때 Enter 키를 눌러주죠? 그런 명령어인 겁니다. 게임에 따라서는 이런 거 필요 없는 게임도 있죠? 그런데 뒤에 붙는 Brood War는 무엇인가? 이게 중요합니다. 특정한 프로그램으로만 이 문자열이 나가도록 해주는 거죠. Brood War는 스타크래프트 확장판의 타이틀입니다. 이것은 작업 표시줄에 나오는 이름을 갖고 적당히 고쳐주시면 됩니다. Windows Live Messenger라던가 Internet Explorer라던가 무궁무진합니다. 빼버리면 현재 포커스가 가있는 창으로 키가 들어가죠. 물론 여기에 들어가는 문자열도 앞에서 Hotkey 항목에서 썼던 것처럼 조합할 수 있습니다. 예를 들어 Shift+B를 넣고 싶으면...

ControlSend, ,+B, 월드 오브 워크래프트

하면 되는 거죠.

자, 이제 원하는 게임에서 키나 문자열을 미리 만들어놓고 하나의 키를 누르면 간단하게 되는 스크립트를 누구나 짤 수 있을 겁니다. 간단하죠? 단 주의하실 것은 nProtect라던가 특정한 프로텍트 프로그램이 동작하는 게임에서는 정상적으로 동작하지 않거나 이 프로그램을 해킹 프로그램으로 간주할 가능성이 높다는 거 잊지 마세요^^