以下の内容はhttps://error-astray.hatenablog.com/entry/2026/02/26/000000より取得しました。


BDSPの全自動ものひろいプログラム

カギとなる「あまいかおり」ヒメグマ

こちらはPoke-Controller用の記事になります。マクロコン向けのは無いですが「←(0.5秒)、→(0.5秒)、A、A、A、B」が自動戦闘/サファリとかなり汎用性高いのでオススメです。

画像認識なしバージョン

参考にさせていただいたのはこちらのマイコン版(Arduino)の記事。
tangential-star.hatenablog.jp
こちらを元にPoke-Controllerに移植しました。

効率重視の為、使用するポケモンは先頭を「ひっかく」「あまいかおり」〔ものひろい〕ヒメグマLv100固定としています(戦闘は201番道路固定なので努力値配分は自由)。
他の5匹は(進化演出でタイミングがズレるので)最終進化系もしくはLv100なら何でも良いです。無意味になりますが〔ものひろい〕以外でも動作します。

・CHOCO用

  • Black Shark
共有コードは「jZU01Nxw(日本語版漢字用)」です。
マクロで「5回戦闘して、アイテム回収し、ユニオンでPP回復」というのを繰り返します。
PP判定せず5戦でPP回復するのでやや効率は落ちます。

ついでに亜種として『自慢の裏庭で「どろぼう」』するマクロを制作しました。共有コードは「Ypwa1J2m(要調整)」です。
手持ちの先頭を〔ふくがん〕で「どろぼう」を覚えたポケモン、残り5匹は〔ものひろい〕にしておきます。
自慢の裏庭(ユニオン起動不可)に行き、そのまま上ボタンで草むらに2~3マス入った所で、メニューカーソルを「ポケモン」にしてから閉じて起動します。
するとマクロで「2回戦闘してアイテム回収し、下に向かってダッシュし外へ、ユニオンでPP回復して、上に向かってダッシュで戻る」というのを繰り返します。『でんきだま』『どくばり』『メトロノーム』の回収が出来ます。
ピッピ/プリン/ピィが追加されれば『つきのいし』、ニャースで『せんせいのツメ』、ポワルンから『しんぴのしずく』、ピンプクから『まんまるいし』を奪えます。【注意!】DP(DS版ダイヤモンド・パール)のラッキーは『しあわせタマゴ』を持っていましたが、BDSPでは何も持っていない仕様に変更されています!

画像認識ありバージョン

ポケッチアプリ「05:ポケモンリスト」に持ち物の有無が表示されるのを利用して効率を高めます。
(ポケッチのミニサイズ表示は戦闘やユニオンルームへの移行で消えないので使える)
認識精度を考えると〔ものひろい〕ポケモン6匹はすべて別種が望ましいです。
「あまいかおり」戦闘の処理後に画像認識で「道具を持っている各ポケモン」がいるかを判定してフラグを立て、そこだけ回収するというのが良いはず。

ソースコードは以下。
・画像認識なし

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

from Commands.PythonCommandBase import PythonCommand, ImageProcPythonCommand
from Commands.Keys import KeyPress, Button, Direction, Stick, Hat

class AutoPickUP(ImageProcPythonCommand):
NAME = 'BDSP自動ものひろい'

def __init__(self,cam):
super().__init__(cam)

def do(self):
print("-------------------------------")
print("BDSP自動戦闘【日本語 漢字版】")
print("Developed by えらー")
print("BDSPの自動ものひろいプログラム")
print("起動前に「ポケモン」を開いてメニューを閉じる!")
print("-------------------------------")
self.wait(0.5)

#先頭は「ひっかく」「あまいかおり」〔ものひろい〕ヒメグマLv100とする事
#他5匹は問わない。〔ものひろい〕で無くてもいいが意味は無い。

count = 6 # 何戦毎に道具回収するかのカウントダウン。初回判定の為6開始。
PP = 35 #「ひっかく」の残りPP。元がPP35で『ポイントアップ』で42/49/56に増加可能。

print("Start")
self.press(Button.B, 0.5, 0.5) # B
self.press(Button.B, 0.5, 0.5) # B
self.press(Button.B, 0.5, 0.5) # B

while True:

#「あまいかおり」を使用する
self.press(Button.X, 0.1, 0.8) # Xメニューを開く
self.press(Button.A, 0.1, 1.3) # Aポケモンを開く
self.press(Button.A, 0.1, 1.3) # Aつよさをみる
self.press(Hat.BTM, 0.1, 1.3) # ↓カーソル移動
self.press(Button.A, 0.1, 1.3) # Aあまいかおり
if(count == 6):
self.wait(2.5) # 秘伝技カットイン(初回のみ)
count -= 1 #回収カウントダウンを-1する(初回のみ)
for battle in range(125): #25秒A連射
self.press(Button.A, 0.1, 0.1) # Aボタンを押す
count -= 1 #回収カウントダウンを-1する
PP -= 1 #PPカウントダウンを-1する

# 道具回収
if(count <= 0):
self.press(Button.X, 0.1, 0.8) # Xメニューを開く
self.press(Button.A, 0.1, 1.3) # Aポケモンを開く

#1匹目
self.press(Button.A, 0.1, 0.5) # Aつよさをみる
self.press(Hat.TOP, 0.1, 0.4) # ↑カーソル移動(やめる)
self.press(Hat.TOP, 0.1, 0.4) # ↑カーソル移動(もちもの)
self.press(Button.A, 0.1, 0.5) # Aバッグをひらく
self.press(Hat.BTM, 0.1, 0.4) # ↓カーソル移動(バッグへもどす or やめる
self.press(Button.A, 0.1, 0.6) # Aあずかりました! or つよさをみる
self.press(Button.B, 0.1, 0.6) # B選択終了

#2匹目
self.press(Hat.BTM, 0.1, 0.4) # ↓カーソル移動
self.press(Button.A, 0.1, 0.5) # Aつよさをみる
self.press(Hat.TOP, 0.1, 0.4) # ↑カーソル移動(やめる)
self.press(Hat.TOP, 0.1, 0.4) # ↑カーソル移動(もちもの)
self.press(Button.A, 0.1, 0.5) # Aバッグをひらく
self.press(Hat.BTM, 0.1, 0.4) # ↓カーソル移動(バッグへもどす or やめる
self.press(Button.A, 0.1, 0.6) # Aあずかりました! or つよさをみる
self.press(Button.B, 0.1, 0.6) # B選択終了

#3匹目
self.press(Hat.BTM, 0.1, 0.4) # ↓カーソル移動
self.press(Button.A, 0.1, 0.5) # Aつよさをみる
self.press(Hat.TOP, 0.1, 0.4) # ↑カーソル移動(やめる)
self.press(Hat.TOP, 0.1, 0.4) # ↑カーソル移動(もちもの)
self.press(Button.A, 0.1, 0.5) # Aバッグをひらく
self.press(Hat.BTM, 0.1, 0.4) # ↓カーソル移動(バッグへもどす or やめる
self.press(Button.A, 0.1, 0.6) # Aあずかりました! or つよさをみる
self.press(Button.B, 0.1, 0.6) # B選択終了

#4匹目
self.press(Hat.BTM, 0.1, 0.4) # ↓カーソル移動
self.press(Button.A, 0.1, 0.5) # Aつよさをみる
self.press(Hat.TOP, 0.1, 0.4) # ↑カーソル移動(やめる)
self.press(Hat.TOP, 0.1, 0.4) # ↑カーソル移動(もちもの)
self.press(Button.A, 0.1, 0.5) # Aバッグをひらく
self.press(Hat.BTM, 0.1, 0.4) # ↓カーソル移動(バッグへもどす or やめる
self.press(Button.A, 0.1, 0.6) # Aあずかりました! or つよさをみる
self.press(Button.B, 0.1, 0.6) # B選択終了

#5匹目
self.press(Hat.BTM, 0.1, 0.4) # ↓カーソル移動
self.press(Button.A, 0.1, 0.5) # Aつよさをみる
self.press(Hat.TOP, 0.1, 0.4) # ↑カーソル移動(やめる)
self.press(Hat.TOP, 0.1, 0.4) # ↑カーソル移動(もちもの)
self.press(Button.A, 0.1, 0.5) # Aバッグをひらく
self.press(Hat.BTM, 0.1, 0.4) # ↓カーソル移動(バッグへもどす or やめる
self.press(Button.A, 0.1, 0.6) # Aあずかりました! or つよさをみる
self.press(Button.B, 0.1, 0.6) # B選択終了

#6匹目
self.press(Hat.BTM, 0.1, 0.4) # ↓カーソル移動
self.press(Button.A, 0.1, 0.5) # Aつよさをみる
self.press(Hat.TOP, 0.1, 0.4) # ↑カーソル移動(やめる)
self.press(Hat.TOP, 0.1, 0.4) # ↑カーソル移動(もちもの)
self.press(Button.A, 0.1, 0.5) # Aバッグをひらく
self.press(Hat.BTM, 0.1, 0.4) # ↓カーソル移動(バッグへもどす or やめる
self.press(Button.A, 0.1, 0.6) # Aあずかりました! or つよさをみる
self.press(Button.B, 0.1, 0.6) # B選択終了

self.press(Button.B, 0.1, 0.9) # Bメニューに戻る
self.press(Button.B, 0.1, 0.9) # Bメニューを閉じる
count = 5 #カウントを5に戻す
print("回収")

#PP回復
if(PP <= 0):
self.press(Button.Y, 0.1, 0.6) # Yユニオンルームを開く
self.press(Button.A, 0.1, 0.6) # Aようこそ!※英語版は0.6→1.0
self.press(Button.A, 0.1, 0.6) # A~です※英語版は0.6→1.0
self.press(Button.A, 0.1, 0.6) # Aこちら~※英語版は0.6→1.0
self.press(Button.A, 0.1, 0.6) # A部屋に~
self.press(Button.A, 0.1, 0.6) # A始める
self.press(Button.A, 0.1, 0.6) # Aここまでの~※ここでPP回復発生
self.press(Button.A, 0.1, 0.6) # Aはい
self.press(Hat.BTM, 0.1, 0.6) # ↓※Bも可
self.press(Button.B, 0.1, 0.6) # B
self.press(Button.B, 0.1, 0.6) # Bそれでは~
self.press(Button.B, 0.1, 0.8) # Bユニオンルーム
PP = 35 #カウントを35に戻す
print("回復")




以上の内容はhttps://error-astray.hatenablog.com/entry/2026/02/26/000000より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14