오토핫키 커뮤니티

A B C D 단계로 이뤄진 루프를 돌리고 있다고 할때, 각 단계에서 if를 걸어 조건 불만족시 처음 A로 돌아가는 함수를 쓰려고 합니다


Loop

{

Loop

{

ImageSearch, FoundX, FoundY, 0, 0, A_ScreenWidth, A_ScreenHeight, *50 C:\Image1\001.bmp

if(ErrorLevel = 0)

{

Send {Click %FoundX% %FoundY%}

break

}

else

{

sleep, 1000

}

   }

sleep, 4000


Loop

{

ImageSearch, FoundX, FoundY, 0, 0, A_ScreenWidth, A_ScreenHeight, *50 C:\Image1\002.bmp

if(ErrorLevel = 0)

{

Send {Click %FoundX% %FoundY%}

break

}

else

{

sleep, 1000

}

   }

sleep, 2000




......요런식으로 진행하다가(여기까지는 문제가 없이 동작됩니다), 루프안에 if를 많이 넣을경우 문제가 생기고 있습니다(이것보다 쉽게 하는법을 모르겠네요; 뭔가 더 방법이 있을것 같긴 한데 초보라서...)




Loop

{

ImageSearch, FoundX, FoundY, 0, 0, A_ScreenWidth, A_ScreenHeight, *50 C:\Image1\010.bmp

if(ErrorLevel = 0)

   {

   Send {Click %FoundX% %FoundY%}

    

sleep, 3000

    

   ImageSearch, FoundX, FoundY, 0, 0, A_ScreenWidth, A_ScreenHeight, *70 C:\Image1\enemy.bmp

if(ErrorLevel = 0)

       {

mouseclick, L, 1000, 450

 

sleep, 4000

 

    Loop

           {

       ImageSearch, FoundX, FoundY, 0, 0, A_ScreenWidth, A_ScreenHeight, *70 C:\Image1\pause1.bmp

   if(ErrorLevel = 0)

{

Send {Click %FoundX% %FoundY%}

break

}

else

{

sleep, 300

}

}

sleep, 1000

Loop

           {

       ImageSearch, FoundX, FoundY, 0, 0, A_ScreenWidth, A_ScreenHeight, *70 C:\Image1\withdraw.bmp

           if(ErrorLevel = 0)

           {

       Send {Click %FoundX% %FoundY%}

       break

           }

           else

           {

       sleep, 300

           }

               }

   

    

           sleep, 4000

    

Loop

           {

       ImageSearch, FoundX, FoundY, 0, 0, A_ScreenWidth, A_ScreenHeight, *70 C:\Image1\hg.bmp

           if(ErrorLevel = 0)

           {

       Send {Click %FoundX% %FoundY%}

       break

           }

           else

           {

       sleep, 300

           }

               }

   

   sleep, 4000

    

Loop

           {

ImageSearch, FoundX, FoundY, 0, 0, A_ScreenWidth, A_ScreenHeight, *70 C:\Image1\stop1.bmp

           if(ErrorLevel = 0)

           {

       Send {Click %FoundX% %FoundY%}

       break

           }

           else

           {

       sleep, 300

           }

               }

   

 

           sleep, 2000

 

   Loop

   {

       ImageSearch, FoundX, FoundY, 0, 0, A_ScreenWidth, A_ScreenHeight, *70 C:\Image1\stop2.bmp

           if(ErrorLevel = 0)

           {

       Send {Click %FoundX% %FoundY%}

       break

           }

           else

           {

       sleep, 300

           }

               }

   

 

           sleep, 3000

 

   reload 


}

else

{

mouseclick, L, 1000, 450

break

}

}

else

{

sleep, 1000

}

   }




reload --->;요기가 문제인것 같습니다. 여기에서 다시 맨 처음 시작하는 곳으로 가고 싶은데 어떤식으로 표현해야 할지 모르겠습니다...실제로 적용해보니 reload가 맨 처음으로 돌아가게 하지는 않는것 같더라구요


reload라고 쓴 부분에 어떻게 해야 매크로를 처음으로 시작하는것 처럼 만들 수 있을까요??


(image 1,2를 찾는 앞부분은 잘 되다가 image10을 찾는것이 잘 안되는 상태입니다)


  • 리체 2017.08.19 09:10

    sss:

    loop

    {

       ...

       goto, sss

    }

    이렇게 라벨을 만들어 점프 하면 됩니다.


    님의 코드는 거짓일때만 reload를 하게 되어 있습니다.

    참일때는 루프를 벗어나서 reload를 실행하지 않아요.

    의도하신바가 맞고 reload 시켰을때 스크립트가 끊김없이 수행하는거라면 문제없습니다.


    그리고 로그를 넣어서 각 이미지서치마다 성공했을 경우 알수 있게 하는게 디버깅 하는데에도 좋습니다.

  • 병살타 2017.08.19 09:31

    라벨 만들어 점프! 감사합니다

  • 병살타 2017.08.19 09:32

     '로그를 넣어서 각 이미지서치마다 성공했을 경우 알수 있게 하는게 디버깅 하는데에도 좋습니다.'


    어떤 식으로 함수를 넣어서 적용하는 방법이 있을까요??

  • 리체 2017.08.19 18:16

    로그로 이용할수 있는건 여러가지 많습니다.

    간단하게 tooltip으로 표시하고 파일에 저장하여 나중 찬찬히 살펴볼수도 있고

    gui의 text나 edit를 이용할수도 있고 listview를 이용할수도 있습니다.



  • 병살타 2017.08.19 19:15

    친절한 답변 감사합니다 ^^


    덕분에 무사히 해결했네요

  • 포롤포포롤 2017.09.11 02:39
    어렵네요 ㅠㅠ 아무리봐도 머리만아파와요 ㅠ

List of Articles
분류 제목 글쓴이 최근변경 추천
질문 !(느낌표) 가 주는게 무엇을 뜻하나요? 7 디스트로이어 2022.12.14 0/0
질문 #IfWinActive 사용할 경우 Hotkey를 on/off 하는 방법... 2 Rabbit 2016.08.17 0/0
질문 #Include file "Gdip.ahk" 이거 어떻게 해결하나여? 11 으으아으아 2016.09.18 0/0
자유 #던파#한국에서 대리육성합니다 한국육성팀 2019.04.04 0/0
질문 %A_ScriptDir%로 쓰려면 이미지 어디에 넣어야되나요? 4 작은이득 2019.05.02 0/0
질문 (GUI) edit에 입력받은 변수로 대기시간을 설정하는 스... 6 잠튕이 2015.07.02 0/0
질문 (imagesearch 관련 질문) 고수님들의 답변을 기다리고 ... 믕이 2019.01.07 0/0
질문 (LD앱) settiemr 만 넣으면 비활성이미지 서치 못하네요. 2 현장요원 2020.04.24 0/0
질문 (간단한?)매크로하나 만들고픈데 제작의뢰가능한가요? 2 더기더기1 2018.11.21 0/0
자유 (개초보) 이번에는 함수를 이용해서 세나 매크로 만들... 3 앞프론뒷태 2015.02.04 0/0
자유 (세븐나이츠) 뿌듯부듯.. 12 swksd 2024.08.09 1/0
자유 (세븐나이츠)쌩초보가 만든 매크로 공유합니다.(이미지... 12 swksd 2015.04.24 2/0
질문 (쌩초보) 단순 이미지서치에서 일정구간 n회 반복하는 ... 1 잘해보자잉 2017.08.17 0/0
정보 (안내) 글내용확인하시고 자삭하세요 27 snf 2015.02.23 0/0
질문 (오핫) 여러 단어 변수 지정 및 랜덤 조합 출력 방법 3 우리형 2019.10.23 0/0
질문 (중복질문)블루스택3 포스트메시지 키보드입력 ESC누르... 4 가족오락관 2017.12.29 0/0
질문 (초보) GDIP 이미지서치 사용방법 2 험블비 2017.08.31 0/0
질문 (초보) 앱플레이어 이미지서치 가보려하는데 산두적 2020.07.20 0/0
질문 (초보) 이미지서치 연속사용 1 작은이득 2017.06.07 0/0
정보 (펌)픽셀서치를 대체할 수 있는 비활성픽셀칼라 활용 ... 6 앙꼬호빵 2019.05.26 0/0
Board Pagination Prev 1 2345678910 ... 209 Next
/ 209

전체 최신 인기글

전체 주간 인기글