티스토리 뷰

#Chapter.05 ,반복문(Loop).1

시작합니다.


지난 Chapter 에서 이미지 서치와 찾은 이미지 클릭까지 배워 보았습니다.

짧게나마 trans 사용법도 알아보았구요.

이번 Chapter 에서는 반복문(Loop)에 대해 알아보려 합니다.

지금까지 다뤄 보았던 이미지 서치는 한번 찾고 한번 클릭하고 끝이나죠, 매크로는 반복적으로 같은 행동을 한다는 건데, 한번 Action에 끝이면 매크로라 하기 힘들죠.


그래서 반복문 Loop{이안에 반복할 행동을 넣습니다. ex)sendClick("Matching.bmp")} 이런식으로 사용합니다. 


이해를 돕기위해 짧게 스크립트 하나 보여드리겠습니다.


Loop{

sendClick("Matching.bmp")

}


sendClick("Matching.bmp")

#지난 챕터를 읽어 보셨다면 이해하실겁니다. 


sendClick("Matching.bmp")을 Loop{}로 묶어 주었죠? 반복하라고 명령한겁니다. 

위에 스크립트는 종료 조건이 없기 때문에 오토핫키 스크립트를 강제적으로 종료 해주어야 반복을 멈춥니다.


아래는 이번 시간에 적용해볼 스크립트 입니다.


gui, show, w200 h200 Center, Chapter05

gui, Add, Button,x50 y0 w100 h100 gAClick, Start

gui, Add, Button,x50 y100 w100 h100 gBClick, Stop

return


sendClick(imgName){

WinActivate, 녹스 플레이어

ImageSearch, fx,fy, 0,0,A_ScreenWidth,A_ScreenHeight,*Trans0x000000 *30 %imgName%

if(ErrorLevel=0){

Send {Click %fx% %fy%}

}

}

return


AClick:

isStop:=false

loop{

sendClick("Matching.bmp")

sleep,1000

sendClick("Exit.bmp")

sleep,1000

if(isStop=true){

break

}

}

return


BClick:

isStop:=true

return


GuiClose:

ExitApp


return

Chapter05_01_txt.txt

#위 링크를 클릭하시면 다운 가능하십니다.


#gui 가 조금 바뀌었습니다. Button을 두개 넣어 주었고, Start와 Stop 입니다.

Start를 누르면 반복하고, Stop을 누르면 반복을 멈추게 됩니다.

#sendClick 함수에서 ErrorLevel=1 부분을 지워 줬습니다. 이미지를 못찾으면 행동하는 부분을 삭제한겁니다.


아래는 스크립트 설명입니다.


AClick:

isStop:=false

loop{

sendClick("Matching.bmp")

sleep,1000

sendClick("Exit.bmp")

sleep,1000

if(isStop=true){

break

}

}

return

#AClick은 Start버튼이 눌렸을때 실행됩니다.

#Loop{}안에 앞서 만들었던 함수인 sendClick()함수를 넣어 주었습니다.

#sleep, 1000 은 1초동안 멈춰있겠다는겁니다. 1000은 밀리세컨드 입니다. 1초에 1000입니다.

#if(isStop=true){}  isStop 이 true 이면 실행됩니다. isStop이 boolean자료형 이기에 isStop만 넣어줘도 되지만, 이해를 돕기위해 이렇게 표현했습니다.

#break 는 가장가까운 loop를 멈추게 합니다. loop의 반복을 끝냅니다.



BClick:

isStop:=true

return

#BClick은 Stop 버튼이 눌리면 실행됩니다.

#isStop:=true isStop을 true로 바꿔줍니다.


보시면 매칭을 찾고, 끝나면 나가기는 찾는데 퀘스트 수행이랑 보스만날시 영상 스킵을 하지않죠

그건 '+'이미지를 단순 찾아서 클릭하는것이 아니고, 좌표값을 수정해서 눌러줘야 합니다. 그건 다음Chapter 에서 설명 드리겠습니다.



댓글