勉強と部活の両立に悩むみんなへ贈る記事

憧れの聖櫻学園で、学生生活を頑張りたいみんなへ

 

 

 

 

とりあえずコードとファイルを置いておきます

http://www1.axfc.net/u/3497806.zip

passはどっかで見てください

実際のコードはインデントちゃんとしてるから、行数表示ありのエディターで開いてそっちで見つつ解説を読んだ方がいいと思う

はてな記法じゃないからコード貼り付けもできず、苦肉の策の引用書式

※差し替え。画像にしました。

 

f:id:monotone_dsd:20150706203754p:plain

f:id:monotone_dsd:20150706203804p:plain

 

lは行数。ざっくり説明すると、

l6 lasttimeに現在時刻を代入

l8~l16 テスト勉強はぢまり。URL送信して直で画面へ。

URLは、2つめのセンバツで、フレンドに設定しているID4853502の方(人柱)をパートナーに、九日前「村上の気になること」に挑戦するという意味です。

この時点で根気Pがない場合、若林書記が謝罪してくれる

謝罪の場合→ l18~l29 30分待って勉強再開 再開したので時間も更新

根気が切れてない場合、URL指定で飛んだなら勉強が始まっているはずなので

l31~「テスト勉強選択へ」という画像(テスト勉強リザルト画面の表示)がない、つまりテスト勉強が終了していない間はループが回る(While~Wend)

l41,l47 たにしは観劇萌果様か浪漫小瑠璃様のどっちかだろ~と踏んでこの二人のご尊顔で設定。テスト勉強開始直後の「スキル発動!」みたいな画面でクリック。

l52 アクティブな「こたえる」ボタンを押し、即F5

基本は[スキル発動!→クリック→こたえる→クリック]を繰り返して勉強を進める

l58 全員倒し終わった状態でテスト勉強URLに飛ぶと「結果見てないテス勉あるけどいいの?大丈夫?」と聞かれるので素直に結果をみる

l69 みんなナットク!を認識するとページの一番下まで移動。

みんなナットク画面の一番下には「テスト勉強選択」の表示があるのでループ脱出

元々URL送信じゃなく全部クリックでやってたからその時の名残だけど、そもそもの勉強処理ループの継続条件を「みんなナットク!の不在」にした方が幾分かスマートだと気付いた。 

 l79 今の時間がlasttimeから5分以上過ぎていたらブロック突入

正常に動いてれば入らないブロック。このブロック自体がWhile文内にあることと、lasttimeの更新タイミングがテスト勉強に飛んだ時であることから、「画面に『選択へ』がない」&&「最後のテス勉実行から二十分が経過する」を同時に満たさない限りはスルーされる(30分待機中は発動しないから厳密には違うけど)。

条件にGETTIME()を使うのってループ回す度に関数引っ張るから負担大きそうに見えるけど、まあこの程度なら問題ないんじゃね?と勝手に思っている。5分は一見短いように見えるけど、URL送信とURL送信の間隔は何もなければほぼ確実に5分以内に収まるし、根気P切れで待機している間はそもそもこのif文に辿り着かないので、5分の差検知で即異常事態と決め打っていいと判断した。

 

普段はクリック位置を数値で座標指定する系が好きなんだけど、汎用性を考えてそういったロジックはゼロに。えらい。ただ、画像認識のところは言うまでもなく解像度やら画面設定に影響されるので、同梱の画像は参考程度に使った方がよさそう。動くなら動くで構わない。

一日24時間、テスト勉強中は根気Pが回復しないという仕様を無視してざっくり計算すると、24*60/10*96=13824exp。体力振り状態(790)の私が2倍期間にこれだけ稼ごうとすると、バーが8.7本要る。うーんバカみたい。

そのうち「ねえ……もうやめて……もう勉強なんていいよ……元に戻ってよ……」と泣きながら雛菜に抱き付かれた私が人の心を取り戻す回が劇場に来るんで、それまでに皆さんもレベルを上げておくといいと思います。待っててくれ、雛菜……俺のレベルが300に達するその日を……待っててくれ、股ぐらを濡らして……

 

 

 

8/8追記

根気炭酸の数が100を越えたら、そろそろ炭酸ガブ飲みモードも併用してよいかと。

30分待機を入れてる上記マクロと違ってノンストップで動き続けるので、動かしてるマシンとは別の端末で飴差し入れとか掲示板閲覧とかを挟むと、排他処理的なアレによって動きが止まる可能性あり。なので、寝てる間とかに動かすことを推奨します。

 

// 根気Pが切れた時に1800秒(30分)待機し、テスト勉強実行 の行から次のendifまでを削除しまして、その下に

 

// 根気P回復
ifb CHKIMG("申し訳.bmp",0)
id = GETID("Google Chrome","Chrome_WidgetWin_1",-1)
sleep(1)
SCKEY(id,VK_F6)
SENDSTR(id,"http://vcard.ameba.jp/item",1,True,True)
sleep(1)
SCKEY(id,VK_RETURN)
sleep(3)
SCKEY(id,VK_END)
sleep(1)
CHKIMG("炭酸.bmp",0)
sleep(7)

BTN(LEFT, CLICK, G_IMG_X+230, G_IMG_Y+100)
sleep(5)
CHKIMG("使用する.bmp",0)
BTN(LEFT, CLICK, G_IMG_X+10, G_IMG_Y)
sleep(5)
SCKEY(id,VK_F6)
SENDSTR(id,"http://vcard.ameba.jp/study/battle?stageId=11&deckNum=2&partnerId=4853052_FRIEND",1,True,True)
sleep(1)
SCKEY(id,VK_RETURN)
sleep(10)
lasttime = GETTIME() //update
endif

 

を挿入すると恐らく動きます。

流れをざっくり説明すると、

①申し訳ありません画面が出る

②URLから「バッグ」画面に飛ぶ

③Endキーを押して画面を一番下までスクロールさせる

※以下の動きは「一番下までスクロールした時」に画面内に根気炭酸の画像があることが条件です。根気炭酸より下に表示されるものとしては、キャンディ、グミ、特殊炭酸、期限切れメモチケ等があります。これらが合わせて5種以上あると根気炭酸が画面外に出て、回復処理が動かない可能性があるのでご注意下さい。

④炭酸.bmpは根気炭酸の画像です。CHKIMGで根気炭酸の表示場所の座標を受け取った後、BTN()にその値を渡して「使用する」をクリックさせます。これは「私の環境ではバッグ画面において、根気炭酸の画像からx+230, y+100したところに『使用する』ボタンがある」というだけなので、位置についてはそれぞれで適宜ご調整下さい。ちなみに、CHKIMGをしたときに代入される座標は、「条件にした画像の左上の頂点の位置」ですので参考まで。

⑤使用するボタンを押した後に表示される使用確認画面で、確定させる処理。

⑥テスト勉強実行に戻る

 

ちなみに動かすと、マジでえげつない速度でレベルが上がります。

とはいえリターンが多いため根気炭酸自体の消費は少なめ。

是非お役立てください。お問い合わせはいつでもどうぞ。

以上。