콜백 메시지 프로토콜
약 796 단어약 3 분
정보
콜백 메시지는 버전 업데이트를 통해 빠르게 변경되고 있으며 이 문서는 오래된 것일 수 있습니다. 최신 콘텐츠는 C# 통합 소스 코드를 참조하세요.
콜백 함수 프로토타입
typedef void(ASST_CALL* AsstCallback)(int msg, const char* details, void* custom_arg);파라미터 개요
int msg
메시지 유형enum class AsstMsg { /* Global Info */ InternalError = 0, // 내부 오류 InitFailed = 1, // 초기화 실패 ConnectionInfo = 2, // 연결 정보 AllTasksCompleted = 3, // 모든 작업 완료 AsyncCallInfo = 4, // 비동기 호출 정보 Destroyed = 5, // 인스턴스 소멸됨 /* TaskChain Info */ TaskChainError = 10000, // 작업 체인 실행/인식 오류 TaskChainStart = 10001, // 작업 체인 시작 TaskChainCompleted = 10002, // 작업 체인 완료 TaskChainExtraInfo = 10003, // 작업 체인 추가 정보 TaskChainStopped = 10004, // 작업 체인 수동 중지 /* SubTask Info */ SubTaskError = 20000, // 서브 작업 실행/인식 오류 SubTaskStart = 20001, // 서브 작업 시작 SubTaskCompleted = 20002, // 서브 작업 완료 SubTaskExtraInfo = 20003, // 서브 작업 추가 정보 SubTaskStopped = 20004, // 서브 작업 수동 중지 /* Web Request */ ReportRequest = 30000, // 보고 요청 };const char* details
메시지 세부사항, JSON 문자열, 필드 설명 참조void* custom_arg
호출자의 사용자 정의 인수로,AsstCreateEx인터페이스의custom_arg인수가 그대로 전달됩니다. C 계열 언어에서는 이를 통해this포인터를 전달할 수 있습니다.
필드 설명
InternalError
details 필드는 비어 있습니다.
InitFailed
whatRequiredstring
오류 유형
whyRequiredstring
오류 원인
detailsRequiredobject
오류 상세
ConnectionInfo
whatRequiredstring
정보 유형
whyRequiredstring
정보 원인
uuidstring
장치 고유 코드(UUID) (연결 실패 시 비어 있음)
detailsRequiredobject
연결 상세 정보. 구조는 다음과 같습니다:
adb(string, required):AsstConnect인터페이스의adb_path파라미터.address(string, required):AsstConnect인터페이스의address파라미터.config(string, required):AsstConnect인터페이스의config파라미터.
자주 사용되는 What 필드
ConnectFailed
연결 실패Connected
연결됨, 이때uuid필드는 비어 있음 (다음 단계에서 획득)UuidGot
장치 고유 코드(UUID) 획득UnsupportedResolution
지원하지 않는 해상도ResolutionError
해상도 획득 오류Reconnecting
연결 끊김 (adb / 에뮬레이터 충돌), 재연결 중Reconnected
연결 끊김 (adb / 에뮬레이터 충돌), 재연결 성공Disconnect
연결 끊김 (adb / 에뮬레이터 충돌), 재시도 실패ScreencapFailed
스크린샷 실패 (adb / 에뮬레이터 충돌), 재시도 실패TouchModeNotAvailable
지원하지 않는 터치 모드
AsyncCallInfo
uuidRequiredstring
장치 고유 코드
whatRequiredstring
콜백 유형, 예: Connect | Click | Screencap 등
async_call_idRequirednumber
비동기 요청 id, 즉 AsstAsyncXXX 호출 시 반환값
detailsRequiredobject
비동기 호출 상세. 구조는 다음과 같습니다:
ret(boolean, required): 실제 호출의 반환값.cost(number, required): 소요 시간, 단위 밀리초.
AllTasksCompleted
taskchainRequiredstring
마지막 작업 체인
uuidRequiredstring
장치 고유 코드
finished_tasksRequiredarray<number>
이미 실행된 작업 id 목록
자주 사용되는 taskchain 필드
StartUp
시작 (깨우기)CloseDown
게임 종료Fight
이성 소모 작전Mall
크레딧 상점 및 쇼핑Recruit
자동 공개모집Infrast
기반시설 교대Award
일일 보상 수령Roguelike
통합 전략 반복Copilot
자동지휘SSSCopilot
보안 파견 자동지휘Depot
창고 인식OperBox
오퍼레이터 인식Reclamation
생존 연산Custom
사용자 정의 작업SingleStep
단일 단계 작업VideoRecognition
비디오 인식 작업Debug
디버그
TaskChain 관련 메시지
taskchainRequiredstring
현재 작업 체인
taskidRequirednumber
현재 작업 TaskId
uuidRequiredstring
장치 고유 코드
TaskChainExtraInfo
details 필드는 비어 있습니다.
SubTask 관련 메시지
subtaskRequiredstring
서브 작업명
classRequiredstring
서브 작업 심볼명
taskchainRequiredstring
현재 작업 체인
taskidRequirednumber
현재 작업 TaskId
detailsRequiredobject
상세 정보
uuidRequiredstring
장치 고유 코드
자주 사용되는 subtask 필드
ProcessTaskdetails필드 내용은 다음과 같습니다:taskRequired
string작업명
actionRequired
numberAction ID
exec_timesRequired
number실행된 횟수
max_timesRequired
number최대 실행 횟수
algorithmRequired
number인식 알고리즘
Todo 기타
자주 사용되는 task 필드
StartButton2
작전 시작MedicineConfirm
이성 회복제 사용 확인ExpiringMedicineConfirm
48시간 내 만료되는 이성 회복제 사용 확인StoneConfirm
오리지늄 사용 확인RecruitRefreshConfirm
공개모집 태그 갱신 확인RecruitConfirm
공개모집 채용 확인RecruitNowConfirm
공개모집 즉시 완료 허가증 사용 확인ReportToPenguinStats
펭귄 물류 데이터 통계 보고ReportToYituliu
Yituliu 빅데이터 보고InfrastDormDoubleConfirmButton
기반시설 숙소의 2차 확인 버튼, 오퍼레이터 충돌 시에만 나타남, 사용자에게 알림 필요StartExplore
통합 전략 탐험 시작StageTraderInvestConfirm
통합 전략 각뿔 투자 확인StageTraderInvestSystemFull
통합 전략 투자 한도 도달ExitThenAbandon
통합 전략 이번 탐험 포기MissionCompletedFlag
통합 전략 전투 완료MissionFailedFlag
통합 전략 전투 실패StageTraderEnter
통합 전략 노드: 교활한 상인StageSafeHouseEnter
통합 전략 노드: 안전가옥StageEncounterEnter
통합 전략 노드: 우연한 만남/고성의 선물StageCombatOpsEnter
통합 전략 노드: 일반 작전StageEmergencyOps
통합 전략 노드: 긴급 작전StageDreadfulFoe
통합 전략 노드: 험난한 길StartGameTask클라이언트 실행 실패 (설정 파일과 입력된 client_type 불일치)- Todo 기타
SubTaskExtraInfo
taskchainRequiredstring
현재 작업 체인
classRequiredstring
서브 작업 유형
whatRequiredstring
정보 유형
detailsRequiredobject
정보 상세
uuidRequiredstring
장치 고유 코드
자주 사용되는 what 및 details 필드
StageDrops
노드 재료 드롭 정보.details필드 구조는 다음과 같습니다:drops(array, required): 이번에 식별된 드롭 재료, 배열의 각 항목:itemId(string, required): 재료 IDquantity(number, required): 드롭 수량itemName(string, required): 재료 명칭
stage(object, required): 노드 정보:stageCode(string, required): 노드 코드stageId(string, required): 노드 ID
stars(number, required): 작전 종료 등급(별)stats(array, required): 이번 실행 기간 동안의 총 재료 드롭, 배열의 각 항목:itemId(string, required): 재료 IDitemName(string, required): 재료 명칭quantity(number, required): 총 수량addQuantity(number, required): 이번에 추가된 드롭 수량
RecruitTagsDetected
공개모집 태그를 식별했습니다.details필드 내용은 다음과 같습니다:tagsRequired
array<string>식별된 태그 목록
RecruitSpecialTag
공개모집 특수 태그를 식별했습니다.details필드 내용은 다음과 같습니다:tagRequired
string특수 태그 명칭, 예:
고급 특별 채용RecruitResult
공개모집 식별 결과.details필드 구조는 다음과 같습니다:tags(array, required): 식별된 모든 태그, 현재 5개로 고정level(number, required): 조합의 최고 등급(별)result(array, required): 구체적인 조합 결과, 배열의 각 항목:tags(array, required): 조합에 참여한 태그level(number, required): 이 태그 조합의 등급opers(array, required): 모집 가능한 오퍼레이터, 배열의 각 항목:name(string, required): 오퍼레이터 명칭level(number, required): 오퍼레이터 등급
RecruitTagsRefreshed
공개모집 태그를 갱신했습니다.details필드 내용은 다음과 같습니다:countRequired
number현재 슬롯 갱신 횟수
refresh_limitRequired
number현재 슬롯 갱신 횟수 상한
RecruitNoPermit
모집 허가증이 없습니다.details필드 내용은 다음과 같습니다:continueRequired
boolean계속 갱신할지 여부
RecruitTagsSelected
공개모집 태그를 선택했습니다.details필드 내용은 다음과 같습니다:tagsRequired
array<string>선택한 태그 목록
RecruitSlotCompleted
현재 공개모집 슬롯 작업 완료.details필드는 비어 있습니다RecruitError
공개모집 식별 오류.details필드는 비어 있습니다EnterFacility
기반시설 시설에 진입했습니다.details필드 내용은 다음과 같습니다:facilityRequired
string시설명
indexRequired
number시설 순서(인덱스)
NotEnoughStaff
기반시설 가용 오퍼레이터 부족.details필드 내용은 다음과 같습니다:facilityRequired
string시설명
indexRequired
number시설 순서
ProductOfFacility
기반시설 생산물.details필드 내용은 다음과 같습니다:productRequired
string생산물명
facilityRequired
string시설명
indexRequired
number시설 순서
StageInfo
자동 작전 노드 정보.details필드 내용은 다음과 같습니다:nameRequired
string노드명
StageInfoError
자동 작전 노드 식별 오류.details필드는 비어 있습니다PenguinId
펭귄 물류 ID.details필드 내용은 다음과 같습니다:idRequired
string펭귄 물류 ID
Depot
창고 인식 결과.details필드 구조는 다음과 같습니다:done(boolean, required): 인식 완료 여부,false는 아직 인식 중임(진행 중 데이터)을 의미data(string, required): JSON 문자열, 형식은{"아이템ID": 수량, ...}, 예:{"2001":18000,"31043":317}
OperBox
오퍼레이터 보관함 인식 결과.details필드 구조는 다음과 같습니다:done(boolean, required): 인식 완료 여부,false는 아직 인식 중임(진행 중 데이터)을 의미all_oper(array, required): 전체 오퍼레이터 목록, 배열의 각 항목:id(string, required): 오퍼레이터 IDname(string, required): 오퍼레이터 명칭own(boolean, required): 보유 여부rarity(number, required): 오퍼레이터 레어도 [1, 6]
own_opers(array, required): 보유 중인 오퍼레이터 상세 정보 목록, 배열의 각 항목:id(string, required): 오퍼레이터 IDname(string, required): 오퍼레이터 명칭own(boolean, required): 보유 여부elite(number, required): 정예화 단계 [0, 2]level(number, required): 오퍼레이터 레벨potential(number, required): 오퍼레이터 잠재 [1, 6]rarity(number, required): 오퍼레이터 레어도 [1, 6]
UnsupportedLevel
자동지휘, 지원하지 않는 노드명.details필드는 비어 있습니다
ReportRequest
이 필드는 주로 코어 모듈이 UI 계층에 네트워크 요청 정보를 전달하는 데 사용되며, UI가 구체적인 HTTP 보고(Report) 작업을 수행합니다
urlRequiredstring
요청 전체 URL, 예: https://penguin-stats.io/PenguinStats/api/v2/report
headersRequiredobject
요청 헤더 키-값 쌍 (Content-Type 미포함, UI 계층에서 자동 추가)
bodyRequiredstring
요청 본문 내용 (일반적으로 JSON 형식의 문자열)
subtaskRequiredstring
서브 작업명, 구체적인 상보 임무 식별, 예: ReportToPenguinStats, ReportToYituliu
