はじめに
MTGA
MTGAというゲームがあります。
MTGというカードゲームをオンラインで楽しめるってことで
結構僕も楽しんでます。
##カードの購入
リアルと同じようにMTGAでもパックを購入してカードを集めていきます。
ここで購入の方法は2つあります。
- Gold(無課金)
- Gem(課金)
##Goldで買おうとすると
このゲームはGoldではパックのまとめ買いができません。
つまり20パックをGoldで買う場合、これを20セットやらなきゃだめです。
- 購入するパックを選択
- 購入確認
- 購入完了確認
ご丁寧にクリック位置も違うので正直嫌がらせレベルでめんどいです。
##自動化しよう
毎回これやるのはしんどいので、pyAutoGUIを使って半自動化していきます。
目次
#2. 内容い
#3. 内容ろ
#1. clickする位置を確認する
##まずクリックする座標を取得します。
- 購入するパックを選択するボタンの座標
- 購入確認ボタンの座標
- 購入完了確認ボタンの座標
たぶんこの記事がわかりやすいかと
https://qiita.com/deaikei/items/7f1acaa3b1db40c33f1a
>>>pyautogui.position()
(255, 939)
調べたところ僕のモニタではそれぞれの座標はこんなふうになりました。
- 購入するパックを選択するボタンの座標(206,880)
- 購入確認ボタンの座標(1072,939)
- 購入完了確認ボタンの座標(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) #購入したい個数を引数とする