오토핫키 만들어질수록 재미있는데 머리가 뽀개질것 같네요.. ㅠ_ㅠ 안굴러가는 머리 굴리려니.. 흑흑..
또 막힘이 생겨버렸습니다. 고섭으로 이동한 구문에서 고투로 이동후 루프를 빠져나왔다 생각했는데 한바퀴 더돌아버리네요..
왜그럴가요ㅠ_ㅠ?
내용인즉. 해피30을 찾으면 임의위치를 마우스클릭, 다음페이지에서 해피1을찾고 찾으면 start로 돌아와 내용종료. <-- 여기까지는 괜찮습니다. 다음구문부터 문제가..
못찾으면 해피교체2로 넘어가 해피1-1을 찾고 찾으면 교체 후 밖으로 나가 start로 돌아와 해피30이 없으니 구문이 종료 되야 하는데.. 못찾았을때 해피3로 넘어가 또 못찾으면 마우스 드래그 하는 명령어까지 한번더 실행이 되네요..
해피교체2에서 이미지를 찾았을때 클릭까지 다하고 goto start로 넘어왔는데 해피교체부터 다시한번 실행이 되는 이유는 무엇인지요.. 2시간째 이번엔 이것과 씨름을 하고 있습니다 ㅠ_ㅠ;;
F5::
goto start
start:
loop 1
{
Imagesearch, vx, vy, 280, 308, 456, 671,*50 %A_WorkingDir%\seven\해피30.bmp
if errorlevel = 0
{
mouseclick, left, 520, 672
gosub 해피교체
}
}
msgbox ,,,교체완료
return
해피교체:
Loop 6
{
?sleep 1000
Imagesearch, vx, vy, 3, 34, 1400, 800,*100 %A_WorkingDir%\seven\해피1.bmp
if errorlevel = 0
{
mouseclick, left, vx+3, vy+3
sleep, 2000
mouseclick, left, 1123, 656
sleep, 2000
Imagesearch, vx, vy, 280, 308, 456, 671,*50 %A_WorkingDir%\seven\교체선택.bmp
if errorlevel = 0
{
mouseclick, left, vx+10, vy+20
sleep 5000
}
Imagesearch, vx, vy, 3, 34, 1400, 800,*50 %A_WorkingDir%\seven\교체뒤로가기.bmp
if errorlevel = 0
{
mouseclick, left, vx+10, vy+20
return
}
}
if errorlevel = 1
{
?gosub 해피교체2
}
}
return
해피교체2:
{
Imagesearch, vx, vy, 3, 34, 1400, 800,*100 %A_WorkingDir%\seven\해피1-1.bmp
if errorlevel = 0
{
mouseclick, left, vx+3, vy+3
sleep, 2000
mouseclick, left, 1123, 656
sleep, 2000
}
Imagesearch, vx, vy, 280, 308, 456, 671,*50 %A_WorkingDir%\seven\교체선택.bmp
if errorlevel = 0
{
mouseclick, left, vx+10, vy+20
sleep 5000
}
Imagesearch, vx, vy, 3, 34, 1400, 800,*50 %A_WorkingDir%\seven\교체뒤로가기.bmp
if errorlevel = 0
{
mouseclick, left, vx+10, vy+20
goto start
sleep 1000
}
if errorlevel = 1
{
?gosub 해피교체3
}
}
return
해피교체3:
{
Imagesearch, vx, vy, 3, 34, 1400, 800,*100 %A_WorkingDir%\seven\해피1-2.bmp
if errorlevel = 0
{
mouseclick, left, vx+3, vy+3
sleep, 2000
mouseclick, left, 1123, 656
sleep, 2000
Imagesearch, vx, vy, 280, 308, 456, 671,*50 %A_WorkingDir%\seven\교체선택.bmp
if errorlevel = 0
{
mouseclick, left, vx+10, vy+20
sleep 5000
}
Imagesearch, vx, vy, 3, 34, 1400, 800,*50 %A_WorkingDir%\seven\교체뒤로가기.bmp
if errorlevel = 0
{
mouseclick, left, vx+10, vy+20
goto start
}
}
if errorlevel = 1
{
?MouseClickDrag, left, 835, 666, 835, 400
}
}
return
메세지 박스를 통한 디버깅이 답일거같네요.
goto랑 gosub를 혼용해서 사용하는건 코드가 복잡해지는 안좋은 습관입니다.