LoginSignup
0
0

More than 1 year has passed since last update.

MTGAのパック購入がめんどいので自動化する

Last updated at Posted at 2021-09-19

はじめに

MTGA

MTGAというゲームがあります。
MTGというカードゲームをオンラインで楽しめるってことで
結構僕も楽しんでます。

カードの購入

リアルと同じようにMTGAでもパックを購入してカードを集めていきます。
ここで購入の方法は2つあります。

  1. Gold(無課金)
  2. Gem(課金)

Goldで買おうとすると

このゲームはGoldではパックのまとめ買いができません。
つまり20パックをGoldで買う場合、これを20セットやらなきゃだめです。

  1. 購入するパックを選択
  2. 購入確認
  3. 購入完了確認

store.png
confirm.png
ok.png

ご丁寧にクリック位置も違うので正直嫌がらせレベルでめんどいです。

自動化しよう

毎回これやるのはしんどいので、pyAutoGUIを使って半自動化していきます。

目次

1.clickする位置を確認する
1. 指定座標にmoveしてclickする
1. loop

2. 内容い

3. 内容ろ

1. clickする位置を確認する

まずクリックする座標を取得します。

  1. 購入するパックを選択するボタンの座標
  2. 購入確認ボタンの座標
  3. 購入完了確認ボタンの座標

たぶんこの記事がわかりやすいかと
https://qiita.com/deaikei/items/7f1acaa3b1db40c33f1a

>>>pyautogui.position()
(255, 939)

調べたところ僕のモニタではそれぞれの座標はこんなふうになりました。

  1. 購入するパックを選択するボタンの座標(206,880)
  2. 購入確認ボタンの座標(1072,939)
  3. 購入完了確認ボタンの座標(1685,1012)

指定座標にMoveしてClickする

クリックする座標が取得できたので、それらを引数にとるMove+Clickのメソッドを作っていきます。

def click_button(x,y): 
  #3購入完了確認ボタンのときに使用するメソッド
  time.sleep(4) #パック購入の演出が入るので余裕を持ったSleep
  pyautogui.moveTo(x,y)
  pyautogui.click()

def click_twice(x,y): 
  #1.2.購入ボタン、購入確認ボタンのときに使用するメソッド
  time.sleep(4) #パック購入の演出が入るので余裕を持ったSleep
  pyautogui.moveTo(x,y)
  pyautogui.click()
  pyautogui.mouseDown()
  pyautogui.mouseUp()

click_twice

click_twiceはもともとclick_buttonで対応してたんですが、
なんだかうまいこと行かないので試行錯誤したものです。

loop!

あとは回数を定めてループすればよいですね。

def my_main(times):
  for i in range(times):
    click_twice(206,880) #購入ボタンをクリック
    click_twice(1072,939) #購入確認ボタンをクリック
    click_button(1685,1012) #購入確認完了ボタンをクリック

my_main(10) #購入したい個数を引数とする
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0