カーテンコール

銀行を襲撃なんてしません。

頭おサルさんの文系出身者でもできるポケモン剣盾マイコン自動化(ワット回収自動化)

※タイトルの通り、当方は頭おサルの文系人間なので、専門知識は一切持ち合わせておらず、質問には一切お答えできません。
万一ではありますが、この記事によって生じる損害について一切の責任を筆者は負いかねますので、全て自己責任でお願いします。

 

私の環境下できちんと作動したソースコードです。

先述の通り、頭おサルの人間が人真似で書いたものなので無駄等あると思います。

適宜修正して使用してください。

マイコンをSwitchに繋いでから実際にコード通りのコマンドを実行するまでにしばらくラグがあるようなので、最初に無意味な動作を入れています。)

日付を進めるだけの無限ループです。効率を求めるのであれば、月を増やしたり年を増やしたり、その他、高速乱数消費のときのように、For~While構文を使って任意の回数日付を進めたら停止する(ように見える)コードにしたり、必要な方はご自身で適宜コードを書き換えてください。

巣穴に願いの塊を入れて柱を立てて、「みんなで挑戦」を選択する直前の画面から始めてください。

 

【2月8日追記】

このソースコードで無事に丸一日ループしたのですが、2日目に家を出て(この時点までは正常にループしていることを確認済み)、夕方帰宅すると柱が消えていました(日付変更のループ自体は続いていた)。

ボックスの中にレイド産の個体が捕獲されていたので、恐らく何かの拍子にループが崩れたものと思われます。

ですので、このコードを妄信しないで適宜修正して使用してください。

 

【2月19日追記】

一部の待機時間を延ばし、1周のラップライムよりもループ維持を重視するよう変更しました(スイッチの日付を進めてゲーム画面に戻り、レイド募集をキャンセルしたときの待ち時間(3800ms→5000ms)等)。

私の環境下で、英語ロムで30時間以上ループし続けました。

英語ロムは日本語に比べてテキストの量が多いので、英語ロムに対応させたこのコードでは日本語でプレイするとやや待ち時間が長く感じると思います。

 

 

 

 

#include <SwitchControlLibrary.h>

void setup(){
   SwitchControlLibrary().PressButtonL();
    delay(500);
    SwitchControlLibrary().PressButtonR();
    delay(500);
    SwitchControlLibrary().ReleaseButtonL();
    delay(500);
    SwitchControlLibrary().ReleaseButtonR();
    delay(500);
}

void loop() {
  SwitchControlLibrary().PressButtonL();
    delay(50);
    SwitchControlLibrary().PressButtonR();
    delay(50);
    SwitchControlLibrary().ReleaseButtonL();
    delay(50);
    SwitchControlLibrary().ReleaseButtonR();
    delay(50);
  
  // 開始 みんなで挑戦の直前から。
  SwitchControlLibrary().PressButtonA();
  delay(50);
  SwitchControlLibrary().ReleaseButtonA();
  delay(2500);
   delay(1000);
  // 募集開始
  SwitchControlLibrary().PressButtonHome();
  delay(50);
  SwitchControlLibrary().ReleaseButtonHome();
  delay(500);
  SwitchControlLibrary().MoveHat(4); // down
  delay(50);
  SwitchControlLibrary().MoveHat(8); // center
  delay(50);
  SwitchControlLibrary().MoveHat(2); // right
  delay(50);
  SwitchControlLibrary().MoveHat(8); // center
  delay(50);
  SwitchControlLibrary().MoveHat(2); // right
  delay(50);
  SwitchControlLibrary().MoveHat(8); // center
  delay(50);
  SwitchControlLibrary().MoveHat(2); // right
  delay(50);
  SwitchControlLibrary().MoveHat(8); // center
  delay(50);
  SwitchControlLibrary().MoveHat(2); // right
  delay(50);
  SwitchControlLibrary().MoveHat(8); // center
  delay(50);
  SwitchControlLibrary().PressButtonA();
  delay(50);
  SwitchControlLibrary().ReleaseButtonA();
  delay(1200);
  // 設定画面
  SwitchControlLibrary().MoveHat(4); // down
  delay(1500);
  SwitchControlLibrary().MoveHat(8); // center
  delay(50);
  SwitchControlLibrary().MoveHat(2); // right
  delay(50);
  SwitchControlLibrary().MoveHat(8); // center
  delay(50);
  SwitchControlLibrary().MoveHat(4); // down
  delay(50);
  SwitchControlLibrary().MoveHat(8); // center
  delay(50);
  SwitchControlLibrary().MoveHat(4); // down
  delay(50);
  SwitchControlLibrary().MoveHat(8); // center
  delay(50);
  SwitchControlLibrary().MoveHat(4); // down
  delay(50);
  SwitchControlLibrary().MoveHat(8); // center
  delay(50);
  SwitchControlLibrary().MoveHat(4); // down
  delay(50);
  SwitchControlLibrary().MoveHat(8); // center
  delay(50);
  SwitchControlLibrary().PressButtonA();
  delay(50);
  SwitchControlLibrary().ReleaseButtonA();
  delay(500);
  // 時間設定
  SwitchControlLibrary().MoveHat(4); // down
  delay(50);
  SwitchControlLibrary().MoveHat(8); // center
  delay(50);
  SwitchControlLibrary().MoveHat(4); // down
  delay(50);
  SwitchControlLibrary().MoveHat(8); // center
  delay(50);
  SwitchControlLibrary().PressButtonA();
  delay(50);
  SwitchControlLibrary().ReleaseButtonA();
  delay(500);
  // 時間の変更
  SwitchControlLibrary().MoveHat(2); // right
  delay(50);
  SwitchControlLibrary().MoveHat(8); // center
  delay(50);
  SwitchControlLibrary().MoveHat(2); // right
  delay(50);
  SwitchControlLibrary().MoveHat(8); // center
  delay(50);
  SwitchControlLibrary().MoveHat(0); // up
  delay(50);
  SwitchControlLibrary().MoveHat(8); // center
  delay(200);
  SwitchControlLibrary().PressButtonA();
  delay(50);
  SwitchControlLibrary().ReleaseButtonA();
  delay(50);
  SwitchControlLibrary().PressButtonA();
  delay(50);
  SwitchControlLibrary().ReleaseButtonA();
  delay(50);
  SwitchControlLibrary().PressButtonA();
  delay(50);
  SwitchControlLibrary().ReleaseButtonA();
  delay(50);
  SwitchControlLibrary().PressButtonA();
  delay(50);
  SwitchControlLibrary().ReleaseButtonA();
  delay(100);

  SwitchControlLibrary().PressButtonHome();
  delay(50);
  SwitchControlLibrary().ReleaseButtonHome();
  delay(700);
  SwitchControlLibrary().PressButtonA();
  delay(50);
  SwitchControlLibrary().ReleaseButtonA();
  delay(700);
  SwitchControlLibrary().PressButtonB();
  delay(50);
  SwitchControlLibrary().ReleaseButtonB();
  delay(1200);
  SwitchControlLibrary().PressButtonA();
  delay(50);
  SwitchControlLibrary().ReleaseButtonA();
  delay(5000);
  SwitchControlLibrary().PressButtonA();
  delay(50);
  SwitchControlLibrary().ReleaseButtonA();
  delay(500);
   delay(700);
  SwitchControlLibrary().PressButtonA();
  delay(50);
  SwitchControlLibrary().ReleaseButtonA();
  delay(500);
  SwitchControlLibrary().PressButtonB();
  delay(50);
  SwitchControlLibrary().ReleaseButtonB();
  delay(500);
  
}