9/12/2017

오토핫키(Autohotkey) 진입장벽 줄이기 정리


오토핫키를 처음 시도할 시 아래의 내용을 주의하여 진입장벽만 통과하면 인터넷에 공개된 정보들로 쉽게 바로 사용 가능함.


가. 설치
    1. 오토핫키 다운
         - https://autohotkey.com/
         - spy 도 자동으로 깔림. (좌표정보, 칼라 정보 등 오토핫키 코딩에 필수)

    2. 에디터 다운 (SciTE4AutoHotkey P.G.)
         - https://autohotkey.com/boards/viewtopic.php?t=62
         - 인터넷에 공개된 대부분의 설명이 위 에디터를 이용함.

    3. 그림판 : 윈도에 기본으로 깔려있음. 개인적으로 선호함.
        - 최대 확대하면 pixcell 구분 가능, ColorID 탐색 쉬움
        - 그림 저장 시, 24 bit bmp 으로의 저장이 권장됨.
 

나. ImageSearch 함수
    1. 예) mageSearch, pm0_x, pm0_y, 1, 1, A_ScreenWidth, A_ScreenHeight, *50
            Img/Position/pn7.bmp
        - * 50 은 명암 오차 레벨을 의미함. *0 ~ 255 값을 가지며 정확한 탐색은
            10~50   명암이 좀 달라도 찾으려면 100 ~ 150 을 추천함.
    2.  그림 파일경로는 실행되고 있는 ahk 파일 기준으로 작성
    3.  처음에 잘 안될 때는 sleep 함수로 간격 넣어주지 않아서 그런가 싶었지만
           sleep 함수 없어도 잘됨. 코딩이 길어어지면 sleep 을 작게 넣은 부분들이
           모여서 속도 느려짐.
    4. 좌표값은 기본적으로 Rative position 기준이라 활성화되어 있는 창
       왼쪽 위를 기준으로 지정됨. GUI 활성화 시 GUI 기준...
 

다. PixcelSerach 함수
    1. ColorID 넣을 시, 앞에 0x 붙여야 함. 예) 0x0000FF (빨강)
    2. 오토핫키는 BGR 순으로 넣어야 함. spy는 RGB로 알려주므로 2자리씩
       역순으로 입력 필요. 각 색별로 16진법(0~F), 2자리 이므로 0~255 단계임.


라. 변수 코딩
    1. 변수에 내용 입력
        a = 1+1      ->  '1+1'  (문자)
        a := 1+1      ->    2    (숫자)
    2. 변수명 입력 자리가 문자형인 경우
        변수명 -> 변수명의 문자가 적용됨
        %변수명% -> 변수가 가지는 내용이 적용됨.
    3. 함수의 입력변수자리에 문자를 적용할 시
        f("문자")
     


마. 함수 코딩
    1. 예)    함수명(입력변수1, 입력변수2, 등..){
                    함수 내용
               }
    2. 반환 값이 하나라면 return 변수명 ,   반환 값이 여러개면 함수 사용 전에
       반환할 변수들을 global 함수로 미리 선언하기
 

바. GUI
    1. 설치한 SciTE4AutoHotkey 프로그램에 GUI 쉽게 할 수 있는 기능 있음.
    2. 버튼 같은 것의 태그명(?) 앞에 'g', 'v', 'r' 을 선택해서 붙이고 버튼 클릭 시
        작동할 내용을 라벨 아래에 작성해야 함.
    3. GUI 내의 값을 읽어오기 위해서는 Gui, submit, nohide  으로 미리선언
    4. 해보다 말아서 잘 모르겠다. 다음해 해보고 주의사항 정리하기


사. 실행 순서
    1. 게임 실행 후 오토핫키 실행하기, 반대로 하다가 의도한 로직이 너무 안되어서
       재부팅하고 게임 실행 후 오토핫키 실행하였더니 문제 없이 되었던 적 있음.
    ※. 작성한 코드는 컴파일러하지 말고 실행하여야 매크로 적발 위험이 줄어든다?






댓글 없음:

댓글 쓰기