【モンハンライズ】マカ錬金に使用するモンスター上位素材を自動収集するプログラムを作った【MH:Rise】

またまたモンハン自動化ネタ。本編より楽しいです。

内容

今回も動画をご用意いたしました。
www.youtube.com

オトモ隠密隊派遣を利用して稼ぐ感じですね。

5回クエストを消化するたびに受け取ることが出来ますが、クエストを消費する部分については偉大なる先人様である 『こちゃてす様』 が作成されたプログラムを拝借させていただきました。

カムラポイントが尽きない限り延々と繰り返してくれます。カムラポイントがないよ!という方については、こちらも『こちゃてす様』が自動収集プログラムを公開してくれているので是非ご参考に。

実行環境

参考までに私の実行環境ですが、本体は通常版Switchの初期ロット/ソフトはパッケージ版になります。

そして利用しているマイコンは以下。(画像クリックでAmazonの商品ページに飛びます)
名称長いですが『KOOKYE Pro Micro ATmega32U4 5V/16MHz Module Board マイクロコントローラーボード Arduino Leonardo Replace ATmega328 Arduino Pro Miniと互換 3個セット』という商品名です。
こちらは他製品比較で少々お高めですが、『ATmega32U4』というチップを搭載していれば動くはずです。

コード

参考までに今回作成した関数部分を公開します。
何度も検証して正常動作を確認出来ておりますが、利用される方は各々で検証ください。

呼び出す順番は以下の通り。
1〜3までは初期処理として設定し、それ以降の4〜10でループを組む形になります。

1. 里内移動関数(6:集会所準備エリア)
2. 隠密隊派遣受付前まで移動する関数
3. 隠密隊派遣関数
4. 里内移動関数(7:集会所)
5. クエスト消費関数(こちゃてす様作成のものを参照。5回繰り返してください。)
7. 里内移動関数(6:集会所準備エリア)
8. 隠密隊派遣受付前まで移動する関数
9. 隠密隊成果物受け取り関数
10. 隠密隊派遣関数

里内移動関数

こちゃてす様が作成された関数に『集会所 準備エリア』までの移動処理を追加しています

//里内移動関数
void Map_teleport(int select) {
// 里内移動ショートカット呼び出し:里内でのマイナスボタンの挙動を「タイプ2」に変更しておく必要あり
pushButton(Button::MINUS, 750, 1);
if (select == 7) {
// クエスト受注時に利用する処理
// 集会所まで移動
pushHatButton(Hat::UP, 400, 1);
} else if (select == 6) {
// 隠密隊派遣する際に利用する処理
// 集会所 準備エリアまで移動
pushHatButton(Hat::UP, 400, 2);
} else {
pushHatButton(Hat::DOWN, 450, select);
}
// 決定
pushButton(Button::A, 1200, 1);
}

隠密隊派遣受付前まで移動する関数

新規作成。集会所準備エリアに入ってから呼び出します。

// ネコ前まで移動
void moveFrontOfCat() {
// 集会所 準備エリアに移動する
Map_teleport(6);
// キャラ移動
Transport_stick(45,300);
Transport_stick(90,200);
}

隠密隊派遣関数

ネコに話しかけて派遣するまでの一連の処理になります。
アキンドングリを使うかどうかは関数呼び出しの際に指定してください。1で使う/0で使わない になります。

// 隠密隊派遣関数
void covertTroops(int nuts) {
// 話しかける
pushButton(Button::A, 2000, 1);
// 「オトモ隠密隊」にカーソル移動&決定
pushHatButton(Hat::DOWN, 500, 1);
pushButton(Button::A, 500, 2);
// 調査先選択:「百竜夜行」を選択 / 百龍夜行は出現ランダムなので無い場合は「溶岩洞」が選択される
pushButton(Button::A, 1500, 1);
pushHatButton(Hat::UP, 500, 1);
pushButton(Button::A, 500, 2);
// オトモ選択:オトモアイルーを上から4頭選出(※要事前ソート)
pushButton(Button::A, 500, 6);
// アキンドングリ利用チェック
if (nuts == 1) {
// アキンドングリを利用するパターン。Xボタンを押下する
pushButton(Button::X, 1200, 1);
}
// 決定
pushButton(Button::A, 500, 2);
// 会話終了
pushButton(Button::B, 500, 2);
// 会話終了まで待ち時間を挟む
delay(3000);
}

隠密隊成果物受け取り関数

派遣後、5回クエストを消化次第実行する形になります。

// 隠密隊成果物受け取り
void receiveTroopRewards() {
// 話しかける
pushButton(Button::A, 2000, 1);
// 「オトモ隠密隊」にカーソル移動&決定
pushHatButton(Hat::DOWN, 500, 1);
pushButton(Button::A, 500, 2);
// 受け取る
pushButtonContinuous(Button::A, 6000);
// 会話終了
pushButton(Button::B, 500, 2);
delay(3000);
}

まとめ

今回はモンスター上位素材を自動収集するプログラムのご紹介でした。
ご自由に流用いただいて構いません。もし不明点があればTwitterにて承ります。
「そもそもどうやって作るんだよ」「マイコンってなんやねん」って方についても是非(笑)

以前投稿したネタ

engineer-lime.com

コメントを残す