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


コモンイベント[109:X[移]装備欄_選択実行]について解説します。


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

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

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


  
■コモンイベント[109:X[移]装備欄_選択実行]って何?

コモンイベント[109:X[移]装備欄_選択実行]は、装備を変更する画面を処理する時に呼び出されます。



このコモンイベント[109:X[移]装備欄_選択実行]では主にキー入力に関する処理を行っています。

画像表示に関しては、
コモンイベント[064:X[共]万能ウィンドウ描画処理]
コモンイベント[093:X[移]装備画面描画]を呼び出して処理しています。



画面右側の所持装備品の一覧と画面下部の説明用ウィンドウ万能ウィンドウを使用しています。
そのため、コモンイベント[064:X[共]万能ウィンドウ描画処理]を呼び出して画面を表示し、
コモンイベント[065:X[共]万能ウィンドウ選択実行]を呼び出して、右側の一覧の操作処理を行っています。

但し右側の一覧の操作処理は、
何らかの操作が行われる度にコモンイベント[065:X[共]万能ウィンドウ選択実行]の処理が終了して、
このコモンイベント[109:X[移]装備欄_選択実行]へ処理が戻ってきます。

これは右側の一覧で上下キーを押して選択している装備品が変わる度に、
このコモンイベント[109:X[移]装備欄_選択実行]へ処理を戻して、パラメータの増減の表示を更新するためです。




このコモンイベント[109:X[移]装備欄_選択実行]は、
左側の一覧の処理(15〜43、309〜404行目)の間に右側の一覧の処理(44〜308行目)が設定されているため、
見た目は少々解りにくいかもしれません。


▲トップへ戻る▲


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

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

▼数値1/コモンセルフ0「主人公位置」

パーティ並び順(0〜5)を設定。
▼数値2/コモンセルフ1「キャラ切替可」

左右キーを有効にするかどうかを設定。
[1]キャラ切り替え可能 左右キーで別の主人公の切り替えられるようにする
[0]キャラ切り替え不能 左右キーを押しても何も処理されません
▼結果を返す「主人公ID」(セルフ変数[0:主人公位置])

最後に表示していた主人公(パーティ並び順(0〜5))を返します。


▲トップへ戻る▲


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

コモンイベント[109:X[移]装備欄_選択実行]を呼び出しているコモンイベント、
またはコモンイベント[109:X[移]装備欄_選択実行]から呼び出しているコモンイベントの一覧です。

コモンイベント[109:X[移]装備欄_選択実行]を呼び出しているコモンイベント
コモンイベント(ID順) 処理内容
130:X┣[移]装備欄実行 主人公の装備を変更する時に呼び出されます。

コモンイベント[109:X[移]装備欄_選択実行]から呼び出しているコモンイベント
コモンイベント(ID順) 処理内容
049:X[共]システムSE再生 決定・キャンセル・カーソル移動のSEを演奏する時に使用。
059:X[共]ウェイト(キー押しで中断) 外すことができない装備があるため、
 この装備を付けることができませんでした。

のエラー表示のウェイトで使用。(キー入力でウェイト短縮)
064:X[共]万能ウィンドウ描画処理 画面右側の所持装備品の一覧を表示する時に使用。
065:X[共]万能ウィンドウ選択実行 画面右側の所持装備品の一覧のキー操作で使用。
但し、キーを押すごとにコモンイベントの処理が終了し、
呼び出し元のこのコモンイベントへ戻ります。
066:X[共]万能ウィンドウ説明欄変更 画面下部の説明文を更新する時に使用。
093:X[移]装備画面描画 装備画面全体の表示処理で使用。
101:X[移]メニュー時文章表示 外すことができません」などのエラー表示で使用。
105:X[移]選択位置主人公ID取得 パーティの並び順(0〜5)から主人公IDを取得する時に使用。
106:X[移]選択箇所装備コード取得 指定した主人公の装備欄にある装備コードの取得で使用。
112:X[移]装備一覧算出 所持している装備品のデータを
可変DB[19:万能ウィンドウ一時DB]に保存する時に使用。
113:X[移]装備装着・解除 装備の装着や解除する時に使用。
114:X[移]装備パラメータ差分算出 現在装備している装備品を外して、
新しい装備品を装備した時のパラメータの増減量を算出する時に使用。
122:X[移]一時ステ計算<初期化> 可変DB[17:×主人公一時DB]の初期化などを実行。
123:X[移]一時ステ計算<装備補正> 装備による能力値の増減を可変DB[17:×主人公一時DB]に設定。
124:X[移]一時ステ計算<状態補正> 状態変化による能力値の増減を可変DB[17:×主人公一時DB]に設定。

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


▲トップへ戻る▲


  
■セルフ変数の一覧

コモンイベント[109:X[移]装備欄_選択実行]のセルフ変数の一覧です。

セルフ変数
番号 名前 使用内容
0 主人公位置 パーティ並び順(0〜5)を設定。
[結果を返す]でも使用。
最後に表示していた主人公(パーティ並び順[0〜5])を
呼び出し元のコモンイベントへ返します。
1 キャラ切替可 左右キーを有効にするかどうかを設定。
0 左右キーを押しても何も処理されません
1 左右キーで別の主人公の切り替えられるようにする
5 *名前なし* 【イベントの挿入】の初期設定にはありますが、実際には使用されていません。
9 説明文 ユーザーDB[3:武器]項目[1:武器の説明[2行まで可]]や、
ユーザーDB[4:防具]項目[1:防具の説明[2行まで可]]を取得し、
画面下部の説明文の表示で使用。
10 選択カーソル位置 左側の一覧(装備欄)の選択位置を設定。
セルフ[10] 名称 装備コードの取得位置
0 右手 可変DB[0:主人公ステータス]項目[28:装備中の武器]
1 左手 可変DB[0:主人公ステータス]項目[29:装備中の防具1]
2 身体 可変DB[0:主人公ステータス]項目[30:装備中の防具2]
3 装飾1 可変DB[0:主人公ステータス]項目[31:装備中の防具3]
4 装飾2 可変DB[0:主人公ステータス]項目[32:装備中の防具4]
5 未使用 可変DB[0:主人公ステータス]項目[33:装備中の防具5]
6 未使用 可変DB[0:主人公ステータス]項目[34:装備中の防具6]
7 未使用 可変DB[0:主人公ステータス]項目[35:装備中の防具7]
11 選択可能最大値 ユーザーDB[17:システム設定]項目[22:装備可能欄数]を取得。
12 一時変数A 装備コードの取得で使用。
武器コード ユーザーDB[3:武器]データID20000
防具コード ユーザーDB[4:防具]データID30000
13 選択された装備 右側の一覧(万能ウィンドウ)で操作した内容を取得。
20000〜29999 武器を選択した(武器コード取得)
30000〜39999 防具を選択した(防具コード取得)
-200 方向キーを押した
-100 キャンセルキーを押した
-2 <装備を外す>を選択
20 キー入力1 キーコードを設定。
22 装備番号 セルフ[13]からデータIDを算出。
武器コード ユーザーDB[3:武器]データID
防具コード ユーザーDB[4:防具]データID
23 専有箇所ビット 装備を変更する時の処理にて、
ユーザーDB[3:武器]項目[27:装備時・専有箇所]
ユーザーDB[4:防具]項目[31:装備時・専有箇所]を取得。
項目[装備時・専有箇所]の数値は以下の装備欄の値を足したものになります。
右手 左手 身体 装飾1 装飾2 未使用 未使用 未使用
1 2 4 8 16 32 64 128
例えば「右手[1]+左手[2](両手持ち)」の場合は「3」、
身体[4]+装飾1[8]+装飾2[16]」の場合は「28」がセルフ[23]の値になります。
24 比較ビット ループ処理内で値を「1→2→4→8→16→32→64→128」と変化させ、
装備欄の専有が複数あるかどうかを調べる時に使用。
25 一時変数E 複数の専有を調べるループ処理の中で「加算1」を実行し、
既に調べた1つ目の装備欄(0〜7)と一致するかどうかを判定する時に使用。
26 専有箇所装備 複数の専有を調べるループ処理の中で、外す候補の装備コードを取得する時に使用。
28 専有箇所ビット2 右側の一覧の選択処理にて、
ユーザーDB[3:武器]項目[27:装備時・専有箇所]
ユーザーDB[4:防具]項目[31:装備時・専有箇所]を取得。
30 外せないフラグ ユーザーDB[3:武器]項目[16:一度付けたら外せない?]
ユーザーDB[4:防具]項目[15:一度付けたら外せない?]を取得し、
「1以上」の場合は「外すことができません」のエラーを表示。
31 一時変数C セルフ[12]からデータIDを算出。
武器コード ユーザーDB[3:武器]データID
防具コード ユーザーDB[4:防具]データID
35 キャラID パーティの並び順(0〜5)から
主人公ID(可変DB[0:主人公ステータス]データID)を取得。
36 パーティ全員 可変DB[18:基本システム用変数]データ[4:現在パーティー人数]を取得。
40 ビット判定[Ver2.28] 装備変更によるパラメータ差分を計算する時に、
現在選択中の装備欄を専有している装備がないかどうかを調べる時に使用。

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


▲トップへ戻る▲


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

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

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

処理内容
10 コモンイベント[105:X[移]選択位置主人公ID取得]を呼び出し、
パーティの並び順から主人公IDをセルフ[35]に取得。
15-404 ■ループ開始
装備変更の処理が終わるまではループし続ける。
  16 コモンイベント[093:X[移]装備画面描画]を呼び出し、
装備を変更する画面を表示。
上下キーを押した時のカーソルの移動表示もここで行います。
  18-37 ▼ 装備中の武具の説明文表示処理
コモンイベント[106:X[移]選択箇所装備コード取得]を呼び出し、
左側の一覧で選択している装備品の装備コードを取得し、
その装備品の説明文をセルフ[9]に取得し、
コモンイベント[066:X[共]万能ウィンドウ説明欄変更]を呼び出して、
画面下部にセルフ[9]の説明文を表示。
  41 何らかのキーが押されるまで待機。
  42-307 ■条件分岐(変数): 【1】 CSelf20[キー入力1] が 10 と同じ
左側の一覧で決定キーが押された場合は分岐。
なお、ここから307行目までは右側の一覧の処理になるため、
左側の一覧の決定キー以外のキー処理は305行目以降になります。
    44-45 ▼ 決定キーここから右欄から装備を選ぶ処理
▼ の前に、今の装備中の武具が外せるかどうかをチェック
コモンイベント[106:X[移]選択箇所装備コード取得]を呼び出し、
左側の一覧で選択している装備品の装備コードをセルフ[12]に取得。
    47 ■条件分岐(変数): 【1】 CSelf12[一時変数A] が 20000 以上
左側の一覧で現在選択している所に何らかの装備がある場合は分岐。
      49-59 装備している装備品の項目[一度付けたら外せない?]セルフ[30]に取得
      60-68 ■条件分岐(変数): 【1】 CSelf30[外せないフラグ] が 1 以上
左側の一覧で現在選択している装備品が「外せない」設定である場合は分岐。
        62-66 コモンイベント[049:X[共]システムSE再生]を呼び出してブザー音を演奏し、
コモンイベント[101:X[移]メニュー時文章表示]で「外すことができません」を表示&消去し、
【ループ開始へ戻る】15行目に戻る。
    71 右側の一覧の最初の行にある装備コードをセルフ[13]に取得。
    72 コモンイベント[049:X[共]システムSE再生]を呼び出し、
左側の一覧を選択した時の決定音を演奏。
    73 ●ラベル地点「差分計算開始」 <<<<<<<<<<<<<<<<<<<<<<<<★
右側の一覧で方向キーが押されて、違う装備品が選択された時に、
183行目からここへジャンプしてきて、能力値の増減量を計算し直す。
    74 コモンイベント[106:X[移]選択箇所装備コード取得]を呼び出し、
左側の一覧で選択している装備品の装備コードをセルフ[12]に取得。
    76-80 ▼ −−−−−−−−−−−−−−−−−−−−−−−
▼ パラメータ差分チェック
▼ −−−−−−−−−−−−−−−−−−−−−−−
▼ パラメータ差分を求める。 もし両手剣など専有箇所有りの装備ならそこも外す
コモンイベント[114:X[移]装備パラメータ差分算出]を呼び出し、
左側と右側の一覧で選択している装備品の能力値の増減量を算出する。
    81-83 ▼ −−−−−−−−−−−−−
▼ 付けようとする装備に「専有箇所」があれば、その装備を内部的に外す
▼ −−−−−−−−−−−−−
    85-167 ■条件分岐(変数): 【1】 CSelf13[選択された装備] が 20000 以上
右側の一覧で装備品を選択している場合は分岐。
      87-96 右側の一覧で選択している装備品の項目[装備時・専有箇所]セルフ[23]に取得。
      97 ▼ ここで対応する専有箇所の装備を内部的に外す
      101-117 ■回数付きループ [ CSelf11[選択可能最大値] ]回
装備欄の数だけループ。
初期設定は5個(右手、左手、身体、装飾1、装飾2)なので、5回ループします。
このループでは、右側の一覧で選択した装備品が複数の装備欄を使用する装備品であり、
その装備品を装備した時に外される全ての装備品の能力値のマイナス値を算出する処理を行います。

例えば「両手持ちの武器」を装備する場合、「右手」と「左手」の装備品が外れます。
この時に能力値の増減量は「両手持ちの武器−右手−左手」で計算しますが、
両手持ちの武器−右手」の計算は既に80行目で行っており、
残りの「−左手」の増減量の計算をこのループ内で行います。
        102-113 ■条件分岐(変数): 【1】 CSelf23[専有箇所ビット] が CSelf24[比較ビット] のビットを満たす
調べる装備欄である場合は分岐。
例えば項目[装備時・専有箇所]が「28(身体[4]+装飾1[8]+装飾2[16])」の場合は、
セルフ[24]が「4、8、16」の時にここを分岐します。
          104 ▼ ただし今注目している箇所の装備はマイナスにしない(すでにマイナスにしている)
          105-111 ■条件分岐(変数): 【1】 CSelf10[選択カーソル位置] が CSelf25[一時変数E] 以外
左側の一覧で選択している装備欄以外の装備欄を調べる場合は分岐。
例えばセルフ[10](左側の一覧の選択)が「2(身体)」の場合で、
セルフ[25](処理する装備欄)が「2以外(身体以外の装備欄)」の場合は分岐します。
なお、「セルフ[10]=セルフ[25]」の処理は既に80行目で行っているので、
ここで分岐すると同じ装備品で二重に処理してしまうため、ここでは分岐しません。
            107 コモンイベント[106:X[移]選択箇所装備コード取得]を呼び出し、
外す装備品の装備コードをセルフ[26]に取得。
            108-109 コモンイベント[114:X[移]装備パラメータ差分算出]を呼び出し、
外す装備品の能力値を増減量の合計から減算。
そして、その装備が外せない場合はセルフ[30]に「加算1」を設定。
なお、80行目で既に装着する装備品の能力値が増減量の合計に加わっているため、
この108行目コモンイベント[114:X[移]装備パラメータ差分算出]の設定では、
装着装備コードは「-1」にして、外す装備コードのみを設定しています。
      118-120 ▼ −−−−−−−−−−−−−
▼ 現在選んでいる装備欄が、他の装備の専有箇所に引っかかってた場合は、
  他の装備も外したとみなして計算する
▼ −−−−−−−−−−−−−
      123-126 ■回数付きループ [ CSelf10[選択カーソル位置] ]回
左側の一覧のカーソル位置の値だけループ。
装備欄 右手 左手 身体 装飾1 装飾2 未使用 未使用 未使用
カーソル位置(ループ回数) 0 1 2 3 4 5 6 7
        124 ループするごとにセルフ[24]に「乗算2」を設定。
カーソル位置(ループ回数) 0回 1回 2回 3回 4回 5回 6回 7回
セルフ[24] 1 2 4 8 16 32 64 128
      127 ▼ Ver2.28 装備変更画面のパラメータの増減表示が正しく表示されないバグを修正
      129-165 ■回数付きループ [ CSelf11[選択可能最大値] ]回
装備欄の数だけループ。
ここでは装備を変更する場合、現在左側の一覧にカーソルを置いている部位以外に、
装備を外す必要がある装備があるかどうかを調べる処理を実行します。
例えば「武器+防具1」を専有する武器を装備している時に、
防具1に何らかの装備品を装備する場合、「武器+防具1」の武器も装備から外れます。
このように防具1の装備を変える時に、防具1以外の部位も外す必要があるかどうかを調べ、
もしも外す必要がある場合はコモンイベント[114:X[移]装備パラメータ差分算出]を呼び出し、
その外す必要がある装備品のパラメータ差分を計算します。
なお、右側の一覧で選択中の装備品に「防具1+防具2」の専有が設定されている場合は、
既に防具1と防具2を外した時のパラメータ差分は計算済みなので、
このループ内で防具1と防具2の装備欄を調べる処理を実行する時には、
【ループ開始へ戻る】を実行してパラメータ差分が二重に実行しないようにします。
        133-137 ■条件分岐(変数): 【1】 CSelf23[専有箇所ビット] が CSelf40[ビット判定[Ver2.28]] のビットを満たす
セルフ[40]で指定した専有設定のビットが
左側のカーソル位置の装備に項目[装備時・専有箇所]に存在している場合は分岐。
          135-136 ▼ もしすでに外したとみなした場所と重複してたらスルー
【ループ開始へ戻る】129行目へ戻る。
        139 コモンイベント[106:X[移]選択箇所装備コード取得]を呼び出し、
調べている装備欄の装備コードをセルフ[26]に取得。
        140-163 ■条件分岐(変数): 【1】 CSelf10[選択カーソル位置] が CSelf25[一時変数E] 以外
 ■条件分岐(変数): 【1】 CSelf26[専有箇所装備] が 20000 以上
調べている装備欄が左側の一覧のカーソル位置では無い場合は分岐し、
さらに調べている装備欄に何らかの装備品がある場合は分岐。
          144-153 調べている装備欄にある装備品の項目[装備時・専有箇所]セルフ[28]に取得。
          154-159 ■条件分岐(変数): 【1】 CSelf28[専有箇所ビット2] が CSelf24[比較ビット] のビットを満たす
調べている装備欄にある装備品の専有設定に、
左側の一覧のカーソル位置の装備欄が含まれている場合は分岐。
            156-157 コモンイベント[114:X[移]装備パラメータ差分算出]を呼び出し、
調べている装備欄にある装備品の能力値を増減量の合計から減算。
そして、その装備が外せない場合はセルフ[30]に「加算1」を設定。
    170-171 ▼ 差分を表示
コモンイベント[093:X[移]装備画面描画]を呼び出し、能力値の増減量を表示。
    172-300 ■ループ開始
右側の一覧のキー処理を実行。
      173 コモンイベント[065:X[共]万能ウィンドウ選択実行]を呼び出し、
万能ウィンドウで何らかのキー入力が実行されたら処理が終了して、
このコモンイベントへ戻ってくる。
      174-175 ▼ ここの0回ループは、通常時に入ってこないようにするためのもので
▼ 消してはいけない、注意。
      176-182 ■回数付きループ [ 0 ]回
        177 ●ラベル地点「装備不可能時戻り場所」 <<<<<<<<<<<<<<<<<<<<<<<<★
外すことができない装備があるため、
 この装備を付けることができませんでした。
」を表示した後に、216行目からジャンプしてくる。
        178-180 エラーが発生した時のカーソル位置と同じ位置を設定して、
再びコモンイベント[065:X[共]万能ウィンドウ選択実行]を呼び出す。
      183-189 ■条件分岐(変数): 【1】 CSelf13[選択された装備] が -200 と同じ
万能ウィンドウで方向キーを押した場合は分岐。
        185-186 ▼ 移動だけの場合は選択カーソル位置の内容を得る
右側の一覧で選択した装備品の装備コードをセルフ[13]に設定。
        187 ●ラベル「差分計算開始」に飛ぶ >>>>>>>>>>>>>>>>>>>>>>>>>
73行目にジャンプし、能力値の増減表示を更新する。
      190-194 ■条件分岐(変数): 【1】 CSelf13[選択された装備] が -100 と同じ
万能ウィンドウでキャンセルキーを押した場合は分岐。
        192-194 ▼ キャンセルした場合
【ループ中断】を実行し、左側の一覧のキー処理に戻る。
      196-205 ◇分岐: 【2】 [ CSelf13[選択された装備] が -2 と同じ ]の場合↓
万能ウィンドウで「<装備を外す>」を選択した場合は分岐。
        197 ●ラベル地点「装備解除時」 <<<<<<<<<<<<<<<<<<<<<<<<★
左側の一覧を操作している時にサブキーを押した場合、396行目からジャンプしてくる。
        198-200 ▼ 装備を外した場合
コモンイベント[049:X[共]システムSE再生]を呼び出して装備解除音を演奏し、
コモンイベント[113:X[移]装備装着・解除]を呼び出して左側の一覧で選択している装備を解除。
        201-204 ▼ 能力値を再計算
コモンイベント[122〜124]を呼び出して可変DB[17:×主人公一時DB]などを更新し、
【ループ中断】を実行し、左側の一覧のキー処理に戻る。
      207-296 ◇分岐: 【3】 [ CSelf13[選択された装備] が 0 以上 ]の場合↓
万能ウィンドウで何らかの装備品を決定した場合は分岐。
        208 ▼ 何かを装備した場合
        209-219 ■条件分岐(変数): 【1】 CSelf30[外せないフラグ] が 1 以上
外せない装備品があった場合は分岐。
          211-212 ▼ もし該当する装備が「外せない装備」欄も専有する場合は、装備できないと表示
コモンイベント[049:X[共]システムSE再生]を呼び出してブザー音を演奏。
          213-215 コモンイベント[101:X[移]メニュー時文章表示]を呼び出して、
外すことができない装備があるため、
 この装備を付けることができませんでした。
」を表示し、キー入力後に消去。
          216 ●ラベル「装備不可能時戻り場所」に飛ぶ >>>>>>>>>>>>>>>>>>>>>>>>>
177行目へジャンプし、もう一度コモンイベント[065:X[共]万能ウィンドウ選択実行]を実行。
        220 コモンイベント[049:X[共]システムSE再生]を呼び出して装着音を演奏。
        222-225 ▼ −−−−−−−−−−−−−−−−−−−−−−−
▼ 複数箇所 専有装備チェック
▼ −−−−−−−−−−−−−−−−−−−−−−−
▼ 複数箇所を専有する装備なら選択箇所以外を外す
        226-253 ■条件分岐(変数): 【1】 CSelf13[選択された装備] が 20000 以上
右側の一覧で何らかの装備品を決定した場合は分岐。
          228-237 装備する装備品の項目[装備時・専有箇所]セルフ[23]に取得。
          238 ▼ ここで対応する専有箇所の装備を内部的に外す
          241-251 ■回数付きループ [ CSelf11[選択可能最大値] ]回
装備欄の数だけループ。
このループでは、装備欄にあった装備品を外す処理を実行します。
            243-247 ▼ 注目している箇所が、選んでいる装備の箇所のビットを満たしていたら外す
装備する装備品が専有する装備欄の場合は分岐し、
コモンイベント[113:X[移]装備装着・解除]を呼び出して装備を外す。
        254-256 ▼ −−−−−−−−−−−−−
▼ 現在の装備欄が他の装備の専有欄に引っかかってた場合はそこも外す
▼ −−−−−−−−−−−−−
        259-262 ■回数付きループ [ CSelf10[選択カーソル位置] ]回
左側の一覧のカーソル位置の値だけループ。
          260 ループするごとにセルフ[24]に「乗算2」を設定。
        263-287 ■回数付きループ [ CSelf11[選択可能最大値] ]回
装備欄の数だけループ。
このループでは、これから装備する装備品が専有する装備欄以外を調べ、
調べた装備欄にある装備品が今回装備する装備品の専有と被っている場合は、
その装備品を外す処理を実行。
          264 コモンイベント[106:X[移]選択箇所装備コード取得]を呼び出し、
指定した装備欄にある装備コードをセルフ[26]に設定。
          265-284 ■条件分岐(変数): 【1】 CSelf26[専有箇所装備] が 20000 以上
指定した装備欄にある装備コードがある場合は分岐。
            267-276 指定した装備欄にある装備品の項目[装備時・専有箇所]セルフ[23]に取得。
            277-282 ▼ 注目している箇所が、選んでいる装備の箇所のビットを満たしていたら外す
装備する装備品が専有する装備欄の場合は分岐し、
コモンイベント[113:X[移]装備装着・解除]を呼び出して装備を外す。
        290-291 ▼ 専有装備関係を全て外した後、ここで装備する
コモンイベント[113:X[移]装備装着・解除]を呼び出して、
右側の一覧で決定した装備品を装着。
        292-296 コモンイベント[122〜124]を呼び出して可変DB[17:×主人公一時DB]などを更新し、
【ループ中断】を実行し、左側の一覧のキー処理に戻る。
    301-302 ▼ 処理が終わったら更新
コモンイベント[114:X[移]装備パラメータ差分算出]を呼び出して、能力値の増減合計を初期化。
    303 コモンイベント[093:X[移]装備画面描画]を呼び出し、能力値の増減表示を消去。
    304-307 コモンイベント[112:X[移]装備一覧算出]を呼び出して右側の一覧データを更新し、
コモンイベント[064:X[共]万能ウィンドウ描画処理]で右側の一覧表示を更新し、
【ループ開始へ戻る】を実行し、左側の一覧のキー処理に戻る。
  309-313 ◇分岐: 【2】 [ CSelf20[キー入力1] が 11 と同じ ]の場合↓
左側の一覧でキャンセルキーが押された場合は分岐。
    310-313 ▼ キャンセルキー
可変DB[18:基本システム用変数]データ[2:選択されたコード]に「-1」を設定し、
【イベント処理中断】を実行。
  315-322 ◇分岐: 【3】 [ CSelf20[キー入力1] が 2 と同じ ]の場合↓
左側の一覧で下キーが押された場合は分岐。
    316-319 ▼ 下キー
コモンイベント[049:X[共]システムSE再生]を呼び出してカーソル移動音を演奏し、
セルフ[10]+1+セルフ[11]余剰セルフ[11]」でカーソル位置を移動。
セルフ[10]+1+セルフ[11]余剰セルフ[11]」の処理は、
例えばカーソルの範囲が「0〜4」で、現在のカーソル位置が「4」の時に下キーを押すと、
4+1+5余剰5」の計算式で「10余剰5」となり、
「余剰5」は「5以上の場合は何度も減算5を実行し続ける」と言った処理になるので、
結果的に「10余剰5」の処理は「0」になります。
つまりカーソル位置「4」で下キーを押すと「0」の位置に移動する形になります。
    320-322 ▼ 万能ウィンドウに表示する装備可能武具一覧を計算しなおす
カーソル位置(装備欄)に合わせて右側の一覧表示を更新する。
  325-334 ■条件分岐(変数): 【1】 CSelf20[キー入力1] が 8 と同じ
左側の一覧で上キーが押された場合は分岐。
    327-330 ▼ 上キー
コモンイベント[049:X[共]システムSE再生]を呼び出してカーソル移動音を演奏し、
セルフ[10]−1+セルフ[11]余剰セルフ[11]」でカーソル位置を移動。
セルフ[10]−1+セルフ[11]余剰セルフ[11]」の処理は、
例えばカーソルの範囲が「0〜4」で、現在のカーソル位置が「1」の時に上キーを押すと、
1−1+5余剰5」の計算式で「5余剰5」となり、カーソル位置は「0」になります。
カーソル位置が「0」の時に上キーを押した場合は、
0−1+5余剰5」の計算式で「4余剰5」となり、カーソル位置は「4」になります。
    331-334 ▼ 万能ウィンドウに表示する装備可能武具一覧を計算しなおす
カーソル位置(装備欄)に合わせて右側の一覧表示を更新する。
セルフ[12]の設定の意味は不明。
  336-349 ◇分岐: 【2】 [ CSelf20[キー入力1] が 4 と同じ ]の場合↓
左側の一覧で左キーが押された場合は分岐。
    337-338 ▼ 左キー
▼ キャラ切り替え(−1)
    339-349 ■条件分岐(変数): 【1】 CSelf1[キャラ切替可] が 1 と同じ
キャラ切替可が「キャラ切り替え可能」の場合は分岐。
      341-343 コモンイベント[049:X[共]システムSE再生]を呼び出してカーソル移動音を演奏し、
セルフ[0]+セルフ[36]−1余剰セルフ[36]」で主人公を切り替える。
      344 コモンイベント[105:X[移]選択位置主人公ID取得]を呼び出し、
切り替わった主人公の主人公IDをセルフ[35]に取得。
      345-346 コモンイベント[112:X[移]装備一覧算出]を呼び出して右側の一覧のデータを更新し、
コモンイベント[064:X[共]万能ウィンドウ描画処理]で右側の一覧の表示を更新。
      347 コモンイベント[093:X[移]装備画面描画]を呼び出し、現在表示中の主人公の装備画面を表示する。
  351-364 ◇分岐: 【3】 [ CSelf20[キー入力1] が 6 と同じ ]の場合↓
左側の一覧で右キーが押された場合は分岐。
    352-353 ▼ 右キー
▼ キャラ切り替え (+1)
    354-364 ■条件分岐(変数): 【1】 CSelf1[キャラ切替可] が 1 と同じ
キャラ切替可が「キャラ切り替え可能」の場合は分岐。
      356-358 コモンイベント[049:X[共]システムSE再生]を呼び出してカーソル移動音を演奏し、
セルフ[0]+セルフ[36]+1余剰セルフ[36]」で主人公を切り替える。
      359 コモンイベント[105:X[移]選択位置主人公ID取得]を呼び出し、
切り替わった主人公の主人公IDをセルフ[35]に取得。
      360-361 コモンイベント[112:X[移]装備一覧算出]を呼び出して右側の一覧のデータを更新し、
コモンイベント[064:X[共]万能ウィンドウ描画処理]で右側の一覧の表示を更新。
      362 コモンイベント[093:X[移]装備画面描画]を呼び出し、現在表示中の主人公の装備画面を表示する。
  367-396 ■条件分岐(変数): 【1】 CSelf20[キー入力1] が 12 と同じ
左側の一覧でサブキーが押された場合は分岐し、現在選択している装備欄の装備を外す処理を実行。
    369-371 ▼ サブキー(装備解除)
▼ 装備解除の前に、今の装備中の武具が外せるかどうかをチェック
コモンイベント[116:X[移]記憶キー位置取得]を呼び出し、
左側の一覧で現在選択している装備コードをセルフ[12]に取得。
    372-395 ■条件分岐(変数): 【1】 CSelf12[一時変数A] が 20000 以上
現在選択している装備欄に装備品が設定されている場合は分岐。
      374-384 選択している装備欄にある装備品の項目[一度付けたら外せない?]セルフ[30]に取得。
      385-393 ■条件分岐(変数): 【1】 CSelf30[外せないフラグ] が 1 以上
選択している装備欄にある装備品の装備が外せない場合は分岐。
        387-391 コモンイベント[049:X[共]システムSE再生]を呼び出してブザー音を演奏し、
コモンイベント[101:X[移]メニュー時文章表示]で「外すことができません」を表示&消去し、
【ループ開始へ戻る】15行目に戻る。
    396 ●ラベル「装備解除時」に飛ぶ >>>>>>>>>>>>>>>>>>>>>>>>>
197行目にジャンプし、右側の一覧にある「<装備を外す>」の処理を使って装備を外す。


▲トップへ戻る▲



◎関連ページ

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

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