2022/07/03

【MHR:S×Arduino02】マカ錬金回し、隠密隊、交易自動化(闘技ラージャン突撃、サンブレイク対応版)

 ※本記事は、モンスターハンターライズ サンブレイク(MHR:S)の闘技大会での敗北によるクエスト回数の消費とマカ錬金・神気への素材投入、隠密隊や交易品の回収を自動化するプログラムについて解説した記事です。モンハンライズサンブレイクの操作をArduino Leonardoで自動化しております。「Arduinoって何?」って方はポケモン剣盾の00回目の記事を、Arduinoの環境構築(ライブラリ含む)は01回目の記事をご覧ください。

 

本記事で紹介するプログラムは、過去にモンハンライズ(アプデ前)用に作成したプログラムを、サンブレイクでのマスターランクに対応するように改良したものとなります。

基本的にはライズの 05回目の記事と同様となりますので、合わせてご覧ください。

 

2022/07/16追記:闘技大会MR★6の激昂ラージャンに対応させたVer1.1を公開しました。少しだけ上位ラージャンよりも早く、安定して乙ります。MR50で解禁されるため、MR50に達していない場合はVer1.0をご利用ください。

 

本記事では、このプログラム(スケッチ)でできることや原理を解説したうえで、スケッチを配布しています。とにかくスケッチが欲しいという方は下へと読み飛ばしてください。


 

きっかけ、動機

モンスターハンターライズの大型アップデートとして、サンブレイク発売しました!新モンスター、高難易度なクエスト、新スキル、そしてマカ錬金

ストーリーをクリアし、MR仕様のマカ錬金が解禁されましたので、過去のプログラムを流用してお守りガチャを自動化します。

①ウロコモリトカゲをしばいて、錬金に必要なモンスター素材を回収
②貯まった素材を投入しつつ、闘技大会クエストを失敗してクエスト回数消費(+隠密隊と交易によるアイテム回収)

の2つを調整しましたので、本記事で②を、こちらにて①を公開します。

これで何ができるの?

過去に作成した、アプデ前ライズ用プログラム(上位用)を、サンブレイクのマスターランク用に改良しました。

闘技大会05のラージャン(上位)を受注し、1乙でクエスト失敗することでクエスト回数を進め、マカ錬金、隠密隊、交易をこなします。5回ごとに隠密隊と交易を、10回ごとにマカ錬金の投入も自動化するため、護石集めや素材、迅錬丹の回収を勝手に行います。素材回収はおまけ程度なので、錬金素材の回収は同時公開のMHR:Sの01回目の記事をご覧ください。

原理、おおまかな流れ

概要

本プログラムでは、

「闘技大会ラージャンに挑み、1乙でクエスト失敗となる」

という動作を繰り返します。

そのうえで、5クエスト(5乙)ごとにルームサービスに話しかけ、隠密隊と交易船のアイテムを回収(or売却)します。 

闘技大会のクエストは上位であり、基本的な動き自体に前回プログラムからの変更はありません。選択項目が増えたことなどによるわずかな変更のみです。新たなエリアである観測拠点ではなく、カムラの里の集会所で自動化を実行します


旧プログラム、旧ライズからの変更点、注意点について

はじめに、旧プログラムから改良、修正した点を列挙しておきます。

①闘技大会クエストの選択について

サンブレイクのアプデ、マスターランク開放に伴い、闘技大会もマスターランクが追加されました。闘技大会を選択すると、マスターランクか、下位・上位かの選択肢が追加されたため、Aボタンを押す回数が1回増えました

 なお闘技大会クエスト自体は、2ヒットで1乙できるラージャンのまま変更ありません。

 

②マカ錬金素材の投入について

サンブレイクのストーリーをクリアすると、マカ錬金・神気などのMRの錬金が追加されます。本プログラムでは、マカ錬金・神気を実行するように選択を変更しています。

錬金素材を投入する際のリストについて、錬金専用である狩友チケットとマカ油(アプデで追加)が必ずリスト先頭にくるようになりました。後述するウラ交易にてマカ油を入手する可能性があるため、リストがずれないようにするためにはマカ油を1個以上所持した状態、あるいはウラ交易をオフにした状態で実行してください。

さらに、今回からの新要素として迅錬丹が追加されました。迅錬丹を消費すれば、クエスト回数を消費せずに錬金1回を完了することができます。それに伴い、錬金素材投入後に使用の有無を聞かれるため、使用せずに錬金予約するように操作を改善しています。 迅錬丹を1個ももっていないと使用の有無を聞かれず操作がずれるため、1個以上所持した状態で実行してください(ウラ交易で入手可能)。

 

また、マカ錬金が完了しているときには受け取るにカーソルが最初から合っていたり、錬金素材のリストにて所持数順の並び替えを毎回する必要がなくなったりと、プレイヤーが操作しやすいアプデがされています。そのような微妙な操作の変更もしています。


③オトモ隠密隊について

オトモ隠密隊もMR解禁により、MRのフィールドへ派遣できるようになりましたので、素材集めの観点からMRのクエストを対象として派遣するように変更しました。不確定で出現する「キュリア調査」(=百竜夜行)の報酬がおいしいので、MRフィールドの選択肢の1番最後を選択します。キュリア調査が出ていない場合は城塞高地を選択します。

地味に、オトモを出発させたときに、Aボタンの入力が1回増えています。

 

④オトモ交易について

オトモ交易の操作に変更点はありません

ただし、サンブレイクからウラ交易が追加され、設定しておくことで通常の交易の代わりに、金策アイテムや迅錬丹、マカ油などを得られます。確実に通常よりお得なため、設定しておくことをおすすめします。

なお、上記の錬金素材投入において所持、未所持の違いで操作に影響が出ます。そのため、ウラ交易で手に入る各種マカ油や迅錬丹は1個以上所持した状態で実行してください



これより下は、前回記事のほぼコピペです。

前回と同じ説明は簡潔に留め、変更箇所のみ黄色で表記します。


隠密隊、交易船について

本プログラムでは、隠密隊が帰ってきて、交易船アイテムがそこそこ溜まってる5クエストごとにアイテム回収を行います。

ラージャン5回の後、ループを中断して集会所準備エリアへマップ移動し、すぐ右にいるルームサービスに話しかけます。

隠密隊と交易船のうち、隠密隊のみカムラポイントを必要とします。カムラポイントが不足している等で隠密隊を使いたくない場合はキャンセルすることができます。スケッチの最初に固定値として設定しているommitsuGo = 1を0に変更することで隠密隊の使用をキャンセルできます。

また、隠密隊、交易船それぞれについて、スケッチの最初に固定値として設定しているommitsuUri = 0、koekiUri = 0をそれぞれ1にすることで、アイテムを受け取らずに売るようになります。

上記で記述しているように、ウラ交易を設定しておくことをおすすめします


マカ錬金について

本プログラムでは10クエストごとにマカ錬金についての操作を行います。

ラージャン10回の後、ループを中断して集会所エリアへマップ移動し、クエスト受付の隣にいるギルドストアに話しかけます。

 ギルドストアに話しかけると、上から順に 買う、売る、福引(セール時のみ)、マカ錬金、Amiboを読み込む、世間話 の項目があります。セールの有無に関わらずマカ錬金は下から3番目となるので下から上へカーソルを動かします。

錬金術一覧を開いたら、まずは1番下「護石を受け取る」を選択します。錬金結果の護石が表示されるので、「すべて受け取る」を選択します。

受け取って予約が空になったら、錬金術・神気」を選択します。護石1個当たりMR用の錬金素材200ptを消費し、クエスト1回あたり護石5個分、クエスト10回で50個分予約します。

ここから、錬金に使用する素材の選択となります。以下の「作成したスケッチ」にて示しますプログラムの中で定義されている1番上の関数「void renkinSelect()」のfor文(10回繰り返し)の中{カッコ内}を編集して設定します。ご自身の所持しているモンスター素材の種類や個数の状況に合わせてスケッチを書き換えてください。

錬金術・神気」を選択して素材の選択画面に移ります。ここでは、並び順として「評価値順」か「所持数順」かの変更ができます。両者はRスティック押し込み(RCLICK)をすることで変更できます。アプデにて最後にどちらの順番にしたかが保持されるようになったため、自動化開始前に使用する順番に切り替えておいてください。

 その後、指定されたページ数(LRで移動)、行数(十字キー上下で移動)へ移動し、指定した個数を投入します。ここでは設定を容易にするため、「materialList(int page, int line, int piece)」関数を用意しております。

 「materialList(int page, int line, int piece)」関数では、

int pageの値-1だけRボタンを入力し、int pageのページ番号まで移動する。

②上下ボタンにて、ページ内の上から(int line)番目(1~7)の素材を選択する。ただし、上から4番目までは下ボタン、5番目以降は上ボタンを押して移動する。

③使用する素材数として(int piece)個を投入します。ただし、int pieceの値によって動作が変化します。

3-A. int pieceが10以上であれば、右ボタンを押して値を10だけ増加させます。その後、int pieceの値を-10したものとして扱い、int pieceが10未満になるまでAを繰り返し、1~9であればBの操作を行います。

3-B. int pieceが0以上9以下であれば、上ボタンをその回数だけ押して値を増加させます。

3-C. A, Bいずれの条件も満たさない場合、つまりはint pieceが負の整数であった場合、その値に関わらず下ボタンを1回だけ押します。この時、

つまりのところ、値が0以上であれば指定した値だけ使用数を増加、マイナスであれば全ツッパします。

④指定した素材を投入後、②と反対の上下操作を行い、カーソルを1番上に戻します。


以上①~④を「materialList(int page, int line, int piece)」関数にて行います。

なお、素材の素材を複数種類投入したい時は、この関数を続けて使うことができます。その場合は、2つ目以降のint pageについて、

「(目的のページ数) - (1つ前のページ数) +1」を指定してください。

1つ目が3ページ目、2つ目が7ページ目だったら、2つ目のint pageは5。

 

以上、素材を投入したら、上ボタン>Aボタン で「決定」して1クエスト分の予約が終了します。あとは、同様の操作を10回繰り返し、最後にBボタン連打でギルドストアでの会話を終了します。 

 

準備、必要なもの

本スケッチでは、マイコンを挿す前に以下の準備が必要となります。

初期条件は以下の通り

0. プログラム内の注意事項などを必ず確認し、指定個所を編集する
1. 設定はオートセーブ有(執筆者環境のコンフィグ等で設定しているため、適宜スケッチ改変を推奨)
2. あらかじめ闘技大会クエストを1~5まで開放する。またMRのストーリーを終え、マカ錬金・神気を開放する
3. 隠密に行かせるオトモアイルー4匹をリストの1番上に並び替え
4. 錬金(10回)を予約、隠密隊を出発、交易のアイテムやオトモを設定した後、集会所へ移動(オフライン)。観測拠点ではないので注意
5. (推奨)装備BOXを開き、装備の並びを整理する(自動化時に取得した護石をリスト後ろ側に集めるため) 
6. ウラ交易を設定している場合、所持していないマカ油の入手により錬金素材リストがずれることがあるため、あらかじめ入手しておく。また、迅錬丹も入手する。どちらもウラ交易にて。
7. マップを開ける状態でマイコンを挿してスタート

作成したスケッチ

ラージャン突撃自動化のスケッチはこちら。Ver1.1

2022/07/16追記:闘技大会MR★6の激昂ラージャンに対応させたVer1.1を公開しました。少しだけ上位ラージャンよりも早く、安定して乙ります。MR50で解禁されるため、MR50に達していない場合はVer1.0をご利用ください。 

旧スケッチ、Ver1.0ははこちら

 

本スケッチを実際に使用した動画はこちら(MHR:S-01と合わせて紹介)↓


/**
* モンハンライズ サンブレイク対応版、闘技大会ラージャンにキルされにいく。
* 5周ごとに交易と隠密隊アイテムを回収or売却、
* 10周ごとに店へ行き護石錬金の受け取り&10回を予約する。
*
* 必ず注意事項をはじめ、すべて理解したうえで実行すること(必要なモンスター素材を失う恐れあり)
*
* 初期条件は以下の通り
* 0. 以下の注意事項などを必ず確認し、指定個所を編集する
* 1. 設定はオートセーブ有(執筆者環境のコンフィグ等で設定しているため、適宜スケッチ改変を推奨)
* 2. あらかじめ闘技大会クエストを1~5まで開放する。またMRのストーリーを終え、マカ錬金・神気を開放する。
* 3. 隠密に行かせるオトモアイルー4匹をリストの1番上に並び替え
* 4. 錬金(10回)を予約、隠密隊を出発、交易のアイテムやオトモを設定した後、集会所へ移動(オフライン)。観測拠点ではないので注意。
* 5. (推奨)装備BOXを開き、装備の並びを整理する(自動化時に取得した護石をリスト後ろ側に集めるため)
* 6. ウラ交易を設定している場合、所持していないマカ油の入手により錬金素材リストがずれることがあるため、あらかじめ入手しておく。
*   また、迅錬丹も入手する。どちらもウラ交易にて。
* 7. マップを開ける状態でマイコンを挿してスタート
*/

// 注意事項!
/**
 * 必ず自己責任の上で実行してください。必要なアイテムを失う等の責任は負いかねます。
 * 注意事項や編集が必要な箇所は「!」(全角びっくり)を付けてあるので、すべて確認すること。
 * 本スケッチをマイコンに書き込む前に必ず、交易や隠密隊のON/OFFや錬金素材に使うアイテムを設定すること。
 * 交易や隠密隊のON/OFFはすぐ下の「const int」付近を、錬金素材に使うアイテムは「void renkinSelect()」を参照。
 * 隠密隊によるアイテムの取得により、錬金に投入する素材リストの評価値順や所持数順が変わる恐れあり。確証が持てなければOFF推奨。「const int」付近参照
 * 自身の環境、もっている素材にあわせて、「void renkinSelect()」を必ず編集すること。
 * とりあえずスケッチ全体を理解したうえで実行してください。
 */


#include <auto_command_util.h>

int renkin_count = 0;
int death_count = 0;


// ----------以下、設定項目----------
// 10回単位の錬金の実行回数を設定(護石50個、7500ptにつき1)!
const int renkin_max = 10;
// 交易、隠密隊の設定。隠密隊のアイテムによりリストが前後する可能性があるので注意。持っていない素材がありそうな場合はOFF推奨!
const int ommitsuGo = 1; // 隠密隊を出発させる場合は1を、させない場合は0を入力
const int ommitsuUri = 0; // 隠密のアイテムを売る場合は1を、回収する場合は0を入力
const int koekiUri = 0; // 交易のアイテムを売る場合は1を、回収する場合は0を入力


// 必ずfor文内を、投入したい素材となるように編集すること!
// 「幽玄」にカーソルをあわせた状態から、錬金予約時、素材を選択して決定する動作を10回繰り返す
void renkinSelect(){
    for (int i = 0; i < 10; i++){

      // 錬金術・神気を選択
      pushButton(Button::A, 500);
      // 素材のページ、行数(上から何段目)、投入個数(最大値を入れる場合はマイナスの値を設定)を設定!
      // ソフトを起動している間は所持数順/評価値順をRCLICKで最後に選択したものが保持されるようにアプデされた模様。
      materialList(1, 5, -10);
      // もし1回の錬金に複数種類の素材を投入する場合、以下のように追加で記述!
      /*
       * // 「目的のページ数 - 現在のページ数 +1」, 行数、投入個数。
       * 以下の例では「4ページ先」の「上から7行目」を「2個」投入し、続けて12ページ(12-4+1=9)、5行目を最大数投入
       * materialList(4, 7, 2);
       * materialList(9, 5, -10);
       */
      // カーソルを決定に移動
      pushHatButton(Hat::UP, 200);
      pushButton(Button::A, 300);
      pushHatButton(Hat::LEFT, 200);
      pushButton(Button::A, 300);

      // 迅錬丹を使わずに予約
      pushHatButton(Hat::DOWN, 200);
      pushButton(Button::A, 500);
    }
}

// ----------以上、設定項目----------


// 錬金予約時、素材リストのページ数、行数、投入個数を指定する。投入個数がマイナスの場合は1回に入れられる最大量をまとめて入れる
// pageは1以上、行数は1~7の範囲で設定
void materialList(int page, int line, int piece){
    // Rボタンにてページ移動
    pushButton(Button::R, 150, page - 1);
    // 上下ボタンにて指定行まで移動し、Aボタン
    if (line < 5){
      pushHatButton(Hat::DOWN, 150, line - 1);
    } else {
      pushHatButton(Hat::UP, 150, 9 - line);
    }
    pushButton(Button::A, 200);

    // 上ボタンにて投入個数を決定してAボタン。ただしpieceの値が0以下なら、代わりに下ボタンを1回おして最大数を投入する。
    while (piece > 9){
      pushHatButton(Hat::RIGHT, 150);
      piece = piece - 10;
    }
    if (piece >= 0){
      pushHatButton(Hat::UP, 150, piece);
    } else {
      pushHatButton(Hat::DOWN, 150);
    }
    pushButton(Button::A, 200);

    // 上下ボタンでリスト1番上まで移動
    if (line < 5){
      pushHatButton(Hat::UP, 150, line - 1);
    } else {
      pushHatButton(Hat::DOWN, 150, 9 - line);
    }
    
}


// 教官に話しかける~クエスト選択~ラージャンとの出会い~集会所に戻る
void rajangKorokoro(){
    //教官の後ろ~教官話しかけ~クエスト開始
    tiltJoystick(-20, 100, 0, 0, 1300);
    // 話しかけ、闘技大会>下位上位
    pushButton(Button::A, 1300);
    pushButton(Button::A, 500);
    pushHatButton(Hat::DOWN, 200);
    pushButton(Button::A, 1200);

    // 上から5番目のラージャンを選択
    pushHatButton(Hat::DOWN, 200, 4);
    pushButton(Button::A, 300);
    pushButton(Button::A, 2000);

    // クエスト開始
    pushButton(Button::ZR, 300);
    pushButton(Button::A, 2000);

    // 防御の低いガンナーを選択
    pushButton(Button::L, 500);
    pushHatButton(Hat::DOWN, 200, 3);
    pushButton(Button::A, 300);
    pushButton(Button::A, 1000);

    // ラージャンに向かって走りだす。ヒトタマドリ取らないように最初だけ左方向へ
    SwitchController().setStickTiltRatio(-20, -100, 0, 0);
    SwitchController().pressButton(Button::R);
    delay(15000);
    SwitchController().setStickTiltRatio(0, -100, 0, 0);
    delay(1000);

    // 虫移動、少しだけ右寄りに動き、ラージャンにぶつかる
    SwitchController().setStickTiltRatio(5, -100, 0, 0);
    SwitchController().pressButton(Button::ZL);
    pushButton(Button::ZR, 800);
    pushButton(Button::A, 800);
    pushButton(Button::B, 3500);
    SwitchController().releaseButton(Button::ZL);
    SwitchController().setStickTiltRatio(0, -100, 0, 0);
    pushButton(Button::B, 200, 5);

    // そのまま壁に向かって歩き(走ると、壁走りしてしまうため)、攻撃されてもすぐに起き上がる
    SwitchController().releaseButton(Button::R);
    delay(40000);

    // リザルト画面
    pushButton(Button::B, 100, 8);
    SwitchController().pressButton(Button::R);
    SwitchController().setStickTiltRatio(30, -100, 0, 0);

    // ロード中に、ハマり防止のため集会所入り口へマップ移動のコマンド入力
    SwitchController().pressButton(Button::MINUS);
    delay(800);
    SwitchController().releaseButton(Button::MINUS);
    pushHatButton(Hat::UP, 300);
    pushButton(Button::A, 300);

    // ロード~教官後ろの壁にぶつかる
    delay(19000);
    SwitchController().setStickTiltRatio(0, 0, 0, 0);
    SwitchController().releaseButton(Button::R);
    
}


// 5周ごとに、隠密隊と交易船のアイテムを回収or売却
void giveMeHoney(){
    SwitchController().setStickTiltRatio(0, 0, 0, 0);

    // 集会所準備エリアへマップ移動
    SwitchController().pressButton(Button::MINUS);
    delay(800);
    SwitchController().releaseButton(Button::MINUS);
    pushHatButton(Hat::UP, 300, 2);
    pushButton(Button::A, 1300);

    // ルームサービス話しかけ
    tiltJoystick(100, -100, 0, 0, 1000);
    pushButton(Button::A, 1400);
    pushHatButton(Hat::DOWN, 200);

    // ポイント不足の場合はommitsuGo=0にすることで隠密隊の使用をキャンセル可能
    if (ommitsuGo == 1){
      // 隠密隊リザルト
      pushButton(Button::A, 200, 2);
      delay(2200);
      pushHatButton(Hat::UP, 300);

      // ommitsuUri=1の場合のみ売却、それ以外は受け取り
      if (ommitsuUri == 1) {
        pushHatButton(Hat::RIGHT, 300);
        pushButton(Button::A, 500);
      }
      pushButton(Button::A, 500,3);

      // 出発、2ページ目一番下のエリア(城塞高地orキュリア調査)を選択
      // 行き先を指定したい場合は十字キーの押す回数を要調整
      pushHatButton(Hat::RIGHT, 200, 2);
      pushHatButton(Hat::UP, 200);

      // 調査先、オトモ4匹を順にAボタンで選択、出発
      pushButton(Button::A, 200, 11);
      pushButton(Button::B, 300);
    }

    // 交易船を確認
    pushHatButton(Hat::DOWN, 200);
    pushButton(Button::A, 500);
    pushButton(Button::A, 200);
    pushHatButton(Hat::UP, 200);
    pushButton(Button::A, 300);
    pushHatButton(Hat::UP, 300);

    // ommitsuUri=1の場合のみ売却、それ以外は受け取り
    if (ommitsuUri == 1) {
      pushHatButton(Hat::RIGHT, 300);
      pushButton(Button::A, 500);
    }
    pushButton(Button::A, 300, 2);

    // ルームサービス終了
    pushButton(Button::B, 100, 10);
    // 集会所入り口へマップ移動のコマンド入力
    SwitchController().pressButton(Button::MINUS);
    delay(800);
    SwitchController().releaseButton(Button::MINUS);
    pushHatButton(Hat::UP, 300);
    pushButton(Button::A, 300);

    // 集会所入り口から教官後ろまで移動
    SwitchController().setStickTiltRatio(30, -100, 0, 0);
    SwitchController().pressButton(Button::R);
    delay(5000);
    SwitchController().releaseButton(Button::R);
}


// 10周ごとに、護石錬金を受け取り+新たに10回分の錬金(神気)を予約
void makafushigi(){
    SwitchController().setStickTiltRatio(0, 0, 0, 0);

    // 集会所入り口へマップ移動のコマンド入力
    SwitchController().pressButton(Button::MINUS);
    delay(800);
    SwitchController().releaseButton(Button::MINUS);
    pushHatButton(Hat::UP, 300);
    pushButton(Button::A, 300);

    // ギルドストアへ話しかけ
    SwitchController().pressButton(Button::R);
    tiltJoystick(-100, 0, 0, 0, 2000);
    SwitchController().releaseButton(Button::R);
    pushButton(Button::A, 1400);

    // 下から3番目、「マカ錬金」選択
    pushHatButton(Hat::UP, 200, 3);
    pushButton(Button::A, 300);

    // 1番下、受け取り(一括)
    pushButton(Button::A, 300);
    pushHatButton(Hat::UP, 200);
    pushButton(Button::A, 300);

    // 1番上、神気にカーソルをあわせる
    pushHatButton(Hat::DOWN, 200);
    // 「renkinSelect」であらかじめ設定した素材を投入(10クエスト分)
    renkinSelect();
    // Bボタン連打で錬金予約を終了する
    pushButton(Button::B, 100, 12);

}


void setup(){
    pushButton(Button::B, 500, 8); 
// 最初の数回の入力はswitchが認識しない場合があるので、無駄打ちをしておく
    pushButton(Button::A, 500);  // USBコントローラーとして決定
    delay(1300);
    // 集会所入り口へマップ移動のコマンド入力
    SwitchController().pressButton(Button::MINUS);
    delay(800);
    SwitchController().releaseButton(Button::MINUS);
    pushHatButton(Hat::UP, 300);
    pushButton(Button::A, 300);

    // 集会所入り口から教官後ろまで移動
    SwitchController().setStickTiltRatio(30, -100, 0, 0);
    SwitchController().pressButton(Button::R);
    delay(5000);
    SwitchController().releaseButton(Button::R);
}

void loop(){

  // 指定回数まで5回ごとに交易隠密隊、10回ごとに錬金
  if (death_count == 5) {
    giveMeHoney();

    // 錬金回数をオーバーするまでは10ずつカウント、錬金回数以降は5でリセット
    if (renkin_count > renkin_max){
      // カウントリセット
      death_count = 0;
    } else {
      rajangKorokoro();

      // カウント増加
      death_count++;
    }
  } else if (death_count == 10){
    makafushigi();
    giveMeHoney();

    // カウントリセット
    death_count = 0;
    // 錬金カウント増加
    renkin_count++;
  }
  else {
    rajangKorokoro();

    // カウント増加
    death_count++;
  }
}

 

最後に

サンブレイク環境に合わせ、アプデ後に合わせた自動化へと修正しました。本スケッチを使用することで、大量に貯まった錬金素材をマカ錬金で消費しつつ、隠密隊や交易での素材や迅錬丹などの回収ができます。MHR:S-01と合わせて、これから長きにわたるであろう神おま探しのお供にどうぞ。

 

プログラムの不備、改善点などありましたらコメントやお問い合わせからお願いいたします。

Arduino Arduino Leonardo (ピンソケット・ピンヘッダ実装済) 【A000057】
by カエレバ

13 件のコメント:

  1. このコメントは投稿者によって削除されました。

    返信削除
  2. これってマカ錬金を省略して交易と隠密に特化したバージョンはありますか?

    返信削除
    返信
    1. プログラム内のconst int renkin_maxをマイナスの値にすることで、錬金を行わずに交易、隠密のみを実行することが可能です。

      削除
  3. ウロコモリ周回とマカ錬金周回の両方ともありがたく使わせていただいています。
    ウロコモリ周回の方は丸三日連続稼働しても安定するほど完成度が高く驚いております

    マカ錬金周回の方は、3時間以上連続稼働をさせると何度か決まってマルチのイブシマキヒコのクエストに参加?し、延々と壁のぼりジャンプを繰り返す状態となります。
    再現性が不明なため、どのイブシマキヒコのクエストに行っているのかが不明ですが、闘技大会とオトモ隠密隊の所とマカ錬金のNPCを往復しているだけでなぜ普通のマルチのクエストに行ってしまうのか原因が不明です。
    作成主様は同様の症状など確認されておりますでしょうか?

    返信削除
    返信
    1. こちらではそのような現象は確認できておりません。
      考えられる原因として、マカ錬金のためにギルドストアへ話しかけるところで、誤ってクエスト受付に話しかけているのではないかと考えられます。
      その場合は//ギルドストアへ話しかけ のあたりの時間を調整してみてください。

      削除
  4. このコメントは投稿者によって削除されました。

    返信削除
  5. いつも有益な記事をありがとうございます.

    自分の環境では,Ver1.1で激昂ラージャンをかわしてしまうことがありましたが,144行目を削除することで,ほぼかわさなくなりました.

    返信削除
  6. こんにちは。自動化プログラムとても便利で使わせていただいてます。
    さて、今回さんブレイクの第一弾アップデートがありましたが、オトモ隠密隊の仕様が変わり毎回オトモを選びなおさなくてもよくなったみたいなのでお伝えしておきます。

    返信削除
  7. コメント失礼します。
    交易のみで使用しようと思ったのですが受け取りがうまくいきません。
    交易のみのバージョンを公開していただけませんか。

    返信削除
    返信
    1. 錬金、交易、隠密のうち、錬金を消す場合は、設定項目のconst int renkin_max にマイナスの値(-1)を入力してください。隠密を消す場合はconst int ommitsuGo = 1を0に変えてください。

      削除
  8. このコメントは投稿者によって削除されました。

    返信削除
  9. コメント失礼します。
    今、自分もarduinoを使ってモンハンの自動化をさせようと思い、自分で試行錯誤しているのですが、その際にarduinoの書き込みとswitchの接続でUSBを何度も抜き差しすることに少し躊躇いがあります。
    主さんも制作のときには何度もUSBを抜き差ししていたのか、他になにか方法があったのか教えていただけるとありがたいです。

    返信削除
    返信
    1. arduinoの書き込みのためのPCへの抜き差し、自動化実行のためのSwitchへの抜き差しは数えきれないほどにしています。基本的に書換え、抜き差しについては何度もおこなっても問題ないかと思います。
      ただし、長期的には抜き差しで端子が緩くなっていくことも否定しきれません。もしSwitch側の消耗が気になるようであれば、Switchドックに延長コードやハブを挿したままにしておき、そのコードの先で抜き差ししてはいかがでしょうか。

      削除

【ポケモンSV×arduino06】道具プリンター乱数自動化(藍の円盤)

 ※本記事は、ポケモンSVの藍の円盤(DLC)にて、 道具プリンター を決まった日時に起動することで 特定のアイテム、ボールを狙って量産する操作を自動化 するプログラムについて解説した記事です。ポケモンSVの操作をArduino Leonardoで自動化しております。 本記事の内...