본문 바로가기

운동하는 개발자/Windows

모바일게임 매크로 만들기 (sikulix 자동화) -2

728x90

들어가기 앞서 이 글은 자동화 기술을 쉽고 재밌게 익히기 위함이지 실제로 모바일 게임의 매크로를 만들고자 작성된 글이 아닙니다

이 방법으로 매크로를 제작해 사용 시 계정 정지나 삭제 등의 불이익을 받을 수 있으며 매크로 배포 시엔 형사고발 당할 수 있다는 점 주의하시길 바랍니다

2021.06.15 - [운동하는 개발자/Windows] - 모바일게임 매크로 만들기 (sikulix 자동화) -1


지난번 설치를 해보았고 간단하게 계산기에 자동화 명령을 주도록 해 보려 한다
간단한 파이선 문법만 알고있으면 되는데 바로 예시로 넘어가겠다

그림 1

어떠한 언어를 주력으로 사용하든 대충 이게 무슨 의미겠다고 감이 올 것이다
크게 SikulixIDE에서는 '어느 대상에' '무엇을 할지' 를 정해주면 된다
그리고 명령을 내릴 대상 혹은 목표는 좌표로도 이미지로도 선택이 가능하다

코드를 분석해보자

scr1 = Screen(0) //모니터 전체화면 획득(듀얼모니터일 경우 0, 1 원하는 모니터 선택)
scr1.click("1625664418160.png") //전체 화면에서 이 이미지와 동일한 곳이 있으면 클릭
scr1.click("1625664437343.png")
scr1.click("1625664449648.png")
scr1.click("1625664458927.png")

if scr1.exists("1625665278923.png"): //전체 화면에서 이 이미지와 동일한 곳이 있는지 확인
    scr1.click("1625665476733.png")  //있다면 이 파라메타 이미지와 동일한곳 클릭

이미지는 위 그림1 에서 화면 갈무리(빨간 동그라미 부분) 버튼을 누르면

이처럼 까만 화면이 나오고 드래그 앤 드롭으로 구역을 선택할 수 있다
각각 계산기의 1, +, 9, =, 10(결과값)을 지정해주었다
위 코드는 순서대로 1 + 9 = 버튼을 누를 거고 전체 화면에서 10이라는 이미지를 찾는다면 액스를 눌러 종료할 것

정상작동!

 

자 그럼 이제 기존에 숫자를 미리 줘서 10이라는 값이 안 나와서 계산기가 종료되지 않는 현상을 보자

.....? 
왜 종료되었냐 하면 이미지 대조 방식으로 저 10이라는 이미지와 180이 동일하다 판단한 것인데
이 기준치를 높이거나 낮출 수 있다

요 10이라는 이미지를 클릭하면 새 창이 하나 뜨는데 두 번째 탭인 매칭 미리보기로 이동해 보자

자신의 바탕화면이 나오면서 하단에 슬라이드 바로 현재 70점에 놓여있다 
약 70% 유사하면 동일하다 판정하는 값이 디폴트로 설정되어있는 것이다 
그리고 우측 계산기를 보면 보라색으로 0에 색칠이 되어있는데 이는 현재 유사치값을 기준으로 동일하다 판단하는 후보를 보여주는 것이다
보라색 색칠이 없어질 때까지 유사치 값을 올리며 대략 88에서 멈춰서 확인을 누른다

위와 같이 유사치값이 디폴트(70)가 아닐 땐 이미지 우측 상단에 값이 표시된다(88)

그럼 이제 다시 돌려보면 10이란 이미지와 유사한 값이 없으므로 if문 내부로 진입하지 못하였고 액스를 누르지 않았다

사실 이게 전부이고 매크로를 설계할 때 내가 어디 화면의(스크린), 무엇을 보고(아이템 이미지), 어떤 행동을 하는지(클릭 등등)를 알고리즘으로 구현해내면 되는 것이다

디테일한 개발 옵션이나 코드 등 개발 팁을 위해 다음번엔 게임을 하나 가져와서 실제 동작하게 만들어서 보여 볼 예정이다


 

728x90