HiroMacro 스크립트 공식 매뉴얼
기초 문법부터 조건 분기, 색상 감지, 하드웨어 연동까지 모든 기능을 상세히 안내합니다.
1. 시작하기 및 UI 안내
HiroMacro는 누구나 손쉽게 강력한 터치와 제스처 자동화를 구축할 수 있는 전문 오토터치 도구입니다. 앱은 다음과 같은 5가지 주요 화면으로 구성되어 있습니다:
- 홈 대시보드: 매크로 서비스 시작/정지, 현재 실행 상태, 활성화된 키맵/플로팅 버튼 현황을 한눈에 확인합니다.
- 스크립트 탐색기: 내장 스크립트 및 기기 저장소의 매크로 파일(.txt)을 탐색, 생성, 수정, 삭제합니다.
- 키맵핑 설정: 스마트폰 볼륨 버튼, 블루투스 리모컨, 게임패드 키에 단일/더블/롱클릭 매크로를 지정합니다.
- 플로팅 버튼: 화면 어디에나 띄워둘 수 있는 둥근 오버레이 버튼의 위치, 색상, 동작을 관리합니다.
- 환경설정: 8개 국어 언어 설정, 화면 켜짐 유지(WakeLock), 스포이드 디버그 좌표 등을 설정합니다.
2. 스크립트 기본 문법
HiroMacro는 직관적인 줄(Line) 단위 인터프리터 언어인 HScript를 사용합니다. 규칙은 매우 간단합니다:
- 한 줄에 하나의 명령: 각 줄마다 명령어가 하나씩 순차적으로 실행됩니다.
- 공백(Space) 구분: 명령어와 파라미터는 하나 이상의 공백으로 구분합니다.
- 주석(Comment): 줄의 시작에
//를 적으면 해당 줄은 주석으로 처리되어 실행되지 않습니다. - 대소문자: 명령어는 기본적으로 대소문자를 구분하지 않지만, 소문자 작성을 권장합니다.
// 화면 (500, 1000) 좌표 터치 touchPress 0 500 1000 // 1초간 대기 (1000ms = 1초) sleep 1000
3. 터치 및 제스처 명령
화면 상의 좌표에 탭, 드래그, 스와이프, 멀티터치 제스처를 전달합니다.
3.1. touchPress finger x y
터치 다운과 터치 업을 한 번에 실행하는 가장 편리한 탭 명령입니다.
| 파라미터 | 설명 | 기본값 / 범위 |
|---|---|---|
finger | 터치 손가락 인덱스 (멀티터치 시 0, 1, 2...) | 0 |
x | 클릭할 화면의 X 좌표 (픽셀) | 0 ~ 화면 가로폭 |
y | 클릭할 화면의 Y 좌표 (픽셀) | 0 ~ 화면 세로폭 |
// 0번 손가락으로 (300, 500) 위치 1회 탭 touchPress 0 300 500
3.2. touchDown finger x y
화면의 지정된 좌표를 손가락으로 누른 상태를 유지합니다. 드래그나 길게 누르기(롱탭)의 시작점으로 사용됩니다.
3.3. touchMove finger x y
touchDown 이후 누른 상태에서 지정된 좌표로 손가락을 이동합니다.
3.4. touchUp finger
누르고 있던 손가락을 화면에서 뗍니다. touchDown과 항상 짝을 이루어야 합니다.
// (500, 1200)에서 터치 시작 touchDown 0 500 1200 sleep 50 // 위로 드래그 (500, 400) touchMove 0 500 800 sleep 50 touchMove 0 500 400 sleep 50 // 손 떼기 (스와이프 완료) touchUp 0
4. 하드웨어 및 키보드 명령
4.1. keyPress / keyDown / keyUp code
안드로이드 하드웨어 키 또는 소프트웨어 키보드 이벤트를 발생시킵니다.
// 뒤로가기 키(KEYCODE_BACK = 4) 1회 누름 keyPress 4 // 엔터 키(KEYCODE_ENTER = 66) 1회 누름 keyPress 66
4.2. 주요 안드로이드 키코드(KeyCode) 표
| 키 코드 번호 | 상수 이름 | 설명 |
|---|---|---|
3 | KEYCODE_HOME | 홈 버튼 |
4 | KEYCODE_BACK | 뒤로가기 버튼 |
24 | KEYCODE_VOLUME_UP | 볼륨 증가 |
25 | KEYCODE_VOLUME_DOWN | 볼륨 감소 |
66 | KEYCODE_ENTER | 엔터 / 확인 |
67 | KEYCODE_DEL | 백스페이스 (한 글자 지우기) |
111 | KEYCODE_ESCAPE | ESC 키 |
5. 시간, 변수 및 연산
5.1. sleep ms
지정된 밀리초(ms) 동안 스크립트 실행을 잠시 멈춥니다. 1000은 1초입니다.
// 0.5초 대기 sleep 500 // 2초 대기 sleep 2000
5.2. var / set 변수 지정
변수는 숫자 또는 문자열을 저장하며, 접두사 #(숫자 변수) 또는 $(문자열 변수)를 사용합니다.
// 숫자 변수 정의 및 초기화 var #count 0 var #targetX 540 // 변수 값 변경 set #count 10
5.3. calc 사칙연산
변수를 이용한 덧셈, 뺄셈, 곱셈, 나눗셈 연산을 수행합니다.
// 간편 계산식 calc #count = #count + 1 calc #delay = #baseDelay * 2
5.4. rand #var min max
min부터 max 사이의 임의의 정수(랜덤값)를 생성하여 변수에 저장합니다. 기계적인 매크로 감지를 방지할 때 유용합니다.
// 500ms ~ 1200ms 사이의 랜덤 대기 rand #randomSleep 500 1200 sleep #randomSleep
6. 흐름 제어 및 조건문
6.1. if / elseif / else / endif
변수의 값이나 화면 색상 조건에 따라 분기 처리를 수행합니다.
if #count > 10
toast "10회 완료!"
goto :finish
elseif #count == 5
toast "50% 진행됨"
else
sleep 100
endif
6.2. goto :label 및 라벨 정의
스크립트의 특정 위치로 점프하여 무한 반복 또는 특정 구간 건너뛰기를 구현합니다.
:loop_start touchPress 0 500 1000 sleep 1000 // 다시 :loop_start로 이동하여 무한 반복 goto :loop_start :finish exit
7. 색상 감지 (Pixel/RGB)
7.1. getColor #var x y
화면의 (x, y) 좌표에 있는 픽셀 색상값(정수형 컬러)을 읽어와 변수에 저장합니다.
// (300, 450) 위치의 색상 가져오기
getColor #screenColor 300 450
// 색상 조건문: 해당 좌표의 색상이 목표 색상(예: #FF0000 = 16711680)과 일치하면 터치
if #screenColor == 16711680
touchPress 0 300 450
endif
7.2. 화면 스포이드 도구 활용법
설정 메뉴에서 색값 좌표 디버그 또는 스포이드 오버레이를 활성화하면, 실시간으로 화면의 원하는 픽셀을 짚어 좌표(X, Y)와 RGB 10진수/16진수 색상 코드를 클립보드로 복사할 수 있습니다.
8. 앱 및 시스템 유틸리티
8.1. runApp / waitApp / killApp packageName
외부 앱을 패키지명으로 직접 실행하거나, 앱이 화면에 뜰 때까지 대기하고 강제 종료합니다.
// 특정 앱 실행 runApp com.example.game // 앱이 실행되어 화면에 나타날 때까지 대기 waitApp com.example.game
8.2. screenLock / toast / log / exit
screenLock: 화면 터치 입력을 소프트웨어적으로 잠그거나 해제합니다.toast "메시지": 화면 하단에 안드로이드 토스트 팝업을 표시합니다.log "메시지": HiroMacro 내부 로그 콘솔에 기록을 남깁니다.exit: 매크로 실행을 즉시 정상 종료합니다.
9. 키맵 & 플로팅 버튼 제어
HiroMacro에서는 스크립트를 작성하지 않아도 편리하게 제어할 수 있는 다양한 기능이 탑재되어 있습니다:
- 플로팅 오버레이 버튼: 앱 내 [플로팅 버튼] 메뉴에서 버튼을 추가하면 게임 화면 위에 둥근 캡슐/원형 버튼이 표시됩니다. 원하는 스크립트를 연결하여 원클릭으로 토글할 수 있습니다.
- 하드웨어 키맵 삼중 제어: 볼륨 다운 키에 1회 누름(재생/정지), 더블 클릭(특정 던전 매크로), 길게 누름(긴급 정지)을 자유롭게 조합할 수 있습니다.
10. 실전 예제 모음
예제 1: 단순 초고속 연타 매크로
// 500, 1000 좌표를 0.1초 간격으로 무한 연타 :repeat_tap touchPress 0 500 1000 sleep 100 goto :repeat_tap
예제 2: 출석 체크 및 보상 버튼 탐색
// 보상 수령 버튼 위치 (600, 1400)의 색상 확인
:check_reward
getColor #col 600 1400
// 황금색 버튼(#FFD700)이 활성화되었는지 확인
if #col == 16766720
toast "출석 보상 버튼 발견! 수령합니다."
touchPress 0 600 1400
sleep 2000
exit
else
sleep 500
goto :check_reward
endif
예제 3: 화면 무한 자동 스크롤
:scroll_loop // 화면 아래쪽(1400)에서 위쪽(600)으로 부드럽게 스와이프 touchDown 0 540 1400 sleep 50 touchMove 0 540 1000 sleep 50 touchMove 0 540 600 sleep 50 touchUp 0 // 3초간 콘텐츠 읽기 대기 sleep 3000 goto :scroll_loop