WOLF RPGエディター(ウディタ)[3.175]/基本システム【サイトトップへ戻る】
■コモンイベント[108:X[移]キャラクター欄_選択実行]の解説
(更新:2023/04/24)


コモンイベント[108:X[移]キャラクター欄_選択実行]について解説します。


ショートカット
■コモンイベント[108:X[移]キャラクター欄_選択実行]って何?
■カーソルの移動処理について
■[入力の数/結果を返す]について
■コモンイベント呼び出しの一覧
■セルフ変数の一覧
■イベントコマンドの解説

基本システムに関する説明は別ページに記載しています。
【基本システムに関する説明ページを見る】

コモンイベントの一覧と補足説明のページも用意しています。
【コモンイベントの一覧と補足説明のページを開く】


  
■コモンイベント[108:X[移]キャラクター欄_選択実行]って何?

コモンイベント[108:X[移]キャラクター欄_選択実行]はメニュー画面にて、
パーティメンバーの中で特定の主人公を選択する時に使います。

▼「薬草」を使う時に「誰に使うのか」を選択する場面




コモンイベント[108:X[移]キャラクター欄_選択実行]を使用する場面は以下のとおりです。

●メニュー画面で「特殊技能」を選択した時に「誰の技能を使うのか」を選択する時。
●メニュー画面で「装備」を選択した時に「誰の装備を変更するのか」を選択する時。
●回復系のアイテムを使用する時に「誰に使用するのか」を選択する時。
●回復系の技能を使用する時に「誰に使用するのか」を選択する時。



コモンイベント[108:X[移]キャラクター欄_選択実行]ではキー入力の処理のみを行っています。

ステータス画面を点滅させる処理は、コモンイベント[090:X[移]キャラクター欄描画]を呼び出して実行します。

呼び出し元のコモンイベントに返す値は、パーティの並び順(0〜5)になります。


▲トップへ戻る▲


  
■カーソルの移動処理について

カーソルの移動処理では、まず初めにセルフ[13]に「(パーティ人数+1)÷2×2」を設定し、
パーティに人数に合わせた数値をセルフ[13]に設定します。

パーティ人数 0人 1人 2人 3人 4人 5人 6人
セルフ[13]の値 0 2 2 4 4 6 6

カーソル位置はパーティの並び順に「0〜5」が割り振られており、
現在のカーソル位置はセルフ[10]に保存されます。
カーソル位置を「0」から「2」へ移動させる時には、
セルフ[10]+2+セルフ[13]余剰セルフ[13]」の計算でカーソル位置が設定されます。
セルフ[10]=0」「セルフ[13]=6」になるので、計算式としては「0+2+6余剰6」となり、
左側の足し算を計算すると「8余剰6」になります。
「余剰6」は「6以上の値は5以下になるまで減算6を続ける」と言った処理になるので、
8−6=2」になり、結果的にカーソル位置は「2」になります。
カーソルを下に移動させるのに単に「セルフ[10]+2」にしない理由は、
例えば「4」から「0」へ移動する時に「セルフ[10]+2」だと「4+2=6」になり、
このままではカーソル位置が「0」にはなりません。
しかし「4+2+6余剰6」の場合は「12余剰6」となり、
「余剰6」で「12−6=6」「6−6=0」と計算されて、結果的にカーソル位置は「0」になります。
カーソルを上に移動する時も、
セルフ[10]−2+セルフ[13]余剰セルフ[13]」が設定されます。
これも単に「セルフ[10]−2」で処理すると、カーソル位置が「0」の時には「-2」になりますが、
セルフ[10]−2+セルフ[13]余剰セルフ[13]」で処理すると、カーソル位置が「4」になります。

右の列で下へカーソルを移動し続けた時に、
最下段にステータス画面が1つしか無い場合は、
左の列の最下段にカーソルが移動します。
処理としては、まずカーソル位置を「3」から「5」へ移動します。
そしてセルフ[10]セルフ[11]以上(パーティ人数以上)になった時に「減算1」を実行して、
カーソル位置を「4」に修正します。
最下段にステータス画面が1つしか無い状態でその最下段にカーソルがある時に、
右キーを押した場合も、まずカーソル位置が「4」から「5」へ移動し、
セルフ[10]セルフ[11]以上の時には「減算2」を実行して、
カーソル位置を「3」に修正します。

コモンイベント[108:X[移]キャラクター欄_選択実行]の処理は、見た目はシンプルな設定になっていますが、
実際には「余剰」や「下限」などを多用して、様々なステータス画面の状況に対応できるようにしているため、
見た目以上に複雑な処理になっています。



なお、カーソル位置「1」で上キーを押した時に、
最下段に2つのステータス画面が並んでいる場合は、カーソルは最下段へ移動しますが、
最下段に1つしかステータス画面が無い場合は、カーソルは移動しません。

移動する 移動しない

もしも最下段に1つしかステータス画面が無い場合で、
カーソル位置「1」で上キーを押すと最下段へ移動するようにしたい場合は、65行目の…
■変数操作: CSelf10[選択箇所] %= 2 + 0
の設定を…
【イベントコード表示】
■変数操作: CSelf10[選択箇所] = CSelf11[選択可能最大値] - 1
に変えてください。

改造前 改造後


▲トップへ戻る▲


  
■[入力の数/結果を返す]について

コモンイベント[108:X[移]キャラクター欄_選択実行][入力の数/結果を返す]の設定は、
基本システムが必要に応じて自動的に行いますので、基本システムの利用者は何も設定する必要はありません。

▼数値1/コモンセルフ0「初期選択位置」

最初に選択される位置(0〜5)を設定。
▼数値2/コモンセルフ1「オプション」

決定時のSEの演奏有無を設定。
[0]決定効果音を再生 決定キーを押した時にSEを演奏します
[1]決定効果音を鳴らさない 決定キーを押してもSEは演奏しません
▼結果を返す「選択キャラ[0-5]」(セルフ変数[10:選択箇所])

選択した位置(0〜5)を返します。
キャンセルだった場合は「-1」を返します。
なお、処理結果は可変DB[18:基本システム用変数]データ[2:選択されたコード]にも保存されます。


▲トップへ戻る▲


  
■コモンイベント呼び出しの一覧

コモンイベント[108:X[移]キャラクター欄_選択実行]を呼び出しているコモンイベント、
またはコモンイベント[108:X[移]キャラクター欄_選択実行]から呼び出しているコモンイベントの一覧です。

コモンイベント[108:X[移]キャラクター欄_選択実行]を呼び出しているコモンイベント
コモンイベント(ID順) 処理内容
118:X[移]アイテム使用効果処理 アイテム使用で回復させる主人公を選択する時に呼び出されます。
119:X[移]技能使用効果処理 技能使用で回復させる主人公を選択する時に呼び出されます。
129:X┣[移]技能欄実行 技能を使用する主人公を選択する時に呼び出されます。
130:X┣[移]装備欄実行 装備を変更する主人公を選択する時に呼び出されます。

コモンイベント[108:X[移]キャラクター欄_選択実行]から呼び出しているコモンイベント
コモンイベント(ID順) 処理内容
049:X[共]システムSE再生 決定・キャンセル・カーソル移動のSEを演奏する時に使用。
090:X[移]キャラクター欄描画 ステータス画面を点滅させる時に使用。

【コモンイベント呼び出しの一覧を別ウィンドウで表示】


▲トップへ戻る▲


  
■セルフ変数の一覧

コモンイベント[108:X[移]キャラクター欄_選択実行]のセルフ変数の一覧です。

セルフ変数
番号 名前 使用内容
0 初期選択位置 最初に選択される位置(0〜5)を設定。
1 オプション 決定時のSEの演奏有無を設定。
0 決定キーを押した時にSEを演奏します
1 決定キーを押してもSEは演奏しません
10 選択箇所 選択した位置(0〜5)を設定。
[結果を返す]でも使用。
11 選択可能最大値 可変DB[18:基本システム用変数]データ[4:現在パーティー人数]を取得。
このセルフ[11]の値は、
カーソル位置が範囲外に出ているかどうかを調べる時に使用します。
例えばパーティに5人いる場合、セルフ[11]は「5」が設定され、
カーソル位置は「0〜4」の範囲になります。
そしてカーソル位置がセルフ[11]以上(5以上)になったら、
カーソル位置を反対側(最上段や最下段)へ移動する処理を実行します。
12 一時変数A セルフ[10]の値を「余剰2」で設定し、
カーソルが左右どちらの列にあるのかを設定。
0 左の列
1 右の列
13 選択可能選択数(2ごと) (パーティ人数+1)÷2×2」を設定。
パーティ人数 0人 1人 2人 3人 4人 5人 6人
セルフ[13]の値 0 2 2 4 4 6 6
20 キー入力1 キーコードを設定。

【変数の一覧を別ウィンドウで表示】


▲トップへ戻る▲


  
■イベントコマンドの解説

イベントコマンドの解説を行います。

なお、見た目で設定内容が分かるような簡単なイベントコマンドの解説は省略しています。

処理内容
13 セルフ[11]可変DB[18:基本システム用変数]データ[4:現在パーティー人数]を設定。
このセルフ[11]の値は、カーソル位置が範囲外に出ているかどうかを調べる時に使用。
14-17 セルフ[13]に「(パーティ人数+1)÷2×2」を設定。
このセルフ[13]の値は、カーソル位置を最上段から最下段、
最下段から最上段へ移動させる処理で使用。
19-21 セルフ[10]に初期カーソル位置を設定。
22-115 ■ループ開始
決定キーかキャンセルキーを押すまではループします。
  24-25 コモンイベント[080:X[移]パーティー画像再設定]を2回呼び出します。
1回目でステータス画面の点滅を全て解除し、
2回目で選択中のステータス画面のみを点滅させます。
  26 ■キー入力:CSelf20[キー入力1][入力待ち] 4方向 決定(10) キャンセル(11)
何らかのキーが入力するまで、ここで処理が待機します。
  27-36 ■条件分岐(変数): 【1】 CSelf20[キー入力1] が 10 と同じ
決定キーが押された場合は分岐。
    29 ▼ 決定キー
    30-34 ■条件分岐(変数): 【1】 CSelf1[オプション] が 0 と同じ
決定のSEを演奏させる場合は分岐。
      32 コモンイベント[049:X[共]システムSE再生]を呼び出し、
決定音のSEを演奏。
    35-36 処理結果(セルフ[10])を可変DB[18:基本システム用変数]データ[2:選択されたコード]に保存し、
【ループ中断】を実行。
  38-43 ◇分岐: 【2】 [ CSelf20[キー入力1] が 11 と同じ ]の場合↓
キャンセルキーが押された場合は分岐。
    39 ▼ キャンセルキー
    40 コモンイベント[049:X[共]システムSE再生]を呼び出し、
キャンセル音のSEを演奏。
    41-43 セルフ[10]に「-1」を設定し、
処理結果(セルフ[10])を可変DB[18:基本システム用変数]データ[2:選択されたコード]に保存し、
【ループ中断】を実行。
  45-54 ◇分岐: 【3】 [ CSelf20[キー入力1] が 2 と同じ ]の場合↓
下キーが押された場合は分岐。
    46 ▼ 下キー
    47 コモンイベント[049:X[共]システムSE再生]を呼び出し、
カーソル移動音のSEを演奏。
    48-49 セルフ[10]+2+セルフ[13]余剰セルフ[13]」を設定し、カーソルを1段下へ移動。
最下段の場合は、最上段へ移動。
    50-54 ■条件分岐(変数): 【1】 CSelf10[選択箇所] が CSelf11[選択可能最大値] 以上
最下段でステータス画面が左側しかないのに、最下段の右側にカーソルがある場合は分岐。
      52 セルフ[10]に「減算1」を設定し、カーソルを左側に移動。
  57-67 ■条件分岐(変数): 【1】 CSelf20[キー入力1] が 8 と同じ
上キーが押された場合は分岐。
    59 ▼ 上キー
    60 コモンイベント[049:X[共]システムSE再生]を呼び出し、
カーソル移動音のSEを演奏。
    61-62 セルフ[10]−2+セルフ[13]余剰セルフ[13]」を設定し、カーソルを1段上へ移動。
最上段の場合は、最下段へ移動。
    63-67 ■条件分岐(変数): 【1】 CSelf10[選択箇所] が CSelf11[選択可能最大値] 以上
最下段でステータス画面が左側しかないのに、最下段の右側にカーソルがある場合は分岐。
      65 セルフ[10]に「余剰2」を設定し、カーソル位置「1」へ移動する。
  69-88 ◇分岐: 【2】 [ CSelf20[キー入力1] が 4 と同じ ]の場合↓
左キーが押された場合は分岐。
    70 ▼ 左キー
    71 コモンイベント[049:X[共]システムSE再生]を呼び出し、
カーソル移動音のSEを演奏。
    73-76 ■条件分岐(変数): 【1】 CSelf12[一時変数A] が 1 と同じ
カーソルが右側にある場合は分岐。
      75-76 ▼ 右にあるなら−1する
セルフ[10]に「減算1」を設定し、カーソルを左側に移動。
    78-86 ◇分岐: 【2】 [ CSelf12[一時変数A] が 0 と同じ ]の場合↓
カーソルが左側にある場合は分岐。
      79-80 ▼ 左にあるなら右へ+1
セルフ[10]に「加算1」を設定し、カーソルを右側に移動。
      81-86 ■条件分岐(変数): 【1】 CSelf10[選択箇所] が CSelf11[選択可能最大値] 以上
最下段で右側にステータス画面が無い場合は分岐。
        83 セルフ[10]に「減算2」を設定し、カーソルが右上へ移動するように設定。
        84 主人公が1人しか居ない状態で左を押した場合は、カーソル位置が「-1」になるため、
「下限0」でカーソル位置が「0以上」になるように修正。
  90-109 ◇分岐: 【3】 [ CSelf20[キー入力1] が 6 と同じ ]の場合↓
右キーが押された場合は分岐。
    91 ▼ 右キー
    92 コモンイベント[049:X[共]システムSE再生]を呼び出し、
カーソル移動音のSEを演奏。
    94-97 ■条件分岐(変数): 【1】 CSelf12[一時変数A] が 1 と同じ
カーソルが右側にある場合は分岐。
      96-97 ▼ 右にあるなら−1する
セルフ[10]に「減算1」を設定し、カーソルを左側に移動。
    99-107 ◇分岐: 【2】 [ CSelf12[一時変数A] が 0 と同じ ]の場合↓
カーソルが左側にある場合は分岐。
      100-101 ▼ 左にあるなら右へ+1
セルフ[10]に「加算1」を設定し、カーソルを右側に移動。
      102-107 ■条件分岐(変数): 【1】 CSelf10[選択箇所] が CSelf11[選択可能最大値] 以上
最下段で右側にステータス画面が無い場合は分岐。
        104 セルフ[10]に「減算2」を設定し、カーソルが右上へ移動するように設定。
        105 主人公が1人しか居ない状態で右を押した場合は、カーソル位置が「-1」になるため、
「下限0」でカーソル位置が「0以上」になるように修正。
116 セルフ[1]に「0」を設定。
これは…
■イベントの挿入[名]: ["X[移]キャラクター欄_選択実行"] <コモンEv 108> / CSelf99[キャラ初期選択位置]
のように、このコモンイベントの呼び出し設定の中にセルフ[1]の値を設定が無いものがあるため、
ここでセルフ[1]の値を初期化しています。


▲トップへ戻る▲



◎関連ページ

◆「基本システム」って何?
┣◆コモンイベントの一覧と補足説明
┣◆メニュー画面の処理構造
┗◆戦闘処理の処理構造

YADOT-WOLFトップ  気紛れな空間へ戻る  メール