매크로

조회 수 743 추천 0 댓글 3

바람의나라 매크로를 만들어서 사용하고 있습니다.


1~2시간정도 돌아가면  autohotkey unicode 64-bit 작동이 중지되었습니다. 라는 오류가 뜹니다


여기 저기서 오류에 대해 찾아보니  메모리가 쌓여서 작동이 중지 된다고 하시더군요


제가 필요한부분만 짜집어서 배우고 만들다보니까


거의 초보수준이라  해결하기가 쉽지 않네요


return은 잘 넣고 있는데


실시간으로 좌표를 인식해서 불러와야 하기 때문에

loop 안에 gosub으로  이미지 서치해서 좌표를 따내는 명령을 불러옵니다.

gosub이 굉장히 많이 돌아가는 거죠


gosub이 많으면 메모리가 쌓여서  위와 같은 오류가 발생한다고 하신 글을 읽었습니다.


그래서 gosub같은 명령어를 쓰지 않고  함수를 사용하신다고 하셨구요


밑에는 좌표인식 부분만 복사한 내용입니다  x좌표 세자리 y좌표 세자리

0부터 순서대로 이미지와 대조해서 맞는것이 나오면 그 값을 저장하고 다음자리를 검색하는 방식으로 만들었습니다


XXX:
imagesearch, xg, yg, 800, 700, 1000, 800, 좌표\x.bmp
100x=0
loop, 9
{

imagesearch, 100xx, 100xy, xg+20, yg, xg+32, yg+12, *transwhite 좌표\%100x%.bmp
if errorlevel = 1
 {
 100x:=100x+1
 }
else if errorlevel = 0
 {
 break
 }
}

10x=0
loop, 9
{
imagesearch, 10xx, 10xy, xg+28, yg, xg+41, yg+12, *transwhite 좌표\%10x%.bmp
if errorlevel = 1
 {
 10x:=10x+1
 }
else if errorlevel = 0
 {
 break
 }
}

1x=0
loop, 9
{
imagesearch, 1xx, 1xy, xg+37, yg, xg+48, yg+12, *transwhite 좌표\%1x%.bmp
if errorlevel = 1
 {
 1x:=1x+1
 }
else if errorlevel = 0
 {
 break
 }
}

x좌표=%100x%%10x%%1x%
return


YYY:
imagesearch, hx, hy, 800, 700, 1000, 800, 좌표\y.bmp
100y=0
loop, 9
{
imagesearch, 100yx, 100yy, hx+20, hy, hx+32, hy+12, *transwhite 좌표\%100y%.bmp
if errorlevel = 1
 {
 100y:=100y+1
 }
else if errorlevel = 0
 {
 break
 }
}

10y=0
loop, 9
{
imagesearch, 10yx, 10yy, hx+28, hy, hx+41, hy+12, *transwhite 좌표\%10y%.bmp
if errorlevel = 1
 {
 10y:=10y+1
 }
else if errorlevel = 0
 {
 break
 }
}

1y=0
loop, 9
{
imagesearch, 1yx, 1yy, hx+37, hy, hx+48, hy+12, *transwhite 좌표\%1y%.bmp
if errorlevel = 1
 {
 1y:=1y+1
 }
else if errorlevel = 0
 {
 break
 }
}
y좌표=%100y%%10y%%1y%
return



이것을 함수로 표현 한다면


xxx(){

내용}

yyy(){

내용}


이렇게 해도 될까요?


gosub, xxx

gosub, yyy

이건

xxx()

yyy()

이렇게 되는 거겠죠?


정말 모르는게 많다보니 궁금한것도 많고 질문할것도 많네요


다른분들이 올리신걸 읽어보니

함수

function()

이건 function을 호출 하는 것이고

function() 다음에 {}가 바로 오면

function의 내용이 되는 것... 맞나요?



  • 제발등업좀2 2015.09.11 12:39

    function() 

    {

    내용

    리턴  ;써도되고 안써도되구.. 그런다네요 ㅋ

    }

    이렇게하고 알고계신대로..

    function()  요거만써서.. 펑션의 내용을 불러옵니다.


  • fnwj 2015.09.12 16:57

    예를 들면

    function TEXT(a,b,)

    {

    }


    이라고 펑션값을 설정해 주셨으면, 본문에 TEXT(a,b)를 적어주시면 됩니다.

    여기서 a값과 b값은 본문에서 TEXT(1,2)라고 설정했으면

    function에서 a는 1이고 b는 2가 됩니다. 본문에서 a라는 변수와 b라는 변수가 있다고 했을때

    function에서 본문의 변수는 읽을 수 없습니다.


    예를 들어 본문에 a와 b라는 변수를 설정해 주고

    본문에 TEXT(a,b)라고 설정해 줬을 경우에만 function에서 a와 b를 본문에 있는 변수 그대로 쓸 수 있는 겁니다.

  • MC하얀늑대 2015.10.12 19:41

    음.. gosub부분만 말씀드릴께요.

    저도 매클짤때 고섭으로 많이 짰습니다.

    님처럼 그런 애러 떳구요

    그래서 생각한 방법이 함수화키느냐 돌아올 자리가 필요없게 고투로 바꾸느냐 였죠

    함수화는 시간이 오래걸려서

    고투로 바로 노선 변경했습니다.

    매크로 구조상 리턴이 필요없이 바로 다음단계로 넘어가서 거기서 끝나도 되는것들은 고투로 바꿔보세요

    그러면 그런 애러 안납니다 ㅎ


List of Articles
분류 제목 글쓴이 최근변경 추천
정보 adb 관련 비활성화 이미지 서치 쉽게하기 6 운하파는 2016.07.02 1/0
질문 adb shell sendevent 사용법 질문.. 2 샤랄랄라 2017.09.18 0/0
질문 ADB Screencap 질문입니다 6 민틸 2015.08.02 0/0
질문 adb ip 잡는것에 관련하여 질문드립니다 4 낙길 2016.08.10 0/0
질문 ADB IP 얻어오는법 관련 질문드립니다 (__)(--)(__) 굽... 24 제발등업좀2 2015.10.10 0/-1
질문 adb ip 가져오는 방법 1 Erica 2018.04.10 0/0
질문 adb input 명령어 속도 관련 마이충의분노 2020.02.10 0/0
질문 adb dd 명령어 및 RAW파일 생성 질문있습니다. 6 허럴럴렁 2015.12.18 0/0
질문 ADB (몽키) 클릭 및 드래그관련 ... 5 제발등업좀2 2016.07.02 0/0
질문 ABB 가 뭔지 설명해 주실분? 1 신령공주 2015.11.23 0/0
질문 @핸콕 님~ 9 헐키 2015.06.25 0/0
질문 7.1버젼깔고 실행햇는데.. 4 dowkek 2015.04.06 0/0
질문 64bit 작동이 중지되었습니다 오류에 관한 gosub 함수 ... 3 다드려 2015.10.12 0/0
질문 30초동안만 loop를 작동시킬순 없나요? 2 도움늅6 2019.02.27 0/0
질문 2일된 오토핫키 초보 질문입니다 1 배워요 2016.10.28 0/0
질문 2계정 돌리는거...고수님들 부탁드립니다...제발 2 영웅소천 2017.09.29 0/0
질문 2개의 화면을 동시에 진행하고싶습니다. 3 미리리리리 2019.04.13 0/0
질문 2개의 구이창에서 2번 구이창 리스트뷰에 메세지가 나... 아처 2016.01.11 0/0
질문 1인칭 게임의 마우스이동은 어떻게 해야할까요 4 디니치니 2016.08.10 0/0
질문 1을 001로, 62를 062로 표현하는 식이 없을까요? 3 북붕 2016.05.09 0/0
Board Pagination Prev 1 ... 201202203204205206207208 209 Next
/ 209

전체 최신 인기글

전체 주간 인기글