/* Q:なにこれ A:SRaのイベントコマンドを作成するのに使用したコード を1つのテキストにまとめたもの 製作ツールはBTL_SP ツクブリと違う記法もあるが、変数名等は2っき内で使われてる名称にある程度合わせてある(計算用変数除く)んで 見ればなんとなくわかると思う 本当はコメントを注釈に直してイベント内に組み込むべきなんだと思うがこれで勘弁してくれ */ /* 620-1-1 Ev参照なし */ ;スイッチ デバッグ中 = 11 うろ_非表示 = 3530 背景_裏風 = 3531 メモリー_開始 = 3535 Lキャラ1_表示 = 3536 Rキャラ2_表示 = 3539 SR100パーセント = 3915 SRED見た = 4383 ;変数 汎用変数D = 15 汎用変数E = 34 曲番_演奏用 = 103 曲目_処理方法 = 105 演出_不完全開放数 = 107 曲_未開放数 = 108 カーソル_位置 = 110 曲目数 = 111 演出数_演奏用 = 113 演出_演奏用 = 114 総演出数 = 116 演出_未開放数 = 117 うろ_放置時間 = 120 汎用変数B = 121 メモリー_曲番 = 122 汎用変数F = 582 ;文章用 即表示 = "\\>" 音符 = "\\C[10]■\\C[0]" 汎用文字列A = "\\N[1]" 汎用文字列F = "\\N[6]" ;他テンプレ 文字背景 = "PictureMove(50, 0, 160, 119, 0, 100, $TKarg1, 0, 100, 100, 100, 100, 0, 100, 2, 0)" 出 = 35 消 = 100 Note("===========================================================") SubN("処理:同Ev参照なし") SubN("===========================================================") If(Actor[1] == "演出_初期化") ;マップ移動するとマップに依存する要素が初期化されるのを利用 SetVehicle(-1, 0, 2, -1, -1) SetVehicle(-1, 0, 620, -1, -1) Repeat(4) PictureDel(i+1) EndRepeat ScreenTone(100, 100, 100, 100, 0, 0) Weather(0, 1) If(s[背景_裏風] == On[]) Panorama("SR_another_another", 0, 0, 1, -1, 1, 5) EndIf If(s[デバッグ中] == On[]);デバッグ用チェック処理 ↓ SetAction(1, 8, 0, 0) SubAct(34, "system_kyouyu_gazou02", 1);メインループを黒魔女に(ループ速度制御) SetAction(3, 8, 0, 0) SubAct(34, "20_Charset_06", 3);説明書きをピエロに(リスト△▽明滅制御) EndIf;デバッグ用チェック処理 ↑ s[Lキャラ1_表示..Rキャラ2_表示] = Off[] s[うろ_非表示] = Off[] Repeat(4) Name("", i+2) EndRepeat EndIf Note("・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・") SubN("||||||||||||||||||||||||||||||||") SubN("・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・") If(Actor[1] == "曲_取得") v[汎用変数D] = v[総演出数];実質1代入 v[演出数_演奏用] = 0 v[汎用変数F] = 2 Loop ;曲No.<=25 は強制1ページ目呼出 ;曲No.> 25 は(曲No./25)+1のページ呼出 ;25の倍数なら-1する If(v[曲番_演奏用] <= 25) v[汎用変数E] = 1 Else v[汎用変数E] = v[曲番_演奏用] v[汎用変数E] /= 25 v[汎用変数B] = v[曲番_演奏用] v[汎用変数B] %= 25 v[汎用変数E] += 1 If(v[汎用変数B] == 0) v[汎用変数E] -= 1 EndIf EndIf If(s[デバッグ中] == On[]);デバッグ用チェック処理 ↓ If(v[曲目_処理方法] >= 2) If(v[曲目_処理方法] == 3) Name("総曲数の確認", 6);3の時 Else Name("未開放箇所の確認", 6);2の時 EndIf Else If(v[曲目_処理方法] == 1) Name("開放度の確認", 6);1の時 Else Name("演奏情報の取得", 6);0の時 EndIf EndIf If(v[曲目_処理方法] == 0);数値を変えれば演奏以外の呼出もチェック可能 TKcode(文字背景,出) Text(即表示 + 音符 + "呼出内容") SubT(即表示 + "目的:" + 文字_黄 + 汎用文字列F + 文字_白) SubT(即表示 + "v" + 汎用変数E + "(呼出ページ):" + 文字_黄 + "\\V[" + 汎用変数E + "]" + 文字_白) SubT(即表示 + "v" + 曲番_演奏用 + "(曲)_v" + 演出_演奏用 + "(演出):" + 文字_黄 + "\\V[" + 曲番_演奏用 + "]" + 文字_白 + "_" + 文字_黄 + "\\V[" + 演出_演奏用 + "]") TKcode(文字背景,消) EndIf EndIf;デバッグ用チェック処理 ↑ Note("-----------------------------------------------------------") SubN("EV0002◆曲目_確認") Call(2, 汎用変数F, 汎用変数E) Note("-----------------------------------------------------------") ;演奏情報の取得:曲を調べて即抜ける If(v[曲目_処理方法] == 0) Break EndIf ;未開放箇所の確認:未開放演出があれば抜ける If(v[曲目_処理方法] == 2) If(v[演出_不完全開放数] > 0) Break EndIf EndIf ;確認中は次の演出へ、なければ演出1を指定 If(v[曲目_処理方法] >= 1) v[演出_演奏用] += 1 If(v[演出_演奏用] > v[演出数_演奏用]) v[演出_演奏用] = 1 ;開放度の確認:1曲の演出を全て調べたら抜ける If(v[曲目_処理方法] == 1) Break EndIf ;総曲数の確認 ;完全未開放(未開放数=演出数) ;一部未開放(0<未開放数<演出数) ;全開放(0=未開放数) If(v[曲目_処理方法] == 3) v[総演出数] += v[演出数_演奏用] If(v[演出_不完全開放数] > 0) If(v[演出_不完全開放数] == v[演出数_演奏用]) v[曲_未開放数] += 1 EndIf v[演出_未開放数] += v[演出_不完全開放数] v[演出_不完全開放数] = 0 EndIf v[演出数_演奏用] = 0 ;総曲数の確認 ;取得した曲の演出数=0なら曲データが存在しない ;よって最後に取得した曲No.-1=総曲数となる ;前回演出数=今回演出数なら曲No.から1引いて抜ける If(v[汎用変数D] == v[総演出数]) v[曲番_演奏用] -= 1 v[曲目数] = v[曲番_演奏用] Break Else v[汎用変数D] = v[総演出数] EndIf EndIf ;未開放箇所/総曲数の確認中は次の曲へ ;未開放箇所の確認中は次がなければ曲No.1を指定 If(v[曲目_処理方法] >= 2) v[曲番_演奏用] += 1 If(v[曲目_処理方法] == 2) If(v[曲番_演奏用] > v[曲目数]) v[曲番_演奏用] = 1 EndIf EndIf EndIf EndIf EndIf EndLoop EndIf Note("・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・") SubN("||||||||||||||||||||||||||||||||") SubN("・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・") If(Actor[1] == "プレイ_No._表示") If(v[曲番_演奏用] <= 0);曲No.を表示できないもの PictureDel(6);演出No.も消す Repeat(3) PictureDel(i+40) EndRepeat Else;曲No.を表示できるもの ;1桁目 If(s[メモリー_開始] == On[]) v[汎用変数D] = v[メモリー_曲番] Else v[汎用変数D] = v[曲番_演奏用] EndIf v[汎用変数D] %= 10 Repeat(10) If(v[汎用変数D] == i) Picture("SR_another_system_no"+i, 40, 0, 65, 185, 0, 100, 0, 1, 100, 100, 100, 100, 0, 60) EndIf EndRepeat ;2桁目 If(s[メモリー_開始] == On[]) v[汎用変数D] = v[メモリー_曲番] Else v[汎用変数D] = v[曲番_演奏用] EndIf v[汎用変数D] %= 100 v[汎用変数D] /= 10 Repeat(10) If(v[汎用変数D] == i) Picture("SR_another_system_no"+i, 41, 0, 58, 185, 0, 100, 0, 1, 100, 100, 100, 100, 0, 60) EndIf EndRepeat ;3桁目 If(s[メモリー_開始] == On[]) v[汎用変数D] = v[メモリー_曲番] Else v[汎用変数D] = v[曲番_演奏用] EndIf v[汎用変数D] /= 100 Repeat(10) If(v[汎用変数D] == i) Picture("SR_another_system_no"+i, 42, 0, 51, 185, 0, 100, 0, 1, 100, 100, 100, 100, 0, 60) EndIf EndRepeat EndIf EndIf Note("・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・") SubN("||||||||||||||||||||||||||||||||") SubN("・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・") If(Actor[1] == "カーソル_No._表示") ;1桁目&カーソル v[汎用変数D] = v[カーソル_位置] v[汎用変数D] %= 10 Repeat(10) If(v[汎用変数D] == i) Picture("SR_another_system_no"+i, 43, 0, 65, 217, 0, 100, 0, 1, 100, 100, 100, 100, 0, 60) カーソルx = (i == 0 ? 106 +9*18 +2 :i >= 6 ? 106 +(i-1)*18 +2 :106 +(i-1)*18) Picture("SR_another_system_cur", 46, 0, カーソルx, 194, 0, 100, 0, 1, 100, 100, 100, 100, 0, 60) EndIf EndRepeat ;2桁目 v[汎用変数D] = v[カーソル_位置] v[汎用変数D] %= 100 v[汎用変数D] /= 10 Repeat(10) If(v[汎用変数D] == i) Picture("SR_another_system_no"+i, 44, 0, 58, 217, 0, 100, 0, 1, 100, 100, 100, 100, 0, 60) EndIf EndRepeat ;3桁目 v[汎用変数D] = v[カーソル_位置] v[汎用変数D] /= 100 Repeat(10) If(v[汎用変数D] == i) Picture("SR_another_system_no"+i, 45, 0, 51, 217, 0, 100, 0, 1, 100, 100, 100, 100, 0, 60) EndIf EndRepeat EndIf Note("・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・") SubN("||||||||||||||||||||||||||||||||") SubN("・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・") If(Actor[1] == "パターン_No._表示") If(s[メモリー_開始] == On[]) PictureDel(6) Else;リストモード Repeat(9) 演出 = (i == 0 ? "a" :i == 1 ? "b" :i == 2 ? "c" :i == 3 ? "d" :i == 4 ? "e" :i == 5 ? "f" :i == 6 ? "g" :i == 7 ? "h" :"i") If(v[演出_演奏用] == i+1) Picture("SR_another_system_" + 演出, 6, 0, 76, 185, 0, 100, 0, 1, 100, 100, 100, 100, 0, 60) EndIf EndRepeat EndIf Note("") SubN("(補) 10(j)以降をツクったらここに追記") EndIf Note("・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・") SubN("||||||||||||||||||||||||||||||||") SubN("・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・") If(Actor[1] == "パターン_No._変換") If(v[演出数_演奏用] == 1) Name("", 6) Else Repeat(9) 演出 = (i == 0 ? "A" :i == 1 ? "B" :i == 2 ? "C" :i == 3 ? "D" :i == 4 ? "E" :i == 5 ? "F" :i == 6 ? "G" :i == 7 ? "H" :"I") If(v[演出_演奏用] == i+1) Name(演出, 6) EndIf EndRepeat Note("") SubN("(補) 10(j)以降をツクったらここに追記") EndIf EndIf Note("・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・") SubN("||||||||||||||||||||||||||||||||") SubN("・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・") If(Actor[1] == "うろ_表示") If(v[うろ_放置時間] >= 1000);放置時間1000~1230で↓向き If(Dir[10001] == Down[]) If(v[うろ_放置時間] == 1000) Picture("SR_another_uro-1", 49, 0, 159, 121, 0, 100, 0, 1, 100, 100, 100, 100, 0, 60) EndIf If(v[うろ_放置時間] == 1100) Picture("SR_another_uro-2", 49, 0, 159, 121, 0, 100, 0, 1, 100, 100, 100, 100, 0, 60) EndIf If(v[うろ_放置時間] == 1200) Picture("SR_another_uro-3", 49, 0, 161, 113, 0, 100, 0, 1, 100, 100, 100, 100, 0, 60) EndIf If(v[うろ_放置時間] == 1230) Picture("SR_another_uro-4", 49, 0, 163, 114, 0, 100, 0, 1, 100, 100, 100, 100, 0, 100) v[うろ_放置時間] += -60 EndIf Else;放置時間1000で↓向き以外 SetAction(10001, 8, 0, 0) SubAct(14);↓ Picture("SR_another_uro0", 49, 0, 159, 121, 0, 100, 0, 1, 100, 100, 100, 100, 0, 60) v[うろ_放置時間] += -100 EndIf Else;放置時間0~999 v[汎用変数D] = v[うろ_放置時間] v[汎用変数D] %= 10 If(v[汎用変数D] == 9) ForEach("Down[]", "Left[]", "Right[]", "Up[]") TKcode("If(Dir[10001] == " + $Element + ")") 付加 = ($Element == "Left[]" ? "l" :$Element == "Right[]" ? "r" :$Element == "Up[]" ? "u" :"") If(Dir[1] == Right[]) Picture("SR_another_uro1" + 付加, 49, 0, 159, 121, 0, 100, 0, 1, 100, 100, 100, 100, 0, 60) Else If(Dir[1] == Left[]) Picture("SR_another_uro2" + 付加, 49, 0, 159, 121, 0, 100, 0, 1, 100, 100, 100, 100, 0, 60) Else Picture("SR_another_uro0" + 付加, 49, 0, 159, 121, 0, 100, 0, 1, 100, 100, 100, 100, 0, 60) EndIf EndIf EndIf EndForEach SetAction(1, 8, 0, 0) SubAct(16);右90度 EndIf EndIf EndIf Note("・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・") SubN("||||||||||||||||||||||||||||||||") SubN("・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・") If(Actor[1] == "ガイド_表示") If(s[メモリー_開始] == On[]) Name("No.指定登録", 1) Name("登録曲の消去", 6) Else Name("演出切替", 1) Name("曲の登録/消去", 6) EndIf Text(即表示 + "$s$t$u$v:曲の選択");↑→↓← SubT(即表示 + "Z :曲の演奏・" + 汎用文字列A) SubT(即表示 + "X :メニュー") SubT(即表示 + "Shift :曲情報の閲覧・" + 汎用文字列F) If(s[メモリー_開始] == On[]) Name("未登録の曲を演奏", 1) Name("曲リストの全消去", 6) Else If(s[SR100パーセント] == On[]) Name("サウンドサーチ", 1) Else Name("未開放箇所の洗い出し", 1) EndIf Name("カーソルジャンプ", 6) EndIf Text(即表示 + 音符 + "メニューからできる操作") SubT(即表示 + "・" + 汎用文字列A) SubT(即表示 + "・" + 汎用文字列F) SubT(即表示 + "・演奏モード変更") If(s[SRED見た] == Off[]) Name("", 6) Else Name("/SREDの閲覧", 6) EndIf Text(即表示 + 音符 + "メニューからできる操作") SubT(即表示 + "・設定変更オプション") SubT(即表示 + "・操作ガイド再表示") SubT(即表示 + "・SR分室の終了/旧SRへ切替" + 汎用文字列F) If(s[メモリー_開始] == On[]) Name("曲未登録欄でZ⇒曲&演出No.を入力", 1) Name("メニュー⇒未登録の曲を演奏して選択", 6) Else Name("Shiftダイアログから選択", 1) Name("", 6) EndIf Text(即表示 + 音符 + "メモリーモード用曲登録の方法") SubT(即表示) SubT(即表示 + 汎用文字列A) SubT(即表示 + 汎用文字列F) EndIf Note("・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・") SubN("||||||||||||||||||||||||||||||||") SubN("・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・") If(Actor[1] == "メモリー_保存内容_復号") v[曲番_演奏用] = v[v[メモリー_曲番]] v[演出_演奏用] = v[v[メモリー_曲番]] v[曲番_演奏用] %= 1000 v[演出_演奏用] /= 1000 If(v[曲番_演奏用] < 0) v[演出_演奏用] *= -1 EndIf EndIf /* 620-1-2 Ev参照あり */ ;スイッチ デバッグ中 = 11 汎用スイッチA = 3521 演奏_演出_処理 = 3523 タイマー_自動曲送り_開始 = 3525 消音中 = 3527 曲リスト_カラフル = 3529 うろ_非表示 = 3530 メモリー_開始 = 3535 未開放_通知 = 3540 汎用スイッチB = 3541 SR100パーセント = 3915 ;変数 汎用変数D = 15 汎用変数E = 34 汎用変数A = 101 曲番_内部保持用 = 102 曲番_演奏用 = 103 サウンドサーチ_残時間 = 104 曲目_処理方法 = 105 演出_不完全開放数 = 107 カーソル_位置 = 110 曲目数 = 111 演出_内部保持用 = 112 演出数_演奏用 = 113 演出_演奏用 = 114 演出数_内部保持用 = 115 タイマー_総秒数 = 118 タイマー_選曲方法 = 119 うろ_放置時間 = 120 メモリー_曲番 = 122 キャラ1_表示位置_X = 133 キャラ1_表示位置_Y = 134 キャラ2_表示位置_X = 135 キャラ2_表示位置_Y = 136 汎用変数C = 141 汎用変数G = 3917 ;文章用 即表示 = "\\>" 音符 = "\\C[10]■\\C[0]" 文字_白 = "\\C[0]" 文字_赤 = "\\C[1]" 文字_青 = "\\C[2]" 文字_黄 = "\\C[4]" 汎用文字列F = "\\N[6]" ;他テンプレ 文字背景 = "PictureMove(50, 0, 160, 119, 0, 100, $TKarg1, 0, 100, 100, 100, 100, 0, 100, 2, 0)" 出 = 35 消 = 100 Note("===========================================================") SubN("処理:同Ev参照あり") SubN("===========================================================") If(Actor[1] == "★開放度☆_表示") If(s[メモリー_開始] == On[]) Repeat(10) If(v[i+1] != 0) カーソルx = (i % 10 >= 5 ? 106 +(i % 10)*18 +2 :i % 10 >= 1 ? 106 +(i % 10)*18 :106) Picture("SR_another_system_open", 10+i, 0, カーソルx, 194, 0, 100, 0, 1, 200, 200, 200, 100, 0, 60) Else PictureDel(10+i) EndIf EndRepeat Else;リストモード If(v[カーソル_位置] <= 10) v[曲番_演奏用] = v[曲目数] Else v[曲番_演奏用] = v[カーソル_位置] v[曲番_演奏用] += -10 EndIf v[汎用変数D] = v[曲番_演奏用] v[汎用変数D] %= 10 If(v[汎用変数D] == 0) v[汎用変数D] = 9 Else v[汎用変数D] += -1 EndIf v[曲番_演奏用] -= v[汎用変数D] If(s[デバッグ中] == On[]);デバッグ用チェック処理 ↓ v[汎用変数D] = v[曲番_演奏用] v[汎用変数D] += 29 If(v[汎用変数D] > v[曲目数]) v[汎用変数A] = v[曲目数] v[汎用変数A] %= 10 v[汎用変数A] -= 10 v[汎用変数D] %= v[曲目数] v[汎用変数D] += v[汎用変数A] EndIf TKcode(文字背景,出) Text(即表示 + 音符 + "曲リスト表示範囲") SubT(即表示 + "v" + カーソル_位置 + "(カーソル):" + 文字_青 + "\\V[" + カーソル_位置 + "] ") SubT(即表示 + 文字_白 + "v" + 曲番_演奏用 + "(開始)~v" + 汎用変数D + "(終了):" + 文字_青 + "\\V[" + 曲番_演奏用 + "]" + 文字_白 + "~" + 文字_青 + "\\V[" + 汎用変数D + "]") SubT(即表示 + 文字_黄 + "※以降の表示はX押しっぱでカット") TKcode(文字背景,消) EndIf;デバッグ用チェック処理 ↑ v[汎用変数A] = 1;変数101は繰り返し(処理)回数 v[演出_演奏用] = 1 v[汎用変数C] = 1;変数141は処理を行うか否かの判定 Loop v[演出_不完全開放数] = 0 If(v[汎用変数A] == v[汎用変数C]) v[曲目_処理方法] = 1 Note("-----------------------------------------------------------") Name("曲_取得", 1) Call(1, 10005, 1) Note("-----------------------------------------------------------") If(s[SR100パーセント] == On[]) Name("☆_表示", 6) Else If(v[演出_不完全開放数] == 0) Name("☆_表示", 6) Else If(v[演出_不完全開放数] < v[演出数_演奏用]) Name("★_表示", 6) Else Name(" _表示", 6) EndIf EndIf EndIf Else;変数101と141がズレている間は常に☆★消去 Name(" _表示", 6) EndIf Repeat(30) If(v[汎用変数A] == i+1) 反復数 = i ForEach("☆_表示", "★_表示", " _表示") If(Actor[6] == $Element) カーソルx = (反復数 % 10 >= 5 ? 106 +(反復数 % 10)*18 +2 :反復数 % 10 >= 1 ? 106 +(反復数 % 10)*18 :106) カーソルy = 171 +(反復数 / 10)*23 色 = ($Element == "☆_表示" ? 200 :100) Moshimo($Element == " _表示") PictureDel(10+反復数) Nanto Picture("SR_another_system_open", 10+反復数, 0, カーソルx, カーソルy, 0, 100, 35, 1, 色, 色, 色, 100, 0, 60) EndMoshimo EndIf EndForEach EndIf EndRepeat If(s[デバッグ中] == On[]);デバッグ用チェック処理 ↓ KeyEntry(汎用変数E, 0, 0, 0, 1, 0, 0, 0, 0, 0) If(v[汎用変数E] != 6) If(v[演出_不完全開放数] == 0) Name(文字_黄, 6) Else If(v[演出_不完全開放数] < v[演出数_演奏用]) Name(文字_青, 6) Else Name(文字_赤, 6) EndIf EndIf TKcode(文字背景,出) If(v[汎用変数A] < v[汎用変数C]);リスト空欄処理中 Text(即表示 + 音符 + "曲リスト表示対象") SubT(即表示 + "v" + 汎用変数A + "(回数):" + 文字_青 + "\\V[" + 汎用変数A + "]" + 文字_白 + "回目") SubT(即表示 + "v" + 曲番_演奏用 + "(位置):" + 文字_青 + "\\V[" + 曲番_演奏用 + "]") SubT(即表示 + 文字_白 + "v" + 汎用変数C + ":" + 文字_赤 + "\\V[" + 汎用変数C + "]" + 文字_白 + "回目まで曲未登録 ") Else;リスト☆判定処理中 Text(即表示 + 音符 + "曲リスト表示対象") SubT(即表示 + "v" + 汎用変数A + "(回数):" + 文字_青 + "\\V[" + 汎用変数A + "]" + 文字_白 + "回目") SubT(即表示 + "v" + 曲番_演奏用 + "(位置):" + 文字_青 + "\\V[" + 曲番_演奏用 + "]") SubT(即表示 + 文字_白 + "v" + 演出_不完全開放数 + "(未開放)/v" + 演出数_演奏用 + "(総数):\\N[6]\\V[" + 演出_不完全開放数 + "]" + 文字_白 + "/" + 文字_青 + "\\V[" + 演出数_演奏用 + "]") EndIf TKcode(文字背景,消) EndIf EndIf;デバッグ用チェック処理 ↑ ;総曲数±10の範囲を表示する際、曲数の1桁目が1~9だとリストに空欄が発生する ;総曲数を超えたらリスト表示上の1曲目の位置まで常に☆★表示なしとする v[汎用変数A] += 1 If(v[汎用変数A] > v[汎用変数C]) v[曲番_演奏用] += 1 If(v[曲番_演奏用] > v[曲目数]) v[汎用変数C] = v[曲目数] v[汎用変数C] %= 10 If(v[汎用変数C] != 0) v[汎用変数C] += -10 EndIf v[曲番_演奏用] = 1 v[汎用変数C] -= v[汎用変数A] v[汎用変数C] *= -1 Else v[汎用変数C] = v[汎用変数A] EndIf EndIf If(v[汎用変数A] > 30) v[曲目_処理方法] = 0 Break EndIf EndLoop Note("") SubN("(補) 詳細はEv3 ページ6にて") SubN(" 本来Ev1以外に処理を飛ばすべきでないが") SubN(" クソ長コマンドのため見やすさ優先で別イベントに投げた") If(s[曲リスト_カラフル] == On[]) Call(1, 3, 6);リスト背景カラフル化 EndIf EndIf EndIf Note("・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・") SubN("||||||||||||||||||||||||||||||||") SubN("・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・") If(Actor[1] == "演奏_開始") s[汎用スイッチA] = Off[] s[汎用スイッチB] = Off[] s[消音中] = Off[] v[曲番_演奏用] = v[曲番_内部保持用] v[演出_演奏用] = v[演出_内部保持用] v[演出数_演奏用] = v[演出数_内部保持用] v[汎用変数G] = 1;再生失敗(未開放)回数のカウント デバッグ用 If(Actor[6] == "自動");タイマー時間満了で再生 If(Time[] <= 0) v[汎用変数A] = v[タイマー_選曲方法] Loop ;リバース:登録No.を逆順に進む If(v[汎用変数A] == -1) If(s[メモリー_開始] == On[]) v[メモリー_曲番] += -1 If(v[メモリー_曲番] < 1) v[メモリー_曲番] = 10 EndIf Note("-----------------------------------------------------------") Name("メモリー_保存内容_復号", 1) Call(1, 10005, 1) Note("-----------------------------------------------------------") Else;リストモード v[演出_演奏用] += -1 If(v[演出_演奏用] < 1) v[曲番_演奏用] += -1 If(v[曲番_演奏用] < 1) v[曲番_演奏用] = v[曲目数] EndIf Note("-----------------------------------------------------------") Name("曲_取得", 1) Call(1, 10005, 1) Note("-----------------------------------------------------------") v[演出_演奏用] = v[演出数_演奏用] EndIf EndIf EndIf ;ランダム:登録No.無関係に選ぶ If(v[汎用変数A] == 0) If(s[メモリー_開始] == On[]) v[メモリー_曲番] += Random[1..9] v[メモリー_曲番] %= 10 v[メモリー_曲番] += 1 Note("-----------------------------------------------------------") Name("メモリー_保存内容_復号", 1) Call(1, 10005, 1) Note("-----------------------------------------------------------") Else;リストモード v[演出_演奏用] = 0 v[曲番_演奏用] = Random[1..9999] v[曲番_演奏用] %= v[曲目数] v[曲番_演奏用] += v[曲番_内部保持用] v[曲番_演奏用] %= v[曲目数] v[曲番_演奏用] += 1 Note("-----------------------------------------------------------") Name("曲_取得", 1) Call(1, 10005, 1) Note("-----------------------------------------------------------") v[演出_演奏用] = Random[1..99] v[演出_演奏用] %= v[演出数_演奏用] v[演出_演奏用] += 1 EndIf EndIf ;ノーマル:登録No.順に進む If(v[汎用変数A] == 1) If(s[メモリー_開始] == On[]) v[メモリー_曲番] += 1 If(v[メモリー_曲番] > 10) v[メモリー_曲番] = 1 EndIf Note("-----------------------------------------------------------") Name("メモリー_保存内容_復号", 1) Call(1, 10005, 1) Note("-----------------------------------------------------------") Else;リストモード v[演出_演奏用] += 1 If(v[演出_演奏用] > v[演出数_演奏用]) v[演出_演奏用] = 1 v[曲番_演奏用] += 1 If(v[曲番_演奏用] > v[曲目数]) v[曲番_演奏用] = 1 EndIf EndIf EndIf EndIf ;次演奏No.が定まったら演奏情報を取得 s[演奏_演出_処理] = On[] v[演出_不完全開放数] = 0 Note("-----------------------------------------------------------") Name("演出_初期化", 1) Call(1, 10005, 1) Note("-----------------------------------------------------------") Name("曲_取得", 1) Call(1, 10005, 1) Note("-----------------------------------------------------------") If(v[演出_不完全開放数] > 0) ;ランダムで一定回数再生失敗したら以降はリバースで選曲 If(v[汎用変数A] == 0) If(v[汎用変数G] > 30) v[汎用変数A] = -1 EndIf EndIf Else If(v[曲番_演奏用] != 0) Break EndIf EndIf v[汎用変数G] += 1;再生失敗(未開放)回数のカウント EndLoop EndIf Else;手動で再生 If(s[メモリー_開始] == On[]) v[メモリー_曲番] = v[カーソル_位置] v[演出_不完全開放数] = 0 s[演奏_演出_処理] = On[] Note("-----------------------------------------------------------") Name("メモリー_保存内容_復号", 1) Call(1, 10005, 1) Note("-----------------------------------------------------------") Name("演出_初期化", 1) Call(1, 10005, 1) Note("-----------------------------------------------------------") Name("曲_取得", 1) Call(1, 10005, 1) Note("-----------------------------------------------------------") If(v[演出_不完全開放数] > 0) s[汎用スイッチB] = On[] EndIf Else;リストモード ;演奏中の曲No.でZ⇒演出切替、1つだけならそのまま If(v[カーソル_位置] == v[曲番_内部保持用]) If(v[演出数_内部保持用] == 1) If(s[未開放_通知] == On[]) s[汎用スイッチA] = On[] EndIf Else v[演出_演奏用] += 1 If(v[演出_演奏用] > v[演出数_演奏用]) v[演出_演奏用] = 1 EndIf EndIf Else ;演奏中でない曲No.でZ⇒曲切替 v[曲番_演奏用] = v[カーソル_位置] v[演出_演奏用] = 1 EndIf s[演奏_演出_処理] = On[] ;未開放無視フラグが立っている間は演奏できるまでループ Loop v[演出_不完全開放数] = 0 Note("-----------------------------------------------------------") Name("演出_初期化", 1) Call(1, 10005, 1) Note("-----------------------------------------------------------") Name("曲_取得", 1) Call(1, 10005, 1) Note("-----------------------------------------------------------") If(s[デバッグ中] == On[]);デバッグ用チェック処理 ↓ If(v[演出_不完全開放数] == 0) Name(文字_黄, 6) Else If(v[演出_不完全開放数] < v[演出数_演奏用]) Name(文字_青, 6) Else Name(文字_赤, 6) EndIf EndIf TKcode(文字背景,出) If(s[メモリー_開始] == On[]) Text(即表示 + 音符 + "曲取得状態") SubT(即表示 + "v" + 曲番_演奏用 + "(曲)_v" + 演出_演奏用 + "(演出) - MNo." + メモリー_曲番 + ":" + 文字_黄 + "\\V[" + 曲番_演奏用 + "]" + 文字_白 + "_" + 文字_黄 + "\\V[" + 演出_演奏用 + "] - MNo." + 文字_黄 + "\\V[" + メモリー_曲番 + "]" + 文字_白) SubT(即表示 + "v" + 演出_不完全開放数 + "(1なら未開放) :" + 汎用文字列F + "\\V[" + 演出_不完全開放数 + "]") Else;リストモード Text(即表示 + 音符 + "曲取得状態") SubT(即表示 + "v" + 曲番_演奏用 + "(曲)_v" + 演出_演奏用 + "(演出):" + 文字_黄 + "\\V[" + 曲番_演奏用 + "]" + 文字_白 + "_" + 文字_黄 + "\\V[" + 演出_演奏用 + "]" + 文字_白) SubT(即表示 + "v" + 演出_不完全開放数 + "(1なら未開放) :" + 汎用文字列F + "\\V[" + 演出_不完全開放数 + "]") EndIf TKcode(文字背景,消);ダイアログを消してから次へ EndIf;デバッグ用チェック処理 ↑ If(v[演出_不完全開放数] > 0) ;通知フラグONで未開放なら即抜ける If(s[未開放_通知] == On[]) s[消音中] = On[] Break EndIf ;現演出No.<=演出数のうちは次の演出を試す If(v[演出_不完全開放数] <= v[演出数_演奏用]) v[演出_演奏用] += 1 ;現演出No.>演出数の場合は開放演出があるか確認 If(v[演出_演奏用] > v[演出数_演奏用]) ;開放演出あり、演出1に戻って試行継続 If(v[演出_不完全開放数] < v[演出数_演奏用]) v[演出_演奏用] = 1 Else;未開放曲、今の曲をかけ直す v[曲番_演奏用] = v[曲番_内部保持用] v[演出_演奏用] = v[演出_内部保持用] v[演出数_演奏用] = v[演出数_内部保持用] EndIf EndIf EndIf Else ;演奏可能ならそのまま抜ける Break EndIf v[汎用変数G] += 1;再生失敗(未開放)回数のカウント デバッグ用 ;試行回数が演出数を超えたら未開放曲、今の曲をかけ直す If(v[汎用変数G] > v[演出数_演奏用]) v[曲番_演奏用] = v[曲番_内部保持用] v[演出_演奏用] = v[演出_内部保持用] v[演出数_演奏用] = v[演出数_内部保持用] EndIf EndLoop EndIf EndIf If(s[デバッグ中] == On[]);デバッグ用チェック処理 ↓ If(v[演出_不完全開放数] == 0) Name(文字_黄, 6) Else Name(文字_赤, 6) EndIf TKcode(文字背景,出) Text(即表示 + 音符 + "曲取得結果") SubT(即表示) SubT(即表示 + "v" + 汎用変数G + "(再生までの試行数) :" + 汎用文字列F + "\\V[" + 汎用変数G + "]") TKcode(文字背景,消);ダイアログを消してから次へ EndIf;デバッグ用チェック処理 ↑ s[演奏_演出_処理] = Off[] If(v[曲番_演奏用] != v[曲番_内部保持用]) Note("-----------------------------------------------------------") Name("プレイ_No._表示", 1) Call(1, 10005, 1) Note("-----------------------------------------------------------") EndIf If(v[演出数_演奏用] != 1) Note("-----------------------------------------------------------") Name("パターン_No._表示", 1) Call(1, 10005, 1) Note("-----------------------------------------------------------") Else PictureDel(6) EndIf If(s[うろ_非表示] == On[]) PictureDel(49) Else v[うろ_放置時間] = 0 Picture("SR_another_uro0", 49, 0, 159, 121, 0, 100, 0, 1, 100, 100, 100, 100, 0, 60) EndIf ;曲情報を保存 v[曲番_内部保持用] = v[曲番_演奏用] v[演出_内部保持用] = v[演出_演奏用] v[演出数_内部保持用] = v[演出数_演奏用] SetEvent(4, 1, キャラ1_表示位置_X, キャラ1_表示位置_Y) SetEvent(5, 1, キャラ2_表示位置_X, キャラ2_表示位置_Y) MovePlace(620, -1, -1) ;通知フラグが立っていればお知らせ If(s[未開放_通知] == On[]) TKcode(文字背景,出) ;未開放が曲か演出かを通知 If(s[消音中] == On[]) FadeoutBGM(2000) Faice("SR_another_system_faceinfo", 1, 1, 0) Text(即表示 + 音符 + "曲の切り替え") SubT(即表示) SubT(即表示 + ">未開放の演出です") Else ;開放されていれば1種しかない旨を通知 If(s[汎用スイッチA] == On[]) Faice("SR_another_system_faceinfo", 0, 1, 0) Text(即表示 + 音符 + "演出の切り替え") SubT(即表示) SubT(即表示 + ">演出は1種類です") SubT(即表示 + " (演出変化なし)") EndIf EndIf TKcode(文字背景,消) EndIf ;リスト登録曲が未開放の場合は消すかどうか確認 If(s[汎用スイッチB] == On[]) s[消音中] = On[] FadeoutBGM(2000) Faice("SR_another_system_faceinfo", 0, 1, 0) TKcode(文字背景,出) Text(即表示 + 音符 + "曲の切り替え") SubT(即表示) SubT(即表示 + ">登録された曲・演出は未開放です") SubT(即表示 + " 取得条件が変わったかもしれません") Text(即表示 + 音符 + "曲の切り替え") SubT(即表示) SubT(即表示 + ">登録を消去しますか?") Choice("リスト消去", 5) Branch(即表示 + "はい = Z / いいえ = X", 0) FadeoutBGM(2000) v[v[カーソル_位置]] = 0 Text(即表示 + 音符 + "記憶曲の消去") SubT(即表示) SubT(即表示 + ">\\V[" + カーソル_位置 + "]番の曲を消去しました") Note("-----------------------------------------------------------") Name("★開放度☆_表示", 1) Call(1, 10005, 2) Note("-----------------------------------------------------------") MovePlace(620, -1, -1) EndChoice TKcode(文字背景,消) EndIf If(s[タイマー_自動曲送り_開始] == On[]) Timer(0, 1, タイマー_総秒数, 1, 0) Timer(1, 1, 1, 1, 0) EndIf EndIf Note("・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・") SubN("||||||||||||||||||||||||||||||||") SubN("・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・") If(Actor[1] == "サウンドサーチ_開始") v[サウンドサーチ_残時間] = 5999; 99:99になる Timer(0, 1, サウンドサーチ_残時間, 0, 0) v[演出_演奏用] = 0 v[曲番_演奏用] = Random[1..9999] v[曲番_演奏用] %= v[曲目数] v[曲番_演奏用] += v[曲番_内部保持用] v[曲番_演奏用] %= v[曲目数] v[曲番_演奏用] += 1 s[演奏_演出_処理] = Off[] Note("-----------------------------------------------------------") Name("曲_取得", 1) Call(1, 10005, 1) Note("-----------------------------------------------------------") v[演出_演奏用] = Random[0..999] v[演出_演奏用] %= v[演出数_演奏用] v[演出_演奏用] += v[演出_内部保持用] v[演出_演奏用] %= v[演出数_演奏用] v[演出_演奏用] += 1 v[演出_不完全開放数] = 0 Note("-----------------------------------------------------------") Name("演出_初期化", 1) Call(1, 10005, 1) Note("-----------------------------------------------------------") s[演奏_演出_処理] = On[] Note("-----------------------------------------------------------") Name("曲_取得", 1) Call(1, 10005, 1) Note("-----------------------------------------------------------") s[演奏_演出_処理] = Off[] v[曲番_内部保持用] = v[曲番_演奏用] v[演出_内部保持用] = v[演出_演奏用] v[演出数_内部保持用] = v[演出数_演奏用] Timer(1, 0, 0, 1, 0) EndIf /* 620-1-3 メニュー */ ;スイッチ デバッグ中 = 11 メニュー_2ページ目 = 3522 演奏_演出_処理 = 3523 タイマー_自動曲送り_開始 = 3525 入退室 = 3526 消音中 = 3527 操作音_カット = 3528 うろ_非表示 = 3530 サウンドサーチ_開始 = 3534 メモリー_開始 = 3535 未開放_通知 = 3540 汎用スイッチB = 3541 SR100パーセント = 3915 SRED見た = 4383 ;変数 メモリー_一時リスト_a = 1 メモリー_一時リスト_j = 10 汎用変数D = 15 汎用変数E = 34 曲番_内部保持用 = 102 曲番_演奏用 = 103 曲目_処理方法 = 105 演出_不完全開放数 = 107 入力_操作ラグ = 109 カーソル_位置 = 110 曲目数 = 111 演出_内部保持用 = 112 演出数_演奏用 = 113 演出_演奏用 = 114 演出数_内部保持用 = 115 タイマー_総秒数 = 118 タイマー_選曲方法 = 119 うろ_放置時間 = 120 メモリー_曲番 = 122 入力_キー = 123 キャラ1_表示位置_X = 133 キャラ1_表示位置_Y = 134 キャラ2_表示位置_X = 135 キャラ2_表示位置_Y = 136 SRa_退室先 = 140 汎用変数F = 582 汎用変数G = 3917 in_ワタシ_コレクション = 4388 ;文章用 即表示 = "\\>" 順表示 = "\\<" 止表示 = "\\!" 音符 = "\\C[10]■\\C[0]" 文字_白 = "\\C[0]" 文字_赤 = "\\C[1]" 文字_青 = "\\C[2]" 文字_灰 = "\\C[3]" 文字_黄 = "\\C[4]" 汎用文字列A = "\\N[1]" ファイル名a = "\\N[2]" ファイル名b = "\\N[3]" ファイル名c = "\\N[4]" ファイル名d = "\\N[5]" 汎用文字列F = "\\N[6]" ;他テンプレ 文字背景w = "PictureMove(50, 0, 160, 119, 0, 100, $TKarg1, 0, 100, 100, 100, 100, 0, 100, 0, 0)" 出 = 35 消 = 100 Note("===========================================================") SubN("メニュー") SubN("===========================================================") If(s[サウンドサーチ_開始] == On[]) Choice("サウンドサーチメニュー", 5) Branch(即表示 + "ヒントを見る", 0) Faice("SR_another_system_faceinfo", 0, 1, 0) v[汎用変数D] = v[カーソル_位置] v[汎用変数D] -= v[曲番_内部保持用] If(v[汎用変数D] < 0) v[汎用変数D] *= -1 EndIf v[汎用変数D] += Random[-2..2] If(v[汎用変数D] < 0) v[汎用変数D] *= -1 EndIf If(v[汎用変数D] == 0) v[汎用変数D] = 1 EndIf Text(即表示 + 音符 + "ヒント") SubT(即表示) SubT(即表示 + "表示演出/演出数 :" + 文字_赤 + "\\V[" + 演出_内部保持用 + "]" + 文字_白 + "/" + 文字_赤 + "\\V[" + 演出数_内部保持用 + "]" + 文字_白) SubT(即表示 + "カーソルとの距離:" + 文字_赤 + "\\V[" + 汎用変数D + "]" + 文字_白 + "前後") Branch(即表示 + "ギブアップ", 1) Timer(2, 0, 0, 0, 0) s[サウンドサーチ_開始] = Off[] v[汎用変数D] = v[カーソル_位置] v[汎用変数D] -= v[曲番_内部保持用] If(v[カーソル_位置] < 0) v[汎用変数D] *= -1 EndIf Text(即表示 + 音符 + "答え") SubT(即表示 + "曲No. :" + 文字_黄 + "\\V[" + 曲番_内部保持用 + "]" + 文字_白 + "/" + 文字_青 + "\\V[" + 曲目数 + "]" + 文字_白) SubT(即表示 + "表示演出/演出数 :" + 文字_赤 + "\\V[" + 演出_内部保持用 + "]" + 文字_白 + "/" + 文字_青 + "\\V[" + 演出数_内部保持用 + "]" + 文字_白) SubT(即表示 + "カーソルとの距離:" + 文字_赤 + "\\V[" + 汎用変数D + "]") If(s[タイマー_自動曲送り_開始] == On[]) Timer(0, 1, タイマー_総秒数, 1, 0) Timer(1, 0, 0, 1, 0) EndIf EndChoice Else;サウンドサーチ中以外 s[メニュー_2ページ目] = Off[] Faice("", 0, 1, 0) Loop If(s[メニュー_2ページ目] == Off[]) If(s[メモリー_開始] == On[]) Choice("メモリーモードメニュー 1ページ目", 5) Branch(即表示 + "演奏可能曲を登録", 0) Timer(2, 0, 0, 0, 0) FadeoutBGM(2000) Text(即表示 + 音符 + "演奏可能曲を登録") SubT(即表示) SubT(即表示 + ">曲を聞きながら登録できます") Text(即表示 + 音符 + "演奏可能曲を登録") SubT(即表示) SubT(即表示 + ">曲名が暗くなっているのが未登録です") SubT(即表示 + " 指定No.が未開放の場合は飛ばします") ;やめるかどうかは訊かないけど警告はしておく If(v[SRa_開放度] <= 50) Text(即表示 + 音符 + "演奏可能曲を登録") SubT(即表示) SubT(即表示 + ">未開放曲が長く続く箇所があると") SubT(即表示 + " 切り替えに" + 文字_赤 + "時間がかかります") Text(即表示 + 音符 + "演奏可能曲を登録") SubT(即表示) SubT(即表示 + ">リストモードで星が" + 文字_赤 + "1つもつかない区間がある" + 文字_白 + "時は") SubT(即表示 + " 注意してください") Text(即表示 + 音符 + "演奏可能曲を登録") SubT(即表示) SubT(即表示 + ">演出開放数4/609の場合、SRNo.3D→45で" + 文字_赤 + "5秒" + 文字_白 + "程度") SubT(即表示 + " SRNo.45→1Aで" + 文字_赤 + "30秒" + 文字_白 + "程度止まります") EndIf s[タイマー_自動曲送り_開始] = Off[] v[曲番_演奏用] = 1 v[演出_演奏用] = 1 v[汎用変数G] = 2 Faice("", 0, 1, 0) Loop Loop;演奏できるまでループ ;次の曲 If(v[汎用変数G] == 1) v[演出_演奏用] += 1 If(v[演出_演奏用] > v[演出数_演奏用]) v[演出_演奏用] = 1 v[曲番_演奏用] += 1 If(v[曲番_演奏用] > v[曲目数]) v[曲番_演奏用] = 1 EndIf EndIf EndIf ;前の曲 If(v[汎用変数G] == -1) v[演出_演奏用] += -1 If(v[演出_演奏用] < 1) v[曲番_演奏用] += -1 If(v[曲番_演奏用] < 1) v[曲番_演奏用] = v[曲目数] EndIf Note("-----------------------------------------------------------") Name("曲_取得", 1) Call(1, 10005, 1) Note("-----------------------------------------------------------") v[演出_演奏用] = v[演出数_演奏用] EndIf EndIf ;指定(演奏できなかったら次の曲を試行) If(v[汎用変数G] == 2) v[汎用変数G] = 1 EndIf ;演奏情報取得 If(v[汎用変数G] == 0) Break Else s[演奏_演出_処理] = On[] v[演出_不完全開放数] = 0 Note("-----------------------------------------------------------") Name("演出_初期化", 1) Call(1, 10005, 1) Note("-----------------------------------------------------------") Name("曲_取得", 1) Call(1, 10005, 1) Note("-----------------------------------------------------------") If(v[演出_不完全開放数] == 0) s[演奏_演出_処理] = Off[] If(s[うろ_非表示] == On[]) PictureDel(49) Else Picture("SR_another_uro0", 49, 0, 159, 121, 0, 100, 0, 1, 100, 100, 100, 100, 0, 60) EndIf SetEvent(4, 1, キャラ1_表示位置_X, キャラ1_表示位置_Y) SetEvent(5, 1, キャラ2_表示位置_X, キャラ2_表示位置_Y) MovePlace(620, -1, -1) Break EndIf EndIf EndLoop Note("-----------------------------------------------------------") Name("パターン_No._変換", 1) Call(1, 10005, 1) Note("-----------------------------------------------------------") ;演奏曲をメモリーNo.変換し、既に登録されているか調べる v[汎用変数D] = 10 Loop v[汎用変数E] = v[v[汎用変数D]] v[汎用変数F] = v[演出_演奏用] v[汎用変数F] *= 1000 v[汎用変数F] += v[曲番_演奏用] If(v[汎用変数E] == v[汎用変数F]) Name(文字_白, 1) Break EndIf v[汎用変数D] += -1 If(v[汎用変数D] == 0) Name(文字_灰, 1) Break EndIf EndLoop TKcode(文字背景w,出) Text(即表示 + 汎用文字列A + "SRNo.\\V[" + 曲番_演奏用 + "]" + 汎用文字列F + ":" + ファイル名a + ファイル名b + ファイル名c + ファイル名d + 文字_白) Choice("簡易演奏ループ", 5) Branch(即表示 + "次へ = Z / 前へ = X", 0) v[汎用変数G] = 1 Branch(即表示 + "指定No.へ移動", 1) v[汎用変数G] = 2 v[汎用変数D] = v[曲番_演奏用] Text(即表示 + 音符 + "曲の登録") SubT(即表示) SubT(即表示 + ">SRNo.を指定してください(1~\\V[" + 曲目数 + "] 0でキャンセル)") ValueEntry(3, 曲番_演奏用) If(v[曲番_演奏用] == 0);キャンセル v[曲番_演奏用] = v[汎用変数D] v[汎用変数G] = 0 Else;曲No.を入力 If(v[曲番_演奏用] > v[曲目数]) v[曲番_演奏用] = v[曲目数] EndIf v[演出_演奏用] = 1 EndIf Branch(即表示 + "メモリー登録 / 終了", 2) Text(即表示 + 汎用文字列A + "SRNo.\\V[" + 曲番_演奏用 + "]" + 汎用文字列F + ":" + ファイル名a + ファイル名b + ファイル名c + ファイル名d + 文字_白) Choice("登録/終了", 5) Branch(即表示 + "メモリー登録", 0) Text(即表示 + 音符 + "曲の登録") SubT(即表示) SubT(即表示 + ">登録するNo.を指定してください") SubT(即表示 + "  (No.10なら0を選択)") Text(即表示 + 音符 + "曲の登録") SubT(即表示) SubT(即表示 + "> (No.10なら0を選択)") ValueEntry(1, 汎用変数E) If(v[汎用変数E] == 0) v[汎用変数E] = 10 EndIf v[v[汎用変数E]] = v[演出_演奏用] v[v[汎用変数E]] *= 1000 If(v[曲番_内部保持用] < 0) v[v[汎用変数E]] *= -1 EndIf v[v[汎用変数E]] += v[曲番_演奏用] Text(即表示 + 音符 + "曲の登録") SubT(即表示) SubT(即表示 + ">No.\\V[" + 汎用変数E + "]に登録しました") Note("-----------------------------------------------------------") Name("★開放度☆_表示", 1) Call(1, 10005, 2) Note("-----------------------------------------------------------") v[汎用変数G] = 0 Branch(即表示 + "終了", 1) Break EndChoice Branch("前へ", 4) v[汎用変数G] = -1 EndChoice TKcode(文字背景w,消) EndLoop FadeoutBGM(2000) s[消音中] = On[] v[曲番_内部保持用..曲番_演奏用] = 0 Faice("SR_another_system_faceinfo", 0, 1, 0) Note("-----------------------------------------------------------") Name("演出_初期化", 1) Call(1, 10005, 1) Note("-----------------------------------------------------------") Name("プレイ_No._表示", 1) Call(1, 10005, 1) Note("-----------------------------------------------------------") MovePlace(620, -1, -1) Note("###########################################################") Branch(即表示 + "曲リストの全消去", 1) Text(即表示 + 音符 + "曲リストの全消去") SubT(即表示) SubT(即表示 + ">曲リスト登録内容を全て消去しますか?" + 順表示 + 止表示) Choice("リスト消去", 5) Branch(即表示 + "はい = Z / いいえ = X", 0) FadeoutBGM(2000) s[消音中] = On[] v[メモリー_一時リスト_a..メモリー_一時リスト_j] = 0 Text(即表示 + 音符 + "曲リストの全消去") SubT(即表示) SubT(即表示 + ">消去が完了しました") PictureDel(6) Repeat(10) PictureDel(i+10) EndRepeat Repeat(3) PictureDel(i+40) EndRepeat Note("-----------------------------------------------------------") Name("演出_初期化", 1) Call(1, 10005, 1) Note("-----------------------------------------------------------") MovePlace(620, -1, -1) EndChoice Note("###########################################################") Branch(即表示 + "演奏モード切替", 2) Text(即表示 + 音符 + "演奏モードの切替") SubT(即表示) SubT(即表示 + ">リストモードに切り替えますか?" + 順表示 + 止表示) Choice("モード変更", 5) Branch(即表示 + "はい = Z / いいえ = X", 0) Timer(2, 0, 0, 0, 0) FadeoutBGM(2000) s[タイマー_自動曲送り_開始] = Off[] s[消音中] = On[] s[メモリー_開始] = Off[] v[曲番_内部保持用..曲番_演奏用] = 0 v[カーソル_位置] = 1 v[演出_内部保持用..演出数_内部保持用] = 1 v[うろ_放置時間] = 0 Picture("SR_another_system_listback", 7, 0, 188, 171, 0, 100, 35, 1, 100, 100, 100, 100, 0, 60) Picture("SR_another_system_listback", 9, 0, 188, 217, 0, 100, 35, 1, 100, 100, 100, 100, 0, 60) Picture("SR_another_system_up", 47, 0, 299, 170, 0, 100, 35, 1, 100, 100, 100, 100, 0, 60) Picture("SR_another_system_down", 48, 0, 299, 218, 0, 100, 35, 1, 100, 100, 100, 100, 0, 60) Picture("SR_another_uro0", 49, 0, 159, 121, 0, 100, 0, 1, 100, 100, 100, 100, 0, 60) SetAction(10001, 8, 0, 0) SubAct(14) Note("-----------------------------------------------------------") Name("演出_初期化", 1) Call(1, 10005, 1) Note("-----------------------------------------------------------") Name("カーソル_No._表示", 1) Call(1, 10005, 1) Note("-----------------------------------------------------------") Name("プレイ_No._表示", 1) Call(1, 10005, 1) Note("-----------------------------------------------------------") MovePlace(620, -1, -1) Note("-----------------------------------------------------------") Name("★開放度☆_表示", 1) Call(1, 10005, 2) Note("-----------------------------------------------------------") MovePlace(620, -1, -1) LabelJump(99);メニュー終了 EndChoice Note("###########################################################") Branch(即表示 + "[1/2] 2ページ目を表示", 3) s[メニュー_2ページ目] = On[] Note("###########################################################") Branch("メニュー終了", 4) LabelJump(99);メニュー終了 Note("###########################################################") EndChoice Else Note("[][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]") If(s[SR100パーセント] == On[]) Name("サウンドサーチ", 6) Else Name("未開放箇所を探す", 6) EndIf Choice("リストモードメニュー 1ページ目", 5) Branch(即表示 + 汎用文字列F, 0) If(s[SR100パーセント] == On[]) Text(即表示 + 音符 + "サウンドサーチ") SubT(即表示) SubT(即表示 + ">曲・演出・ヒントから") SubT(即表示 + " 曲No.を探し出すゲームです") Text(即表示 + 音符 + "サウンドサーチ") SubT(即表示) SubT(即表示 + ">やりますか?" + 順表示 + 止表示) Choice("サウンドサーチ開始", 5) Branch(即表示 + "はい = Z / いいえ = X", 0) s[サウンドサーチ_開始] = On[] Timer(2, 0, 0, 0, 0) Note("-----------------------------------------------------------") Name("サウンドサーチ_開始", 1) Call(1, 10005, 2) Note("-----------------------------------------------------------") ;答えを隠す PictureDel(6) Repeat(3) PictureDel(i+40) EndRepeat Timer(1, 0, 0, 1, 0) LabelJump(99);メニュー終了 EndChoice Else;リストモード:SR100%でない Text(即表示 + 音符 + "未開放箇所のチェック") SubT(即表示) SubT(即表示 + ">どこからチェックを開始しますか?" + 順表示 + 止表示) Choice("チェック開始位置", 5) Branch(即表示 + "カーソル位置 = Z / No.1 = X", 0) v[曲番_演奏用] = v[カーソル_位置] Branch("No.1", 4) v[曲番_演奏用] = 1 EndChoice v[演出_演奏用] = 1 Loop v[演出_不完全開放数] = 0 v[曲目_処理方法] = 2 Note("-----------------------------------------------------------") Name("曲_取得", 1) Call(1, 10005, 1) Note("-----------------------------------------------------------") If(v[演出_不完全開放数] > 0) Note("-----------------------------------------------------------") Name("パターン_No._変換", 1) Call(1, 10005, 1) Note("-----------------------------------------------------------") Text(即表示 + 音符 + "未開放箇所のチェック") SubT(即表示) SubT(即表示 + ">未開放:No.\\V[" + 曲番_演奏用 + "]" + 汎用文字列F) Text(即表示 + 音符 + "未開放箇所のチェック") SubT(即表示) SubT(即表示 + ">続けてチェックしますか?" + 順表示 + 止表示) Choice("チェック継続", 5) Branch(即表示 + "はい = Z / いいえ = X", 0) v[演出_不完全開放数] = 0 v[演出_演奏用] += 1 If(v[演出_演奏用] > v[演出数_演奏用]) v[演出_演奏用] = 1 v[曲番_演奏用] += 1 EndIf Branch("チェック終了", 4) v[曲目_処理方法] = 0 Break EndChoice EndIf EndLoop EndIf Note("###########################################################") Branch(即表示 + "カーソルジャンプ", 1) Text(即表示 + 音符 + "カーソル位置の指定") SubT(即表示) SubT(即表示 + ">ジャンプ先No.を指定してください") SubT(即表示 + " (現在:No.\\V[" + カーソル_位置 + "] 0でキャンセル)") Text(即表示 + 音符 + "カーソル位置の指定") SubT(即表示) SubT(即表示 + ">(現在:No.\\V[" + カーソル_位置 + "] 0でキャンセル)") ValueEntry(3, 汎用変数D) If(v[汎用変数D] > 0) If(v[汎用変数D] > v[曲目数]) v[カーソル_位置] = v[曲目数] Else v[カーソル_位置] = v[汎用変数D] EndIf Text(即表示 + 音符 + "カーソル位置の指定") SubT(即表示) SubT(即表示 + ">No.\\V[" + カーソル_位置 + "]にジャンプします" + 順表示 + "\\.\\.\\^");自動送り SetAction(10001, 8, 0, 0) SubAct(14) Note("-----------------------------------------------------------") Name("カーソル_No._表示", 1) Call(1, 10005, 1) Note("-----------------------------------------------------------") Name("★開放度☆_表示", 1) Call(1, 10005, 2) Note("-----------------------------------------------------------") MovePlace(620, -1, -1) LabelJump(99);メニュー終了 EndIf Note("###########################################################") Branch("\\>演奏モード切替", 2) Text(即表示 + 音符 + "演奏モードの切替") SubT(即表示) SubT(即表示 + ">メモリーモードに切り替えますか?" + 順表示 + 止表示) Choice("モード変更", 5) Branch(即表示 + "はい = Z / いいえ = X", 0) Timer(2, 0, 0, 0, 0) FadeoutBGM(2000) s[タイマー_自動曲送り_開始] = Off[] s[消音中] = On[] s[メモリー_開始] = On[] v[曲番_内部保持用..曲番_演奏用] = 0 v[カーソル_位置] = 1 v[演出_内部保持用..演出数_内部保持用] = 1 v[うろ_放置時間] = 0 PictureDel(6) PictureDel(7) Picture("SR_another_system_listback", 8, 0, 188, 194, 0, 100, 0, 1, 100, 100, 100, 100, 0, 60) PictureDel(9) Repeat(20) PictureDel(i+20) EndRepeat PictureDel(47) PictureDel(48) Picture("SR_another_uro0", 49, 0, 159, 121, 0, 100, 0, 1, 100, 100, 100, 100, 0, 60) SetAction(10001, 8, 0, 0) SubAct(14) Note("-----------------------------------------------------------") Name("演出_初期化", 1) Call(1, 10005, 1) Note("-----------------------------------------------------------") Name("カーソル_No._表示", 1) Call(1, 10005, 1) Note("-----------------------------------------------------------") Name("プレイ_No._表示", 1) Call(1, 10005, 1) Note("-----------------------------------------------------------") Name("★開放度☆_表示", 1) Call(1, 10005, 2) Note("-----------------------------------------------------------") MovePlace(620, -1, -1) If(v[メモリー_曲番] == 0) Text(即表示 + 音符 + "メモリーモードについて") SubT(即表示) SubT(即表示 + "曲&演出を10個まで登録し") SubT(即表示 + "リストから選んで聞くことができます") Note("-----------------------------------------------------------") Name("ガイド_表示", 1) Call(1, 10005, 1) Note("-----------------------------------------------------------") EndIf LabelJump(99);メニュー終了 EndChoice Note("###########################################################") Branch(即表示 + "[1/2] 2ページ目を表示", 3) s[メニュー_2ページ目] = On[] Note("###########################################################") Branch("メニュー終了", 4) LabelJump(99);メニュー終了 Note("###########################################################") EndChoice EndIf Else Note("[][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]") Choice("2ページ目", 5) Branch(即表示 + "オプション", 0) Loop Choice("詳細設定", 5) Branch(即表示 + "未開放箇所の処理方法", 0) Text(即表示 + 音符 + "未開放箇所の処理方法") SubT(即表示) SubT(即表示 + ">曲リストの未開放箇所を選択した時") SubT(即表示 + " どう処理するか選べます") Text(即表示 + 音符 + "未開放箇所の処理方法") SubT(即表示) SubT(即表示 + "・無視:飛ばして開放演出を流します") SubT(即表示 + "・通知:演奏を止めてお知らせします") If(s[未開放_通知] == Off[]) Name("無視", 6) Else Name("通知", 6) EndIf Text(即表示 + 音符 + "未開放箇所の処理方法") SubT(即表示) SubT(即表示 + ">(現在:" + 汎用文字列F + ")") Choice("処理方法", 5) Branch(即表示 + "無視 = Z / 通知 = X", 0) s[未開放_通知] = Off[] Name("無視", 6) Branch("通知", 4) s[未開放_通知] = On[] Name("通知", 6) EndChoice Text(即表示 + 音符 + "未開放箇所の処理方法") SubT(即表示) SubT(即表示 + ">「未開放曲を" + 汎用文字列F + "」に設定しました") Note("<><><><><><><><><><><><><><><><><><><><><><><><><><><><><>") Branch(即表示 + "操作音の有無", 1) If(s[操作音_カット] == Off[]) Name("あり", 6) Else Name("なし", 6) EndIf Text(即表示 + 音符 + "操作音の有無") SubT(即表示) SubT(即表示 + ">操作時に効果音をつけますか?") SubT(即表示 + " (現在:" + 汎用文字列F + ")") SystemSE("(OFF)", 2, 60, 150, 50) Text(即表示 + 音符 + "操作音の有無") SubT(即表示) SubT(即表示 + ">(現在:" + 汎用文字列F + ")") Choice("操作音", 5) Branch(即表示 + "あり = Z / なし = X", 0) s[操作音_カット] = Off[] Name("あり", 6) SystemSE("2-69-se-2", 1, 50, 150, 50) SystemSE("784-se002", 2, 60, 150, 50) SystemSE("575-sentaku3", 0, 60, 130, 50) PlaySE("2-69-se-2", 50, 150, 50) Branch("なし", 4) s[操作音_カット] = On[] Name("なし", 6) SystemSE("(OFF)", 1, 50, 150, 50) SystemSE("(OFF)", 0, 60, 130, 50) EndChoice Text(即表示 + 音符 + "操作音の有無") SubT(即表示) SubT(即表示 + ">操作音" + 汎用文字列F + "にしました") Note("<><><><><><><><><><><><><><><><><><><><><><><><><><><><><>") Branch(即表示 + "操作ラグの調整", 2) v[汎用変数D] = v[入力_操作ラグ] Text(即表示 + 音符 + "操作ラグの調整") SubT(即表示) SubT(即表示 + ">キー入力が反映されるまでの") SubT(即表示 + " 時間を設定してください(0~9)") Text(即表示 + 音符 + "操作ラグの調整") SubT(即表示) SubT(即表示 + ">(現在:\\V[" + 入力_操作ラグ + "] 標準は5 0で現状維持)") ValueEntry(1, 汎用変数D) If(v[汎用変数D] != 0) v[入力_操作ラグ] = v[汎用変数D] EndIf Text(即表示 + 音符 + "操作ラグの調整") SubT(即表示) SubT(即表示 + ">\\V[" + 入力_操作ラグ + "]に設定しました") Note("<><><><><><><><><><><><><><><><><><><><><><><><><><><><><>") Branch(即表示 + "タイマーの設定", 3) If(s[タイマー_自動曲送り_開始] == On[]) Name("停止", 6) Else Name("起動", 6) EndIf Text(即表示 + 音符 + "タイマーの設定") SubT(即表示) SubT(即表示 + ">指定時間で自動曲送りする機能です") If(s[タイマー_自動曲送り_開始] == Off[]) If(v[SRa_開放度] <= 50) Text(即表示 + 音符 + "タイマーの設定") SubT(即表示) SubT(即表示 + ">リストに未開放が長く続く箇所があると") SubT(即表示 + " 切り替えに" + 文字_赤 + "時間がかかります") Text(即表示 + 音符 + "タイマーの設定") SubT(即表示) SubT(即表示 + ">リストに星が" + 文字_赤 + "1つもつかない区間がある" + 文字_白 + "時は") SubT(即表示 + " 注意してください") Text(即表示 + 音符 + "タイマーの設定") SubT(即表示) SubT(即表示 + ">演出開放数4/609の場合、SRNo.3D→45で" + 文字_赤 + "5秒" + 文字_白 + "程度") SubT(即表示 + " SRNo.45→1Aで" + 文字_赤 + "30秒" + 文字_白 + "程度止まります") EndIf EndIf Text(即表示 + 音符 + "タイマーの設定") SubT(即表示) SubT(即表示 + ">タイマーを" + 汎用文字列F + "しますか?" + 順表示 + 止表示) Choice("タイマー操作", 5) Branch(即表示 + "はい = Z / いいえ = X", 0) s[タイマー_自動曲送り_開始] = Toggle[] If(s[タイマー_自動曲送り_開始] == Off[]) Name("停止", 6) Else Name("起動", 6) EndIf Text(即表示 + 音符 + "タイマーの設定") SubT(即表示) SubT(即表示 + ">タイマーを" + 汎用文字列F + "しました") EndChoice If(s[タイマー_自動曲送り_開始] == On[]) Note("===========================================================") v[汎用変数D] = v[タイマー_選曲方法] If(v[タイマー_選曲方法] == 1) Name("ノーマル(+1)", 6) EndIf If(v[タイマー_選曲方法] == -1) Name("リバース(-1)", 6) EndIf If(v[タイマー_選曲方法] == 0) Name("ランダム(±?)", 6) EndIf Text(即表示 + 音符 + "選曲タイプの設定") SubT(即表示) SubT(即表示 + ">曲送り時の選曲方法を変えられます") SubT(即表示 + " (現在:" + 汎用文字列F + ")") Text(即表示 + 音符 + "選曲タイプの設定") Choice("切替方法", 5) Branch(即表示 + "ノーマル(+1)", 0) v[タイマー_選曲方法] = 1 Name("ノーマル(+1)", 6) Branch(即表示 + "リバース(-1)", 1) v[タイマー_選曲方法] = -1 Name("リバース(-1)", 6) Branch(即表示 + "ランダム(±?)", 2) v[タイマー_選曲方法] = 0 Name("ランダム(±?)", 6) Branch("そのまま", 4) v[タイマー_選曲方法] = v[汎用変数D] EndChoice Text(即表示 + 音符 + "選曲タイプの設定") SubT(即表示) SubT(即表示 + ">" + 汎用文字列F + "に設定しました") Note("===========================================================") v[汎用変数D] = v[タイマー_総秒数] v[汎用変数E] = v[タイマー_総秒数] v[汎用変数E] /= 60 v[汎用変数F] = v[タイマー_総秒数] v[汎用変数F] %= 60 If(v[汎用変数E] <= 0) Text(即表示 + 音符 + "切替時間の設定") SubT(即表示) SubT(即表示 + ">何秒に設定しますか?(1~9999)") SubT(即表示 + " (現在:\\V[" + 汎用変数F + "]秒 0で現状維持)") Text(即表示 + 音符 + "切替時間の設定") SubT(即表示) SubT(即表示 + ">(現在:\\V[" + 汎用変数F + "]秒 0で現状維持)") ValueEntry(4, タイマー_総秒数) Else Text(即表示 + 音符 + "切替時間の設定") SubT(即表示) SubT(即表示 + ">何秒に設定しますか?(1~9999)") SubT(即表示 + " (現在:\\V[" + 汎用変数E + "]分\\V[" + 汎用変数F + "]秒 = \\V[" + タイマー_総秒数 + "]秒 0で現状維持)") Text(即表示 + 音符 + "切替時間の設定") SubT(即表示) SubT(即表示 + ">(現在:\\V[" + 汎用変数E + "]分\\V[" + 汎用変数F + "]秒 = \\V[" + タイマー_総秒数 + "]秒 0で現状維持)") ValueEntry(4, タイマー_総秒数) EndIf If(v[タイマー_総秒数] == 0) v[タイマー_総秒数] = v[汎用変数D] EndIf Timer(0, 1, タイマー_総秒数, 1, 0) v[汎用変数E] = v[タイマー_総秒数] v[汎用変数E] /= 60 v[汎用変数F] = v[タイマー_総秒数] v[汎用変数F] %= 60 If(v[汎用変数E] <= 0) Text(即表示 + 音符 + "切替時間の設定") SubT(即表示) SubT(即表示 + ">\\V[" + 汎用変数F + "]秒に設定しました") Else Text(即表示 + 音符 + "切替時間の設定") SubT(即表示) SubT(即表示 + ">\\V[" + 汎用変数E + "]分\\V[" + 汎用変数F + "]秒に設定しました") EndIf Timer(1, 1, 1, 1, 0) LabelJump(99);メニュー終了 Else Timer(2, 1, 1, 1, 0) EndIf Note("<><><><><><><><><><><><><><><><><><><><><><><><><><><><><>") Branch("オプション終了", 4) Break EndChoice EndLoop Note("###########################################################") Branch(即表示 + "操作ガイドを表示", 1) Note("-----------------------------------------------------------") Name("ガイド_表示", 1) Call(1, 10005, 1) Note("-----------------------------------------------------------") Note("###########################################################") Branch(即表示 + "サウンドルーム分室から抜ける", 2) Name("PC画面", 6) If(v[SRa_退室先] == 1) Name("デバッグルーム", 6) Else If(v[SRa_退室先] == 230) Name("製作者部屋", 6) EndIf EndIf s[汎用スイッチB] = Off[] If(s[SRED見た] == Off[]) Text(即表示 + 音符 + "退室先の選択") SubT(即表示) Choice("退室先", 5) Branch(即表示 + "退室して" + 汎用文字列F + "へ戻る", 0) Branch(即表示 + "旧SRへ移動", 1) v[SRa_退室先] += 1000 Branch("退室キャンセル", 4) s[汎用スイッチB] = On[] EndChoice Else Text(即表示 + 音符 + "退室先の選択") Choice("退室先", 5) Branch(即表示 + "退室して" + 汎用文字列F + "へ戻る", 0) Branch(即表示 + "旧SRへ移動", 1) v[SRa_退室先] += 1000 Branch(即表示 + "SREDを見る", 2) v[SRa_退室先] = 456 Branch("退室キャンセル", 4) s[汎用スイッチB] = On[] EndChoice EndIf If(s[汎用スイッチB] == Off[]) s[入退室] = On[] Note("-----------------------------------------------------------") Name("SRa_退室", 1) Call(1, 10005, 4) Note("-----------------------------------------------------------") Exit;自動イベントのネストを抜ける EndIf Note("###########################################################") Branch(即表示 + "[2/2] 1ページ目を表示", 3) s[メニュー_2ページ目] = Off[] Note("###########################################################") Branch("メニュー終了", 4) LabelJump(99);メニュー終了 Note("###########################################################") EndChoice EndIf EndLoop EndIf Note("===========================================================") Label(99);メニュー終了 /* 620-1-4 入退室 */ ;スイッチ 一時スイッチj = 10 デバッグ中 = 11 足音開始 = 33 虹_初取 = 49 汎用スイッチA = 3521 演奏_演出_処理 = 3523 メインループ_開始 = 3524 タイマー_自動曲送り_開始 = 3525 入退室 = 3526 消音中 = 3527 操作音_カット = 3528 曲リスト_カラフル = 3529 背景_裏風 = 3531 裏SRED_到達 = 3532 サウンドサーチ_開始 = 3534 メモリー_開始 = 3535 汎用スイッチB = 3541 SR100パーセント = 3915 SRキー操作中 = 3919 一時スイッチ_37人目 = 3921 SRED見た = 4383 ;変数 一時変数a = 1 メモリー_一時リスト_a = 一時変数a 一時変数b = 一時変数a +1 メモリー_一時リスト_b = メモリー_一時リスト_a +1 一時変数c = 一時変数a +2 メモリー_一時リスト_c = メモリー_一時リスト_a +2 一時変数d = 一時変数a +3 メモリー_一時リスト_d = メモリー_一時リスト_a +3 一時変数e = 一時変数a +4 メモリー_一時リスト_e = メモリー_一時リスト_a +4 メモリー_一時リスト_f = メモリー_一時リスト_a +5 メモリー_一時リスト_g = メモリー_一時リスト_a +6 メモリー_一時リスト_h = メモリー_一時リスト_a +7 メモリー_一時リスト_i = メモリー_一時リスト_a +8 メモリー_一時リスト_j = メモリー_一時リスト_a +9 汎用変数D = 15 汎用変数E = 34 歩行速度判定 = 45 プレイ時間_蓄積_秒 = 88 歩数_蓄積_6桁まで = 90 曲番_内部保持用 = 102 曲番_演奏用 = 103 曲目_処理方法 = 105 SRa_開放度 = 106 演出_不完全開放数 = 107 曲_未開放数 = 108 入力_操作ラグ = 109 カーソル_位置 = 110 曲目数 = 111 演出_内部保持用 = 112 演出数_演奏用 = 113 演出_演奏用 = 114 演出数_内部保持用 = 115 総演出数 = 116 演出_未開放数 = 117 タイマー_総秒数 = 118 タイマー_選曲方法 = 119 うろ_放置時間 = 120 SRa_退室先 = 140 メモリー_保存リスト_a = 151 メモリー_保存リスト_b = メモリー_保存リスト_a +1 メモリー_保存リスト_c = メモリー_保存リスト_a +2 メモリー_保存リスト_d = メモリー_保存リスト_a +3 メモリー_保存リスト_e = メモリー_保存リスト_a +4 メモリー_保存リスト_f = メモリー_保存リスト_a +5 メモリー_保存リスト_g = メモリー_保存リスト_a +6 メモリー_保存リスト_h = メモリー_保存リスト_a +7 メモリー_保存リスト_i = メモリー_保存リスト_a +8 メモリー_保存リスト_j = メモリー_保存リスト_a +9 in_サウンドルーム = 166 汎用変数F = 582 in_ワタシ_コレクション = 4388 ;文章用 即表示 = "\\>" 音符 = "\\C[10]■\\C[0]" 文字_白 = "\\C[0]" 文字_赤 = "\\C[1]" 文字_青 = "\\C[2]" 文字_黄 = "\\C[4]" 汎用文字列B = "\\N[2]" 汎用文字列C = "\\N[3]" 汎用文字列D = "\\N[4]" 汎用文字列E = "\\N[5]" 汎用文字列F = "\\N[6]" ;他テンプレ 文字背景 = "PictureMove(50, 0, 160, 119, 0, 100, $TKarg1, 0, 100, 100, 100, 100, 0, 100, 2, 0)" 出 = 35 消 = 100 Note("===========================================================") SubN("入退室") SubN("===========================================================") If(Actor[1] == "SRa_入室") Picture("SR_another_system_musicinfo", 5, 0, 47, 193, 0, 100, 0, 1, 100, 100, 100, 100, 0, 60) Picture("SR_another_system_listback", 7, 0, 188, 171, 0, 100, 35, 1, 100, 100, 100, 100, 0, 60) Picture("SR_another_system_listback", 8, 0, 188, 194, 0, 100, 0, 1, 100, 100, 100, 100, 0, 60) Picture("SR_another_system_listback", 9, 0, 188, 217, 0, 100, 35, 1, 100, 100, 100, 100, 0, 60) Picture("SR_another_system_up", 47, 0, 299, 170, 0, 100, 35, 1, 100, 100, 100, 100, 0, 60) Picture("SR_another_system_down", 48, 0, 299, 218, 0, 100, 35, 1, 100, 100, 100, 100, 0, 60) Picture("SR_another_uro0", 49, 0, 159, 121, 0, 100, 0, 1, 100, 100, 100, 100, 0, 100) Picture("SR_another_system_textback", 50, 0, 160, 119, 0, 100, 100, 1, 100, 100, 100, 100, 0, 60) If(s[操作音_カット] == Off[]) SystemSE("575-sentaku3", 0, 60, 130, 50) SystemSE("2-69-se-2", 1, 50, 150, 50) SystemSE("784-se002", 2, 60, 150, 50) Else Repeat(3) SystemSE("(OFF)", i, 100, 100, 50) EndRepeat EndIf Screen(0, 20) Screen(1, -1) ForEach(10001, 3) SetAction($Element, 8, 0, 0) SubAct(14) EndForEach MenuProhibition(0) TextOption(1, 1, 0, 1) SystemGraphic("SR_another_system_skin", 0, 0) If(s[デバッグ中] == On[]);デバッグ用チェック処理 ↓ TKcode(文字背景,出) ScreenDisplay(2) EndIf;デバッグ用チェック処理 ↑ Repeat(2) Moshimo(i == 0) 適用変数群 = [裏SRED_到達, 背景_裏風, プレイ時間_蓄積_秒];裏SRED後 確率デフォ背景変化 Nanto 適用変数群 = [虹_初取, 曲リスト_カラフル, 歩数_蓄積_6桁まで];にじ取得後 確率リスト背景変化 EndMoshimo If(s[適用変数群[0]] == On[]) If(s[適用変数群[1]] == Off[]) v[汎用変数D] = v[適用変数群[2]] v[汎用変数D] %= 10 v[汎用変数E] = v[in_サウンドルーム] v[汎用変数E] %= 10 If(v[汎用変数D] == v[汎用変数E]) s[適用変数群[1]] = On[] EndIf EndIf If(s[デバッグ中] == On[]);デバッグ用チェック処理 ↓ TKcode(文字背景,出) ScreenDisplay(19) Text(即表示 + 音符 + "確率変動チェック") SubT(即表示) SubT(即表示 + "v" + 適用変数群[2] + " ⇒v" + 汎用変数D + ":" + 文字_黄 + "\\V[" + 適用変数群[2] + "]" + 文字_白 + "⇒" + 文字_黄 + "\\V[" + 汎用変数D + "]" + 文字_白) SubT(即表示 + "v" + in_サウンドルーム + "⇒v" + 汎用変数E + ":" + 文字_黄 + "\\V[" + in_サウンドルーム + "]" + 文字_白 + "⇒" + 文字_黄 + "\\V[" + 汎用変数E + "]") TKcode(文字背景,消) EndIf;デバッグ用チェック処理 ↑ EndIf EndRepeat Note("-----------------------------------------------------------") Name("演出_初期化", 1) Call(1, 10005, 1) Note("-----------------------------------------------------------") ScreenDisplay(3) Faice("", 0, 0, 0) ;初回入室時のみSRの概要+ガイドを表示 If(v[カーソル_位置] <= 0) TKcode(文字背景,出) Text(即表示) SubT(即表示 + " \\C[10]■" + 文字_黄 + "SR分室\\C[10]■") Faice("SR_another_system_faceinfo", 0, 1, 0) Text(即表示 + 音符 + "SR分室について") SubT(即表示) SubT(即表示 + "SR(サウンドルーム)では、ゲーム中で") SubT(即表示 + "使われている曲を聞くことができます") Text(即表示 + 音符 + "モードについて") SubT(即表示) SubT(即表示 + "入室時はリストモードです") SubT(即表示 + "曲リストで開放状況が確認できます") Note("-----------------------------------------------------------") Name("ガイド_表示", 1) Call(1, 10005, 1) Note("-----------------------------------------------------------") TKcode(文字背景,消) v[カーソル_位置] = 1 v[タイマー_選曲方法] = 1 EndIf s[演奏_演出_処理] = Off[] s[タイマー_自動曲送り_開始] = Off[] s[サウンドサーチ_開始..メモリー_開始] = Off[] If(v[入力_操作ラグ] == 0) v[入力_操作ラグ] = 5 EndIf If(v[タイマー_総秒数] == 0) v[タイマー_総秒数] = 5 EndIf v[うろ_放置時間] = 0 ;SRa変動チェック後を検知するためのマイナス化を解除 If(v[106] < 0) v[106] *= -1 EndIf ;前回入室時の曲/演出数を控えておく v[一時変数a] = v[曲目数];リスト転記前なので汎用変数代わりに v[一時変数b] = v[曲_未開放数] v[一時変数c] = v[総演出数] v[一時変数d] = v[演出_未開放数] v[一時変数e] = v[SRa_開放度] v[曲番_内部保持用] = 0 v[曲番_演奏用] = 1 v[演出_不完全開放数..曲_未開放数] = 0 v[演出_内部保持用..演出数_内部保持用] = 1 v[総演出数..演出_未開放数] = 0 v[曲目_処理方法] = 3 Note("-----------------------------------------------------------") Name("曲_取得", 1) Call(1, 10005, 1) Note("-----------------------------------------------------------") v[曲目_処理方法] = 0 v[曲_未開放数] -= v[曲目数] v[曲_未開放数] *= -1 v[演出_未開放数] -= v[総演出数] v[演出_未開放数] *= -1 v[SRa_開放度] = v[演出_未開放数] v[SRa_開放度] *= 100 v[SRa_開放度] /= v[総演出数] ;1つも開放されてない状況はありえないので1より小さい場合は1とみなす If(v[SRa_開放度] == 0) v[SRa_開放度] = 1 EndIf Note("-----------------------------------------------------------") Name("演出_初期化", 1) Call(1, 10005, 1) Note("-----------------------------------------------------------") v[曲番_演奏用] = v[曲番_内部保持用] v[演出_演奏用] = v[演出_内部保持用] v[演出数_演奏用] = v[演出数_内部保持用] Note("-----------------------------------------------------------") Name("カーソル_No._表示", 1) Call(1, 10005, 1) Note("-----------------------------------------------------------") Name("プレイ_No._表示", 1) Call(1, 10005, 1) Note("-----------------------------------------------------------") Name("★開放度☆_表示", 1) Call(1, 10005, 2) Note("-----------------------------------------------------------") v[曲番_演奏用] = v[曲番_内部保持用] v[演出_演奏用] = v[演出_内部保持用] v[演出数_演奏用] = v[演出数_内部保持用] v[一時変数a] -= v[曲目数] v[一時変数b] -= v[曲_未開放数] v[一時変数c] -= v[総演出数] v[一時変数d] -= v[演出_未開放数] v[一時変数e] -= v[SRa_開放度] v[一時変数a..一時変数e] *= -1 Repeat(5) If(v[i+1] >= 0) Name(文字_青 + "+", i+2) Else Name(文字_赤, i+2) EndIf EndRepeat Faice("SR_another_system_faceinfo", 0, 1, 0) Note("____________________________________________________________") SubN(" ☆ Unlocked Info ★") SubN("♪Music :【完全開放数】(差)/【曲目数】(差)") SubN("♪Pattern:【開放数(含:部分開放)】(差)/【総演出数】(差)") SubN("♪Rate :【開放度】%(差)") SubN("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~") TKcode(文字背景,出) Text(即表示 + " " + 文字_黄 + "☆ " + 文字_白 + "Unlocked Info " + 文字_黄 + "★" + 文字_白) SubT(即表示 + 文字_赤 + "♪" + 文字_白 + "Music :" + 文字_黄 + "\\V[" + 曲_未開放数 + "]" + 文字_白 + "(" + 汎用文字列C + "\\V[" + 一時変数b + "]" + 文字_白 + ")/" + 文字_黄 + "\\V[" + 曲目数 + "]" + 文字_白 + "(" + 汎用文字列B + "\\V[" + 一時変数a + "]" + 文字_白 + ")") SubT(即表示 + 文字_赤 + "♪" + 文字_白 + "Pattern:" + 文字_黄 + "\\V[" + 演出_未開放数 + "]" + 文字_白 + "(" + 汎用文字列E + "\\V[" + 一時変数d + "]" + 文字_白 + ")/" + 文字_黄 + "\\V[" + 総演出数 + "]" + 文字_白 + "(" + 汎用文字列D + "\\V[" + 一時変数c + "]" + 文字_白 + ")") SubT(即表示 + 文字_赤 + "♪" + 文字_白 + "Rate :" + 文字_黄 + "\\V[" + SRa_開放度 + "]%" + 文字_白 + "(" + 汎用文字列F + "\\V[" + 一時変数e + "]" + 文字_白 + ")") Repeat(4) Name("", i+2) EndRepeat s[SR100パーセント] = Off[] If(v[SRa_開放度] == 100) ;開放率が変動して100になったときだけ表示 If(v[5] != 0) PlaySE("784-se001", 50, 100, 50) Text(即表示 + 音符 + "おしらせ") SubT(即表示) SubT(即表示 + ">曲が全開放されています") Text(即表示 + 音符 + "おしらせ") SubT(即表示) SubT(即表示 + ">メニューの「未開放箇所を探す」を") SubT(即表示 + " 「サウンドサーチ」に変更しました") EndIf s[SR100パーセント] = On[] EndIf Note("") SubN("(補) 強制的に全開放処理に移行する隠しコマンド") SubN(" 処理は現実PCイベント内に記述") If(s[一時スイッチj] == On[]) PlaySE("784-se001", 50, 100, 50) Text(即表示 + 音符 + "疑似全開放モード") SubT(即表示) SubT(即表示 + ">曲が全開放された" + 文字_赤 + "つもり" + 文字_白 + "で処理し") SubT(即表示 + " サウンドサーチを解禁します") Text(即表示 + 音符 + "疑似全開放モード") SubT(即表示) SubT(即表示 + ">画面表示上は全開放扱いですが") SubT(即表示 + 文字_赤 + " 未開放曲は演奏されません") s[SR100パーセント] = On[] s[一時スイッチj] = Off[] Note("-----------------------------------------------------------") Name("★開放度☆_表示", 1) Call(1, 10005, 2) Note("-----------------------------------------------------------") EndIf TKcode(文字背景,消) ;保存曲をメモリーモード用リストに転記 v[汎用変数D] = メモリー_一時リスト_j v[汎用変数E] = メモリー_保存リスト_j Loop v[v[汎用変数D]] = v[v[汎用変数E]] If(v[汎用変数E] < メモリー_保存リスト_a) If(s[デバッグ中] == On[]);デバッグ用チェック処理 ↓ TKcode(文字背景,出) ;普通に書くより長いけど汎用性のある方で Repeat(2) Moshimo(i == 0) 適用変数群 = [メモリー_保存リスト_a, メモリー_保存リスト_b, メモリー_保存リスト_c, メモリー_保存リスト_d, メモリー_保存リスト_e, メモリー_保存リスト_f, メモリー_保存リスト_g, メモリー_保存リスト_h, メモリー_保存リスト_i, メモリー_保存リスト_j, "", ""] Nanto 適用変数群 = [メモリー_一時リスト_a, メモリー_一時リスト_b, メモリー_一時リスト_c, メモリー_一時リスト_d, メモリー_一時リスト_e, メモリー_一時リスト_f, メモリー_一時リスト_g, メモリー_一時リスト_h, メモリー_一時リスト_i, メモリー_一時リスト_j, " ", " "] EndMoshimo Text(即表示 + 音符 + "メモリー保存確認") SubT(即表示) SubT(即表示 + "v" + 適用変数群[0] + "~" + 適用変数群[4] + 適用変数群[10] + ":\\V[" + 適用変数群[0] + "] \\V[" + 適用変数群[1] + "] \\V[" + 適用変数群[2] + "] \\V[" + 適用変数群[3] + "] \\V[" + 適用変数群[4] + "]") SubT(即表示 + "v" + 適用変数群[5] + "~" + 適用変数群[9] + 適用変数群[11] + ":\\V[" + 適用変数群[5] + "] \\V[" + 適用変数群[6] + "] \\V[" + 適用変数群[7] + "] \\V[" + 適用変数群[8] + "] \\V[" + 適用変数群[9] + "]") EndRepeat TKcode(文字背景,消) EndIf;デバッグ用チェック処理 ↑ Break EndIf v[汎用変数D] += -1 v[汎用変数E] += -1 EndLoop ;到達したことがあれば演奏 If(v[in_ワタシ_コレクション] > 0) v[曲番_演奏用] = -1 v[演出_演奏用] = 1 s[演奏_演出_処理] = On[] Note("-----------------------------------------------------------") Name("曲_取得", 1) Call(1, 10005, 1) Note("-----------------------------------------------------------") Name("プレイ_No._表示", 1) Call(1, 10005, 1) Note("-----------------------------------------------------------") s[演奏_演出_処理] = Off[] v[曲番_内部保持用] = v[曲番_演奏用] v[演出_内部保持用] = v[演出_演奏用] v[演出数_内部保持用] = v[演出数_演奏用] s[消音中] = Off[] Else;到達したことがなければ無音 v[曲番_演奏用] = 0 s[消音中] = On[] EndIf MovePlace(620, -1, -1) s[メインループ_開始] = On[] s[入退室] = Off[] EndIf Note("・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・") SubN("||||||||||||||||||||||||||||||||") SubN("・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・") If(Actor[1] == "SRa_退室") Timer(2, 1, 1, 1, 0) ;メモリーモード用リストが更新されたか確認 v[汎用変数E] = 1 Loop v[汎用変数D] = v[v[汎用変数E]] v[汎用変数E] += 150 v[汎用変数F] = v[v[汎用変数E]] v[汎用変数E] += -150 If(v[汎用変数D] != v[汎用変数F]) s[v[汎用変数E]] = On[] Name("記憶_更新", 6) EndIf If(s[デバッグ中] == On[]);デバッグ用チェック処理 ↓ TKcode(文字背景,出) Text(即表示 + 音符 + "メモリー保存確認") SubT(即表示) SubT(即表示 + "v" + 汎用変数D + " (今回):\\V[" + 汎用変数D + "]") SubT(即表示 + "v" + 汎用変数F + "(前回):\\V[" + 汎用変数F + "]") TKcode(文字背景,消) EndIf;デバッグ用チェック処理 ↑ v[汎用変数E] += 1 If(v[汎用変数E] > メモリー_一時リスト_j) If(Actor[6] == "記憶_更新") TKcode(文字背景,出) Text(即表示 + 音符 + "メモリーモード曲リストの保存") SubT(即表示) SubT(即表示 + ">曲リストの登録内容が更新されています") Text(即表示 + 音符 + "メモリーモード曲リストの保存") SubT(即表示) SubT(即表示 + ">今回の登録状況を保存しますか?" + 順表示 + 止表示) Choice("リスト保存", 5) Branch(即表示 + "はい = Z / いいえ = X", 0) v[汎用変数D] = メモリー_保存リスト_j Loop v[汎用変数E] += -1 v[v[汎用変数D]] = v[v[汎用変数E]] v[汎用変数D] += -1 If(v[汎用変数D] < メモリー_保存リスト_a) Break EndIf EndLoop Text(即表示 + "♪メモリーモード曲リストの保存") SubT(即表示) SubT(即表示 + ">保存が完了しました") EndChoice TKcode(文字背景,消) EndIf Break EndIf EndLoop ;デバッグ退避した場合はフラグを戻す If(ItemCnt[1] != 0);デバッグアイテムを持っているか If(s[デバッグ中] == Off[]) TKcode(文字背景,出) Text(即表示 + 音符 + "デバッグ確認") SubT(即表示) SubT(即表示 + ">SR退室に伴い") SubT(即表示 + " デバッグ退避を解除します") TKcode(文字背景,消) s[デバッグ中] = On[] EndIf EndIf ;2っき標準設定に戻す FadeoutBGM(2000) ScreenDel(2) ForEach("うろつき", "デフォルト", "デフォルト1", "デフォルト2", "女の子", "デフォルト3") Name($Element, i+1) EndForEach s[汎用スイッチA] = Off[];現実PCのSRa更新通知に使用 s[メインループ_開始] = Off[] s[曲リスト_カラフル] = Off[] s[背景_裏風] = Off[] s[汎用スイッチB] = Off[];現実PCのSRa更新通知に使用 v[歩行速度判定] = 2 Screen(0, -1) TextOption(0, 2, 1, 0) Call(0, 11, 0);シスグラ&SE設定 Call(0, 10, 0);歩行速度設定 Call(0, 3, 0);MAP移動時SV初期化 SetAction(10001, 8, 0, 0) SubAct(12) Wait(0) Note("____________________________________________________________") SubN("退室先 優先順位") SubN("1 1000~:旧SR") SubN("2   456:SRED") SubN("3  230:開発者部屋") SubN("4  2:現実部屋PC") SubN("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~") If(v[SRa_退室先] >= 1000) s[SRキー操作中] = On[] MovePlace(6, -1, -1) s[入退室] = Off[] Else If(v[SRa_開放度] >= 95) If(s[SRED見た] == Off[]) v[SRa_退室先] = 456 Else If(s[裏SRED_到達] == Off[]) v[SRa_退室先] = 456 EndIf EndIf EndIf If(v[SRa_退室先] == 456) s[一時スイッチ_37人目] = Off[] MovePlace(456, 12, 5) Wait(20) ScreenDisplay(0) SetAction(10001, 8, 0, 0) ForEach(36, 2, 28, 28, 28, 28, 28, 29, 29, 29, 37) SubAct($Element) EndForEach Wait(1) MenuProhibition(1) s[足音開始] = On[] s[入退室] = Off[] Else If(v[SRa_退室先] == 230) MovePlace(230, 32, 69) MenuProhibition(1) Call(0, 9, 0);動作禁止解除 s[入退室] = Off[] ScreenDisplay(3) Else MovePlace(2, 12, 6) EndIf EndIf EndIf EndIf /* 620-1-5 メインループ */ ;スイッチ デバッグ中 = 11 メインループ_開始 = 3524 タイマー_自動曲送り_開始 = 3525 消音中 = 3527 操作音_カット = 3528 うろ_非表示 = 3530 サウンドサーチ_開始 = 3534 メモリー_開始 = 3535 汎用スイッチB = 3541 ;変数 メモリー_一時リスト_a = 1 メモリー_一時リスト_b = メモリー_一時リスト_a +1 メモリー_一時リスト_c = メモリー_一時リスト_a +2 メモリー_一時リスト_d = メモリー_一時リスト_a +3 メモリー_一時リスト_e = メモリー_一時リスト_a +4 メモリー_一時リスト_f = メモリー_一時リスト_a +5 メモリー_一時リスト_g = メモリー_一時リスト_a +6 メモリー_一時リスト_h = メモリー_一時リスト_a +7 メモリー_一時リスト_i = メモリー_一時リスト_a +8 メモリー_一時リスト_j = メモリー_一時リスト_a +9 汎用変数D = 15 汎用変数E = 34 曲番_内部保持用 = 102 曲番_演奏用 = 103 サウンドサーチ_残時間 = 104 演出_不完全開放数 = 107 入力_操作ラグ = 109 カーソル_位置 = 110 曲目数 = 111 演出_内部保持用 = 112 演出数_演奏用 = 113 演出_演奏用 = 114 演出数_内部保持用 = 115 タイマー_総秒数 = 118 うろ_放置時間 = 120 メモリー_曲番 = 122 入力_キー = 123 入力_連続_監視 = 124 入力_連続_判定 = 125 汎用変数F = 582 in_ワタシ_コレクション = 4388 ;文章用 即表示 = "\\>" 順表示 = "\\<" 止表示 = "\\!" 音符 = "\\C[10]■\\C[0]" 文字_白 = "\\C[0]" 文字_赤 = "\\C[1]" 文字_黄 = "\\C[4]" 汎用文字列A = "\\N[1]" ファイル名a = "\\N[2]" ファイル名b = "\\N[3]" ファイル名c = "\\N[4]" ファイル名d = "\\N[5]" 汎用文字列F = "\\N[6]" ;他テンプレ 文字背景 = "PictureMove(50, 0, 160, 119, 0, 100, $TKarg1, 0, 100, 100, 100, 100, 0, 100, 2, 0)" 出 = 35 消 = 100 Note("===========================================================") SubN("メインループ") SubN("===========================================================") If(s[タイマー_自動曲送り_開始] == On[]) If(Time[] <= 0) Note("-----------------------------------------------------------") Name("演奏_開始", 1) Name("自動", 6) Call(1, 10005, 2) Note("-----------------------------------------------------------") EndIf EndIf If(v[入力_キー] < 0) v[入力_キー] *= -1 EndIf v[入力_連続_監視] = v[入力_キー] KeyEntry(123, 0, 0, 1, 1, 1, 1, 1, 1, 1) Wait(0) KeyEntry(15, 0, 0, 0, 0, 0, 1, 1, 1, 1);アローキーだけ2度判定 If(v[入力_キー] == 0) If(v[汎用変数D] > 0) If(v[入力_連続_監視] > 0) v[入力_キー] = v[汎用変数D] EndIf EndIf EndIf ;押し続けなければ1ずつ動く(ラグ5基準) If(v[入力_キー] > 0) If(v[入力_キー] < 5) If(v[入力_連続_監視] == v[入力_キー]) v[入力_連続_判定] += 1 If(v[入力_連続_判定] < 4) v[入力_キー] *= -1 EndIf Else v[入力_連続_判定] = 0 EndIf EndIf v[うろ_放置時間] = 0 Else v[入力_連続_判定] = 0 v[うろ_放置時間] += 1 EndIf Note("###########################################################") ;↓:CursorNo. リスト⇒+10 / メモリー⇒末尾 If(v[入力_キー] == 1) If(s[操作音_カット] == Off[]) PlaySE("575-sentaku1", 100, 100, 50) EndIf If(s[メモリー_開始] == On[]) v[カーソル_位置] = 10 Else;リストモード v[カーソル_位置] += 10 If(v[カーソル_位置] > v[曲目数]);操作後のカーソル位置が曲目数を超える時 v[汎用変数D] = v[カーソル_位置] v[汎用変数D] %= 10 If(v[汎用変数D] != 0) v[カーソル_位置] = v[汎用変数D] Else v[カーソル_位置] = 10 EndIf EndIf EndIf ;最終入力方向を記憶(うろつきの向きに使用) SetAction(10001, 8, 0, 0) SubAct(14) Note("-----------------------------------------------------------") Name("カーソル_No._表示", 1) Call(1, 10005, 1) Note("-----------------------------------------------------------") ;リストの表示段がずれたら←を向かせる(△▽を光らせる処理) If(s[メモリー_開始] == Off[]);リストモード SetAction(3, 8, 0, 0) SubAct(15) PictureMove(48, 0, 299, 218, 0, 100, 35, 0, 200, 200, 200, 100, 0, 100, 3, 0) Note("-----------------------------------------------------------") Name("★開放度☆_表示", 1) Call(1, 10005, 2) Note("-----------------------------------------------------------") EndIf EndIf Note("###########################################################") ;←:CursorNo. -1 If(v[入力_キー] == 2) If(s[操作音_カット] == Off[]) PlaySE("575-sentaku1", 100, 100, 50) EndIf v[カーソル_位置] += -1 If(v[カーソル_位置] < 1) If(s[メモリー_開始] == On[]) v[カーソル_位置] = 10 Else;リストモードで操作後のカーソル位置が曲目数を超える時 v[カーソル_位置] = v[曲目数] EndIf EndIf SetAction(10001, 8, 0, 0) SubAct(15) Note("-----------------------------------------------------------") Name("カーソル_No._表示", 1) Call(1, 10005, 1) Note("-----------------------------------------------------------") ;カーソルが右端かカーソルNo.1=曲目数の時、段ズレが発生している If(s[メモリー_開始] == Off[]);リストモード v[汎用変数D] = v[カーソル_位置] v[汎用変数D] %= 10 s[汎用スイッチB] = Off[] If(v[汎用変数D] == 0) s[汎用スイッチB] = On[] Else If(v[カーソル_位置] == v[曲目数]) s[汎用スイッチB] = On[] EndIf EndIf If(s[汎用スイッチB] == On[]) SetAction(3, 8, 0, 0) SubAct(15) PictureMove(47, 0, 299, 170, 0, 100, 35, 0, 200, 200, 200, 100, 0, 100, 3, 0) Note("-----------------------------------------------------------") Name("★開放度☆_表示", 1) Call(1, 10005, 2) Note("-----------------------------------------------------------") EndIf EndIf EndIf Note("###########################################################") ;→:CursorNo. +1 If(v[入力_キー] == 3) If(s[操作音_カット] == Off[]) PlaySE("575-sentaku1", 100, 100, 50) EndIf v[カーソル_位置] += 1 If(s[メモリー_開始] == On[]) If(v[カーソル_位置] > 10) v[カーソル_位置] = 1 EndIf Else;操作後のカーソル位置がNo.11以上になる時 If(v[カーソル_位置] > v[曲目数]) v[カーソル_位置] = 1 EndIf EndIf SetAction(10001, 8, 0, 0) SubAct(13) Note("-----------------------------------------------------------") Name("カーソル_No._表示", 1) Call(1, 10005, 1) Note("-----------------------------------------------------------") ;カーソルが左端の時、段ズレが発生している If(s[メモリー_開始] == Off[]);リストモード v[汎用変数D] = v[カーソル_位置] v[汎用変数D] %= 10 If(v[汎用変数D] == 1) SetAction(3, 8, 0, 0) SubAct(15) PictureMove(48, 0, 299, 218, 0, 100, 35, 0, 200, 200, 200, 100, 0, 100, 3, 0) Note("-----------------------------------------------------------") Name("★開放度☆_表示", 1) Call(1, 10005, 2) Note("-----------------------------------------------------------") EndIf EndIf EndIf Note("###########################################################") ;↑:CursorNo. リスト⇒-10 / メモリー⇒先頭 If(v[入力_キー] == 4) If(s[操作音_カット] == Off[]) PlaySE("575-sentaku1", 100, 100, 50) EndIf If(s[メモリー_開始] == On[]) v[カーソル_位置] = 1 Else;リストモードで操作前のカーソル位置がNo.10以下の時 If(v[カーソル_位置] <= 10) v[汎用変数D] = v[曲目数] v[汎用変数D] %= 10 v[汎用変数D] -= v[カーソル_位置] v[カーソル_位置] = v[曲目数] v[カーソル_位置] -= v[汎用変数D] If(v[カーソル_位置] > v[曲目数]) v[カーソル_位置] += -10 EndIf Else;リストモードで操作前のカーソル位置がNo.11以上の時 v[カーソル_位置] += -10 EndIf EndIf SetAction(10001, 8, 0, 0) SubAct(12) Note("-----------------------------------------------------------") Name("カーソル_No._表示", 1) Call(1, 10005, 1) Note("-----------------------------------------------------------") If(s[メモリー_開始] == Off[]);リストモード SetAction(3, 8, 0, 0) SubAct(15) PictureMove(47, 0, 299, 170, 0, 100, 35, 0, 200, 200, 200, 100, 0, 0, 3, 0) Note("-----------------------------------------------------------") Name("★開放度☆_表示", 1) Call(1, 10005, 2) Note("-----------------------------------------------------------") EndIf EndIf Note("###########################################################") ;Z:カーソルNo. リスト⇒再生/演出切替 / メモリー⇒再生/登録/消去 If(v[入力_キー] == 5) If(s[操作音_カット] == Off[]) PlaySE("575-sentaku1", 100, 100, 50) EndIf If(s[サウンドサーチ_開始] == On[]);リストモード&サウンドサーチ中 If(v[カーソル_位置] == v[曲番_内部保持用]);正解 ;持ち時間から残り秒数を引いてかかった時間を求める Timer(2, 0, 0, 0, 0) v[汎用変数F] = Time[] v[サウンドサーチ_残時間] -= v[汎用変数F] v[汎用変数E] = v[サウンドサーチ_残時間] v[汎用変数E] /= 60 v[汎用変数F] = v[サウンドサーチ_残時間] v[汎用変数F] %= 60 TKcode(文字背景,出) Faice("SR_another_system_faceinfo", 0, 1, 0) If(v[汎用変数E] <= 0);かかった時間が59秒以内 Text(即表示 + 音符 + "サウンドサーチ") SubT(即表示) SubT(即表示 + ">かかった時間:\\V[" + 汎用変数F + "]秒") Else;かかった時間が1分以上 Text(即表示 + 音符 + "サウンドサーチ") SubT(即表示) SubT(即表示 + ">かかった時間:\\V[" + 汎用変数E + "]分\\V[" + 汎用変数F + "]秒") EndIf Text(即表示 + 音符 + "サウンドサーチ") SubT(即表示) SubT(即表示 + ">もう一度やりますか?" + 順表示 + 止表示) Choice("サウンドサーチ継続", 5) Branch(即表示 + "はい = Z / いいえ = X", 0) Note("-----------------------------------------------------------") Name("サウンドサーチ_開始", 1) Call(1, 10005, 2) Note("-----------------------------------------------------------") Branch("サウンドサーチ終了", 4) s[サウンドサーチ_開始] = Off[] v[曲番_演奏用] = v[曲番_内部保持用] v[演出_演奏用] = v[演出_内部保持用] Note("-----------------------------------------------------------") Name("プレイ_No._表示", 1) Call(1, 10005, 1) Note("-----------------------------------------------------------") Name("パターン_No._表示", 1) Call(1, 10005, 1) Note("-----------------------------------------------------------") If(s[タイマー_自動曲送り_開始] == On[]) Timer(0, 1, タイマー_総秒数, 1, 0) Timer(1, 0, 0, 1, 0) EndIf EndChoice TKcode(文字背景,消) MovePlace(620, -1, -1) Else;はずれ PlaySE("キャンセル1", 70, 110, 50) EndIf Else;サウンドサーチ中以外 s[汎用スイッチB] = Off[] If(s[メモリー_開始] == On[]) v[汎用変数D] = v[v[カーソル_位置]] If(v[汎用変数D] == 0) TKcode(文字背景,出) Faice("SR_another_system_faceinfo", 0, 1, 0) Text(即表示 + 音符 + "曲の登録") SubT(即表示) SubT(即表示 + ">曲が登録されていません") Text(即表示 + 音符 + "曲の登録") SubT(即表示) SubT(即表示 + ">SRNo.を直接入力して登録しますか?" + 順表示 + 止表示) Choice("リスト登録", 5) Branch(即表示 + "はい = Z / いいえ = X", 0) Loop Faice("", 0, 1, 0) Text(即表示 + 音符 + "曲の登録") SubT(即表示) SubT(即表示 + ">SRNo.を指定してください(1~\\V[" + 曲目数 + "] 0でキャンセル)") ValueEntry(3, 汎用変数D) If(v[汎用変数D] == 0) v[演出_演奏用] = 0 Break Else v[曲番_演奏用] = v[汎用変数D] EndIf If(v[曲番_演奏用] > v[曲目数]) v[曲番_演奏用] = v[曲目数] EndIf Note("-----------------------------------------------------------") Name("曲_取得", 1) Call(1, 10005, 1) Note("-----------------------------------------------------------") If(s[デバッグ中] == On[]);消えるので再表示 TKcode(文字背景,出) EndIf If(v[演出数_演奏用] > 1) Text(即表示 + 音符 + "曲の登録") SubT(即表示) SubT(即表示 + ">演出No.を指定してください(1~\\V[" + 演出数_演奏用 + "] 0でキャンセル)") ValueEntry(1, 汎用変数D) If(v[汎用変数D] == 0) v[演出_演奏用] = 0 Break Else v[演出_演奏用] = v[汎用変数D] EndIf If(v[演出_演奏用] > v[演出数_演奏用]) v[演出_演奏用] = v[演出数_演奏用] EndIf v[演出_演奏用] *= 1000 Else v[演出_演奏用] = 1000 EndIf v[v[カーソル_位置]] = v[曲番_演奏用] v[v[カーソル_位置]] += v[演出_演奏用] v[演出_演奏用] /= 1000 v[演出_不完全開放数] = 0 Note("-----------------------------------------------------------") Name("曲_取得", 1) Call(1, 10005, 1) Note("-----------------------------------------------------------") If(s[デバッグ中] == On[]);消えるので再表示 TKcode(文字背景,出) EndIf If(v[演出_不完全開放数] > 0) v[v[カーソル_位置]] = 0 Faice("SR_another_system_faceinfo", 1, 1, 0) If(v[演出_不完全開放数] == v[演出数_演奏用]) Name("曲", 6) Else Name("演出", 6) EndIf Text(即表示 + 音符 + "曲の切り替え") SubT(即表示) SubT(即表示 + ">未開放の" + 汎用文字列F + "です") Else Break EndIf EndLoop If(v[演出_演奏用] != 0) Note("-----------------------------------------------------------") Name("パターン_No._変換", 1) Call(1, 10005, 1) Note("-----------------------------------------------------------") If(s[デバッグ中] == On[]);消えるので再表示 TKcode(文字背景,出) EndIf Text(即表示 + 音符 + "曲の登録") SubT(即表示) SubT(即表示 + ">No.\\V[" + カーソル_位置 + "]にSRNo.\\V[" + 曲番_演奏用 + "]" + 汎用文字列F + "を登録しました") Note("-----------------------------------------------------------") Name("★開放度☆_表示", 1) Call(1, 10005, 2) Note("-----------------------------------------------------------") Else;消音 FadeoutBGM(2000) s[消音中] = On[] v[曲番_内部保持用..曲番_演奏用] = 0 Faice("SR_another_system_faceinfo", 0, 1, 0) Note("-----------------------------------------------------------") Name("演出_初期化", 1) Call(1, 10005, 1) Note("-----------------------------------------------------------") MovePlace(620, -1, -1) EndIf Branch("登録しない", 4) s[汎用スイッチB] = On[] EndChoice TKcode(文字背景,消) Else v[曲番_演奏用] = v[汎用変数D] EndIf Else If(v[曲番_演奏用] == 0) v[曲番_演奏用] = v[カーソル_位置] EndIf EndIf ;リスト/メモリー共通 If(s[汎用スイッチB] == Off[]) If(v[曲番_演奏用] != 0) Note("-----------------------------------------------------------") Name("", 6) Name("演奏_開始", 1) Call(1, 10005, 2) Note("-----------------------------------------------------------") EndIf EndIf EndIf EndIf Note("###########################################################") ;X:メニュー If(v[入力_キー] == 6) If(s[操作音_カット] == Off[]) PlaySE("575-sentaku1", 100, 100, 50) EndIf TKcode(文字背景,出) Note("-----------------------------------------------------------") SubN("メニュー") Call(1, 10005, 3) Note("-----------------------------------------------------------") TKcode(文字背景,消) ;自動イベントのネストを抜ける If(s[メインループ_開始] == Off[]) Exit EndIf EndIf Note("###########################################################") ;Shift:曲情報/登録/消去 If(v[入力_キー] == 7) If(s[操作音_カット] == Off[]) PlaySE("575-sentaku1", 100, 100, 50) EndIf TKcode(文字背景,出) If(s[サウンドサーチ_開始] == On[]) Faice("", 0, 1, 0) Text(即表示 + 音符 + "サウンドサーチ") SubT(即表示 + "・正解だと思う位置で" + 文字_黄 + "Z" + 文字_白 + "を押してください") SubT(即表示 + "・" + 文字_黄 + "ギブアップ" + 文字_白 + "/" + 文字_黄 + "ヒント" + 文字_白 + "はメニューから選べます") SubT(即表示 + "・" + 文字_赤 + "お手付き回数は計測していません") Else;サウンドサーチ中以外 Faice("SR_another_system_faceinfo", 0, 1, 0) If(s[消音中] == On[]) Text(即表示 + 音符 + "演奏曲情報の表示") SubT(即表示) SubT(即表示 + ">曲が演奏されていません") Else;演奏中 Faice("", 0, 1, 0) If(s[メモリー_開始] == On[]) v[演出数_演奏用] = v[演出数_内部保持用] v[演出_演奏用] = v[演出_内部保持用] Note("-----------------------------------------------------------") Name("パターン_No._変換", 1) Call(1, 10005, 1) Note("-----------------------------------------------------------") If(v[曲番_内部保持用] < 1) ;No.非表示時はいらない部分をダイアログ外に押し出す Name("--- ", 1) Else Name("", 1) EndIf If(s[デバッグ中] == On[]);消えるので再表示 TKcode(文字背景,出) EndIf Note("____________________________________________________________") SubN("File Name :【曲名】") SubN("Memory No.:【メモリー記憶位置】 - SR No.(---|【曲No.】【演出No.】)") SubN("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~") Text(即表示 + "File Name :" + 文字_黄 + ファイル名a + ファイル名b + ファイル名c + ファイル名d) SubT(即表示 + 文字_白 + "Memory No.:" + 文字_黄 + "\\V[" + メモリー_曲番 + "]" + 文字_白 + " - SR No." + 文字_黄 + "" + 汎用文字列A + "\\V[" + 曲番_内部保持用 + "]" + 汎用文字列F + 文字_白) Choice("メモリーモード 通常説明", 5) Branch(即表示 + "曲の登録内容を確認", 0) Text(即表示 + 音符 + "メモリー保存内容") SubT(即表示 + ">(" + 文字_赤 + "上1桁" + 文字_白 + "が演出No.、" + 文字_赤 + "下3桁" + 文字_白 + "が曲No.を示しています)") SubT(即表示 + メモリー_一時リスト_a + ":" + 文字_黄 + "\\V[" + メモリー_一時リスト_a + "] " + 文字_白 + メモリー_一時リスト_b + ":" + 文字_黄 + "\\V[" + メモリー_一時リスト_b + "] " + 文字_白 + メモリー_一時リスト_c + ":" + 文字_黄 + "\\V[" + メモリー_一時リスト_c + "] " + 文字_白 + メモリー_一時リスト_d + ":" + 文字_黄 + "\\V[" + メモリー_一時リスト_d + "] " + 文字_白 + メモリー_一時リスト_e + ":" + 文字_黄 + "\\V[" + メモリー_一時リスト_e + "]" + 文字_白) SubT(即表示 + メモリー_一時リスト_f + ":" + 文字_黄 + "\\V[" + メモリー_一時リスト_f + "] " + 文字_白 + メモリー_一時リスト_g + ":" + 文字_黄 + "\\V[" + メモリー_一時リスト_g + "] " + 文字_白 + メモリー_一時リスト_h + ":" + 文字_黄 + "\\V[" + メモリー_一時リスト_h + "] " + 文字_白 + メモリー_一時リスト_i + ":" + 文字_黄 + "\\V[" + メモリー_一時リスト_i + "] " + 文字_白 + メモリー_一時リスト_j + ":" + 文字_黄 + "\\V[" + メモリー_一時リスト_j + "]") Branch(即表示 + "この曲を消去", 1) FadeoutBGM(2000) s[消音中] = On[] v[v[メモリー_曲番]] = 0 Text(即表示 + 音符 + "登録曲の消去") SubT(即表示) SubT(即表示 + ">\\V[" + メモリー_曲番 + "]番の曲を消去しました") Note("-----------------------------------------------------------") Name("演出_初期化", 1) Call(1, 10005, 1) Note("-----------------------------------------------------------") Name("★開放度☆_表示", 1) Call(1, 10005, 2) Note("-----------------------------------------------------------") PictureDel(6) Repeat(3) PictureDel(i+40) EndRepeat MovePlace(620, -1, -1) EndChoice Else;リストモード If(v[曲番_内部保持用] < 1) Name("--- ", 1) Else Name("", 1) EndIf ;演奏曲をメモリーNo.変換し、既に登録されているか調べる v[汎用変数D] = 10 Loop v[汎用変数E] = v[v[汎用変数D]] v[汎用変数F] = v[演出_内部保持用] v[汎用変数F] *= 1000 If(v[曲番_内部保持用] < 0) v[汎用変数F] *= -1 EndIf v[汎用変数F] += v[曲番_内部保持用] If(v[汎用変数E] == v[汎用変数F]) Name("", 6) Break EndIf v[汎用変数D] += -1 If(v[汎用変数D] == 0) Name("--- ", 6) Break EndIf EndLoop If(s[デバッグ中] == On[]);デバッグ用チェック処理 ↓ Text(即表示 + 音符 + "メモリー保存確認") SubT(即表示) SubT(即表示 + "v" + メモリー_一時リスト_a + "~" + メモリー_一時リスト_e + " :\\V[" + メモリー_一時リスト_a + "] \\V[" + メモリー_一時リスト_b + "] \\V[" + メモリー_一時リスト_c + "] \\V[" + メモリー_一時リスト_d + "] \\V[" + メモリー_一時リスト_e + "]") SubT(即表示 + "v" + メモリー_一時リスト_f + "~" + メモリー_一時リスト_j + " :\\V[" + メモリー_一時リスト_f + "] \\V[" + メモリー_一時リスト_g + "] \\V[" + メモリー_一時リスト_h + "] \\V[" + メモリー_一時リスト_i + "] \\V[" + メモリー_一時リスト_j + "]") EndIf;デバッグ用チェック処理 ↑ Note("____________________________________________________________") SubN("File Name :【曲名】") SubN("SR No. :【曲No.】/【総曲数】(Pattern:【演出(再生中)】/【演出数】)") SubN("Memory No.:(---|【メモリー記憶位置】)") SubN("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~") If(v[汎用変数D] != 0);メモリー登録中の曲 Text(即表示 + "File Name :" + 文字_黄 + ファイル名a + ファイル名b + ファイル名c + ファイル名d) SubT(即表示 + 文字_白 + "SR No. :" + 文字_黄 + 汎用文字列A + "\\V[" + 曲番_内部保持用 + "]" + 文字_白 + "/\\V[" + 曲目数 + "](Pattern:" + 文字_黄 + "\\V[" + 演出_内部保持用 + "]" + 文字_白 + "/\\V[" + 演出数_内部保持用 + "])") SubT(即表示 + 文字_白 + "Memory No.:" + 文字_黄 + 汎用文字列F + "\\V[" + 汎用変数D + "]" + 文字_白) Choice("リストモード 既登録時説明", 5) Branch(即表示 + "メモリー消去:する = Z / しない = X", 0) v[v[汎用変数D]] = 0 Text(即表示 + 音符 + "登録曲の消去") SubT(即表示) SubT(即表示 + ">\\V[" + 汎用変数D + "]番の曲を消去しました") EndChoice Else;メモリー登録外の曲 Text(即表示 + "File Name :" + 文字_黄 + ファイル名a + ファイル名b + ファイル名c + ファイル名d) SubT(即表示 + 文字_白 + "SR No. :" + 文字_黄 + 汎用文字列A + "\\V[" + 曲番_内部保持用 + "]" + 文字_白 + "/\\V[" + 曲目数 + "](Pattern:" + 文字_黄 + "\\V[" + 演出_内部保持用 + "]" + 文字_白 + "/\\V[" + 演出数_内部保持用 + "])") SubT(即表示 + 文字_白 + "Memory No.:" + 文字_黄 + 汎用文字列F + "\\V[" + 汎用変数D + "]" + 文字_白) Choice("リストモード 未登録時説明", 5) Branch(即表示 + "メモリー登録:する = Z / しない = X", 0) v[汎用変数E] = 1 Loop v[汎用変数F] = v[v[汎用変数E]] If(v[汎用変数F] == 0) v[v[汎用変数E]] = v[演出_内部保持用] v[v[汎用変数E]] *= 1000 If(v[曲番_内部保持用] < 0) v[v[汎用変数E]] *= -1 EndIf v[v[汎用変数E]] += v[曲番_内部保持用] Text(即表示 + 音符 + "曲の登録") SubT(即表示) SubT(即表示 + ">No.\\V[" + 汎用変数E + "]に登録しました") Break Else v[汎用変数E] += 1 If(v[汎用変数E] > 10) Text(即表示 + 音符 + "曲の登録") SubT(即表示) SubT(即表示 + ">記憶枠が空いていません") Text(即表示 + 音符 + "曲の登録") SubT(即表示) SubT(即表示 + ">上書きしますか?" + 順表示 + 止表示) Choice("リスト上書き", 5) Branch(即表示 + "はい = Z / いいえ = X", 0) Text(即表示 + 音符 + "曲の登録") SubT(即表示) SubT(即表示 + ">上書きするNo.を指定してください") SubT(即表示 + "  (No.10なら0を選択)") Text(即表示 + 音符 + "曲の登録") SubT(即表示) SubT(即表示 + "> (No.10なら0を選択)") ValueEntry(1, 汎用変数E) If(v[汎用変数E] == 0) v[汎用変数E] = 10 EndIf v[v[汎用変数E]] = v[演出_内部保持用] v[v[汎用変数E]] *= 1000 If(v[曲番_内部保持用] < 0) v[v[汎用変数E]] *= -1 EndIf v[v[汎用変数E]] += v[曲番_内部保持用] Text(即表示 + 音符 + "曲の登録") SubT(即表示) SubT(即表示 + ">No.\\V[" + 汎用変数E + "]に上書きしました") EndChoice Break EndIf EndIf EndLoop EndChoice EndIf EndIf EndIf EndIf TKcode(文字背景,消) EndIf If(s[うろ_非表示] == Off[]) Note("-----------------------------------------------------------") Name("うろ_表示", 1) Call(1, 10005, 1) Note("-----------------------------------------------------------") EndIf ;リスト段ズレ時の△▽発光(後始末) If(Dir[3] == Left[]);Ev3を振り向かせる SetAction(3, 8, 0, 0) SubAct(12) EndIf If(Dir[3] == Up[]);気持ち待ってから△▽の色と向きをデフォに戻す Wait(2) PictureMove(47, 0, 299, 170, 0, 100, 35, 0, 100, 100, 100, 100, 0, 35, 3, 0) PictureMove(48, 0, 299, 218, 0, 100, 35, 0, 100, 100, 100, 100, 0, 20, 3, 0) SetAction(3, 8, 0, 0) SubAct(14) EndIf ;操作遅延時間を調整 v[汎用変数D] = v[入力_操作ラグ] Loop v[汎用変数D] += -1 If(v[汎用変数D] <= 0) Break EndIf Wait(0) EndLoop