編成を考える(その3)
最後に残った人形入れ替え関数の実装です
今後何かと使いまわしするだろうと考えて関数化しましたが特に難しい操作ではありません
function P_exchange_doll(src,dstn)
//部隊の人形を入れ替える
//空き家には使わない(今のところ)
//src,dstnは顔写真ファイル名
//戻り値は正常終了:FALSE、異常:TRUE
tim = gettime() + 15 //src顔が無かった場合のタイムオーバー判定
repeat
sleep(1)
ifb tim < gettime() then //タイムオーバー(src未検出)
print "Undetect src:" + src
result = true
exit
endif
until chkimgx(src, NOXid, 140, 240, 1060, 500, 1, 5, -1) //srcが居る
print "Detect:" + src
repeat
P_adb_BTN(G_IMGX_X + delta_X , G_IMGX_Y + delta_Y , 0, src) //肖像クリック
sleep(3)
until chkimgx("cancel.bmp", NOXid, 0, 0, 0, 0, 1, 5, -1)
tim = gettime() + 30 //dstn顔が無かった場合のタイムオーバー判定
while true
ifb chkimgx(dstn, NOXid, 0, 0, 0, 0, 1, 5, -1) then //相手(416)がいる
P_adb_BTN(G_IMGX_X + delta_X , G_IMGX_Y + delta_Y , 200 , dstn) //肖像クリック
sleep(2)
break
elseif tim < gettime() then //タイムオーバー(dstn未検出)
print "Undetect dstn:" + dstn
result = true
exit
else //dstnいないときはスクロール
print "Search dstn scroll down"
P_sc_down
endif
sleep(2)
wend
tim = gettime() + 15 //編成画面に戻らない場合のタイムオーバー判定
repeat
sleep(1)
ifb tim < gettime() then
print "Exchange result is unexpected status"
result = true
exit
endif
until chkimgx("back_home.bmp",NOXid,0, 20, 140, 100, 1, 10, -1)
print "Success " + src + " to " + dstn
result = false
fend
前の記事の通り、この関数では人形同士の入れ替え前提にしているので空き家への設定は考慮してません
顔写真代わりに空きスロットシンボル突っ込めば、あとは検索範囲まわりを整理すればほぼそのまま使えると思います
もっと汎用的に使う考察も面白いかもしれませんがそうなると装備やら陣形も視野に入ってくるので個人的には心のハードルが高いです