WOLF RPGエディター(ウディタ)[3.337]/演出・システム【サイトトップへ戻る】
■マップイベントからアイテム画面を起動し、使う、渡す、見せる
(更新:2024/05/13)


マップイベントを調べた時にアイテム画面を表示して、アイテムを選択させる処理を設定します。


ショートカット
■設定内容の確認
■ユーザーDBの準備
■改造するコモンイベントを複製
■「入力の数/結果を返す」の準備
■コモンイベントを改造
■マップイベントの設定:サンプルゲームのダンジョンに入る扉
■マップイベントの設定:回復アイテムを渡す

動作確認用データ(コモン素材)
ダウンロード後に右クリック→[すべて展開]で解凍し、
中に入っている「★このデータについて」をご覧ください。
必ずこのページの説明をご覧頂いた上で、
自己責任でデータをご利用ください。


  
■設定内容の確認

マップイベントを調べたら、コモンイベントを呼び出してアイテム画面を表示し、
アイテム画面で選んだアイテムの種類(アイテムコード)によって、その後のマップイベントの処理を変えていきます。



以下はアイテム「ダンジョンのカギ」を選択して、鍵のかかった扉を開ける時の動作イメージです。

マップイベントを起動

カギではないアイテムを選択

 
もう一度アイテムを選択し直す
カギを選択


解錠(ダンジョンマップへ移動)



使用例は以下のとおりです。

使う 鍵がかかった扉や宝箱を開けるアイテムを選択する時に使用。
渡す 依頼された物を渡す。
怪我を負っている者に回復アイテムを渡す。
※HP回復のアイテムなら何でも良い。
「武器が欲しい」と言っている者に、何らかの武器を渡す。
※武器なら何でも良い。
「銀の素材が欲しい」と言っている者に、銀を使った物を渡す。
※「銀のメダル」「銀のダガー」「銀の小手」など、
 銀が使われている物なら何でも良い。
見せる 門番に「通行証」を見せる。
鑑定士にアイテムを見せる事で、
説明文に書かれていない裏情報を知る事ができる。



アイテム画面で選択したアイテム、武器、防具の情報は、以下のアイテムコードで返されます。

種類 アイテムコードの作成方法 アイテムコードの見本
アイテム ユーザーDB[2:アイテム]のデータID+10000 魔力の水=10002
武器 ユーザーDB[3:武器]のデータID+20000 ロングソード=20008
防具 ユーザーDB[4:防具]のデータID+30000 ナイトシールド=30012



今回の処理では、通常のアイテム画面の処理とは異なる独自の仕様でアイテム画面を処理します。

例えば回復アイテムをアイテム画面で選択した場合、通常では回復する処理が実行されますが、
今回の処理では「単にアイテムを選ぶだけの処理」になるため、回復アイテムを選択しても回復する処理は実行されず、
呼び出し元のマップイベントに「どのアイテムを選択したのか」を伝えるだけになります。

また通常ではアイテム画面で選択する事ができないアイテム、武器、防具が全て選択可能になります。

「回復アイテムだけを表示」「武器だけを表示」などと、特定のアイテムのみを表示する事もできます。



今回の処理では、アイテムを選択してもアイテムの所持数は減りません。

もしもアイテムを選択した時に所持数を減らす場合は、アイテム画面を呼び出したマップイベントの中で、
コモンイベント[000:○アイテム増減]を使って所持数を減らしたり、可変DB[7〜9]の操作して所持数を減らしてください。


▲トップへ戻る▲


  
■ユーザーDBの準備

ユーザーDB[2:アイテム][3:武器][4:防具]のそれぞれに項目[アイテム画面表示]文字列で新設してください。





項目[アイテム画面表示]には、アイテムをグループ分けするキーワードを設定してください。
例えばHP回復の場合は「HP」、食料の場合は「食料」と言った感じです。

スペース(空白文字)を挟む事で複数のキーワードを設定する事もできます。





項目[アイテム画面表示]に何も文字を設定しなかった場合は、
アイテム画面を表示する時にキーワードの指定が無かった場合のみ、アイテム画面に表示されます。



キーワードの指定は、アイテムの名前説明文にある単語をキーワードにする事もできます。

例えばキーワードを「巻物」にした場合は、「炎の巻物」や「ヒールの巻物」などがアイテム画面に表示されます。



アイテム画面を表示する時のキーワードの指定は、項目[アイテム画面表示]名前&説明文で別々に設定する事ができるため…
項目[アイテム画面表示]のキーワード HP SP
名前&説明文のキーワード 巻物 銀
と設定する事で、項目[アイテム画面表示]に「HP」「SP」があるものと、
名前&説明文に「巻物」「銀」があるものをアイテム画面に表示する事ができます。



キーワードの設定では「HP、Hp、hp、HP、Hp、hp」などの文字は全て別のキーワードとして処理されます。

そのため項目[アイテム画面表示]の設定やキーワードの指定の単語は、全て同じ文字に統一してください。


▲トップへ戻る▲


  
■改造するコモンイベントを複製

改造するコモンイベントの複製作業を行います。



なお、ページトップにある「動作確認用データ(コモン素材)」でコモンデータをダウンロードしている場合は、
ここの設定は不要です。
▼次の【■「入力の数/結果を返す」の準備】へジャンプ

手作業で一から設定する場合のみ、下記の作業を行ってください。



コモンイベント[128:X┣[移]アイテム欄実行]コモンイベント[110:X[移]アイテム一覧算出]をコピーして、
コモンID[215]以降の未使用のコモンイベントに貼り付けてください。





コモンイベント名を以下のように変更してください。
「X┣[移]アイテム欄実行」→「アイテム画面表示」
  「X[移]アイテム一覧算出」→「アイテム画面一覧データ」


そしてコモンイベント名の表示色を「青色」に変えてください。




これでコモンイベントの複製作業は完了です。


▲トップへ戻る▲


  
■「入力の数/結果を返す」の準備

2つのコモンイベントの「入力の数/結果を返す」を設定します。



なお、ページトップにある「動作確認用データ(コモン素材)」でコモンデータをダウンロードしている場合は、
ここの設定は不要ですが、ここの説明文は目を通しておいてください。



■コモンイベント「アイテム画面表示」



入力の数 / 結果を返す
設定 名前 初期値 特殊指定 補足
数値1 表示対象 7 [7]全て表示
[1]アイテムのみ
[2]武器のみ
[4]防具のみ
[3]アイテム+武器
[5]アイテム+防具
[6]武器+防具
 
数値2 特殊処理 0 [0]なし
[1]キーワード全一致
[2]価格1以上
[3]価格1+全一致
特定のマップイベントで使う補助機能です。
文字列1 キーワード ユーザーDB[2:アイテム][3:武器][4:防具]
項目[アイテム画面表示]に設定した文字を設定すると、
キーワードが一致するアイテムのみが表示されます。
文字列2 名前&説明 アイテムの名前や説明文にある文字を設定すると、
キーワードが一致するアイテムのみが表示されます。
返す値 アイテムコード コモンセルフ22[数]:選択コード位置



数値2:特殊処理」にある「キーワード全一致」は、例えば「文字列1:キーワード」に「HP SP」を設定した場合、
キーワード全一致」では無い場合はキーワードに「HP」か「SP」のどちらかがあればアイテム画面に表示されますが、
キーワード全一致」が有効な場合はキーワードに「HP」と「SP」の両方が無いとアイテム画面には表示されません。

また「キーワード全一致」が有効の場合で、
文字列1:キーワード」と「文字列2:名前&説明」の両方にキーワードが設定されている場合は、
両方のキーワードが全て一致するアイテムのみがアイテム画面に表示されます。



■コモンイベント「アイテム画面一覧データ」

こちらはコモンイベント「アイテム画面表示」の情報を受け取るだけなので、特殊指定の設定などはありません。



入力の数 / 結果を返す
設定 名前 初期値 特殊指定
数値1 表示対象 1600000  
数値2 特殊処理 1600001  
文字列1 キーワード
文字列2 名前&説明


▲トップへ戻る▲


  
■コモンイベントを改造

イベントコマンドの設定例は、黄色は設定の追加や変更を行う箇所、桃色は削除する箇所を示しています。



なお、ページトップにある「動作確認用データ(コモン素材)」でコモンデータをダウンロードしている場合は、
ここの設定は不要ですが、改造している内容を確認したい方はご覧ください。
▼次の【マップイベントの設定:サンプルゲームのダンジョンに入る扉】へジャンプ



■コモンイベント「アイテム画面表示」

【イベントコード表示】

▼ ―――――――――――――――――――――――――――――――――――
▼ 【処理の内容】
▼ アイテム欄を開き、使用し、終了するまでの処理を実行します。

▼ 【このコモンイベント内で操作しているデータベース】

▼ 【ここから呼び出している別コモンイベント】

▼ 【どのコモンイベントから主に呼び出されているか】
▼ ―――――――――――――――――――――――――――――――――――
▼ 座標倍率を取得
▼ Ver2.20 座標倍率を縦横別に修正

■DB読込(可変): CSelf88[座標倍率X[x10]] = 可変DB[ 基本システム用変数 : 97 : 0 ] (18 : 座標倍率X[x10] : 数値)
■DB読込(可変): CSelf89[座標倍率Y[x10]] = 可変DB[ 基本システム用変数 : 98 : 0 ] (18 : 座標倍率Y[x10] : 数値)
■イベントの挿入[名]: CSelf11[保存キー位置] = ["X[移]記憶キー位置取得"] <コモンEv 116> / -1:[移動]アイテム / -1
●ラベル地点「アイテム欄実行開始」 <<<<<<<<<<<<<<<<<<<<<<<<★
▼ 万能ウィンドウ設定を初期化
■イベントの挿入[名]: ["アイテム画面一覧データ"] <コモンEv 216> /
            CSelf0[モード] / CSelf1[特殊処理] / CSelf5[キーワード] / CSelf6[名前&説明]

▼ 万能ウィンドウのサイズ設定
■変数操作: CSelf35[一時変数] = 2 * CSelf88[座標倍率X[x10]]
■可変DB書込:DB[ 基本システム用変数 : 9 : 0 ] (18 : 万能ウィンドウ表示X : 数値) = CSelf35[一時変数]
■変数操作: CSelf35[一時変数] = 1 * CSelf89[座標倍率Y[x10]]
■可変DB書込:DB[ 基本システム用変数 : 10 : 0 ] (18 : 万能ウィンドウ表示Y : 数値) = CSelf35[一時変数]
■変数操作: CSelf35[一時変数] = 28 * CSelf88[座標倍率X[x10]]
■可変DB書込:DB[ 基本システム用変数 : 11 : 0 ] (18 : 万能ウィンドウ横サイズ : 数値) = CSelf35[一時変数]
■変数操作: CSelf35[一時変数] = 19 * CSelf89[座標倍率Y[x10]]
■可変DB書込:DB[ 基本システム用変数 : 12 : 0 ] (18 : 万能ウィンドウ縦サイズ : 数値) = CSelf35[一時変数]
■変数操作: CSelf35[一時変数] = 2 + 0
■可変DB書込:DB[ 基本システム用変数 : 13 : 0 ] (18 : 万能ウィンドウ横項目数 : 数値) = CSelf35[一時変数]
■変数操作: CSelf35[一時変数] = 13 + 0
■可変DB書込:DB[ 基本システム用変数 : 14 : 0 ] (18 : 万能ウィンドウ縦項目数 : 数値) = CSelf35[一時変数]
■変数操作: CSelf35[一時変数] = 3 * CSelf89[座標倍率Y[x10]]
■可変DB書込:DB[ 基本システム用変数 : 16 : 0 ] (18 : 万能ウィンドウ説明欄縦サイズ : 数値) = CSelf35[一時変数]
▼ 万能ウィンドウ表示
■イベントの挿入[名]: ["X[共]万能ウィンドウ描画処理"] <コモンEv 64> / 0:表示 / -1 / 4:ウィンドウの下に表示 / 1:左上から展開
■回数付きループ [ 1 ]回
|▼ 万能ウィンドウ選択処理を実行
|■可変DB書込:DB[ 基本システム用変数 : 21 : 0 ] (18 : 万能ウィンドウ 外からカーソル指定 : 数値) = CSelf11[保存キー位置]
|■イベントの挿入[名]: ["X[共]万能ウィンドウ選択実行"] <コモンEv 65> / 2:選択を終えるまでループ[カーソル初期化しない]
|■DB読込(可変): CSelf11[保存キー位置] = 可変DB[ 基本システム用変数 : 61 : 0 ] (18 : [一時]万能ウィンドウ最終カーソル位置 : 数値)
|■イベントの挿入[名]: CSelf11[保存キー位置] = ["X[移]記憶キー位置設定"] <コモンEv 117> /
            -1:[移動]アイテム / -1 / CSelf11[保存キー位置]

|■
◇ループここまで◇◇
▼ 万能ウィンドウを閉じる(自動)
■イベントの挿入[名]: ["X[共]万能ウィンドウ描画処理"] <コモンEv 64> / -1:消去 / 0 / 4:ウィンドウの下に表示 / 1:左上から展開
▼ 使用後の効果、必要ならターゲット指定
■DB読込(可変): CSelf22[選択コード位置] = 可変DB[ 基本システム用変数 : 万能ウィンドウ_コード返値 : 0 ] (18 : 8 : 数値)
■デバッグ文:●アイテム欄コード > \cself[22]
■条件分岐(変数): 【1】 CSelf22[選択コード位置] が -100 と同じ 【2】 CSelf22[選択コード位置] が 0 以上
-◇分岐: 【1】 [ CSelf22[選択コード位置] が -100 と同じ ]の場合↓
|▼ キャンセル時は終了
|■イベント処理中断
|■
-◇分岐: 【2】 [ CSelf22[選択コード位置] が 0 以上 ]の場合↓
|▼ 何かアイテムを選んでいた場合、ターゲット選択 or 実行
|■イベントの挿入[名]: ["X[移]アイテム使用効果処理"] <コモンEv 118> / CSelf22[選択コード位置]
|■イベントの挿入[名]: ["X[移]残りアイテム数表示"] <コモンEv 99> / -1:削除 / 0
|■条件分岐(変数): 【1】 CSelf0[モード] が 1 と同じ
|-◇分岐: 【1】 [ CSelf0[モード] が 1 と同じ ]の場合↓
||■イベントの挿入[名]: ["X[移]キャラ欄_全員描画"] <コモンEv 92> / -1:全員消去
||■
|◇分岐終了◇
|■DB読込(可変): CSelf10[一時変数] = 可変DB[ 基本システム用変数 : メニュー消去フラグ : 数値 ] (18 : 1 : 0)
|■条件分岐(変数): 【1】 CSelf10[一時変数] が 1 と同じ
|-◇分岐: 【1】 [ CSelf10[一時変数] が 1 と同じ ]の場合↓
||■イベント処理中断
||■
|◇分岐終了◇
|●ラベル「アイテム欄実行開始」に飛ぶ >>>>>>>>>>>>>>>>>>>>>>>>>
|■
◇分岐終了◇




■コモンイベント「アイテム画面一覧データ」

アイテム画面に表示するアイテムの情報を可変DB[19:万能ウィンドウ一時DB]に保存します。

【イベントコード表示】

▼ ―――――――――――――――――――――――――――――――――――
▼ 【処理の内容】
▼ 所持アイテム・武器・防具を計算し、名前一覧と選択可能状態を
▼ 可変DB「万能ウィンドウ一時DB」に格納します。

▼ 【このコモンイベント内で操作しているデータベース】

▼ 【ここから呼び出している別コモンイベント】

▼ 【どのコモンイベントから主に呼び出されているか】
▼ ―――――――――――――――――――――――――――――――――――

■可変DB書込:[タイプ 万能ウィンドウ一時DB(19) を初期化]
■変数操作: CSelf32[万能ウィンドウ登録位置] = 0 + 0
▼ アイテム処理
■条件分岐(変数): 【1】 CSelf0[表示対象] が 1 のビットを満たす
-◇分岐: 【1】 [ CSelf0[表示対象] が 1 のビットを満たす ]の場合↓
|■
-◇上記以外
|●ラベル「アイテム通過」に飛ぶ >>>>>>>>>>>>>>>>>>>>>>>>>
|■
◇分岐終了◇

■DB読込(ユーザ): CSelf31[最大処理数] = ユーザDB[タイプアイテム(2)のデータ数]
■変数操作: CSelf30[処理対象] = -1 + 0
■回数付きループ [ CSelf31[最大処理数] ]回
|■変数操作: CSelf30[処理対象] += 1 + 0
|■DB読込(可変): CSelf10[一時変数A] = 可変DB[ ┣所持アイテム個数 : CSelf30[処理対象] : 所持個数 ] (7 : - : 0)
|■条件分岐(変数): 【1】 CSelf10[一時変数A] が 1 以上
|-◇分岐: 【1】 [ CSelf10[一時変数A] が 1 以上 ]の場合↓
||▼ 1個以上あれば万能ウィンドウに登録
||■条件分岐(変数): 【1】 CSelf1[特殊処理] が 2 のビットを満たす
||-◇分岐: 【1】 [ CSelf1[特殊処理] が 2 のビットを満たす ]の場合↓
|||■DB読込(ユーザ): CSelf10[一時変数A] = ユーザDB[ アイテム : CSelf30[処理対象] : 販売価格 [0=売れない] ] (2 : - : 19)
|||■条件分岐(変数): 【1】 CSelf10[一時変数A] が 0 以下
|||-◇分岐: 【1】 [ CSelf10[一時変数A] が 0 以下 ]の場合↓
||||■ループ開始へ戻る
||||■
|||◇分岐終了◇
|||■
||◇分岐終了◇
||■文字列操作:CSelf7[残り文字] = CSelf5[キーワード]
||■条件分岐(文字): 【1】 CSelf5[キーワード]が "" 以外
||-◇分岐: 【1】 [ CSelf5[キーワード] "" 以外 ]の場合↓
|||■DB読込(ユーザ): CSelf9[一時項目名] = ユーザDB[ アイテム : CSelf30[処理対象] : アイテム画面表示 ] (2 : - : 21)
|||■ループ開始
||||■文字列操作:CSelf8[切り取り用] = CSelf7[残り文字]
||||■条件分岐(文字): 【1】 CSelf7[残り文字]が "" と同じ
           【2】 CSelf7[残り文字]が " " を含む
           【3】 CSelf7[残り文字]が " " を含む
||||-◇分岐: 【1】 [ CSelf7[残り文字] "" と同じ ]の場合↓
|||||■ループ中断
|||||■
||||-◇分岐: 【2】 [ CSelf7[残り文字] " " を含む ]の場合↓
|||||■文字列操作:CSelf8[切り取り用] =<から指定文字まで切り出し> " "
|||||■文字列操作:CSelf7[残り文字] =<の指定文字以降を切り出し> " "
|||||■
||||-◇分岐: 【3】 [ CSelf7[残り文字] " " を含む ]の場合↓
|||||■文字列操作:CSelf8[切り取り用] =<から指定文字まで切り出し> " "
|||||■文字列操作:CSelf7[残り文字] =<の指定文字以降を切り出し> " "
|||||■
||||-◇上記以外
|||||■文字列操作:CSelf7[残り文字] = ""
|||||■
||||◇分岐終了◇
||||■条件分岐(文字): 【1】 CSelf9[一時項目名]が CSelf8[切り取り用] を含む
||||-◇分岐: 【1】 [ CSelf9[一時項目名] CSelf8[切り取り用] を含む ]の場合↓
|||||■ループ中断
|||||■
||||-◇上記以外
|||||■条件分岐(変数): 【1】 CSelf1[特殊処理] が 1 のビットを満たす
|||||-◇分岐: 【1】 [ CSelf1[特殊処理] が 1 のビットを満たす ]の場合↓
||||||■文字列操作:CSelf8[切り取り用] = ""
||||||■ループ中断
||||||■
|||||◇分岐終了◇
|||||■
||||◇分岐終了◇
||||■
|||◇ループここまで◇◇
|||■条件分岐(変数): 【1】 CSelf1[特殊処理] が 1 のビットを満たす
|||-◇分岐: 【1】 [ CSelf1[特殊処理] が 1 のビットを満たす ]の場合↓
||||■条件分岐(文字): 【1】 CSelf8[切り取り用]が "" と同じ
||||-◇分岐: 【1】 [ CSelf8[切り取り用] "" と同じ ]の場合↓
|||||■ループ開始へ戻る
|||||■
||||◇分岐終了◇
||||■文字列操作:CSelf7[残り文字] = CSelf5[キーワード]
||||■
|||-◇上記以外
||||■条件分岐(文字): 【1】 CSelf8[切り取り用]が "" と同じ
||||-◇分岐: 【1】 [ CSelf8[切り取り用] "" と同じ ]の場合↓
|||||■条件分岐(文字): 【1】 CSelf6[名前&説明]が "" と同じ
|||||-◇分岐: 【1】 [ CSelf6[名前&説明] "" と同じ ]の場合↓
||||||■ループ開始へ戻る
||||||■
|||||◇分岐終了◇
|||||■文字列操作:CSelf7[残り文字] = CSelf5[キーワード]
|||||■
||||◇分岐終了◇
||||■
|||◇分岐終了◇
|||■
||◇分岐終了◇
||■条件分岐(文字): 【1】 CSelf5[キーワード]が CSelf7[残り文字] 以外 【2】 CSelf6[名前&説明]が "" 以外
||-◇分岐: 【1】 [ CSelf5[キーワード] CSelf7[残り文字] 以外 ]の場合↓
|||■
||-◇分岐: 【2】 [ CSelf6[名前&説明] "" 以外 ]の場合↓
|||■DB読込(ユーザ): CSelf9[一時項目名] = ユーザDB[ アイテム : CSelf30[処理対象] : アイテム名 ] (2 : - : 0)
|||■文字列操作:CSelf9[一時項目名] += "\n"
|||■DB読込(ユーザ): CSelf9[一時項目名] += ユーザDB[ アイテム : CSelf30[処理対象] : 説明文[2行まで可] ] (2 : - : 1)
|||■文字列操作:CSelf7[残り文字] = CSelf6[名前&説明]
|||■ループ開始
||||■文字列操作:CSelf8[切り取り用] = CSelf7[残り文字]
||||■条件分岐(文字): 【1】 CSelf7[残り文字]が "" と同じ
           【2】 CSelf7[残り文字]が " " を含む
           【3】 CSelf7[残り文字]が " " を含む
||||-◇分岐: 【1】 [ CSelf7[残り文字] "" と同じ ]の場合↓
|||||■ループ中断
|||||■
||||-◇分岐: 【2】 [ CSelf7[残り文字] " " を含む ]の場合↓
|||||■文字列操作:CSelf8[切り取り用] =<から指定文字まで切り出し> " "
|||||■文字列操作:CSelf7[残り文字] =<の指定文字以降を切り出し> " "
|||||■
||||-◇分岐: 【3】 [ CSelf7[残り文字] " " を含む ]の場合↓
|||||■文字列操作:CSelf8[切り取り用] =<から指定文字まで切り出し> " "
|||||■文字列操作:CSelf7[残り文字] =<の指定文字以降を切り出し> " "
|||||■
||||-◇上記以外
|||||■文字列操作:CSelf7[残り文字] = ""
|||||■
||||◇分岐終了◇
||||■条件分岐(文字): 【1】 CSelf9[一時項目名]が CSelf8[切り取り用] を含む
||||-◇分岐: 【1】 [ CSelf9[一時項目名] CSelf8[切り取り用] を含む ]の場合↓
|||||■ループ中断
|||||■
||||-◇上記以外
|||||■条件分岐(変数): 【1】 CSelf1[特殊処理] が 1 のビットを満たす
|||||-◇分岐: 【1】 [ CSelf1[特殊処理] が 1 のビットを満たす ]の場合↓
||||||■文字列操作:CSelf8[切り取り用] = ""
||||||■ループ中断
||||||■
|||||◇分岐終了◇
|||||■
||||◇分岐終了◇
||||■
|||◇ループここまで◇◇
|||■条件分岐(文字): 【1】 CSelf8[切り取り用]が "" と同じ
|||-◇分岐: 【1】 [ CSelf8[切り取り用] "" と同じ ]の場合↓
||||■ループ開始へ戻る
||||■
|||◇分岐終了◇
|||■
||◇分岐終了◇

||▼
||▼ 名前・コード・数量・付与文字列を格納

||■DB読込(ユーザ): CSelf9[一時項目名] = ユーザDB[ アイテム : CSelf30[処理対象] : アイテム名 ] (2 : - : 0)
||■変数操作: CSelf11[一時コード番号] = CSelf30[処理対象] + 10000
||■可変DB書込:DB[万能ウィンドウ一時DB:CSelf32[万能ウィンドウ登録位置]:項目文 ](19: - :0) = CSelf9[一時項目名]
||■可変DB書込:DB[万能ウィンドウ一時DB:CSelf32[万能ウィンドウ登録位置]:項目コード ](19: - :1) = CSelf11[一時コード番号]
||■可変DB書込:DB[万能ウィンドウ一時DB:CSelf32[万能ウィンドウ登録位置]:残り個数/消費ポイント](19:-:3)=CSelf10[一時変数A]
||■可変DB書込:DB[万能ウィンドウ一時DB:CSelf32[万能ウィンドウ登録位置]:付与文字列[前] ](19: - :4) = x
||■DB読込(ユーザ): CSelf9[一時項目名] = ユーザDB[ アイテム : CSelf30[処理対象] : 説明文[2行まで可] ](2: - :1)
||■可変DB書込:DB[ 万能ウィンドウ一時DB : CSelf32[万能ウィンドウ登録位置] : 説明文 ](19 : - : 6) = CSelf9[一時項目名]
||■可変DB書込:DB[ 万能ウィンドウ一時DB : CSelf32[万能ウィンドウ登録位置] : 選択可能状態[1=可] ] (19 : - : 2) = 1
||▼ 選択可能かどうか判定
||■DB読込(ユーザ): CSelf10[一時変数A] = ユーザDB[ アイテム : CSelf30[処理対象] : 使用可能な場面 ] (2 : - : 2)
||■条件分岐(変数): 【1】 CSelf10[一時変数A] が 1 以下
||-◇分岐: 【1】 [ CSelf10[一時変数A] が 1 以下 ]の場合↓
|||▼ マップ時に使用可能な場合
|||■DB読込(ユーザ): CSelf10[一時変数A] = ユーザDB[ アイテム : CSelf30[処理対象] : ■効果のタイプ ] (2 : - : 3)
|||■条件分岐(変数): 【1】 CSelf10[一時変数A] が 1 以上
|||-◇分岐: 【1】 [ CSelf10[一時変数A] が 1 以上 ]の場合↓
||||▼ 回復か技能かイベント発生の場合
||||■条件分岐(変数): 【1】 CSelf10[一時変数A] が 2 と同じ
||||-◇分岐: 【1】 [ CSelf10[一時変数A] が 2 と同じ ]の場合↓
|||||▼ 技能の場合
|||||■DB読込(ユーザ): CSelf10[一時変数A] = ユーザDB[ アイテム : CSelf30[処理対象] : ┣[2]特殊技能指定時 ] (2 : - : 4)
|||||■DB読込(ユーザ): CSelf12[一時変数B] = ユーザDB[ 技能 : CSelf10[一時変数A] : 使用可能シーン ] (0 : - : 6)
|||||■条件分岐(変数): 【1】 CSelf12[一時変数B] が 0 以上
|||||-◇分岐: 【1】 [ CSelf12[一時変数B] が 0 以上 ]の場合↓
||||||■条件分岐(変数): 【1】 CSelf12[一時変数B] が 1 以下
||||||-◇分岐: 【1】 [ CSelf12[一時変数B] が 1 以下 ]の場合↓
|||||||■DB読込(ユーザ): CSelf12[一時変数B] = ユーザDB[ 技能 : CSelf10[一時変数A] : ┏ 効果対象 ] (0 : - : 2)
|||||||▼ 味方に対して使用可能 または マップ時にイベント起動 の場合だけ使用可能
|||||||■条件分岐(変数): 【1】 CSelf12[一時変数B] が 100 と同じ 【2】 CSelf12[一時変数B] が 0 以上
|||||||-◇分岐: 【1】 [ CSelf12[一時変数B] が 100 と同じ ]の場合↓
||||||||▼ イベント起動
||||||||■可変DB書込:DB[ 万能ウィンドウ一時DB : CSelf32[万能ウィンドウ登録位置] : 選択可能状態[1=可] ] (19 : - : 2) = 1
||||||||■
|||||||-◇分岐: 【2】 [ CSelf12[一時変数B] が 0 以上 ]の場合↓
||||||||■条件分岐(変数): 【1】 CSelf12[一時変数B] が 9 以下
||||||||-◇分岐: 【1】 [ CSelf12[一時変数B] が 9 以下 ]の場合↓
|||||||||▼ 味方に対して使用可能
|||||||||■可変DB書込:DB[ 万能ウィンドウ一時DB : CSelf32[万能ウィンドウ登録位置] : 選択可能状態[1=可] ] (19 : - : 2) = 1
|||||||||■
||||||||◇分岐終了◇
||||||||■
|||||||◇分岐終了◇
|||||||■
||||||◇分岐終了◇
||||||■
|||||◇分岐終了◇
|||||■
||||-◇上記以外
|||||▼ 回復かイベント発生の場合
|||||■可変DB書込:DB[ 万能ウィンドウ一時DB : CSelf32[万能ウィンドウ登録位置] : 選択可能状態[1=可] ] (19 : - : 2) = 1
|||||■
||||◇分岐終了◇
||||■
|||◇分岐終了◇
|||■
||◇分岐終了◇

||▼ 万能ウィンドウの書き込み先位置を+1
||■変数操作: CSelf32[万能ウィンドウ登録位置] += 1 + 0
||■
|◇分岐終了◇
|■
◇ループここまで◇◇
●ラベル地点「アイテム通過」 <<<<<<<<<<<<<<<<<<<<<<<<★

▼ 武器処理

■条件分岐(変数): 【1】 CSelf0[表示対象] が 2 のビットを満たす
-◇分岐: 【1】 [ CSelf0[表示対象] が 2 のビットを満たす ]の場合↓
|■
-◇上記以外
|●ラベル「武器通過」に飛ぶ >>>>>>>>>>>>>>>>>>>>>>>>>
|■
◇分岐終了◇

■DB読込(ユーザ): CSelf31[最大処理数] = ユーザDB[タイプ武器(3)のデータ数]
■変数操作: CSelf30[処理対象] = -1 + 0
■回数付きループ [ CSelf31[最大処理数] ]回
|■変数操作: CSelf30[処理対象] += 1 + 0
|■DB読込(可変): CSelf10[一時変数A] = 可変DB[ ┣所持武器個数 : CSelf30[処理対象] : 所持個数 ] (8 : - : 0)
|■条件分岐(変数): 【1】 CSelf10[一時変数A] が 1 以上
|-◇分岐: 【1】 [ CSelf10[一時変数A] が 1 以上 ]の場合↓
||▼ 1個以上あれば万能ウィンドウに登録
||■条件分岐(変数): 【1】 CSelf1[特殊処理] が 2 のビットを満たす
||-◇分岐: 【1】 [ CSelf1[特殊処理] が 2 のビットを満たす ]の場合↓
|||■DB読込(ユーザ): CSelf10[一時変数A] = ユーザDB[ 武器 : CSelf30[処理対象] : 販売価格 [0=売れない] ] (3 : - : 17)
|||■条件分岐(変数): 【1】 CSelf10[一時変数A] が 0 以下
|||-◇分岐: 【1】 [ CSelf10[一時変数A] が 0 以下 ]の場合↓
||||■ループ開始へ戻る
||||■
|||◇分岐終了◇
|||■
||◇分岐終了◇
||■文字列操作:CSelf7[残り文字] = CSelf5[キーワード]
||■条件分岐(文字): 【1】 CSelf5[キーワード]が "" 以外
||-◇分岐: 【1】 [ CSelf5[キーワード] "" 以外 ]の場合↓
|||■DB読込(ユーザ): CSelf9[一時項目名] = ユーザDB[ 武器 : CSelf30[処理対象] : アイテム画面表示 ] (3 : - : 30)
|||■ループ開始
||||■文字列操作:CSelf8[切り取り用] = CSelf7[残り文字]
||||■条件分岐(文字): 【1】 CSelf7[残り文字]が "" と同じ
           【2】 CSelf7[残り文字]が " " を含む
           【3】 CSelf7[残り文字]が " " を含む
||||-◇分岐: 【1】 [ CSelf7[残り文字] "" と同じ ]の場合↓
|||||■ループ中断
|||||■
||||-◇分岐: 【2】 [ CSelf7[残り文字] " " を含む ]の場合↓
|||||■文字列操作:CSelf8[切り取り用] =<から指定文字まで切り出し> " "
|||||■文字列操作:CSelf7[残り文字] =<の指定文字以降を切り出し> " "
|||||■
||||-◇分岐: 【3】 [ CSelf7[残り文字] " " を含む ]の場合↓
|||||■文字列操作:CSelf8[切り取り用] =<から指定文字まで切り出し> " "
|||||■文字列操作:CSelf7[残り文字] =<の指定文字以降を切り出し> " "
|||||■
||||-◇上記以外
|||||■文字列操作:CSelf7[残り文字] = ""
|||||■
||||◇分岐終了◇
||||■条件分岐(文字): 【1】 CSelf9[一時項目名]が CSelf8[切り取り用] を含む
||||-◇分岐: 【1】 [ CSelf9[一時項目名] CSelf8[切り取り用] を含む ]の場合↓
|||||■ループ中断
|||||■
||||-◇上記以外
|||||■条件分岐(変数): 【1】 CSelf1[特殊処理] が 1 のビットを満たす
|||||-◇分岐: 【1】 [ CSelf1[特殊処理] が 1 のビットを満たす ]の場合↓
||||||■文字列操作:CSelf8[切り取り用] = ""
||||||■ループ中断
||||||■
|||||◇分岐終了◇
|||||■
||||◇分岐終了◇
||||■
|||◇ループここまで◇◇
|||■条件分岐(変数): 【1】 CSelf1[特殊処理] が 1 のビットを満たす
|||-◇分岐: 【1】 [ CSelf1[特殊処理] が 1 のビットを満たす ]の場合↓
||||■条件分岐(文字): 【1】 CSelf8[切り取り用]が "" と同じ
||||-◇分岐: 【1】 [ CSelf8[切り取り用] "" と同じ ]の場合↓
|||||■ループ開始へ戻る
|||||■
||||◇分岐終了◇
||||■文字列操作:CSelf7[残り文字] = CSelf5[キーワード]
||||■
|||-◇上記以外
||||■条件分岐(文字): 【1】 CSelf8[切り取り用]が "" と同じ
||||-◇分岐: 【1】 [ CSelf8[切り取り用] "" と同じ ]の場合↓
|||||■条件分岐(文字): 【1】 CSelf6[名前&説明]が "" と同じ
|||||-◇分岐: 【1】 [ CSelf6[名前&説明] "" と同じ ]の場合↓
||||||■ループ開始へ戻る
||||||■
|||||◇分岐終了◇
|||||■文字列操作:CSelf7[残り文字] = CSelf5[キーワード]
|||||■
||||◇分岐終了◇
||||■
|||◇分岐終了◇
|||■
||◇分岐終了◇
||■条件分岐(文字): 【1】 CSelf5[キーワード]が CSelf7[残り文字] 以外 【2】 CSelf6[名前&説明]が "" 以外
||-◇分岐: 【1】 [ CSelf5[キーワード] CSelf7[残り文字] 以外 ]の場合↓
|||■
||-◇分岐: 【2】 [ CSelf6[名前&説明] "" 以外 ]の場合↓
|||■DB読込(ユーザ): CSelf9[一時項目名] = ユーザDB[ 武器 : CSelf30[処理対象] : 武器の名前 ] (3 : - : 0)
|||■文字列操作:CSelf9[一時項目名] += "\n"
|||■DB読込(ユーザ): CSelf9[一時項目名] += ユーザDB[ 武器 : CSelf30[処理対象] : 武器の説明[2行まで可] ] (3 : - : 1)
|||■文字列操作:CSelf7[残り文字] = CSelf6[名前&説明]
|||■ループ開始
||||■文字列操作:CSelf8[切り取り用] = CSelf7[残り文字]
||||■条件分岐(文字): 【1】 CSelf7[残り文字]が "" と同じ
           【2】 CSelf7[残り文字]が " " を含む
           【3】 CSelf7[残り文字]が " " を含む
||||-◇分岐: 【1】 [ CSelf7[残り文字] "" と同じ ]の場合↓
|||||■ループ中断
|||||■
||||-◇分岐: 【2】 [ CSelf7[残り文字] " " を含む ]の場合↓
|||||■文字列操作:CSelf8[切り取り用] =<から指定文字まで切り出し> " "
|||||■文字列操作:CSelf7[残り文字] =<の指定文字以降を切り出し> " "
|||||■
||||-◇分岐: 【3】 [ CSelf7[残り文字] " " を含む ]の場合↓
|||||■文字列操作:CSelf8[切り取り用] =<から指定文字まで切り出し> " "
|||||■文字列操作:CSelf7[残り文字] =<の指定文字以降を切り出し> " "
|||||■
||||-◇上記以外
|||||■文字列操作:CSelf7[残り文字] = ""
|||||■
||||◇分岐終了◇
||||■条件分岐(文字): 【1】 CSelf9[一時項目名]が CSelf8[切り取り用] を含む
||||-◇分岐: 【1】 [ CSelf9[一時項目名] CSelf8[切り取り用] を含む ]の場合↓
|||||■ループ中断
|||||■
||||-◇上記以外
|||||■条件分岐(変数): 【1】 CSelf1[特殊処理] が 1 のビットを満たす
|||||-◇分岐: 【1】 [ CSelf1[特殊処理] が 1 のビットを満たす ]の場合↓
||||||■文字列操作:CSelf8[切り取り用] = ""
||||||■ループ中断
||||||■
|||||◇分岐終了◇
|||||■
||||◇分岐終了◇
||||■
|||◇ループここまで◇◇
|||■条件分岐(文字): 【1】 CSelf8[切り取り用]が "" と同じ
|||-◇分岐: 【1】 [ CSelf8[切り取り用] "" と同じ ]の場合↓
||||■ループ開始へ戻る
||||■
|||◇分岐終了◇
|||■
||◇分岐終了◇

||▼
||▼ 名前・コード・数量・付与文字列を格納

||■DB読込(ユーザ): CSelf9[一時項目名] = ユーザDB[ 武器 : CSelf30[処理対象] : 武器の名前 ] (3 : - : 0)
||■変数操作: CSelf11[一時コード番号] = CSelf30[処理対象] + 20000
||■可変DB書込:DB[万能ウィンドウ一時DB:CSelf32[万能ウィンドウ登録位置]:項目文 ](19: - :0) = CSelf9[一時項目名]
||■可変DB書込:DB[万能ウィンドウ一時DB:CSelf32[万能ウィンドウ登録位置]:項目コード ](19: - :1) = CSelf11[一時コード番号]
||■可変DB書込:DB[万能ウィンドウ一時DB:CSelf32[万能ウィンドウ登録位置]:残り個数/消費ポイント](19:-:3)=CSelf10[一時変数A]
||■可変DB書込:DB[万能ウィンドウ一時DB:CSelf32[万能ウィンドウ登録位置]:付与文字列[前] ](19: - :4) = x
||▼ 説明文
||■DB読込(ユーザ): CSelf9[一時項目名] = ユーザDB[ 武器 : CSelf30[処理対象] : 武器の説明[2行まで可] ] (3 : - : 1)
||■可変DB書込:DB[ 万能ウィンドウ一時DB : CSelf32[万能ウィンドウ登録位置] : 説明文 ] (19 : - : 6) = CSelf9[一時項目名]
||■可変DB書込:DB[ 万能ウィンドウ一時DB : CSelf32[万能ウィンドウ登録位置] : 選択可能状態[1=可] ] (19 : - : 2) = 1
||▼ 選択可能かどうか判定
||■可変DB書込:DB[ 万能ウィンドウ一時DB : CSelf32[万能ウィンドウ登録位置] : 選択可能状態[1=可] ] (19 : - : 2) = 0
||■DB読込(ユーザ): CSelf10[一時変数A] = ユーザDB[ 武器 : CSelf30[処理対象] : アイテム使用で特殊技能? ] (3 : - : 22)
||■条件分岐(変数): 【1】 CSelf10[一時変数A] が 1 以上
||-◇分岐: 【1】 [ CSelf10[一時変数A] が 1 以上 ]の場合↓
|||▼ さらに移動時に使用できる特殊技能を発動できるなら、使用可能
|||■DB読込(ユーザ): CSelf10[一時変数A] = ユーザDB[ 武器 : CSelf30[処理対象] : ┣ 発動する特殊技能 ] (3 : - : 23)
|||■DB読込(ユーザ): CSelf12[一時変数B] = ユーザDB[ 技能 : CSelf10[一時変数A] : 使用可能シーン ] (0 : - : 6)
|||■条件分岐(変数): 【1】 CSelf12[一時変数B] が 0 以上
|||-◇分岐: 【1】 [ CSelf12[一時変数B] が 0 以上 ]の場合↓
||||■条件分岐(変数): 【1】 CSelf12[一時変数B] が 1 以下
||||-◇分岐: 【1】 [ CSelf12[一時変数B] が 1 以下 ]の場合↓
|||||■DB読込(ユーザ): CSelf12[一時変数B] = ユーザDB[ 技能 : CSelf10[一時変数A] : ┏ 効果対象 ] (0 : - : 2)
|||||▼ 味方に対して使用可能 または マップ時にイベント起動 の場合だけ使用可能
|||||■条件分岐(変数): 【1】 CSelf12[一時変数B] が 100 と同じ 【2】 CSelf12[一時変数B] が 0 以上
|||||-◇分岐: 【1】 [ CSelf12[一時変数B] が 100 と同じ ]の場合↓
||||||▼ イベント起動
||||||■可変DB書込:DB[ 万能ウィンドウ一時DB : CSelf32[万能ウィンドウ登録位置] : 選択可能状態[1=可] ] (19 : - : 2) = 1
||||||■
|||||-◇分岐: 【2】 [ CSelf12[一時変数B] が 0 以上 ]の場合↓
||||||■条件分岐(変数): 【1】 CSelf12[一時変数B] が 9 以下
||||||-◇分岐: 【1】 [ CSelf12[一時変数B] が 9 以下 ]の場合↓
|||||||▼ 味方に対して使用可能
|||||||■可変DB書込:DB[ 万能ウィンドウ一時DB : CSelf32[万能ウィンドウ登録位置] : 選択可能状態[1=可] ] (19 : - : 2) = 1
|||||||■
||||||◇分岐終了◇
||||||■
|||||◇分岐終了◇
|||||■
||||◇分岐終了◇
||||■
|||◇分岐終了◇
|||■
||◇分岐終了◇

||▼ 万能ウィンドウの書き込み先位置を+1
||■変数操作: CSelf32[万能ウィンドウ登録位置] += 1 + 0
||■
|◇分岐終了◇
|■
◇ループここまで◇◇
●ラベル地点「武器通過」 <<<<<<<<<<<<<<<<<<<<<<<<★
▼ 防具処理
■条件分岐(変数): 【1】 CSelf0[表示対象] が 4 のビットを満たす
-◇分岐: 【1】 [ CSelf0[表示対象] が 4 のビットを満たす ]の場合↓
|■
-◇上記以外
|●ラベル「防具通過」に飛ぶ >>>>>>>>>>>>>>>>>>>>>>>>>
|■
◇分岐終了◇

■DB読込(ユーザ): CSelf31[最大処理数] = ユーザDB[タイプ防具(4)のデータ数]
■変数操作: CSelf30[処理対象] = -1 + 0
■回数付きループ [ CSelf31[最大処理数] ]回
|■変数操作: CSelf30[処理対象] += 1 + 0
|■DB読込(可変): CSelf10[一時変数A] = 可変DB[ ┗所持防具個数 : CSelf30[処理対象] : 所持個数 ] (9 : - : 0)
|■条件分岐(変数): 【1】 CSelf10[一時変数A] が 1 以上
|-◇分岐: 【1】 [ CSelf10[一時変数A] が 1 以上 ]の場合↓
||▼ 1個以上あれば万能ウィンドウに登録
||■条件分岐(変数): 【1】 CSelf1[特殊処理] が 2 のビットを満たす
||-◇分岐: 【1】 [ CSelf1[特殊処理] が 2 のビットを満たす ]の場合↓
|||■DB読込(ユーザ): CSelf10[一時変数A] = ユーザDB[ 防具 : CSelf30[処理対象] : 販売価格 [0=売れない] ] (4 : - : 18)
|||■条件分岐(変数): 【1】 CSelf10[一時変数A] が 0 以下
|||-◇分岐: 【1】 [ CSelf10[一時変数A] が 0 以下 ]の場合↓
||||■ループ開始へ戻る
||||■
|||◇分岐終了◇
|||■
||◇分岐終了◇
||■文字列操作:CSelf7[残り文字] = CSelf5[キーワード]
||■条件分岐(文字): 【1】 CSelf5[キーワード]が "" 以外
||-◇分岐: 【1】 [ CSelf5[キーワード] "" 以外 ]の場合↓
|||■DB読込(ユーザ): CSelf9[一時項目名] = ユーザDB[ 防具 : CSelf30[処理対象] : アイテム画面表示 ] (4 : - : 38)
|||■ループ開始
||||■文字列操作:CSelf8[切り取り用] = CSelf7[残り文字]
||||■条件分岐(文字): 【1】 CSelf7[残り文字]が "" と同じ
           【2】 CSelf7[残り文字]が " " を含む
           【3】 CSelf7[残り文字]が " " を含む
||||-◇分岐: 【1】 [ CSelf7[残り文字] "" と同じ ]の場合↓
|||||■ループ中断
|||||■
||||-◇分岐: 【2】 [ CSelf7[残り文字] " " を含む ]の場合↓
|||||■文字列操作:CSelf8[切り取り用] =<から指定文字まで切り出し> " "
|||||■文字列操作:CSelf7[残り文字] =<の指定文字以降を切り出し> " "
|||||■
||||-◇分岐: 【3】 [ CSelf7[残り文字] " " を含む ]の場合↓
|||||■文字列操作:CSelf8[切り取り用] =<から指定文字まで切り出し> " "
|||||■文字列操作:CSelf7[残り文字] =<の指定文字以降を切り出し> " "
|||||■
||||-◇上記以外
|||||■文字列操作:CSelf7[残り文字] = ""
|||||■
||||◇分岐終了◇
||||■条件分岐(文字): 【1】 CSelf9[一時項目名]が CSelf8[切り取り用] を含む
||||-◇分岐: 【1】 [ CSelf9[一時項目名] CSelf8[切り取り用] を含む ]の場合↓
|||||■ループ中断
|||||■
||||-◇上記以外
|||||■条件分岐(変数): 【1】 CSelf1[特殊処理] が 1 のビットを満たす
|||||-◇分岐: 【1】 [ CSelf1[特殊処理] が 1 のビットを満たす ]の場合↓
||||||■文字列操作:CSelf8[切り取り用] = ""
||||||■ループ中断
||||||■
|||||◇分岐終了◇
|||||■
||||◇分岐終了◇
||||■
|||◇ループここまで◇◇
|||■条件分岐(変数): 【1】 CSelf1[特殊処理] が 1 のビットを満たす
|||-◇分岐: 【1】 [ CSelf1[特殊処理] が 1 のビットを満たす ]の場合↓
||||■条件分岐(文字): 【1】 CSelf8[切り取り用]が "" と同じ
||||-◇分岐: 【1】 [ CSelf8[切り取り用] "" と同じ ]の場合↓
|||||■ループ開始へ戻る
|||||■
||||◇分岐終了◇
||||■文字列操作:CSelf7[残り文字] = CSelf5[キーワード]
||||■
|||-◇上記以外
||||■条件分岐(文字): 【1】 CSelf8[切り取り用]が "" と同じ
||||-◇分岐: 【1】 [ CSelf8[切り取り用] "" と同じ ]の場合↓
|||||■条件分岐(文字): 【1】 CSelf6[名前&説明]が "" と同じ
|||||-◇分岐: 【1】 [ CSelf6[名前&説明] "" と同じ ]の場合↓
||||||■ループ開始へ戻る
||||||■
|||||◇分岐終了◇
|||||■文字列操作:CSelf7[残り文字] = CSelf5[キーワード]
|||||■
||||◇分岐終了◇
||||■
|||◇分岐終了◇
|||■
||◇分岐終了◇
||■条件分岐(文字): 【1】 CSelf5[キーワード]が CSelf7[残り文字] 以外 【2】 CSelf6[名前&説明]が "" 以外
||-◇分岐: 【1】 [ CSelf5[キーワード] CSelf7[残り文字] 以外 ]の場合↓
|||■
||-◇分岐: 【2】 [ CSelf6[名前&説明] "" 以外 ]の場合↓
|||■DB読込(ユーザ): CSelf9[一時項目名] = ユーザDB[ 防具 : CSelf30[処理対象] : 防具の名前 ] (4 : - : 0)
|||■文字列操作:CSelf9[一時項目名] += "\n"
|||■DB読込(ユーザ): CSelf9[一時項目名] += ユーザDB[ 防具 : CSelf30[処理対象] : 防具の説明[2行まで可] ] (4 : - : 1)
|||■文字列操作:CSelf7[残り文字] = CSelf6[名前&説明]
|||■ループ開始
||||■文字列操作:CSelf8[切り取り用] = CSelf7[残り文字]
||||■条件分岐(文字): 【1】 CSelf7[残り文字]が "" と同じ
           【2】 CSelf7[残り文字]が " " を含む
           【3】 CSelf7[残り文字]が " " を含む
||||-◇分岐: 【1】 [ CSelf7[残り文字] "" と同じ ]の場合↓
|||||■ループ中断
|||||■
||||-◇分岐: 【2】 [ CSelf7[残り文字] " " を含む ]の場合↓
|||||■文字列操作:CSelf8[切り取り用] =<から指定文字まで切り出し> " "
|||||■文字列操作:CSelf7[残り文字] =<の指定文字以降を切り出し> " "
|||||■
||||-◇分岐: 【3】 [ CSelf7[残り文字] " " を含む ]の場合↓
|||||■文字列操作:CSelf8[切り取り用] =<から指定文字まで切り出し> " "
|||||■文字列操作:CSelf7[残り文字] =<の指定文字以降を切り出し> " "
|||||■
||||-◇上記以外
|||||■文字列操作:CSelf7[残り文字] = ""
|||||■
||||◇分岐終了◇
||||■条件分岐(文字): 【1】 CSelf9[一時項目名]が CSelf8[切り取り用] を含む
||||-◇分岐: 【1】 [ CSelf9[一時項目名] CSelf8[切り取り用] を含む ]の場合↓
|||||■ループ中断
|||||■
||||-◇上記以外
|||||■条件分岐(変数): 【1】 CSelf1[特殊処理] が 1 のビットを満たす
|||||-◇分岐: 【1】 [ CSelf1[特殊処理] が 1 のビットを満たす ]の場合↓
||||||■文字列操作:CSelf8[切り取り用] = ""
||||||■ループ中断
||||||■
|||||◇分岐終了◇
|||||■
||||◇分岐終了◇
||||■
|||◇ループここまで◇◇
|||■条件分岐(文字): 【1】 CSelf8[切り取り用]が "" と同じ
|||-◇分岐: 【1】 [ CSelf8[切り取り用] "" と同じ ]の場合↓
||||■ループ開始へ戻る
||||■
|||◇分岐終了◇
|||■
||◇分岐終了◇

||▼
||▼ 名前・コード・数量・付与文字列を格納

||■DB読込(ユーザ): CSelf9[一時項目名] = ユーザDB[ 防具 : CSelf30[処理対象] : 防具の名前 ] (4 : - : 0)
||■変数操作: CSelf11[一時コード番号] = CSelf30[処理対象] + 30000
||■可変DB書込:DB[万能ウィンドウ一時DB:CSelf32[万能ウィンドウ登録位置]:項目文 ](19: - :0) = CSelf9[一時項目名]
||■可変DB書込:DB[万能ウィンドウ一時DB:CSelf32[万能ウィンドウ登録位置]:項目コード ](19: - :1) = CSelf11[一時コード番号]
||■可変DB書込:DB[万能ウィンドウ一時DB:CSelf32[万能ウィンドウ登録位置]:残り個数/消費ポイント](19:-:3)=CSelf10[一時変数A]
||■可変DB書込:DB 万能ウィンドウ一時DB:CSelf32[万能ウィンドウ登録位置]:付与文字列[前] ](19: - :4) = x
||▼ 説明文
||■DB読込(ユーザ): CSelf9[一時項目名] = ユーザDB[ 防具 : CSelf30[処理対象] : 防具の説明[2行まで可] ] (4 : - : 1)
||■可変DB書込:DB[ 万能ウィンドウ一時DB : CSelf32[万能ウィンドウ登録位置] : 説明文 ] (19 : - : 6) = CSelf9[一時項目名]
||■可変DB書込:DB[ 万能ウィンドウ一時DB : CSelf32[万能ウィンドウ登録位置] : 選択可能状態[1=可] ] (19 : - : 2) = 1
||▼ 選択可能かどうか判定
||■可変DB書込:DB[ 万能ウィンドウ一時DB : CSelf32[万能ウィンドウ登録位置] : 選択可能状態[1=可] ] (19 : - : 2) = 0
||■DB読込(ユーザ): CSelf10[一時変数A] = ユーザDB[ 防具 : CSelf30[処理対象] : アイテム使用で特殊技能? ] (4 : - : 20)
||■条件分岐(変数): 【1】 CSelf10[一時変数A] が 1 以上
||-◇分岐: 【1】 [ CSelf10[一時変数A] が 1 以上 ]の場合↓
|||▼ さらに移動時に使用できる特殊技能を発動できるなら、使用可能
|||■DB読込(ユーザ): CSelf10[一時変数A] = ユーザDB[ 防具 : CSelf30[処理対象] : ┣ 発動する特殊技能 ] (4 : - : 21)
|||■DB読込(ユーザ): CSelf12[一時変数B] = ユーザDB[ 技能 : CSelf10[一時変数A] : 使用可能シーン ] (0 : - : 6)
|||■条件分岐(変数): 【1】 CSelf12[一時変数B] が 0 以上
|||-◇分岐: 【1】 [ CSelf12[一時変数B] が 0 以上 ]の場合↓
||||■条件分岐(変数): 【1】 CSelf12[一時変数B] が 1 以下
||||-◇分岐: 【1】 [ CSelf12[一時変数B] が 1 以下 ]の場合↓
|||||■DB読込(ユーザ): CSelf12[一時変数B] = ユーザDB[ 技能 : CSelf10[一時変数A] : ┏ 効果対象 ] (0 : - : 2)
|||||▼ 味方に対して使用可能 または マップ時にイベント起動 の場合だけ使用可能
|||||■条件分岐(変数): 【1】 CSelf12[一時変数B] が 100 と同じ 【2】 CSelf12[一時変数B] が 0 以上
|||||-◇分岐: 【1】 [ CSelf12[一時変数B] が 100 と同じ ]の場合↓
||||||▼ イベント起動
||||||■可変DB書込:DB[ 万能ウィンドウ一時DB : CSelf32[万能ウィンドウ登録位置] : 選択可能状態[1=可] ] (19 : - : 2) = 1
||||||■
|||||-◇分岐: 【2】 [ CSelf12[一時変数B] が 0 以上 ]の場合↓
||||||■条件分岐(変数): 【1】 CSelf12[一時変数B] が 9 以下
||||||-◇分岐: 【1】 [ CSelf12[一時変数B] が 9 以下 ]の場合↓
|||||||▼ 味方に対して使用可能
|||||||■可変DB書込:DB[ 万能ウィンドウ一時DB : CSelf32[万能ウィンドウ登録位置] : 選択可能状態[1=可] ] (19 : - : 2) = 1
|||||||■
||||||◇分岐終了◇
||||||■
|||||◇分岐終了◇
|||||■
||||◇分岐終了◇
||||■
|||◇分岐終了◇
|||■
||◇分岐終了◇

||▼ 万能ウィンドウの書き込み先位置を+1
||■変数操作: CSelf32[万能ウィンドウ登録位置] += 1 + 0
||■
|◇分岐終了◇
|■
◇ループここまで◇◇
●ラベル地点「防具通過」 <<<<<<<<<<<<<<<<<<<<<<<<★

▼ 後処理
▼ 万能ウィンドウの項目個数を代入

■可変DB書込:DB[ 基本システム用変数 : 17 : 0 ] (18 : 万能ウィンドウ項目個数 : 数値) = CSelf32[万能ウィンドウ登録位置]


▲トップへ戻る▲


  
■マップイベントの設定:サンプルゲームのダンジョンに入る扉

サンプルゲームにある「ダンジョンのカギ」で入る扉の設定を改造します。

▼改造前の状態


初期設定では、アイテム「ダンジョンのカギ」を持って扉を調べれば、すぐにダンジョン内へ入る事ができましたが、
今回は扉を調べるとアイテム画面が表示されて、そこでアイテム「ダンジョンのカギ」を選択すると扉が開くように設定します。

一度扉を開けたら、2回目以降はすぐにダンジョンへ入れるようにします。



コモンイベント[アイテム画面表示]の呼び出しは以下のように設定します。



赤い矢印で示したチェックボックスは必ずチェックを入れてください。
チェックを入れないと文字列変数[0]に設定された文字列がキーワードになります。



「ダンジョンのカギ」の項目[アイテム画面表示]に「鍵」を設定している場合は、
コモンイベント[アイテム画面表示]の呼び出し時のキーワードに「鍵」を設定すると、
「鍵」となっているアイテムのみが表示されます。





▼「鍵」のアイテムのみを表示




アイテム「ダンジョンのカギ」はデータID[19]なので、アイテムコードは「10019」になります。

【イベントコード表示】

■マップイベント「ダンジョンの扉」

起動条件:決定キーで実行
起動条件変数:なし

■条件分岐(変数): 【1】 このEvのSelf0 が 1 以上
-◇分岐: 【1】 [ このEvのSelf0 が 1 以上 ]の場合↓
|■イベントの挿入: コモン15:[ ○セーブ許可・禁止設定 ] / 0:セーブを禁止する
|■場所移動:主人公 ▲マップID3[ダンジョン] X:7 Y:27 [トランジション + 暗転有り]
|■イベント処理中断
|■
◇分岐終了◇
■文章:カギがかかっているようだ……。
●ラベル地点「もう一度」 <<<<<<<<<<<<<<<<<<<<<<<<★
■イベントの挿入[名]: このEvのSelf1 = ["アイテム画面表示"] <コモンEv 215> / 7:全て表示 / 0:なし / /
■条件分岐(変数): 【1】 このEvのSelf1 が -1 以下 【2】 このEvのSelf1 が 10019 と同じ
-◇分岐: 【1】 [ このEvのSelf1 が -1 以下 ]の場合↓
|■文章:どこかでカギを見つけないといけない。
|■
-◇分岐: 【2】 [ このEvのSelf1 が 10019 と同じ ]の場合↓
|■文章:扉が開いたようだ。
|■変数操作: このEvのSelf0 = 1 + 0
|■
-◇上記以外
|■文章:これでは開きそうにない。
|●ラベル「もう一度」に飛ぶ >>>>>>>>>>>>>>>>>>>>>>>>>
|■
◇分岐終了◇



扉を開けたらすぐに場所移動を実行する場合は、以下のように設定。

【イベントコード表示】

■マップイベント「ダンジョンの扉」

起動条件:決定キーで実行
起動条件変数:なし

■条件分岐(変数): 【1】 このEvのSelf0 が 1 以上
-◇分岐: 【1】 [ このEvのSelf0 が 1 以上 ]の場合↓
|●ラベル地点「場所移動」 <<<<<<<<<<<<<<<<<<<<<<<<★
|■イベントの挿入: コモン15:[ ○セーブ許可・禁止設定 ] / 0:セーブを禁止する
|■場所移動:主人公 ▲マップID3[ダンジョン] X:7 Y:27 [トランジション + 暗転有り]
|■イベント処理中断
|■
◇分岐終了◇
■文章:カギがかかっているようだ……。
●ラベル地点「もう一度」 <<<<<<<<<<<<<<<<<<<<<<<<★
■イベントの挿入[名]: このEvのSelf1 = ["アイテム画面表示"] <コモンEv 215> / 7:全て表示 / 0:なし / /
■条件分岐(変数): 【1】 このEvのSelf1 が -1 以下 【2】 このEvのSelf1 が 10019 と同じ
-◇分岐: 【1】 [ このEvのSelf1 が -1 以下 ]の場合↓
|■文章:どこかでカギを見つけないといけない。
|■
-◇分岐: 【2】 [ このEvのSelf1 が 10019 と同じ ]の場合↓
|■文章:扉が開いたようだ。
|■変数操作: このEvのSelf0 = 1 + 0
|■ウェイト:10 フレーム<このウェイトはメッセージウィンドウを閉じる時間を設定
|●ラベル「場所移動」に飛ぶ >>>>>>>>>>>>>>>>>>>>>>>>>

|■
-◇上記以外
|■文章:これでは開きそうにない。
|●ラベル「もう一度」に飛ぶ >>>>>>>>>>>>>>>>>>>>>>>>>
|■
◇分岐終了◇



扉を開けた時に「ダンジョンのカギ」の所持数を1減らす場合は、以下のように設定。

【イベントコード表示】

■マップイベント「ダンジョンの扉」

起動条件:決定キーで実行
起動条件変数:なし

■条件分岐(変数): 【1】 このEvのSelf0 が 1 以上
-◇分岐: 【1】 [ このEvのSelf0 が 1 以上 ]の場合↓
|●ラベル地点「場所移動」 <<<<<<<<<<<<<<<<<<<<<<<<★
|■イベントの挿入: コモン15:[ ○セーブ許可・禁止設定 ] / 0:セーブを禁止する
|■場所移動:主人公 ▲マップID3[ダンジョン] X:7 Y:27 [トランジション + 暗転有り]
|■イベント処理中断
|■
◇分岐終了◇
■文章:カギがかかっているようだ……。
●ラベル地点「もう一度」 <<<<<<<<<<<<<<<<<<<<<<<<★
■イベントの挿入[名]: このEvのSelf1 = ["アイテム画面表示"] <コモンEv 215> / 7:全て表示 / 0:なし / /
■条件分岐(変数): 【1】 このEvのSelf1 が -1 以下 【2】 このEvのSelf1 が 10019 と同じ
-◇分岐: 【1】 [ このEvのSelf1 が -1 以下 ]の場合↓
|■文章:どこかでカギを見つけないといけない。
|■
-◇分岐: 【2】 [ このEvのSelf1 が 10019 と同じ ]の場合↓
|■イベントの挿入[名]: ["○アイテム増減"] <コモンEv 0> / 19:ダンジョンのカギ / -1 / 0:なし
|■文章:扉が開いたようだ。
|■変数操作: このEvのSelf0 = 1 + 0
|■ウェイト:10 フレーム
|●ラベル「場所移動」に飛ぶ >>>>>>>>>>>>>>>>>>>>>>>>>
|■
-◇上記以外
|■文章:これでは開きそうにない。
|●ラベル「もう一度」に飛ぶ >>>>>>>>>>>>>>>>>>>>>>>>>
|■
◇分岐終了◇


▲トップへ戻る▲


  
■マップイベントの設定:回復アイテムを渡す

回復アイテムを渡すイベントを設定します。



HP回復ができるアイテム、武器、防具の項目[アイテム画面表示]に「HP」を設定してください。

▼回復アイテムだけでなく、使用するとHP回復ができる武器や防具にも「HP」の文字列を設定




今回の処理では、渡すアイテムの価格を調べて、
価格が1000以上」「価格が1以上」「価格が0(店で売っていない)」の3パターンに分けて処理します。

これはアイテム画面ではアイテムの価格設定が分からないので、間違えて高価なアイテムを渡さないようにするための設定です。



アイテム画面で全てのアイテムを表示するのか、「HP」のキーワードがあるアイテムのみを表示するのかによって、
マップイベントの設定方法が異なります。

▼全てのアイテムを表示
【イベントコード表示】

■マップイベント「怪我した人」

グラフィック:自由に設定
起動条件:決定キーで実行
起動条件変数:なし

■条件分岐(変数): 【1】 このEvのSelf0 が 1 以上
-◇分岐: 【1】 [ このEvのSelf0 が 1 以上 ]の場合↓
|■文章:君のおかげでケガが治ったよ。\nありがとう。
|■イベント処理中断
|■
◇分岐終了◇
■文章:くそ〜!\nこんなところで休んでいる暇などは無いのだが…。
■文章:このケガさえ無ければ…。
●ラベル地点「もう一度」 <<<<<<<<<<<<<<<<<<<<<<<<★
■イベントの挿入[名]: このEvのSelf1 = ["アイテム画面表示"] <コモンEv 215> / 7:全て表示 / 0:なし / /
■条件分岐(変数): 【1】 このEvのSelf1 が -1 以下
-◇分岐: 【1】 [ このEvのSelf1 が -1 以下 ]の場合↓
|■文章:もっと回復薬を持ってくれば良かった…。
|■イベント処理中断
|■
◇分岐終了◇
■変数操作: このEvのSelf2 = このEvのSelf1 / 10000
■変数操作: このEvのSelf2 += 1 + 0
■変数操作: このEvのSelf1 %= 10000 + 0
■DB読込(ユーザ):S0[[サンプル]一時文字列]=ユーザDB[このEvのSelf2:このEvのSelf1:アイテム画面表示](-:-:?)
■条件分岐(文字): 【1】 S0[[サンプル]一時文字列]が "HP" を含む
-◇分岐: 【1】 [ S0[[サンプル]一時文字列] "HP" を含む ]の場合↓
|■
-◇上記以外
|■文章:今の自分には必要ないかな。
||●ラベル「もう一度」に飛ぶ >>>>>>>>>>>>>>>>>>>>>>>>>
|■
◇分岐終了◇
■DB読込(ユーザ):このEvのSelf3 = ユーザDB[このEvのSelf2:このEvのSelf1:販売価格 [0=売れない]](-:-:?)
■条件分岐(変数): 【1】 このEvのSelf3 が 1000 以上 【2】 このEvのSelf3 が 1 以上
-◇分岐: 【1】 [ このEvのSelf3 が 1000 以上 ]の場合↓
|▼ 価格が1000以上
|■文章:高価な物みたいだけど、くれるの?
|■文章選択肢:/ 【1】\udb[\self[2]:\self[1]:0]を渡す / 【2】渡さない
|-◇選択肢:【1】 \udb[\self[2]:\self[1]:0]を渡す の場合↓
||■
|-◇選択肢:【2】 渡さない の場合↓
||●ラベル「もう一度」に飛ぶ >>>>>>>>>>>>>>>>>>>>>>>>>
||■
|◇分岐終了◇
|■
-◇分岐: 【2】 [ このEvのSelf3 が 1 以上 ]の場合↓
|▼ 価格が1以上
|■文章:これをくれるの?
|■文章選択肢:/ 【1】\udb[\self[2]:\self[1]:0]を渡す / 【2】渡さない
|-◇選択肢:【1】 \udb[\self[2]:\self[1]:0]を渡す の場合↓
||■
|-◇選択肢:【2】 渡さない の場合↓
||●ラベル「もう一度」に飛ぶ >>>>>>>>>>>>>>>>>>>>>>>>>
||■
|◇分岐終了◇
|■
-◇上記以外
|▼ 価格設定なし
|■文章:お店で売ってない物のようだけど、くれるの?
|■文章選択肢:/ 【1】\udb[\self[2]:\self[1]:0]を渡す / 【2】渡さない
|-◇選択肢:【1】 \udb[\self[2]:\self[1]:0]を渡す の場合↓
||■
|-◇選択肢:【2】 渡さない の場合↓
||●ラベル「もう一度」に飛ぶ >>>>>>>>>>>>>>>>>>>>>>>>>
||■
|◇分岐終了◇
|■
◇分岐終了◇
▼ 可変[7〜9]の所持数を減らす
■変数操作: このEvのSelf2 += 5 + 0
■可変DB書込:DB[ このEvのSelf2 : このEvのSelf1 : 0 ] (- : - : ×NoData) -= 1
▼ お礼の品
■文章:うわ〜、ありがとう!
■文章:こんな物しかないけど、お礼を受け取って!
■イベントの挿入[名]: ["○防具増減"] <コモンEv 2> / 20:加速の腕輪 / 1 / 3:あり[単位:〜本]
■変数操作: このEvのSelf0 = 1 + 0

▼「HP」のキーワードがあるアイテムのみを表示
【イベントコード表示】

■マップイベント「怪我した人」

グラフィック:自由に設定
起動条件:決定キーで実行
起動条件変数:なし

■条件分岐(変数): 【1】 このEvのSelf0 が 1 以上
-◇分岐: 【1】 [ このEvのSelf0 が 1 以上 ]の場合↓
|■文章:君のおかげでケガが治ったよ。\nありがとう。
|■イベント処理中断
|■
◇分岐終了◇
■文章:くそ〜!\nこんなところで休んでいる暇などは無いのだが…。
■文章:このケガさえ無ければ…。
●ラベル地点「もう一度」 <<<<<<<<<<<<<<<<<<<<<<<<★
■イベントの挿入[名]:このEvのSelf1 = ["アイテム画面表示"] <コモンEv 215> / 7:全て表示 / 0:なし / HP /
■条件分岐(変数): 【1】 このEvのSelf1 が -1 以下
-◇分岐: 【1】 [ このEvのSelf1 が -1 以下 ]の場合↓
|■文章:もっと回復薬を持ってくれば良かった…。
|■イベント処理中断
|■
◇分岐終了◇
■変数操作: このEvのSelf2 = このEvのSelf1 / 10000
■変数操作: このEvのSelf2 += 1 + 0
■変数操作: このEvのSelf1 %= 10000 + 0
■DB読込(ユーザ):このEvのSelf3 = ユーザDB[このEvのSelf2:このEvのSelf1:販売価格 [0=売れない]](-:-:?)
■条件分岐(変数): 【1】 このEvのSelf3 が 1000 以上 【2】 このEvのSelf3 が 1 以上
-◇分岐: 【1】 [ このEvのSelf3 が 1000 以上 ]の場合↓
|▼ 価格が1000以上
|■文章:高価な物みたいだけど、くれるの?
|■文章選択肢:/ 【1】\udb[\self[2]:\self[1]:0]を渡す / 【2】渡さない
|-◇選択肢:【1】 \udb[\self[2]:\self[1]:0]を渡す の場合↓
||■
|-◇選択肢:【2】 渡さない の場合↓
||●ラベル「もう一度」に飛ぶ >>>>>>>>>>>>>>>>>>>>>>>>>
||■
|◇分岐終了◇
|■
-◇分岐: 【2】 [ このEvのSelf3 が 1 以上 ]の場合↓
|▼ 価格が1以上
|■文章:これをくれるの?
|■文章選択肢:/ 【1】\udb[\self[2]:\self[1]:0]を渡す / 【2】渡さない
|-◇選択肢:【1】 \udb[\self[2]:\self[1]:0]を渡す の場合↓
||■
|-◇選択肢:【2】 渡さない の場合↓
||●ラベル「もう一度」に飛ぶ >>>>>>>>>>>>>>>>>>>>>>>>>
||■
|◇分岐終了◇
|■
-◇上記以外
|▼ 価格設定なし
|■文章:お店で売ってない物のようだけど、くれるの?
|■文章選択肢:/ 【1】\udb[\self[2]:\self[1]:0]を渡す / 【2】渡さない
|-◇選択肢:【1】 \udb[\self[2]:\self[1]:0]を渡す の場合↓
||■
|-◇選択肢:【2】 渡さない の場合↓
||●ラベル「もう一度」に飛ぶ >>>>>>>>>>>>>>>>>>>>>>>>>
||■
|◇分岐終了◇
|■
◇分岐終了◇
▼ 可変[7〜9]の所持数を減らす
■変数操作: このEvのSelf2 += 5 + 0
■可変DB書込:DB[ このEvのSelf2 : このEvのSelf1 : 0 ] (- : - : ×NoData) -= 1
▼ お礼の品
■文章:うわ〜、ありがとう!
■文章:こんな物しかないけど、お礼を受け取って!
■イベントの挿入[名]: ["○防具増減"] <コモンEv 2> / 20:加速の腕輪 / 1 / 3:あり[単位:〜本]
■変数操作: このEvのSelf0 = 1 + 0



もしも回復アイテムを渡して別のマップへ移動して戻ってきた時に、
マップイベント「怪我した人」が居なくなっている演出を行いたい場合は、
まずマップイベント「怪我した人」起動条件の変数設定を以下のように設定してください。



そしてマップのどこかに以下のマップイベントを新設してください。
※マップイベント「怪我した人」のイベントIDが「21」の場合の設定例。

【イベントコード表示】

■マップイベント「イベント消去用」

グラフィック:なし
起動条件:並列実行
起動条件変数:なし

■変数操作: Ev21のSelf0 *= 2 + 0
■イベントの一時消去:このEv (0フレーム)

この設定により、回復アイテムを渡した時にマップイベント「怪我した人」セルフ変数[0]が「1」になり、
さらに別のマップから戻って来た時にマップイベント「イベント消去用」によってセルフ変数[0]の値が「1×2=2」になって、
マップイベント「怪我した人」の出現条件を満たさない状態にして、マップイベント「怪我した人」を消します。

なお、マップイベント「イベント消去用」は、別のマップから移動してきた時に一度だけ実行する設定になっているため、
マップイベント「怪我した人」セルフ変数[0]が「1」になったら、すぐに「2」になるような事はありません。


▲トップへ戻る▲



◎関連ページ

◆アイテム画面からアイテムを使用してカギを開ける

◆キャラクターイベントを作る
◆アイテム取得(ツボ・宝箱)のイベントを作る

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