強化/分解を考える(分解編:低レア)
強化と分解を比べると分解の方が楽に見えます、自動選択選べば対象になる人形を一括して選択してくれますし
あとは解体実行すればスッキリ
procedure P_retire()
// 工廠内から処理開始
ifb chkimgx("recycle.bmp", NOXid, 50, 425, 125, 495, 1, 10, -1) then
P_adb_BTN(G_IMGX_X + delta_X , G_IMGX_Y + delta_Y ,100,"Retire") //回収ボタン押す
endif
repeat //対象選択ボタン表示待ち
sleep(0.5)
until chkimgx("feed_set.bmp", NOXid, 325, 175, 400, 255, 1, 10, -1)
P_adb_BTN(G_IMGX_X + delta_X , G_IMGX_Y + delta_Y ,100,"Feed set")
tim = gettime() + 10 //在庫無いと画面遷移しないのでタイムオーバー判定する
repeat
sleep(2)
ifb tim < gettime() then
print "There is no doll to retire"
exit
endif
until chkimgx("cancel2.bmp", NOXid, 40, 25, 105, 105, 1, 10, -1)
repeat
sleep(0.5)
until chkimgx("auto_set.bmp", NOXid, 1100, 635, 1265, 715, 1, 10, -1)
P_adb_BTN(G_IMGX_X + delta_X , G_IMGX_Y + delta_Y ,100,"Auto set")
repeat
sleep(0.5)
until chkimgx("confirm.bmp", NOXid, 1100, 635, 1265, 715, 1, 10, -1)
P_adb_BTN(G_IMGX_X + delta_X , G_IMGX_Y + delta_Y ,100,"Confirm")
repeat
sleep(0.5)
until chkimgx("retire.bmp",NOXid, 1135, 865, 1245, 925, 1, 10, -1)
P_adb_BTN(G_IMGX_X + delta_X , G_IMGX_Y + delta_Y ,100,"Retire Go")
recycle = false
fendいちいち断り入れてませんが上記はあくまで実装例として検討した説明用です、このまま使って何が起こったとしても関知しません
(色々足りないのでそもそも動かないと思いますけど)
これまでの記事に書いた通り、ホームから工廠への移動は別処理で行い、なんらかの手段で工廠内まで移動したと確信したところで呼び出すイメージです
NOX画面サイズを固定しているのであれば各クリックコマンドについては座標決め打ちしても当然動作に支障はありません
見つけたボタン押しに行ってるな感がアピールできるくらいでしょうか
delta_X,YはCHKIMGXとNOX_ADBでの操作との座標原点ズレ補正用定数です
注意点は分解できる人形が存在しない場合、一瞬エラー表示が出たあと選択画面への移動がキャンセルされます
0-2周回だとまず気にしなくていい状況だとは思いますが使いまわし等を考えると実装しておくべきでしょう
操作ごとにループで画面遷移 待ち しますが実際には画面が切り替わらないので不要な部分もあると思います
あとクリックコマンドそのものがスルーされるケースは想定されていない作りです、画面全体の切り替えが無い状況であれば多重ifよりはシーンNo.をフラグ代わりに持っておいてselect使う方がスマートになりそうです
いまいち地味なコードですが強化処理でも使えるので無駄にはなりません
その前にもう一個分解処理作らないとダメですけど