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