できたよ
// メイン処理-----------------------------------------------------------------------------
// 相対座標対応処理
PUBLIC TOWN_ID=GETID("777タウン.net")
PUBLIC NEW_ID
ACW(TOWN_ID)
MOUSEORG(TOWN_ID)
While True
// Enterキー押下時に処理を停止させる
if GETKEYSTATE(VK_RETURN) then exit
// メイン処理(ウィンドウ名にて判定)
NEW_ID = GetID(GET_ACTIVE_WIN)
Select Status(NEW_ID, St_Title)
Case "コインをチャージする"
Clkitem(NEW_ID,"はい")
Sleep(1) // 二重押し回避処理
Case "目押し"
Clkitem(NEW_ID,"自動でドル箱を下皿へ戻す",CLK_BTN)
Clkitem(NEW_ID,"コイン購入")
Clkitem(NEW_ID,"お願い")
Case "ドル箱を下皿に戻す"
Clkitem(NEW_ID,"はい")
Case "777タウン.net"
Kishu(Kishu) // 指定機種判別処理に飛ぶ (内容がわかる人は直接書き換えるのも有り)
Sleep(0.2) // 押し順ナビを無視する対策の待機時間(環境により調整が必要?)
Case "エラー"
// エラーウィンドウ表示時に画面全体のスクリーンショットを取る(他アプリが原因の可能性が有るため)
SAVEIMG("Error")
// Beep音にてエラーをユーザに通知する
sound("BEEP")
// これ以上の処理は無駄なので終了
break
default
Auto()
Selend
Wend
// メイン処理ここまで---------------------------------------------------------------------
Procedure Auto()
NEW_X = G_MOUSE_X - STATUS(TOWN_ID, ST_X)
NEW_Y = G_MOUSE_Y - STATUS(TOWN_ID, ST_Y)
CTRLWIN(TOWN_ID,ACTIVATE)
BTN(LEFT,CLICK,700,420,0)
sleep(0.1)
AUTO_ID = GETID("オートプレイ")
ifb FALSE = Clkitem(AUTO_ID,"自動でドル箱を下皿へ戻す",CLK_BTN) then
repeat
ret = Clkitem(AUTO_ID,"閉じる",CLK_BTN)
until ret = TRUE
MsgBox("ボヌス中です。OKを押すとマクロ復帰します。")
CTRLWIN(TOWN_ID,ACTIVATE)
exit // メインループに戻る
endif
repeat
ret = Clkitem(AUTO_ID,"スタート",CLK_BTN or CLK_BACK)
until ret = TRUE
MMV(NEW_X,NEW_Y)
CTRLWIN(NEW_ID,ACTIVATE)
While True
sleep(1)
// 復帰待ち処理(ウィンドウIDにて判定)
Select GetID(GET_ACTIVE_WIN)
Case TOWN_ID
print "TOWN"
repeat
ret = Clkitem(AUTO_ID,"終了",CLK_BTN)
print ret
until ret = TRUE
CTRLWIN(TOWN_ID,ACTIVATE)
exit // メインループに戻る
Case AUTO_ID
print "AUTO"
repeat
ret = Clkitem(AUTO_ID,"終了",CLK_BTN)
print ret
until ret = TRUE
CTRLWIN(TOWN_ID,ACTIVATE)
exit // メインループに戻る
default
ifb Clkitem(AUTO_ID,"コイン購入",CLK_BTN or CLK_BACK) then
sleep(1) // 二重押し回避処理
Clkitem(AUTO_ID,"スタート",CLK_BTN or CLK_BACK)
endif
ifb ChkBtn(AUTO_ID,"ストップ") then // ボヌス発生を判定
repeat
ret = Clkitem(AUTO_ID,"終了",CLK_BTN or CLK_BACK)
until ret = TRUE
SELECT SLCTBOX(SLCT_BTN,10,"ボーナス発生","マクロ復帰","マクロ一時停止")
CASE SLCT_2 // マクロ一時停止
MsgBox("OKを押すとマクロ復帰します")
Selend
CTRLWIN(TOWN_ID,ACTIVATE)
exit // メインループに戻る
endif
Selend
Wend
fend
マクロ中にほかの窓をアクティブにすると
自動的にオートプレイに切り替え。
サミタの窓をアクティブにした時点でマクロに復帰。
オート中のコイン補給は自動、
ボヌス発生時は窓を出して復帰するかを聞いてくる。
何も入力しないと10秒後に強制マクロ復帰。(寝落ち防止のため)
一時停止の場合はOKを押すまで一時停止。
こんなとこかな。