DQMSL完全自動プレイを再現してみた

スポンサーリンク

DQMSLを完全自動プレイしてみた

今年の5月から、ここの管理者DQeiteさんにAndroidの開発を教えていただいているのですが、ふとadb(Android Debug Bridge)を使えば、「クエストを自動化できるのでは!?」と思い試してみました。

 えび太

やっている事は簡単

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

と、タップする座標を指定するだけです。座標位置を「宝箱」の位置などを指定すると、自動で宝箱を開けたりできます。

Amazon | 〔デラックス版〕ドラゴンクエストX 目覚めし五つの種族 オフライン【Amazon.co.jp限定特典】ゲーム内アイテム『ドラゴンガイアコイン×1個』 -Switch | ゲーム
〔デラックス版〕ドラゴンクエストX 目覚めし五つの種族 オフライン【Amazon.co.jp限定特典】ゲーム内アイテム『ドラゴンガイアコイン×1個』 -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プレイ動画

実際に「禁じられし書庫」を自動プレイした動画をアップしました。

最後に

バトルオートが実装されたおかげです。

コメント

タイトルとURLをコピーしました