atwiki-logo
  • 新規作成
    • 新規ページ作成
    • 新規ページ作成(その他)
      • このページをコピーして新規ページ作成
      • このウィキ内の別ページをコピーして新規ページ作成
      • このページの子ページを作成
    • 新規ウィキ作成
  • 編集
    • ページ編集
    • ページ編集(簡易版)
    • ページ名変更
    • メニュー非表示でページ編集
    • ページの閲覧/編集権限変更
    • ページの編集モード変更
    • このページにファイルをアップロード
    • メニューを編集
    • 右メニューを編集
  • バージョン管理
    • 最新版変更点(差分)
    • 編集履歴(バックアップ)
    • アップロードファイル履歴
    • ページ操作履歴
  • ページ一覧
    • ページ一覧
    • このウィキのタグ一覧
    • このウィキのタグ(更新順)
    • このページの全コメント一覧
    • このウィキの全コメント一覧
    • おまかせページ移動
  • RSS
    • このウィキの更新情報RSS
    • このウィキ新着ページRSS
  • ヘルプ
    • ご利用ガイド
    • Wiki初心者向けガイド(基本操作)
    • このウィキの管理者に連絡
    • 運営会社に連絡(不具合、障害など)
ポリクローム攻略 @ ウィキ
  • ウィキ募集バナー
  • 目安箱バナー
  • 操作ガイド
  • 新規作成
  • 編集する
  • 全ページ一覧
  • 登録/ログイン
ページ一覧
ポリクローム攻略 @ ウィキ
  • ウィキ募集バナー
  • 目安箱バナー
  • 操作ガイド
  • 新規作成
  • 編集する
  • 全ページ一覧
  • 登録/ログイン
ページ一覧
ポリクローム攻略 @ ウィキ
  • 新規作成
  • 編集する
  • 登録/ログイン
  • 管理メニュー
管理メニュー
  • 新規作成
    • 新規ページ作成
    • 新規ページ作成(その他)
      • このページをコピーして新規ページ作成
      • このウィキ内の別ページをコピーして新規ページ作成
      • このページの子ページを作成
    • 新規ウィキ作成
  • 編集
    • ページ編集
    • ページ編集(簡易版)
    • ページ名変更
    • メニュー非表示でページ編集
    • ページの閲覧/編集権限変更
    • ページの編集モード変更
    • このページにファイルをアップロード
    • メニューを編集
    • 右メニューを編集
  • バージョン管理
    • 最新版変更点(差分)
    • 編集履歴(バックアップ)
    • アップロードファイル履歴
    • ページ操作履歴
  • ページ一覧
    • このウィキの全ページ一覧
    • このウィキのタグ一覧
    • このウィキのタグ一覧(更新順)
    • このページの全コメント一覧
    • このウィキの全コメント一覧
    • おまかせページ移動
  • RSS
    • このwikiの更新情報RSS
    • このwikiの新着ページRSS
  • ヘルプ
    • ご利用ガイド
    • Wiki初心者向けガイド(基本操作)
    • このウィキの管理者に連絡
    • 運営会社に連絡する(不具合、障害など)
  • atwiki
  • ポリクローム攻略 @ ウィキ
  • 自動戦闘マクロ

ポリクローム攻略 @ ウィキ

自動戦闘マクロ

最終更新:2022年08月21日 22:17

Bot(ページ名リンク)

- view
管理者のみ編集可

自動戦闘マクロ


※注意

オンラインゲームとかでは絶対やっちゃいけないやつです
プログラムの知識がある程度ないと結構大変だと思います

何がしたかったか

とりあえず星系の装備を集めるのが流石にしんどすぎたので、自動化できないかなと考えたわけです。

条件は
  • フィールドをオートで走る
  • 戦闘を自動で行える
  • HPを自動で回復する
  • MPを自動で回復する
  • アイテムを入手した際にはキャプチャを取る
※どの敵からアイテムをドロップしたかを確認するため

です。
今回、pyautoguiを導入しました。

導入方法


導入方法はネットに一通りありますが簡単に

  • https://www.python.org/downloads/ よりpythonをインストール
  • コマンドプロンプトを起動
  • py -m pip install pyautogui
  • py -m pip install pywin32
  • sample.pyを作成
  • py sample.pyで実行
※エラーができるときはコマンドプロンプトを管理者権限で実行してみてください

コード例

サンプルファイル

※サンプルファイルそのままだとまず動きません。

コード説明

# まずは前面に
hwnd = win32gui.FindWindow(None, 'ポリクローム')
win32gui.SetWindowPos(hwnd, win32con.HWND_TOPMOST, 0, 0, 0, 0, 
win32con.SWP_NOMOVE | win32con.SWP_NOSIZE)
こちら、まずはコマンド実行時にもポリクロームが前面に出てこないと動作しないため必須の記述です。
# 戦闘
b_rgb = pyautogui.pixel(802 + x_hosei,273 + y_hosei)

# 戦闘終了メッセージ
e_rgb = pyautogui.pixel(699 + x_hosei,364 + y_hosei)

# パーティ
p_rgb = pyautogui.pixel(1103 + x_hosei,97 + y_hosei)
現在の状態が
  • マップ移動中
  • 戦闘のコマンド選択
  • 戦闘完了後の経験値やお金の獲得情報
  • 待機
のどの状態かを判別することが必要です。

そのためには
  • 「コマンド」のウインドウが開かれているか
  • 「メッセージ」のウインドウが開かれているか
  • 「パーティー」のウインドウが開かれているか
を判別する必要があります。

しかし、pythonのライブラリの範囲でウインドウが開かれているかを判別することは基本的にできなかったので、特定のピクセルの色(RBG)を確認して、ウインドウが開かれているかどうかを判別します。

# パーティ
p_rgb = pyautogui.pixel(1103 + x_hosei,97 + y_hosei)
# コマンドがセスかどうか
cmd_rgb = pyautogui.pixel(744 + x_hosei,313 + y_hosei)
# 各人HPチェック
p1_hp_rgb = pyautogui.pixel(130 + x_hosei,802 + y_hosei)
p2_hp_rgb = pyautogui.pixel(379 + x_hosei,801 + y_hosei)
p3_hp_rgb = pyautogui.pixel(623 + x_hosei,802 + y_hosei)
p3_mp_reb = pyautogui.pixel(641 + x_hosei,824 + y_hosei)
p4_hp_rgb = pyautogui.pixel(871 + x_hosei,802 + y_hosei)
p4_mp_rgb = pyautogui.pixel(869 + x_hosei,824 + y_hosei)
戦闘コマンドが誰のコマンドなのか、現在のパーティのHPやMPはどういう状態なのかを判別するために色のチェックをしています。

		## HPがピンチの時
		if p1_hp_rgb == (255, 0, 0) or p2_hp_rgb == (255, 0, 0) or p3_hp_rgb == (255, 0, 0) or p4_hp_rgb == (255, 0, 0) :
			pyautogui.moveTo(900,323)
			pyautogui.click()
			pyautogui.moveTo(1053,489)
			pyautogui.click()
			pyautogui.moveTo(1072,316)
			pyautogui.click()
			pyautogui.click()
			pyautogui.moveTo(923,377)
			pyautogui.click()
			pyautogui.moveTo(1053,489)
			pyautogui.click()
			pyautogui.click()
パーティのいずれかのメンバーのHPが規定値以下の場合にスターライトシャワーを実行しています。
上から順に
  • マウスを魔法の上に移動
  • クリック
  • マウスを次への上に移動
  • クリック
  • スクロールを一番上に移動
  • マウスを上から4番目の魔法(スターライトシャワー)の上に移動
  • クリック
  • マウスを次への上に移動
  • クリック
  • クリック
という感じです。
そこ以下のコードも基本的には同じ感じです。

	if ms_ss_rgb == (152, 192, 80) :
		ss_count += 1
		## 2回目以降+Gの手に入れたテキストでないときのみキャプチャ
		if ss_count > 1 and (
			(
				ms_check1_rgb != (0, 0, 0) or ms_check2_rgb != (0, 0, 0) or ms_check3_rgb != (0, 0, 0)
			) and (
				ms_check4_rgb != (0, 0, 0) or ms_check5_rgb != (0, 0, 0) or ms_check6_rgb != (0, 0, 0)
			)
		):
			t_delta = datetime.timedelta(hours=9)
			JST = datetime.timezone(t_delta, 'JST')
			now = datetime.datetime.now(JST)
			screenshot = pyautogui.screenshot(region=(514, 353, 350, 130))
			screenshot.save("screenshots\\" + now.strftime('%Y%m%d%H%M%S') + ".png")
			pyautogui.sleep(1)
	pyautogui.moveTo(699,394)
	pyautogui.click()
戦闘終了後は基本的には、クリックをするだけです。
ただし、最後のメンバー(私の場合セス)のイラストでお金やアイテム入手のメッセージが出るので、アイコンがセスで2回目のときにキャプチャを取ります。
+アイテム入手がない時はキャプチャを取りたくないので、4桁G・5桁Gのピクセルパターンを適当に抽出して、キャプチャを取らないように回避しています。

	pyautogui.moveTo(236,190)
	pyautogui.click()
	pyautogui.mouseDown()
	pyautogui.sleep(1.5)
	pyautogui.mouseUp()

	pyautogui.moveTo(582,376)
	pyautogui.click()
	pyautogui.mouseDown()
	pyautogui.sleep(1.5)
	pyautogui.mouseUp()
移動時の挙動です。
マウスを適当な位置にクリックくしてから押しっぱなしにすることで走ります。

実行に当たっての注意

このマクロを中断するためには、コマンドプロンプトに焦点を当ててctrl+cで中断する必要があります。
ポリクロームが必ず前面に出てくる使用上、コマンドプロンプトが隠れてしまうと最悪詰みますので十分注意してください。

デモ

※上記ファイルとは操作を一部変えています。

「自動戦闘マクロ」をウィキ内検索
LINE
シェア
Tweet
添付ファイル
  • sample.py
ポリクローム攻略 @ ウィキ
記事メニュー

メニュー

  • トップページ

ストーリー

  • キャラ育成について
  • エレール~フリス
  • フェスバス~ドゥエスカ城
  • リリュス~フリス(2回目)
  • シーラス~ツァルス
  • フェスバス(2回目)~エンディング
  • クリア後(プレイ記事)


データベース

  • アイテム
  • ショップ
  • 魔法
  • モンスター
  • マップ
  • 経験値テーブル

サブイベント

  • 古銭集め
  • デゼのイベント迷宮
  • ダガープラプラ
  • ドラゴンタワー

その他

  • 最新のPCで遊ぶために
  • アイテムコンプリートについて
  • 経験値設定ミス
  • 自動戦闘マクロ


ここを編集
記事メニュー2

更新履歴

取得中です。


ここを編集
人気記事ランキング
  1. 古銭集め/古銭集めB
  2. 最新のPCで遊ぶために
  3. モンスター/ネクロマンサー
  4. モンスター/ミミック
  5. モンスター/デーモンフライ
もっと見る
最近更新されたページ
  • 976日前

    アイテムコンプリートについて
  • 976日前

    アイテム
  • 976日前

    クリア後(プレイ記事)
  • 976日前

    モンスター/クリスタルドラゴン(3層)
  • 1000日前

    モンスター/ドラゴンゾンビ(3層)
  • 1004日前

    モンスター/アンバードラゴン(3層)
  • 1009日前

    モンスター/ムーンドラゴン(3層)
  • 1009日前

    モンスター/ジルコンドラゴン(3層)
  • 1010日前

    自動戦闘マクロ
  • 1010日前

    メニュー
もっと見る
人気記事ランキング
  1. 古銭集め/古銭集めB
  2. 最新のPCで遊ぶために
  3. モンスター/ネクロマンサー
  4. モンスター/ミミック
  5. モンスター/デーモンフライ
もっと見る
最近更新されたページ
  • 976日前

    アイテムコンプリートについて
  • 976日前

    アイテム
  • 976日前

    クリア後(プレイ記事)
  • 976日前

    モンスター/クリスタルドラゴン(3層)
  • 1000日前

    モンスター/ドラゴンゾンビ(3層)
  • 1004日前

    モンスター/アンバードラゴン(3層)
  • 1009日前

    モンスター/ムーンドラゴン(3層)
  • 1009日前

    モンスター/ジルコンドラゴン(3層)
  • 1010日前

    自動戦闘マクロ
  • 1010日前

    メニュー
もっと見る
ウィキ募集バナー
新規Wikiランキング

最近作成されたWikiのアクセスランキングです。見るだけでなく加筆してみよう!

  1. R.E.P.O. 日本語解説Wiki
  2. VCR GTA3まとめウィキ
  3. ガンダムGQuuuuuuX 乃木坂46部@wiki
  4. SYNDUALITY Echo of Ada 攻略 ウィキ
  5. シュガードール情報まとめウィキ
  6. ありふれた職業で世界最強 リベリオンソウル @ ウィキ
  7. ドタバタ王子くん攻略サイト
  8. STAR WARS ジェダイ:サバイバー攻略 @ ウィキ
  9. 機動戦士ガンダム EXTREME VS.2 INFINITEBOOST wiki
  10. パズル&コンクエスト(Puzzles&Conquest)攻略Wiki
もっと見る
人気Wikiランキング

atwikiでよく見られているWikiのランキングです。新しい情報を発見してみよう!

  1. アニヲタWiki(仮)
  2. ストグラ まとめ @ウィキ
  3. ゲームカタログ@Wiki ~名作からクソゲーまで~
  4. 初音ミク Wiki
  5. 検索してはいけない言葉 @ ウィキ
  6. 機動戦士ガンダム バトルオペレーション2攻略Wiki 3rd Season
  7. Grand Theft Auto V(グランドセフトオート5)GTA5 & GTAオンライン 情報・攻略wiki
  8. oblivion xbox360 Wiki
  9. モンスター烈伝オレカバトル2@wiki
  10. 発車メロディーwiki
もっと見る
全体ページランキング

最近アクセスの多かったページランキングです。話題のページを見に行こう!

  1. 無馬 かな - ストグラ まとめ @ウィキ
  2. 鬼野 ねね - ストグラ まとめ @ウィキ
  3. 参加者一覧 - ストグラ まとめ @ウィキ
  4. Back Alley - ストグラ まとめ @ウィキ
  5. Famos Gray - ストグラ まとめ @ウィキ
  6. 魔獣トゲイラ - バトルロイヤルR+α ファンフィクション(二次創作など)総合wiki
  7. ムーチョ 文岡 - ストグラ まとめ @ウィキ
  8. FadeGate - ストグラ まとめ @ウィキ
  9. 鬼レンチャン(レベル順) - 鬼レンチャンWiki
  10. 町田 ジョアンナ - ストグラ まとめ @ウィキ
もっと見る

  • このWikiのTOPへ
  • 全ページ一覧
  • アットウィキTOP
  • 利用規約
  • プライバシーポリシー

2019 AtWiki, Inc.