14 KiB
order, icon
| order | icon |
|---|---|
| 2 | material-symbols:u-turn-left |
回呼訊息協定
::: info 注意 回呼訊息 (Callback) 隨版本更新快速迭代中,本文件可能過時。如需獲取最新內容可參考 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
:::: field-group
::: field name="what" type="string" required
錯誤類型。
:::
::: field name="why" type="string" required
錯誤原因。
:::
::: field name="details" type="object" required
錯誤詳情。
:::
::::
ConnectionInfo
:::: field-group ::: field name="what" type="string" required 資訊類型。 ::: ::: field name="why" type="string" required 資訊原因。 ::: ::: field name="uuid" type="string" 設備唯一碼(連線失敗時為空)。 ::: ::: field name="details" type="object" required 連線詳情。其結構如下:
adb(string, required):AsstConnect介面adb_path參數。address(string, required):AsstConnect介面address參數。config(string, required):AsstConnect介面config參數。
::: ::::
常見 What 欄位
ConnectFailed
連線失敗Connected
已連接,注意此時的uuid欄位值為空(下一步才是獲取)UuidGot
已獲取到設備唯一碼UnsupportedResolution
解析度不被支援ResolutionError
解析度獲取錯誤Reconnecting
連線中斷(adb / 模擬器 炸了),正在重連Reconnected
連線中斷(adb / 模擬器 炸了),重連成功Disconnect
連線中斷(adb / 模擬器 炸了),並重試失敗ScreencapFailed
截圖失敗(adb / 模擬器 炸了),並重試失敗TouchModeNotAvailable
不支援的觸控模式
AsyncCallInfo
:::: field-group
::: field name="uuid" type="string" required
設備唯一碼。
:::
::: field name="what" type="string" required
回呼類型,例如 Connect | Click | Screencap 等。
:::
::: field name="async_call_id" type="number" required
非同步請求 ID,即調用 AsstAsyncXXX 時的回傳值。
:::
::: field name="details" type="object" required
非同步調用詳情。其結構如下:
ret(boolean, required): 實際調用的回傳值。cost(number, required): 耗時,單位毫秒。
::: ::::
AllTasksCompleted
:::: field-group ::: field name="taskchain" type="string" required 最後的任务鏈。 ::: ::: field name="uuid" type="string" required 設備唯一碼。 ::: ::: field name="finished_tasks" type="array" required 已經執行過的任務 ID 列表。 ::: ::::
常見 taskchain 欄位
StartUp
開始喚醒CloseDown
關閉遊戲Fight
刷理智Mall
信用點及購物Recruit
自動公招Infrast
基建換班Award
領取日常獎勵Roguelike
無限刷肉鴿Copilot
自動抄作業SSSCopilot
自動抄保全作業Depot
倉庫辨識OperBox
幹員 Box 辨識Reclamation
生息演算Custom
自定義任務SingleStep
單步任務VideoRecognition
影片辨識任務Debug
偵錯
TaskChain 相關消息
:::: field-group ::: field name="taskchain" type="string" required 目前的任務鏈。 ::: ::: field name="taskid" type="number" required 目前任務 TaskId。 ::: ::: field name="uuid" type="string" required 設備唯一碼。 ::: ::::
TaskChainExtraInfo
details 欄位為空。
SubTask 相關消息
:::: field-group ::: field name="subtask" type="string" required 子任務名稱。 ::: ::: field name="class" type="string" required 子任務符號名稱。 ::: ::: field name="taskchain" type="string" required 目前任務鏈。 ::: ::: field name="taskid" type="number" required 目前任務 TaskId。 ::: ::: field name="details" type="object" required 詳情。 ::: ::: field name="uuid" type="string" required 設備唯一碼。 ::: ::::
常見 subtask 欄位
-
ProcessTask
details欄位内容如下::::: field-group ::: field name="task" type="string" required 任務名稱。 ::: ::: field name="action" type="number" required Action ID。 ::: ::: field name="exec_times" type="number" required 已執行次數。 ::: ::: field name="max_times" type="number" required 最大執行次數。 ::: ::: field name="algorithm" type="number" required 辨識算法。 ::: ::::
-
Todo 其他
常見 task 欄位
StartButton2
開始戰鬥MedicineConfirm
使用理智藥ExpiringMedicineConfirm
使用即將過期的理智藥StoneConfirm
碎石RecruitRefreshConfirm
公招刷新標籤RecruitConfirm
公招確認招募RecruitNowConfirm
公招使用加急許可ReportToPenguinStats
匯報到企鵝數據統計ReportToYituliu
匯報到一圖流大數據InfrastDormDoubleConfirmButton
基建宿舍的二次確認按鈕。僅當幹員衝突時才會出現,請提示使用者。StartExplore
肉鴿開始探索StageTraderInvestConfirm
肉鴿投資源石錠StageTraderInvestSystemFull
肉鴿投資達到遊戲上限ExitThenAbandon
肉鴿放棄本次探索MissionCompletedFlag
肉鴿戰鬥完成MissionFailedFlag
肉鴿戰鬥失敗StageTraderEnter
肉鴿關卡:詭異行商StageSafeHouseEnter
肉鴿關卡:安全的角落StageEncounterEnter
肉鴿關卡:不期而遇 / 古堡饋贈StageCombatOpsEnter
肉鴿關卡:普通作戰StageEmergencyOps
肉鴿關卡:緊急作戰StageDreadfulFoe
肉鴿關卡:險路惡敵StartGameTask打開客戶端失敗(設定檔與傳入 client_type 不匹配)- Todo 其他
SubTaskExtraInfo
:::: field-group ::: field name="taskchain" type="string" required 目前任務鏈。 ::: ::: field name="class" type="string" required 子任務類型。 ::: ::: field name="what" type="string" required 資訊類型。 ::: ::: field name="details" type="object" required 資訊詳情。 ::: ::: field name="uuid" type="string" required 設備唯一碼。 ::: ::::
常見 what 及 details 欄位
-
StageDrops
關卡材料掉落資訊。details欄位結構如下:drops(array, required):本次辨識到的掉落材料,陣列每一項包含:itemId(string, required):材料 ID。quantity(number, required):掉落數量。itemName(string, required):材料名稱。
stage(object, required):關卡資訊,包含:stageCode(string, required):關卡編號。stageId(string, required):關卡 ID。
stars(number, required):行動結束星級。stats(array, required):本次執行期間總計材料掉落,陣列每一項包含:itemId(string, required):材料 ID。itemName(string, required):材料名稱。quantity(number, required):總計數量。addQuantity(number, required):本次新增的掉落數量。
-
RecruitTagsDetected
公招辨識到了 Tags。details欄位內容如下::::: field-group ::: field name="tags" type="array" required 辨識到的 Tag 列表。 ::: ::::
-
RecruitSpecialTag
公招辨識到了特殊 Tag。details欄位內容如下::::: field-group ::: field name="tag" type="string" required 特殊 Tag 名稱,例如 高級資深幹員。 ::: ::::
-
RecruitPreservedTag
公招辨識到了已設定為保留的 Tag。details欄位內容如下::::: field-group ::: field name="tag" type="string" required 觸發保留的 Tag 名稱,例如
支援機械。 ::: :::: -
RecruitResult
公招辨識結果。details欄位結構如下:tags(array, required):所有辨識到的 tags,目前固定為 5 個。level(number, required):組合的最高星級。result(array, required):具體的組合結果,陣列每一項包含:tags(array, required):參與組合的 tags。level(number, required):這組 tags 的星級。opers(array, required):可能招募到的幹員,陣列每一項包含:name(string, required):幹員名稱。level(number, required):幹員星級。
-
RecruitTagsRefreshed
公招刷新了 Tags。details欄位內容如下::::: field-group ::: field name="count" type="number" required 目前槽位已刷新次數。 ::: ::: field name="refresh_limit" type="number" required 目前槽位刷新次數上限。 ::: ::::
-
RecruitNoPermit
公招無招聘許可。details欄位內容如下::::: field-group ::: field name="continue" type="boolean" required 是否繼續刷新。 ::: ::::
-
RecruitTagsSelected
公招選擇了 Tags。details欄位內容如下::::: field-group ::: field name="tags" type="array" required 選擇的 Tag 列表。 ::: ::::
-
RecruitSlotCompleted
目前公招槽位任務完成。details欄位為空。 -
RecruitError
公招辨識錯誤。details欄位為空。 -
EnterFacility
基建進入了設施。details欄位內容如下::::: field-group ::: field name="facility" type="string" required 設施名稱。 ::: ::: field name="index" type="number" required 設施序號。 ::: ::::
-
NotEnoughStaff
基建可用幹員不足。details欄位內容如下::::: field-group ::: field name="facility" type="string" required 設施名稱。 ::: ::: field name="index" type="number" required 設施序號。 ::: ::::
-
ProductOfFacility
基建產物。details欄位內容如下::::: field-group ::: field name="product" type="string" required 產物名稱。 ::: ::: field name="facility" type="string" required 設施名稱。 ::: ::: field name="index" type="number" required 設施序號。 ::: ::::
-
StageInfo
自動作戰關卡資訊。details欄位內容如下::::: field-group ::: field name="name" type="string" required 關卡名稱。 ::: ::::
-
StageInfoError
自動作戰關卡辨識錯誤。details欄位為空。 -
PenguinId
企鵝物流 ID。details欄位內容如下::::: field-group ::: field name="id" type="string" required 企鵝物流 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):幹員 ID。name(string, required):幹員名稱。own(boolean, required):是否擁有。rarity(number, required):幹員稀有度 [1, 6]。
own_opers(array, required):已擁有幹員的詳細資訊列表,陣列每一項包含:id(string, required):幹員 ID。name(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 彙報操作。
:::: field-group
::: field name="url" type="string" required
請求的完整 URL,例如 https://penguin-stats.io/PenguinStats/api/v2/report。
:::
::: field name="headers" type="object" required
請求 Headers 的 Key-Value 設定(不包含 Content-Type,由 UI 層自行加入)。
:::
::: field name="body" type="string" required
請求 Body 內容(通常為 json 格式的字串)。
:::
::: field name="subtask" type="string" required
子任務名稱,辨識具體彙報任務,如 ReportToPenguinStats、ReportToYituliu。
:::
::::