2014/11/23

ブレフロでなんとなく自動化 - AutoTouch

AutoTouch関連の記事はこちらから

http://memorosa.blogspot.jp/search/label/AutoTouch

戦闘を自動化2

前回のはチェックする場所が適当すぎて誤動作しまくりだったので作りなおしてみた感じ。

作ってる途中でiPodTouchで作った画像ではPhone5sで認識しなかったりしたので、それぞれの環境で作るように、画像抜き出しスクリプトもコメントに記述。

・動作確認:iPhone5s(iOS8.1) iPodTouch5G(iOS8.1)

・解像度の違うiPhone6などはフリックする場所が違うのでうまくいかないと思います。

※前回はfindimageのfuzzyが0.9だったところを1にして完全一致させたら何倍も早くなりました(・・;アタリマエ?


実行してみた感じ。。。

1.実行回数を9999などにしてマクロ実行

2.MAP・フレンド選んで、普通に戦闘開始したら放置

3.待ってると戦闘が終了したあとの「クエストクリア報酬」を進めてMAP選択orダンジョン選択で止まる

(TouchPoseが動いてると「クエストクリア報酬」のスキップが行われなくてよくわからない状態・・・)

4.あとは2、3の繰り返し


/var/mobile/Library/AutoTouch/Script/brefro_auto.lua

CREATETIME="2014-11-23 00:00:00";
SCREEN_RESOLUTION="320x568";
 
-- -----------------------------------------------------------------------------
-- 前準備イメージ作成 for iOS8 (320x568 iphone5s, ipod touch 5G)
-- -----------------------------------------------------------------------------
-- 宝箱が出ている状態で実行
-- screenshotRegion("/var/mobile/Library/AutoTouch/Image/brefro_next.png", 264/2, 576/2, 124/2, 34/2);
 
-- 「MENU」が出ている状態で実行
-- screenshotRegion("/var/mobile/Library/AutoTouch/Image/brefro_menu.png", 546/2, 100/2, 70/2, 22/2);
 
-- 「AUTO」が出ている状態で実行
-- screenshotRegion("/var/mobile/Library/AutoTouch/Image/brefro_auto.png", 504/2, 486/2, 64/2, 22/2);
 
-- 「クエストクリア報酬」が出ている状態で実行
-- screenshotRegion("/var/mobile/Library/AutoTouch/Image/brefro_clear.png", 240/2, 278/2, 64/2, 34/2);
 
-- -----------------------------------------------------------------------------
-- setting:
-- -----------------------------------------------------------------------------
-- image path
IMAGE_PATH="/var/mobile/Library/AutoTouch/Image/";
 
-- キャラ左上座標
CHARA1X=040 CHARA1Y=300;
 
-- キャラ右上座標
CHARA4X=180 CHARA4Y=300;
 
-- キャラ左中座標
CHARA3X=040 CHARA3Y=360;
 
-- キャラ右中座標
CHARA6X=180 CHARA6Y=360;
 
-- キャラ左下座標
CHARA2X=040 CHARA2Y=420;
 
-- キャラ右下座標
CHARA5X=180 CHARA5Y=420;
 
CHARAS={{CHARA1X,CHARA1Y},
        {CHARA2X,CHARA2Y},
        {CHARA3X,CHARA3Y},
        {CHARA4X,CHARA4Y},
        {CHARA5X,CHARA5Y},
        {CHARA6X,CHARA6Y}}
 
-- -----------------------------------------------------------------------------
-- mysleep:
-- -----------------------------------------------------------------------------
function mysleep(n)
    for i = 1, n, 1 do
        usleep(1000000);
    end
end
 
-- -----------------------------------------------------------------------------
-- image search:
-- -----------------------------------------------------------------------------
function imagecheck(s)
    local r = findImage {imagePath=IMAGE_PATH..s, count=1, fuzzy=1}
    local n = 0;
    for i, v in pairs(r) do
        n = n + 1;
    end
    return n;
end
 
-- -----------------------------------------------------------------------------
-- image tap:
-- -----------------------------------------------------------------------------
function imagetap(s)
    findImageTap {imagePath=IMAGE_PATH..s, count=1, fuzzy=1}
end
 
-- -----------------------------------------------------------------------------
-- chara tap (attack):
-- -----------------------------------------------------------------------------
function charaatk(n)
    tap(CHARAS[n][1], CHARAS[n][2]);
    usleep(15000);
end
 
-- -----------------------------------------------------------------------------
-- chara right flick (sbb):
-- -----------------------------------------------------------------------------
function charasbb(n)
    local loopcount = 5;
    local loopstep  = 10;
    local scount = CHARAS[n][1];
    local ecount = CHARAS[n][1] + (loopcount * loopstep);
    local waittime = 2000000;
 
    touchDown(0, scount, CHARAS[n][2]);
    usleep(10000);
 
    for i = scount, ecount, loopstep do
        touchMove(0, i, CHARAS[n][2]);
        usleep(10000);
    end
 
    touchUp(0, ecount, CHARAS[n][2]);
    usleep(10000);
 
    usleep(waittime);
 
end
 
-- -----------------------------------------------------------------------------
-- mob area tap: open box
-- -----------------------------------------------------------------------------
function boxtap()
    tap( 30,120) usleep(15000);
    tap( 60,120) usleep(15000);
    tap( 90,120) usleep(15000);
    tap(120,120) usleep(15000);
    tap(150,120) usleep(15000);
 
    tap( 30,150) usleep(15000);
    tap( 60,150) usleep(15000);
    tap( 90,150) usleep(15000);
    tap(120,150) usleep(15000);
    tap(150,150) usleep(15000);
 
    tap( 30,180) usleep(15000);
    tap( 60,180) usleep(15000);
    tap( 90,180) usleep(15000);
    tap(120,180) usleep(15000);
    tap(150,180) usleep(15000);
 
    tap( 30,210) usleep(15000);
    tap( 60,210) usleep(15000);
    tap( 90,210) usleep(15000);
    tap(120,210) usleep(15000);
    tap(150,210) usleep(15000);
end
 
-- -----------------------------------------------------------------------------
-- main
-- -----------------------------------------------------------------------------
if imagecheck("brefro_clear.png") == 1 then
    tap(2, 2);
 
elseif imagecheck("brefro_next.png") == 1 then
    boxtap();
 
elseif imagecheck("brefro_auto.png") == 1 then
    imagetap("brefro_auto.png");
 
elseif imagecheck("brefro_menu.png") == 1 then
    charasbb(1);
    charasbb(4);
    charasbb(2);
    charasbb(3);
    charasbb(6);
    charasbb(5);
    usleep(1000000);
    charaatk(1);
    charaatk(4);
    charaatk(2);
    charaatk(3);
    charaatk(6);
    charaatk(5);
 
end
 
mysleep(3);


1 件のコメント:

  1. 残念ながらブレフロはやってないのですが、大変参考になりました。
    ありがとうございます。

    返信削除