python

Python OpenCV를 이용한 라이즈 오브 킹덤즈 매크로(1)

yssy431 2020. 2. 7. 23:12

오랜만에 폰게임을 시작하게 되면서 매크로를 만들어 볼까 하다가 시작하게 된 프로젝트!

 

게임을 하다보면 자주 보는 인증하라는 표시

라오킹 매크로의 가장 큰 적은 바로 이 인증기를 뚫는 것이다.

geetest 홈페이지 본문 상 내용

라오킹에선 bot을 막는 geetest를 사용한다

geetest의 위 2가지 방법 중 랜덤으로 선택되여 인증해야한다.

 

인증기를 뚫는 것은 차 후에 글을 쓰고 먼저 이미지 인식을 통해 버튼을 누르는 매크로를 먼저 만들어 보았다.

 

라오킹에는 지도를 탐색하여 맵의 안개를 걷어내야 하는대,

간단하게 opencv의 template matching을 이용하여 좌표를 찾아 내었다.

 

opencv의 버젼은 opencv-contrib-python==3.4.2.16으로 pip으로 간단히 설치할 수 있으며 구 버젼을 설치한 이유는 추 후에 feature matching을 사용하기 위해서 이다.

 

결과 부터 보자면

템플릿 매칭으로 탐색부분을 찾은 부분

원본 화면과 자신이 찾고 싶은 부분을 따로 캡처 한 후에 template matching 시켜주면 된다.

코드 부분을 보면

OpenCV의 matchTemplate을 사용하여 완성,  해당 함수를 통하여 좌표를 받아와 그 좌표로 마우스 이동 후 클릭만 넣어준다면 기본적인 매크로는 완성할 수 있게된다.