Files
MaaAssistantArknights/docs/zh-tw/protocol/callback-schema.md
2026-07-07 00:30:53 +08:00

15 KiB
Raw Blame History

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
    不支援的觸控模式

  • ResolutionGot
    已獲取到解析度

  • FastestWayToScreencap
    已找到最快的截圖方式,details 結構如下:

    • method (string, required): 最快的截圖方式。
    • cost (number, required): 耗時,單位毫秒。
    • alternatives (array