Skip to content

Latest commit

 

History

History
510 lines (447 loc) · 13.4 KB

3.2-コールバックAPI.md

File metadata and controls

510 lines (447 loc) · 13.4 KB

コールバック図式

Prototype

typedef void(ASST_CALL* AsstCallback)(int msg, const char* details, void* custom_arg);

概要

  • int msg
    The message type

    enum class AsstMsg
    {
        /* Global Info */
        InternalError = 0,          // Internal error
        InitFailed,                 // Initialization failure
        ConnectionInfo,             // Connection info
        AllTasksCompleted,          // すべてのタスクが完了したかどうか
        /* TaskChain Info */
        TaskChainError = 10000,     // 一連のタスク 実行/認識のエラー
        TaskChainStart,             // 一連のタスク開始
        TaskChainCompleted,         // 一連のタスク完了
        TaskChainExtraInfo,         // 一連のタスクの追加情報
        /* SubTask Info */
        SubTaskError = 20000,       // サブタスク 実行/認識におけるエラー
        SubTaskStart,               // サブタスク 実行
        SubTaskCompleted,           // サブタスク 完了
        SubTaskExtraInfo            // サブタスクの追加情報
    };
  • const char* details
    メッセージの詳細, JSON. 詳細: Field Description

  • void* custom_arg
    呼び出し元のカスタム引数には、 AsstCreateEx インターフェースの custom_arg 引数が渡される。C ライクな言語では、this ポインタを一緒に渡すことができる。

Field Description

InternalError

Todo

InitFailed

{
    "what": string,     // Error タイプ
    "why": string,      // Error 理由
    "details": object   // Error 詳細
}

ConnectionInfo

{
    "what": string,     // Info タイプ
    "why": string,      // Info 理由
    "uuid": string,     // UUID (接続に失敗した場合は空白)
    "details": {
        "adb": string,     // AsstConnect インターフェースの adb_path 引数 
        "address": string, // AsstConnect インターフェースの address 引数
        "config": string   // AsstConnect インターフェースの config 引数
    }
      
}

多用される What フィルドの値

  • ConnectFailed
    接続失敗.
  • Connected
    接続。現段階では uuid フィールドが空であることに注意してください (次のステップで取得されます)
  • UuidGot
    UUID の取得.
  • UnsupportedResolution
    この解像度はサポートされていません.
  • ResolutionError 解像度を取得できない.
  • Reconnecting 切断 (adb/emulator クラッシュ), 再接続開始
  • Reconnected 切断 (adb/emulator クラッシュ), 再接続成功
  • Disconnect 切断 (adb/emulator クラッシュ), 再接続失敗
  • ScreencapFailed
    画面取得失敗 (adb/emulator クラッシュ), 再接続失敗

AllTasksCompleted

{
    "taskchain": string,            // 最後の一連のタスク
    "uuid": string,                 // UUID
    "finished_tasks": [             // 最終動作タスクの ID
        int,
        ...
    ]
}

多用される taskchain フィールドの値

  • StartUp
    ウェイクアップ.
  • Fight
    戦闘.
  • Mall
    購買所.
  • Recruit
    自動公開求人.
  • RecruitCalc
    公開求人結果取得.
  • Infrast
    基地施設.
  • Roguelike
    統合戦略
  • Debug
    デバッグ.

Information Related to TaskChain

{
    "taskchain": string,            // 現在の一連タスク
    "taskid": int,                  // 現在のタスク ID
    "uuid": string                  // UUID
}

TaskChainExtraInfo

Todo

Information Related to SubTask

{
    "subtask": string,             // サブタスク名
    "class": string,               // サブタスククラス
    "taskchain": string,           // 現在の一連のタスク
    "taskid": int,                 // 現在のタスク ID
    "details": object,             // 詳細
    "uuid": string                 // UUID
}

多用される subtask フィールドの値

  • ProcessTask

    // 対応する詳細フィールドの例
    {
        "task": "StartButton2",     // タスク名
        "action": 512,
        "exec_times": 1,            // 実行回数
        "max_times": 999,           // 最大実行回数
        "algorithm": 0
    }
  • Todo Other

多用される task フィールドの値
  • StartButton2
    開始.
  • MedicineConfirm
    理性回復剤使用確認.
  • StoneConfirm
    純正源石使用確認.
  • RecruitRefreshConfirm
    公開求人リストの更新確認.
  • RecruitConfirm
    公開求人の決定.
  • RecruitNowConfirm
    緊急招集票の使用確認.
  • ReportToPenguinStats
    ペンギン急便への報告.
  • ReportToYituliu
    Yituliu へビッグデータの報告.
  • InfrastDormDoubleConfirmButton
    基地施設での二重確認は、他のオペレーターとの競合がある場合のみ発生します.
  • Roguelike1Start
    統合戦略: 開始.
  • Roguelike1StageTraderInvestConfirm
    統合戦略: 源石錐とアイテム交換.
  • Roguelike1StageTraderInvestSystemFull
    統合戦略: 投資満額.
  • Roguelike1ExitThenAbandon
    統合戦略: 終了確認.
  • Roguelike1MissionCompletedFlag
    統合戦略: ミッション完了.
  • Roguelike1MissionFailedFlag
    統合戦略: ミッション失敗.
  • Roguelike1StageSafeHouseEnter
    統合戦略: 怪しい旅商人
  • Roguelike1StageSafeHouseEnter
    統合戦略: 安全な片隅
  • Roguelike1StageEncounterEnter
    統合戦略: 思わぬ遭遇
  • Roguelike1StageCambatDpsEnter
    統合戦略: 作戦
  • Roguelike1StageEmergencyDps
    統合戦略: 緊急作戦
  • Roguelike1StageDreadfulFoe
    統合戦略: 悪路凶敵
  • StartGameTask クライアントの起動に失敗 (client_type と設定ファイルの互換性なし)
  • Todo Other

SubTaskExtraInfo

{
    "taskchain": string,           // 一連のタスク
    "class": string,               // サブタスクのクラス
    "what": string,                // Information タイプ
    "details": object,             // Information 詳細
    "uuid": string,                // UUID
}

多用される whatdetails フィールドの値

  • StageDrops
    ステージドロップインフォメーション

    // 対応する詳細フィールドの例
    {
        "drops": [              // dropped items
            {
                "itemId": "3301",
                "quantity": 2,
                "itemName": "アーツ学1"
            },
            {
                "itemId": "3302",
                "quantity": 1,
                "itemName": "アーツ学2"
            },
            {
                "itemId": "3303",
                "quantity": 2,
                "itemName": "アーツ学3"
            }
        ],
        "stage": {              // レベル情報
            "stageCode": "CA-5",
            "stageId": "wk_fly_5"
        },
        "stars": 3,             // ステージクリア評価
        "stats": [              // ドロップの統計
            {
                "itemId": "3301",
                "itemName": "アーツ学1",
                "quantity": 4
            },
            {
                "itemId": "3302",
                "itemName": "アーツ学2",
                "quantity": 3
            },
            {
                "itemId": "3303",
                "itemName": "アーツ学3",
                "quantity": 4
            }
        ]
    }
  • RecruitTagsDetected
    採用タグの検出

    // 対応するフィールドの詳細
    {
        "tags": [
            "COST回復",
            "防御",
            "先鋒タイプ",
            "補助タイプ",
            "近接攻撃"
        ]
    }
  • RecruitSpecialTag
    特別な採用タグの検出

    // 対応する詳細フィールドの例
    {
        "tag": "上級エリート"
    }
  • RecruitResult
    公開求人結果

    // 対応する詳細フィールドの例
    {
        "tags": [                   // 全てのタグ, 5つまで
            "弱化",
            "減速",
            "術師タイプ",
            "補助タイプ",
            "近接攻撃"
        ],
        "level": 4,                 // レアリティのトータル
        "result": [
            {
                "tags": [
                    "弱化"
                ],
                "level": 4,         // レアリティに対応するタグ
                "opers": [
                    {
                        "name": "プラマニクス",
                        "level": 5  // レアリティに対応するオペレーター
                    },
                    {
                        "name": "メテオリーテ",
                        "level": 5
                    },
                    {
                        "name": "ワイフー",
                        "level": 5
                    },
                    {
                        "name": "ヘイズ",
                        "level": 4
                    },
                    {
                        "name": "メテオ",
                        "level": 4
                    }
                ]
            },
            {
                "tags": [
                    "減速",
                    "術師タイプ" 
                ],
                "level": 4,
                "opers": [
                    {
                        "name": "ナイトメア",
                        "level": 5
                    },
                    {
                        "name": "グレイ",
                        "level": 4
                    }
                ]
            },
            {
                "tags": [
                    "弱化",
                    "術師タイプ"
                ],
                "level": 4,
                "opers": [
                    {
                        "name": "ヘイズ",
                        "level": 4
                    }
                ]
            }
        ]
    }
  • RecruitTagsRefreshed
    公開求人タグの更新

    // 対応する詳細フィールドの例
    {
        "count": 1,               // スロットが更新された回数
        "refresh_limit": 3        // 更新最大回数
    }
  • RecruitTagsSelected
    公開求人タグの選択

    // 対応する詳細フィールドの例
    {
        "tags": [
            "減速",
            "術師タイプ"
        ]
    }
  • RecruitSlotCompleted
    公開求人スロットの完了

  • RecruitError
    リクルート認識時のエラー

  • EnterFacility
    施設へ入る

    // 対応する詳細フィールドの例
    {
        "facility": "Mfg",  // 施設名
        "index": 0          // 施設 ID
    }
  • NotEnoughStaff
    オペレーター不足

    // 対応する詳細フィールドの例
    {
        "facility": "Mfg",  // 施設名
        "index": 0          // 施設 ID
    }
  • ProductOfFacility
    施設の生産

    // 対応する詳細フィールドの例
    {
        "product": "Money", // 生産物
        "facility": "Mfg",  // 施設名
        "index": 0          // 施設 ID
    }
  • StageInfo
    自動戦闘ステージの情報

    // 対応する詳細フィールドの例
    {
        "name": string  // 施設名
    }
  • StageInfoError
    自動戦闘ステージの情報エラー

  • PenguinId
    Penguin ID

    // 対応する詳細フィールドの例
    {
        "id": string
    }
  • DepotInfo
    倉庫のアイテムの認識結果

    // 対応する詳細フィールドの例
    "done": bool,       // 認識が完了したかどうか,false はまだ進行中かどうか(処理中のデータ)
    "arkplanner": {     // https://penguin-stats.cn/planner
        "object": {
            "items": [
                {
                    "id": "2004",
                    "have": 4,
                    "name": "上級作戦記録"
                },
                {
                    "id": "mod_unlock_token",
                    "have": 25,
                    "name": "モジュールデータ"
                },
                {
                    "id": "2003",
                    "have": 20,
                    "name": "中級作戦記録"
                }
            ],
            "@type": "@penguin-statistics/depot"
        },
        "data": "{\"@type\":\"@penguin-statistics/depot\",\"items\":[{\"id\":\"2004\",\"have\":4,\"name\":\"上級作戦記録\"},{\"id\":\"mod_unlock_token\",\"have\":25,\"name\":\"モジュールデータ\"},{\"id\":\"2003\",\"have\":20,\"name\":\"中級作戦記録\"}]}"
    },
    "lolicon": {     // https://arkn.lolicon.app/#/material
        "object": {
            "2004" : 4,
            "mod_unlock_token": 25,
            "2003": 20
        },
        "data": "{\"2003\":20,\"2004\": 4,\"mod_unlock_token\": 25}"
    }
    // 現在は ArkPlanner と Lolicon 形式のみ対応、今後対応するサイトが増える可能性あり
  • UnsupportedLevel
    サポートされていないレベル