top of page

コモンイベント126X[移]歩行時_並列キー処理(余計な部分はカットした)

■条件分岐(変数): 【1】Sys13:イベント実行中?(1=ON) が 0と同じ
-◇分岐: 【1】 [ Sys13:イベント実行中?(1=ON) が 0と同じ ]の場合↓
 |■キー入力:このコモンEvセルフ変数13 /  キャンセル(11)
 |■変数操作: CSelf16[直前イベント実行中?] -= 1 + 0
 |■条件分岐(変数): 【1】CSelf16[直前イベント実行中?] が 0以下
 |-◇分岐: 【1】 [ CSelf16[直前イベント実行中?] が 0以下 ]の場合↓
 | |■条件分岐(変数): 【1】CSelf13[キー入力状態] が CSelf14[直前キー入力状態]以外
 | |-◇分岐: 【1】 [ CSelf13[キー入力状態] が CSelf14[直前キー入力状態]以外 ]の場合↓
 | | |■条件分岐(変数): 【1】Sys35:主人公移動中?(1=YES) マスの間にいるかどう が 0と同じ
 | | |-◇分岐: 【1】 [ Sys35:主人公移動中?(1=YES) マスの間にいるかどう が 0と同じ ]の場合↓
 | | | | ■条件分岐(変数): 【1】CSelf13[キー入力状態] が 11と同じ
| | | | -◇分岐: 【1】 [ CSelf13[キー入力状態] が 11と同じ ]の場合↓
 | | | |  |■キー入力禁止/許可:   ↓キー  ←キー  →キー  ↑キー   [ 移動時× キー入力○ ]
 | | | || |■次イベントの予約: [このコモンから+1]  コモン127:[ X[移]メニュー起動 ]
 | | |  | |■ウェイト:1 フレーム
 | | || | |■キー入力禁止/許可:   ↓キー  ←キー  →キー  ↑キー   [ 移動時○ キー入力○ ]


 (分岐終了の嵐)


 |■変数操作: CSelf14[直前キー入力状態] = CSelf13[キー入力状態] + 0
 |■
◇分岐終了◇
変数操作: CSelf16[直前イベント実行中?] = Sys13:イベント実行中?(1=ON) * 10

 

 

 

 

 

 

コモンイベント127X[移]メニュー起動

可変DB書込:DB[基本システム用変数:メニュー消去フラグ:数値]  =  0
■イベントの挿入[名]: ["X[共]システムSE再生"] <コモンEv 49>  / 6:メニュー開く
■イベントの挿入[名]: ["X[移]パーティー情報計算"] <コモンEv 79>
■DB読込(可変): CSelf19[全員数] = 可変DB[基本システム用変数:4:0](現在パーティー人数:数値)
■変数操作: CSelf10[パーティーメンバー位置] = -1 + 0
■回数付きループ [ CSelf19[全員数] ]回
 |■変数操作: CSelf10[パーティーメンバー位置] += 1 + 0
 |■イベントの挿入[名]: CSelf11[表示主人公ID] = ["X[移]選択位置主人公ID取得"] <コモンEv 105>  / CSelf10[パーティーメンバー位置]
 |■イベントの挿入[名]: ["X[移]一時ステ計算<初期化>"] <コモンEv 122>  / CSelf11[表示主人公ID]
 |■イベントの挿入[名]: ["X[移]一時ステ計算<装備補正>"] <コモンEv 123>  / CSelf11[表示主人公ID]
 |■イベントの挿入[名]: ["X[移]一時ステ計算<状態補正>"] <コモンEv 124>  / CSelf11[表示主人公ID]
 |■ウェイト:1 フレーム
 |■
◇ループここまで◇◇
■イベントの挿入[名]: ["X[移]メニュー描画"] <コモンEv 88>  / 0:表示 / 0:0以上…カーソル位置設定
■イベントの挿入[名]: ["X[移]キャラ欄_全員描画"] <コモンEv 92>  / 0:新規に全員描画
■ウェイト:4 フレーム
■変数操作: CSelf21[現カーソル位置] = 0 + 0
■イベントの挿入[名]: ["X[移]メニュー描画"] <コモンEv 88>  / 1:更新 / CSelf21[現カーソル位置]
■DB読込(可変): CSelf20[コマンド最大数] = 可変DB[基本システム用変数:22:0](メニュー項目数:数値)
ループ開始
 |■可変DB書込:DB[基本システム用変数:54:0](メニューカーソル位置:数値)  =  CSelf21[現カーソル位置]
 |■ウェイト:1 フレーム
 |■キー入力:このコモンEvセルフ変数13 / [入力待ち]  上下(8,2) 決定(10) キャンセル(11)
 |■条件分岐(変数): 【1】CSelf13[キー入力状態] が 2と同じ 【2】CSelf13[キー入力状態] が 8と同じ
 |-◇分岐: 【1】 [ CSelf13[キー入力状態] が 2と同じ ]の場合↓
 | |■変数操作: CSelf21[現カーソル位置] += 1 + 0
 | |■変数操作: CSelf21[現カーソル位置] %= CSelf20[コマンド最大数] + 0
 | |■イベントの挿入[名]: ["X[共]システムSE再生"] <コモンEv 49>  / 5:カーソル移動音
 | |■イベントの挿入[名]: ["X[移]メニュー描画"] <コモンEv 88>  / 1:更新 / CSelf21[現カーソル位置]
 | |■ループ開始へ戻る
 | |■
 |-◇分岐: 【2】 [ CSelf13[キー入力状態] が 8と同じ ]の場合↓
 | |■変数操作: CSelf21[現カーソル位置] += CSelf20[コマンド最大数] - 1
 | |■変数操作: CSelf21[現カーソル位置] %= CSelf20[コマンド最大数] + 0
 | |■イベントの挿入[名]: ["X[共]システムSE再生"] <コモンEv 49>  / 5:カーソル移動音
 | |■イベントの挿入[名]: ["X[移]メニュー描画"] <コモンEv 88>  / 1:更新 / CSelf21[現カーソル位置]
 | |■ループ開始へ戻る
 | |■
 |-◇上記以外
 | |■条件分岐(変数): 【1】CSelf13[キー入力状態] が 10と同じ 【2】CSelf13[キー入力状態] が 11と同じ
 | |-◇分岐: 【1】 [ CSelf13[キー入力状態] が 10と同じ ]の場合↓
 | | |●ラベル地点「メニュー決定」 <<<<<<<<<<<<<<<<<<<<<<<<★
 | | |■イベントの挿入[名]: ["X[移]メニュー描画"] <コモンEv 88>  / 1:更新 / -2:フラッシュ停止
 | | |■変数操作: CSelf22[選択コード位置] = CSelf21[現カーソル位置] + 23
 | | |■DB読込(可変): CSelf23[選択コード番号] = 可変DB[基本システム用変数:CSelf22[選択コード位置]:0](数値)
 | | |■条件分岐(変数): 【1】CSelf23[選択コード番号] が -1以下
 | | |-◇分岐: 【1】 [ CSelf23[選択コード番号] が -1以下 ]の場合↓
 | | | |■イベントの挿入[名]: ["X[共]システムSE再生"] <コモンEv 49>  / 2:ブザー音
 | | | |■イベントの挿入[名]: ["X[移]メニュー描画"] <コモンEv 88>  / 1:更新 / CSelf21[現カーソル位置]
 | | | |■ループ開始へ戻る
 | | | |■
 | | |◇分岐終了◇
 | | |■イベントの挿入[名]: ["X[共]システムSE再生"] <コモンEv 49>  / 0:決定音
 | | |■条件分岐(変数): 【1】CSelf23[選択コード番号] が 1と同じ 【2】CSelf23[選択コード番号] が 2と同じ 【3】CSelf23[選択コード番号] が 3と同じ
 | | |-◇分岐: 【1】 [ CSelf23[選択コード番号] が 1と同じ ]の場合↓
 | | | |■イベントの挿入[名]: ["X┣[移]アイテム欄実行"] <コモンEv 128>  / 0:メニューから(新たにキャラ一覧出さない)
 | | | |■
 | | |-◇分岐: 【2】 [ CSelf23[選択コード番号] が 2と同じ ]の場合↓
 | | | |■イベントの挿入[名]: ["X┣[移]技能欄実行"] <コモンEv 129>  / 0:メニューから(新たにキャラ一覧出さない) / 0
 | | | |■
 | | |-◇分岐: 【3】 [ CSelf23[選択コード番号] が 3と同じ ]の場合↓
 | | | |■イベントの挿入[名]: ["X┣[移]装備欄実行"] <コモンEv 130>  / 0:メニューから(新たにキャラ一覧出さない)
 | | | |■
 | | |◇分岐終了◇
 | | |■条件分岐(変数): 【1】CSelf23[選択コード番号] が 4と同じ 【2】CSelf23[選択コード番号] が 5と同じ 【3】CSelf23[選択コード番号] が 10と同じ
 | | |-◇分岐: 【1】 [ CSelf23[選択コード番号] が 4と同じ ]の場合↓
 | | | |■イベントの挿入[名]: ["X┣[移]セーブ欄実行"] <コモンEv 131>  / 0:セーブ画面 / 0:メニューから(セーブ後、キャラ一覧を表示)
 | | | |■
 | | |-◇分岐: 【2】 [ CSelf23[選択コード番号] が 5と同じ ]の場合↓
 | | | |■イベントの挿入[名]: ["X┗[移]システム欄実行"] <コモンEv 132>
 | | | |■
 | | |-◇分岐: 【3】 [ CSelf23[選択コード番号] が 10と同じ ]の場合↓
 | | | |■DB読込(ユーザ): CSelf24[一時 呼出コモンEv] = ユーザDB[システム設定:0:┗特殊メニューA呼出コモン]
 | | | |■条件分岐(変数): 【1】CSelf24[一時 呼出コモンEv] が 0以上
 | | | |-◇分岐: 【1】 [ CSelf24[一時 呼出コモンEv] が 0以上 ]の場合↓
 | | | | |■変数操作: CSelf24[一時 呼出コモンEv] += 500000 + 0
 | | | | |■イベントの挿入: 変数[CSelf24[一時 呼出コモンEv]]のEv ページ1
 | | | | |■
 | | | |◇分岐終了◇
 | | | |■
 | | |◇分岐終了◇
 | | |■DB読込(可変): CSelf12[一時変数] = 可変DB[基本システム用変数:メニュー消去フラグ:数値]
 | | |■条件分岐(変数): 【1】CSelf12[一時変数] が 1と同じ
 | | |-◇分岐: 【1】 [ CSelf12[一時変数] が 1と同じ ]の場合↓
 | | | |●ラベル「メニュー終了」に飛ぶ >>>>>>>>>>>>>>>>>>>>>>>>>
 | | | |■イベント処理中断
 | | | |■
 | | |◇分岐終了◇
 | | |■イベントの挿入[名]: ["X[移]メニュー描画"] <コモンEv 88>  / 1:更新 / CSelf21[現カーソル位置]
 | | |■
 | |-◇分岐: 【2】 [ CSelf13[キー入力状態] が 11と同じ ]の場合↓
 | | |■ループ中断
 | | |■
 | |◇分岐終了◇
 | |■
 |◇分岐終了◇
 |■
◇ループここまで◇◇
●ラベル地点「メニュー終了」 <<<<<<<<<<<<<<<<<<<<<<<<★
DB読込(可変): CSelf12[一時変数] = 可変DB[基本システム用変数:メニュー消去フラグ:数値]
条件分岐(変数): 【1】CSelf12[一時変数] が 0と同じ
-◇分岐: 【1】 [ CSelf12[一時変数] が 0と同じ ]の場合↓
 |■イベントの挿入[名]: ["X[共]システムSE再生"] <コモンEv 49>  / 7:メニュー閉じる
 |■
◇分岐終了◇
■イベントの挿入[名]: ["X[移]メニュー描画"] <コモンEv 88>  / -1:消去 / 0:0以上…カーソル位置設定
■イベントの挿入[名]: ["X[移]キャラ欄_全員描画"] <コモンEv 92>  / -1:全員消去


 

条件分岐が並んでて分かりにくいですが

分岐が一つしかないことから分かる通り

赤字全ての条件を満たした場合にのみキャンセルキーで

メニューが開けるようにしてるだけです

 

その条件とは

1.イベントが起動してないこと

(ここでキャンセルキーの入力を受け付けます)

2.直前のイベントが終わってから十分な時間が経過していること

3.メニュー起動終了直後でないこと

4.主人公が丁度マスの上にいること(停止中は必ずメニュー開ける)

5.キャンセルキーが押されていること

 

条件を満たした場合、まず主人公の移動を封じます

そして、メニュー起動します(予約じゃなくて呼び出しで結構です)

次に、タイトル画面最初と同じようにウェイト1フレームを置きます

(メニューが終了するまでこのイベントは待機)

メニューが終了したら主人公が移動できるようにします

 

ここでキャンセルキーが押されていることにします

これにより3を実現しているのです

そのためだけにCSelf14[直前キー入力状態]は用意されました

 

一度メニューを閉じてから次にメニューを開けるようになるまで

の時間を10フレームとします

もちろんイベント実行してない場合に10フレームの遅延が起きないようにします

 

 

メニュー消去フラグはメニュー強制終了のためにしか使わない

メニュー開くときの効果音を再生し

パーティーの情報を計算して

パーティーの人数分のキャラクターウィンドウ用の情報を集める

 

 

 

 

 

 

 

 

 

 

 

 

 

メニューとキャラクターウィンドウを描く

 

 

 

 

 

 

ループ開始地点

 

 

 

 

 

 

下が押されるとカーソルが下に移動する

 

 

 

 

 

 

上が押されるとカーソルが上に移動する

 

 

 

 

 

 

 

 

キャンセルキー(11)を押すともちろんメニューが閉じるのだが

決定キー(10)が押されると

選択コード番号によって、コードが実行される

 

 

 

 

-1は実行不能なコードを示している

 

 

 

 

 

 

 

 

 

 

1はアイテム欄の実行

 

 

 

2は技能欄の実行

 

 

 

 

 

(中略)

 

 

 

 

 

 

 

 

 

 

 

特殊メニューになっていきなり番号が10に飛ぶ

ちなみにB,C,DはAのパクリなので消した(どうせ使わないし)

 

 

 

 

 

 

 

 

 

メニューの強制終了(音なし)

こんなの使わないですし

 

 

 

 

 

 

 

 

キャンセルキーが押されたらメニューを閉じる

別にループ中断じゃなくて

ラベル「メニュー終了」に飛ぶ >>>>>>>>>>>>>>>>>>>>>>>>>

でもよい(てか、このラベルいらなくね?w)

 

 

 

 

何もいじってなければメニュー消去フラグは0(ない)ので

無事にメニューを閉じる音が聞こえて終了

 

 

 

 

 

メニューを閉じる音を出す

 

 

最初に出した余計なピクチャを消す

  • Facebook Classic
  • Twitter Classic
  • Google Classic
  • RSS Classic
bottom of page