매크로

2015.10.08 13:23

스샷기능

조회 수 4256 추천 6 댓글 37
가장 핵심 스크립트이죠.
기본적으로 오토핫키를 기준으로 설명하겠습니다.

구글링으로 소스 가져왔습니다.
ImageSearch, OutputVarX, OutputVarY, X1, Y1, X2, Y2, ImageFile
if errorlevel = 0 ; 이미지 서치성공
{
    성공시 실행할 스크립트
}
if eerorlevel = 1 ; 이미지 서치 실패
{
    실패시 실행할 스크립트
}
이미지DB파일과 스샷한 파일을 비교해서 검색된 좌표와 함께, 성공과 실패시 에러레벨로 반환합니다.
ImageSearch (스샷)
OutputVarX, OutputVarY (서치좌표)
X1, Y1, X2, Y2 (서치영역)
ImageFile(이미지DB)
if errorlevel = 0(서치성공)
if errorlevel = 1(서치시패)

카카오토에서 표현하면 아래와 같습니다.
스샷(비교) - 이미지그룹명 - 범위:그룹명 - 서치옵션:체크
LxBD6rE.jpg

하지만  이미지DB 생성영역과 스샷판단할 영역이 동일한 경우 많은데도 불구하고
전체영역에서 이미지DB를 서치하는 건 엄청나게 비효율적입니다.
ImageSearch, OutputVarX, OutputVarY, 450, 100, 550, 160, ImageFile
위 처럼 서칭영역을 최소화시켜 주는게 효율적이지만 엄청 귀찮죠?

오토핫키에서 ImageFile은 단순히 비교할 단일파일이지만
카카오토는 그룹(일반적인 변수)에 이미지와 여러가지 값을 보관합니다.
프로그램상으로 구조체? 클래스? 정도로 생각하시면 됩니다.

1.그룹에 이미지를 보관할수 있다.
2. 이미지 업데이트시 재사용가능토록 좌표 영역도 보관할수 있다.
3. 연산 및 판단결과를 보관할 수 있도록 Value 도 있습니다.
4. 상황에 따라 필요한 좌표영역 XY-X2Y2 를 지정할수 있습니다. 

이를 활용하면(오토핫키에 카카오토 이미지그룹을 짬뽕)
ImageSearch, OutputVarX, OutputVarY, 그룹명.영역X, 그룹명.영역Y, 그룹명.영역W, 그룹명.영역H, 그룹명
단순화해서
ImageSearch, OutputVarX, OutputVarY, 그룹명
더 단순화하면
ImageSearch, 그룹명
로 가능해지죠.

if errorlevel <==이건 어떻게 되나?
카카오토의 스샷명령은 검출여부에 따라 자동으로 분기합니다.
위 샘플이미지처럼 스샷 성공시, 실패시로 분기해서 이후 스크립트를 수행합니다.

분기위치는?
if errorlevel = 0(서치성공) <==첫번째
if errorlevel = 1(서치시패) <==마지막
특이점은 첫번째와 두번째가 아닌 첫번째와 마지막입니다.
차이점이 뭘까요? 분기가 하나밖에 없으면 첫번째와 첫번째가 됩니다. 동일한 곳으로 갑니다.
왜? 
무한 반복 스샷기능이 있거든요. 성공시 무한반복, 실패시 마지막으로 패스...
또한 여러개의 이미지를 한꺼번에 검색하여 검색이미지의 순서로 분기... 실패시 마지막
이런 이유로 실패시는 항상 마지막입니다.

정리하면..
이미지서치 - 그룹명 
ImageSearch, OutputVarX, OutputVarY, X1, Y1, X2, Y2, ImageFile

스크립트 분기
if errorlevel = 
동일하게 됩니다.


실제 매크로를 제작하다보면 스샷판단 결과에 따라 처리할 명령이 다양합니다만
오토핫키 소스에서 실제 매크로 수행쪽을 보면
ImageSearch, OutputVarX, OutputVarY, X1, Y1, X2, Y2, ImageFile
if errorlevel = 0 ; 이미지 서치성공
if eerorlevel = 1 ; 이미지 서치 실패
무한 반복입니다. 어떤 이미지를 검색하고 있으며...없으면 또다시 다른이미지 검색하고.....
비효율적일뿐만 아니라 소스가 복잡해지고, 가독성이 떨어지고 등등..

ImageSearch, OutputVarX, OutputVarY, X1, Y1, X2, Y2, ImageFile0 ~ ImageFile10
if errorlevel = 0 ; ImageFile0 서치성공
if errorlevel = 1 ; ImageFile1 서치성공
if errorlevel = 2 ; ImageFile2 서치성공
if errorlevel = 3 ; ImageFile3 서치성공
if errorlevel = -99 ; 서치실패시
위와같은 방법을 사용했습니다. (실제 오핫에서는 안되요^^)

DFySxEb.jpg
스샷(분기) - 이미지그룹명 - 그룹전체 

등록한 모든 이미지DB를 검색할 순 없으니
그룹명으로 구분하여 해당 그룹명의 하위항목들을 한꺼번에 검색합니다.
(스샷 - 이미지그룹 = 항목1~4까지 한꺼번에 검색, 세부옵션에 따라 분기위치가 달라집니다.)


위에서 실제 매크로를 제작하다보면 스샷판단 결과에 따라 처리할 명령이 다양하다고했는데요.
그중 대표적인 경우를 보면
1. 스샷후 참,거짓으로 분기 (가장 보편적인)
2. 스샷후 참이면 클릭하고 다시 반복(메세지창 닫기)
3. 다중 서치로 서치이미지에 따른 각자 분기
4. 옵션 선택에 따른 클릭(버프 체크,해제 등)
5. 해당이미지가 서치될때까지 게임화면변경(맵선택 등)
또한 각 경우별로 해당 이미지가 서치될때까지 무한반복(로딩타임) 도 필요합니다.

스샷(ImageSearch) 기능으로 모두 구현되지만 스크립트가 복잡해지므로 
카카오토에서는 스샷기능을 세분화 하였습니다.
스샷 옵션별로 분기위치와, 사옹되는 이미지항목, 마우스클릭좌표 등이 달라져요

어떤 옵션을 선택하더라도 가장 기본적인 개념만 생각하시면 됩니다.
1. 이미지그룹으로 등록된 이미지를 사용한다.
2. 참 또는 검색된 순서로 분기한다. 
3. 검색실패시는 항상 마지막으로 분기한다.
4. 그룹범위옵션에 따라 단일 또는 전체 이미지를 검색한다.
5. 서치옵션 체크시 오토핫키와 동일하게 작동된다.(해제시 등록영역에서 서치)
6. 클릭좌표는 XY-X2Y2이다.
   (서치사용시 검색된 좌표에 XY-X2Y2(상대좌표로 인식)를 더하여 클릭한다.)
7. 어려우면 스샷후 참,거짓으로 분기 (가장 보편적인) ... 이것만 사용해도 다 만들 수 있다.


List of Articles
제목 글쓴이 최근변경 추천
카카오토 PRO 2.30B AND, WIN 연동안동 42 프리헌터스 2023.07.17 23/0
카카오토 1.8(지금 2.0) 테스트버전 연동 및 간단 기능... 260 팟팟팟 2023.05.29 28/0
카카오토PRO그룹선택 컨트롤 101 프리헌터스 2023.06.12 10/0
카카오토 PRO.. 이건 알고 가자....^^; 234 프리헌터스 2023.07.21 19/0
카카오토 1.76 관리자설정 사용방법 78 프리헌터스 2023.05.29 5/-2
카카오토1.75 매니저 신규제어판 사용법 58 팟팟팟 2022.09.27 15/0
카카오토 이미지효과 : 색상교체 31 프리헌터스 2021.08.13 1/0
카카오토 이미지 효과 : 레벨 48 프리헌터스 2023.05.23 1/0
카카오토 이미지 효과 : 색상모드 48 프리헌터스 2023.01.16 5/0
카카오토에서 한글/영문 입력방법. 81 프리헌터스 2023.01.16 9/0
카카오토 매크로 제작방법 초보 4단계-[각종 서브의 역... 91 팟팟팟 2023.05.31 12/0
카카오토 매크로 제작방법 초보 3단계-[스킬서브 사용... 134 팟팟팟 2023.05.31 20/0
카카오토 매크로 제작방법 초보 2단계-[전투스크립트와... 222 팟팟팟 2023.05.31 28/-1
카카오토 매크로 제작방법 초보 1단계-[클릭] 486 팟팟팟 2023.05.31 83/-1
카카오토 매크로에서 재부팅기능 사용안하기 방법 53 팟팟팟 2022.07.06 7/0
녹스설정방법 (금작화님 카카오토 스크립트대응) 67 쩜길어 2021.01.23 4/0
영웅 업데이트로 인한 원일님 영웅 쫄작 카카오토 설정법 22 City 2021.01.20 1/0
아무도 모르는 카카오토 기능 96 프리헌터스 2021.07.20 7/0
스샷기능 37 프리헌터스 2021.04.23 6/0
카카오토 이용시 유의사항입니다. 88 프리헌터스 2021.05.12 11/0
카카오토 매니저 클릭/드래그 스크립트 사용법 132 프리헌터스 2023.02.18 16/0
카카오토 매니저 기기연동법(현재버전과의 차이로 글내... 187 프리헌터스 2023.02.18 11/0
Board Pagination Prev 1 234 5 Next
/ 5

전체 최신 인기글

전체 주간 인기글