Wiki内検索
最近更新したページ
最新コメント
Menu
ここは自由に編集できるエリアです。
タグ

10連戦.UWS

概要

究極装備.UWSに少し手を入れました。
同じ動きをするはずです。
動作確認?PUBLIC変数使いすぎ?
何を言っているのかよく分かりません。

※2007/7/28
オリジナルは動作しなかったため,一部改変しました.
動作確認済み.たぶんバグは出ないと思いますが(汗

スクリプト

PUBLIC RBFA_ID = GETID("RBF_Advance");
MOUSEORG(RBFA_ID);

//*******************************************************************************
// * 定義
//*******************************************************************************
PUBLIC ファイル         = "ここにファイル名を書いてください"
PUBLIC 総繰り返し回数   = 0;
PUBLIC 加齢限界         = 150;     //10連戦に挑む回数
PUBLIC アイテム所持限界 = 2;       //アイテム欄の空き
PUBLIC 売却番号         = 9 - アイテム所持限界;

PUBLIC 戦術[9];
戦術[0] = "奥義警戒 (対奥義+)";
戦術[1] = "奥義警戒 (対奥義+)";
戦術[2] = "奥義警戒 (対奥義+)";
戦術[3] = "奥義警戒 (対奥義+)";
戦術[4] = "奥義警戒 (対奥義+)";
戦術[5] = "マルチアタック警戒 (対マルチアタック+)";
戦術[6] = "スマッシュ警戒 (対スマッシュ+)";
戦術[7] = "魔術警戒 (対魔術+)";
戦術[8] = "発勁警戒 (対発勁+)";
戦術[9] = "スマッシュ警戒 (対スマッシュ+)";

//*******************************************************************************
// * メインルーチン
//*******************************************************************************
PUBLIC 勝利数[9] = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0;
PUBLIC 繰り返し回数   = 0;
PUBLIC アイテム所持数 = 0;

WHILE TRUE
    REPEAT; UNTIL CLKITEM(RBFA_ID,"Battle Mode")
    REPEAT
        SENDSTR(GETID("ファイルを開く"), ファイル, 1);
    UNTIL GETSTR(GETID("ファイルを開く"), 1) = ファイル
    CLKITEM(GETID("ファイルを開く"), "開く");

    繰り返し回数 = 0;
    アイテム所持数 = 0;

    WHILE 繰り返し回数 < 加齢限界
        繰り返し回数 = 繰り返し回数 + 1;
        総繰り返し回数 = 総繰り返し回数 + 1;

        // 事前準備
        アイテム売却();
        体調調整();

        // 10連戦
		連戦 = 0;
		勝敗 = "勝利";
		WHILE (勝敗 = "勝利" AND 連戦 < 10)
			勝敗 = 戦闘(連戦);
			連戦 = 連戦 + 1;
		WEND
		情報出力();
		IF (連戦 < 10 OR (連戦 = 10 AND 勝敗 = "敗北")) THEN CONTINUE
        
        // 10連戦勝利後の処理続行判定
        IFB (連勝値() < 280) THEN
            REPEAT; UNTIL CLKITEM(RBFA_ID, "次へ進む");
            REPEAT; UNTIL CLKITEM(RBFA_ID, "10連戦の終了");
            CONTINUE;
        ENDIF
        EXITEXIT;
    WEND

    REPEAT; UNTIL CLKITEM(RBFA_ID, "System")
    REPEAT; UNTIL CLKITEM(RBFA_ID, "中断")
    KBD(VK_RETURN)
    CONTINUE
WEND
EXITEXIT;

//*******************************************************************************
// * 関数
//*******************************************************************************

FUNCTION 戦闘(連戦)
    IFB (連戦 = 0) THEN
        REPEAT; UNTIL CLKITEM(RBFA_ID, "闘技場");
        REPEAT; UNTIL CLKITEM(RBFA_ID, "勝ち抜き10連戦");
        REPEAT; UNTIL CLKITEM(RBFA_ID, "戦闘準備へ");
        REPEAT; UNTIL CLKITEM(RBFA_ID, "メッセージスキップ", CLK_BTN, TRUE);
        REPEAT; UNTIL CLKITEM(RBFA_ID,  戦術[連戦], CLK_LIST, TRUE, 1);
        REPEAT; UNTIL CLKITEM(RBFA_ID, "戦闘開始!");
    ELSE
        REPEAT; UNTIL CLKITEM(RBFA_ID, "次へ進む");
        REPEAT; UNTIL CLKITEM(RBFA_ID, "戦闘準備へ");
        REPEAT; UNTIL CLKITEM(RBFA_ID,  戦術[連戦], CLK_LIST, TRUE, 1);
        REPEAT; UNTIL CLKITEM(RBFA_ID, "戦闘開始!");
    ENDIF

    REPEAT
        戦闘終了 = CHKIMG("戦闘終了.BMP", 0,  30, 485, 200, 520);
        判定     = CHKIMG("判定.BMP"    , 0,   0, 370, 705, 390);
    UNTIL (戦闘終了 + 判定 = 1)

    IFB (戦闘終了) THEN
        REPEAT; UNTIL CLKITEM(RBFA_ID, "戦闘終了")
    ENDIF

    IFB CHKIMG("判定画像\敗北.BMP", 0,   0, 340, 705, 360) THEN
        REPEAT; UNTIL CLKITEM(RBFA_ID, "戦いの終了");
        RESULT = "敗北";
    ELSE
        IF (連戦 = 0) THEN アイテム所持数 = アイテム所持数 + 1
        勝利数[連戦] = 勝利数[連戦] + 1;
        RESULT = "勝利";
    ENDIF
FEND

FUNCTION 連勝値()
    X = 364;
    Y = 242;
    W = 8;
    H = 15;

    取得値 = 0;
    WHILE TRUE
        FOR I = 0 TO 9
            IFB CHKIMG("単体数字\" + I + ".bmp", 0, X, Y, X + W, Y + H) THEN
                取得値 = 取得値 * 10 + I;
                X = X + W;
                BREAK;
            ENDIF
        NEXT
        IF (I > 9) THEN BREAK
    WEND
    RESULT = 取得値;
FEND

PROCEDURE 情報出力()
    PRINT " 1人目: " + 勝利数[0] + "/" + 総繰り返し回数;
    PRINT " 2人目: " + 勝利数[1] + "/" + 勝利数[0] + "/" + 総繰り返し回数;
    PRINT " 3人目: " + 勝利数[2] + "/" + 勝利数[1] + "/" + 総繰り返し回数;
    PRINT " 4人目: " + 勝利数[3] + "/" + 勝利数[2] + "/" + 総繰り返し回数;
    PRINT " 5人目: " + 勝利数[4] + "/" + 勝利数[3] + "/" + 総繰り返し回数;
    PRINT " 6人目: " + 勝利数[5] + "/" + 勝利数[4] + "/" + 総繰り返し回数;
    PRINT " 7人目: " + 勝利数[6] + "/" + 勝利数[5] + "/" + 総繰り返し回数;
    PRINT " 8人目: " + 勝利数[7] + "/" + 勝利数[6] + "/" + 総繰り返し回数;
    PRINT " 9人目: " + 勝利数[8] + "/" + 勝利数[7] + "/" + 総繰り返し回数;
    PRINT "10人目: " + 勝利数[9] + "/" + 勝利数[8] + "/" + 総繰り返し回数;
FEND

PROCEDURE アイテム売却()
    IFB (アイテム所持数 = アイテム所持限界) THEN
        REPEAT; UNTIL CLKITEM(RBFA_ID, "大通り商店街")
        REPEAT; UNTIL CLKITEM(RBFA_ID, "質屋(売却)")
        WHILE (アイテム所持数 > 0)
            REPEAT; UNTIL CLKITEM(RBFA_ID, 売却番号)
            KBD(VK_RETURN);
            アイテム所持数 = アイテム所持数 - 1;
        WEND
        IFB (売却番号 = 1) THEN
            KBD(VK_RETURN);
            REPEAT; UNTIL CLKITEM(RBFA_ID, "戻る")
        ELSE
            REPEAT; UNTIL CLKITEM(RBFA_ID, "戻る")
            REPEAT; UNTIL CLKITEM(RBFA_ID, "戻る")
        ENDIF
    ENDIF
FEND

PROCEDURE 体調調整()
    IFB (繰り返し回数 > 加齢限界 - 14) THEN
        REPEAT; UNTIL CLKITEM(RBFA_ID, "魔術師ギルド")
        REPEAT; UNTIL CLKITEM(RBFA_ID, "体調の調整")
        REPEAT; UNTIL CLKITEM(RBFA_ID, "調整してもらう")
        KBD(VK_RETURN);
        REPEAT; UNTIL CLKITEM(RBFA_ID, "戻る")
    ENDIF
FEND

2007年07月28日(土) 13:35:56 Modified by sekaiwowagateni