오토핫키(AutoHotKey) 기초강좌 #12 - 매크로 제작 예제




 전체 강좌

 1강 - 오토핫키(AutoHotKey) 소개

 2강 - 프로그래밍의 시작, GUI 만들기

 3강 - 매크로 프로그래밍 1 (Button, Loop, if 사용법)

 4강 - 매크로 프로그래밍 2 (ImageSearch, Send, Sleep)

 5강 - 매크로 프로그래밍 3 (Gui Submit)

 6강 - 매크로 만들기 응용 1 (if 응용, CoordMode)

 7강 - 매크로 만들기 응용 2 (핫키, if 응용)

 8강 - 매크로 만들기 응용 3 (While, GUI와 변수의 활용 1)

 9강 - 매크로 만들기 응용 4 (GUI와 변수의 활용 2)

 10강 - 매크로 만들기 응용 5 (함수1)

 11강 - 매크로 만들기 응용 6 (함수2)

 12강 - 매크로 제작 예제

















안녕하세요~ 킴영감입니다.


지난 시간을 끝으로 모바일 게임 매크로를 제작하기 위한 기본적인 것들을 배웠습니다.


이번 강좌에는 지난 강좌 끝에 말씀드린 것 처럼 메크로를 제작하기 위한 팁을 드리려고 합니다.


이전 강좌를 모두 이해하신 분들은 바로 응용하실 수 있을 것이라고 생각합니다.


그럼 마지막 강좌를 시작하겠습니다.


1. 순서도 그리기


두번째 강좌에서 했던 것 처럼 오늘 작성할 스크립트의 순서도를 그려보겠습니다.



대부분의 게임들이 여러개의 컨텐츠를 가지고 있기 때문에 두 가지 컨텐츠를 위 그림과 같이 반복하고 대기시간을 가지도록 만들어 보겠습니다. 컨텐츠1과 컨텐츠2에 들어갈 스크립트의 순서도를 아래와 같이 그렸습니다.



화면을 검색하는 함수를 만들어 어느화면에 있는지 판단하고 각 화면에서 클릭해야 하는 버튼을 클릭하는 것이 기본 틀입니다. 반복해서 돌다가 열쇠나 에너지 부족 등으로 컨텐츠를 종료하는 부분이 있습니다.


그럼 함께 스크립트를 작성해 보겠습니다.


2. GUI 구성


GUI는 매크로의 상태를 나타낼 수 있는 Text, 대기시간을 나타내는 Text, 클리어횟수를 나타내는 Text, 시작과 종료를 하는 Button으로 구성했습니다. 코드는 아래와 같습니다.



기존 강좌에서 실습한 내용과 비슷하기 때문에 설명은 안드려도 되겠죠??^^


그럼 다음으로 넘아갑니다~



3. 매크로 스크립트


여기부터는 스크립트를 보면서 설명드리겠습니다. 위에 있는 순서도는 아래와 같이 작성할 수 있습니다.



우선 어느화면인지 판단하는 함수에서 받아올 결과를 저장할 변수인 "화면"이라는 변수를 만들었습니다. While 내부의 첫번째 줄에 있는 "화면 := 화면검색()"부분이 어느화면인지 받아오는 부분입니다. 그 다음으로 if를 사용해서 화면인식에서 받아온 결과에 따라 다른 이미지를 찾도록 구성했습니다. 화면 3일때는 팝업에 의해서 화면이 가려진 상태를 의미한다고 생각하시면 됩니다. 예를 들어 열쇠를 모두 사용했다는 팝업이 뜨면 "화면3에 해당하는 버튼"이 팝업을 단는 버튼이 될 수 있고 이후에 "컨텐츠2"를 도는 함수를 실행합니다. 


"컨텐츠2"를 다 돌고 다시 돌아오면 다음줄에 있는 대기시간에 원하는 만큼의 시간을 입력하고 (ms단위), 대기시간 만큼 대기하게 됩니다. 대기시간동안 대기하는 부분의 코는 While의 조건으로 "대기시간이 0보다 클때" 라고 작성한 뒤 위에서 3001로 정해준 대기시간을 1씩 빼게되면 1초씩 3000번을 대기하는 것이기 때문에 3000초를 대기하는 것입니다. Gui, Submit을 이용해서 1초마다 대기시간을 표시하는 화면을 업데이트 해주게 됩니다.


화면검색1 함수는 아래와 같습니다.



화면검색은 어느화면인지 판단만 하면 되기 때문에 마우스를 클릭하는 부분은 뺐습니다. 각 화면마다 숫자를 할당하고 그 화면에만 있는 이미지를 찾으면 그에 할당된 숫자를 리턴하게 됩니다. (이게 핵심적인 부분입니다.)


다음으로 "컨텐츠2" 함수와 컨텐츠2에서 사용할 "화면검색2" 함수를 보여드리겠습니다.


위 그림에 있는 if와 else if의 조건으로 들어가 있는 화면 = 4, 화면 = 5, 화면 = 6 을 화면2 = 4, 화면2 = 5, 화면2 = 6 으로 고치셔야 합니다ㅠ 혼동을 드려 죄송합니다ㅠ



"컨텐츠2" 함수는 이미지를 찾아서 버튼을 클릭합니다. 여기서는 열쇠를 모두 다 썼을 경우에 탈출하는 부분을 화면이 6일때로 해 놓았습니다. 매인에서 "컨텐츠2"라는 함수를 호출한 것이기 때문에 돌아가기 위해서는 return을 사용하셔야 합니다.


아래의 "화면검색2" 는 2번 컨텐츠의 화면을 찾는 함수입니다.


마지막으로 나머지 부분의 스크립트는 아래와 같습니다.



종료버튼과 F2 를 이용한 멈춤 기능을 구현 한 것입니다.


이렇게 해서 12번째 강좌가 모두 끝났습니다.



오늘 강좌는 이때 까지 배운 내용들을 가지고 어떻게 매크로를 만들 수 있는지에 대한 가이드라인을 보여드린 것이라 할 수 있습니다. 적절히 응용하신다면 여러분들이 매크로를 만드는데 큰 틀이 될 수 있습니다. 추가적으로 상태를 나타내는 변수를 활용한다면 정말 멋진 매크로를 구현 하실 수 있을 것입니다.


12강동안 제 강좌를 보신분들 모두에게 감사드리고 꼭 매크로 제작에 성공하시기를 바랍니다.


이것으로 오토핫키 기초강좌를 마치며, 저는 조금 휴식기간을 가진 뒤에 "오토핫키에서 매크로를 만드는데 필요한 중급정도 기능에 관한 사용법 강좌"로 돌아오겠습니다.


감사합니다.



블로그 이미지

킴영감

프로그래밍과 게임공략, 게임과 관련된 프로그램에 대한 내용을 다룹니다.

,