DQMSLを完全自動プレイしてみた
今年の5月から、ここの管理者DQeiteさんにAndroidの開発を教えていただいているのですが、ふとadb(Android Debug Bridge)を使えば、「クエストを自動化できるのでは!?」と思い試してみました。
Author:えび太
やっている事は簡単
Androidスマホの座標を計算して、タップとスワイプでDQMSLの操作をエミュレートしているだけです。例えば、私のスマホで上に移動させたい場合は、
adb shell input swipe 360 278 360 854
を、スマホに対して送ってあげると、マップの上に移動します。
adb shell input swipe x1 y1 x2 y2
「x1とy1」がスワイプ開始位置、「x2とy2」がスワイプ終了位置です。タップの場合はシンプルで
adb shell input touchscreen tap 360 799
と、タップする座標を指定するだけです。座標位置を「宝箱」の位置などを指定すると、自動で宝箱を開けたりできます。

真・女神転生V - Switch
真・女神転生V - Switch
連続してコマンドは送らない
adbコマンドは、連続で送ることはできますが、DQMSL側の動作が終わってからでないと空振りとなってしまいます。
コマンドとコマンドの合間に少し休憩(スリープ)を入れると問題が解消されます。PowerShellのスリープコマンドを指定します。(単位はミリ秒)
powershell Start-Sleep -Milliseconds 500
これは、0.5秒待ちます。使い方は、以下の通りです。これで、フロアを2つ上に移動します。
adb shell input swipe 360 278 360 854 powershell Start-Sleep -Milliseconds 500 adb shell input swipe 360 278 360 854
モンスターとの戦闘の場合
移動後にモンスターとの戦闘がある場合は、長めにスリープすればよいだけです。
adb shell input swipe 576 799 0 799 powershell Start-Sleep -Milliseconds 7000
フロアを右に移動して、モンスターと戦闘がある場合です。
操作を自動化するには?
すべての操作コマンドを、Windowsのバッチファイルに書いてあげれば、完全に自動化できます。
YouTubeプレイ動画
実際に「禁じられし書庫」を自動プレイした動画をアップしました。
最後に
バトルオートが実装されたおかげです。
コメント