周回終了時の処理(失敗)
敵の司令部を占領したり敵を全滅させたりして戦役終了後にホーム画面まで戻る過程で最後のドロップがあったりなかったりします
適当に戻るまで連打しても問題無い気はしていたのですが何となく許せなかったのと、まぁ将来的に何かあった時に備えてそれなりに構えておきたいですよね(多分何もないでしょうけど)
tim = gettime() + 60 //経過観察用
while true
ifb chkimgx("result.bmp",NOXid,100,200,210,260,1,5,-1) then //戦績表示画面
P_adb_BTN(G_IMGX_X + delta_X + randomx(60), G_IMGX_Y + delta_Y + randomx(30), 500+randomx(300), "Pass result") //結果画面パス
elseif chkimgx("doll_get.bmp",NOXid ,50, 170, 120, 225, 1, 20, -1) then //人形ドロップ画面
P_adb_BTN(G_IMGX_X +400 +randomx(60),G_IMGX_Y +300 +randomx(30),500+randomx(300),"Doll get") //ドロップ画面パス
elseif chkimgx("back_home.bmp", NOXid,80, 55, 140, 110, 1, 10, -1) then //異常:MAP選択画面
P_adb_BTN(G_IMGX_X + delta_X + randomx(50), G_IMGX_Y + delta_Y + randomx(50),100,"Error, Try back to home") //ホーム戻りを試みる
elseif chkimgx("home_battle.bmp",NOXid,895, 540, 1025, 605, 1, 10, -1) //ホーム画面確認
break
elseif chkimgx("support_result.bmp", NOXid,65, 390, 330, 445, 1, 10, -1) //遠征帰還画面確認
break
elseif tim < gettime() then //タイムオーバー(異常終了)
print "Unexpected condition, abort auto pilot."
exitexit
endif
sleep (5)
wend
前の記事に書いたプランモードから自動終了で抜けてきたあたりで到達するコードになります
実は色々試行錯誤しています、最初はRepeat – Untilループで終端をホーム画面判定にしていたら遠征帰還画面にハマってこんな形になってます
いっそ戦績画面と人形ドロップ画面の処理をメインループに突っ込む方がシンプルになりそう、そうしよう