WOLF RPGエディター(ウディタ)[3.337]/アイテム改造【サイトトップへ戻る】
■アイテムの一覧を並び替える
(更新:2024/05/19)


アイテムの一覧を指定した並び順で表示するように改造します。

改造前 改造後

アイテムだけでなく、武器や防具の並び順も変える事ができます。

特殊技能の一覧の並び替えは別ページにあります。
【特殊技能の一覧の並び替えるのページを開く】

ショートカット
■改造内容の確認
■データベースの設定
■メニュー画面用のアイテム選択を改造
■戦闘用のアイテム選択を改造
■装備変更時の装備品選択を改造
■お店の売却品選択を改造
■戦闘中は別の並び順にする

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

基本的にダウンロードしたデータを設定すれば、下記の改造の手順を見る必要はありません。

下記の情報は、コモン素材に付属している説明書ではよく分からない方や処理構造が知りたい方などを対象にしています。


  
■改造内容の確認

アイテムを選択する画面の表示は、ユーザーDB[2:アイテム][3:武器][4:防具]データID順で表示されます。



例えば「0:薬草」と「1:癒しの水」の設定順を入れ替えると、アイテムの一覧の表示も入れ替わります。

初期設定([0:薬草][1:癒しの水]) 変更後([0:癒しの水][1:薬草])

アイテムの一覧の表示順を変える場合は、ユーザーDB[2〜4]の設定順を並び替える必要がありますが、
ユーザーDB[2〜4]の設定順を並び替えると、既に設定済みの宝箱の設定やお店の販売設定、
「カギ」を持っていると扉が開く設定や敵キャラを倒す事で得られるアイテムの設定などを修正する必要があり、
この修正に時間がかかるだけでなく、修正ミス(修正し忘れ)によるバグが発生する可能性があります。

そのため、一度設定したユーザーDB[2〜4]は極力そのままにしておいた方が良いでしょう。

しかし制作の進めていく中で、あとから回復アイテムを追加したり、
使いやすいように並び替えたりしたいと思う事があると思います。



そこで当ページでは、ユーザーDB[2〜4]とは別に新たにユーザーDB[アイテム並び順]を作成し、
このユーザーDB[アイテム並び順]で設定した並び順でアイテムの一覧を表示するように改造します。

この方法だとユーザーDB[2〜4]の設定はそのままなので、イベント設定などもそのままご利用頂けます。
また古いセーブデータもそのまま使う事ができるため、既に公開している作品にもあとから適用する事ができます。



今回の改造では…
●メニュー画面のアイテム選択(コモンイベント[110:X[移]アイテム一覧算出])
●戦闘中のアイテム選択(コモンイベント[153:X[戦]アイテム一覧算出])
●装備変更画面の装備品選択(コモンイベント[112:X[移]装備一覧算出])
●お店売却時のアイテム選択(コモンイベント[086:X[移]┗ お店内部情報更新])
の4つのコモンイベントを改造します。



並び順を替える処理はアイテム名を検索して処理するため、
同じ名前のアイテム名、武器名、防具名が複数設定されている場合は、正常に処理する事ができません。

この場合は「薬草」「薬草 」と言ったように、一方の後ろに空白文字を設定して、違う名前にしてください。


▲トップへ戻る▲


  
■データベースの設定

ユーザーDBの画面を開き、まず未使用のタイプを準備してください。





タイプの一覧にある「2:アイテム」の上で右クリック→[コピー]を選択し、
未使用のタイプの上で右クリック→[貼り付け]を実行してください。




[タイプの内容設定]をクリックして、
タイプ名に「アイテム並び順」を設定し、
項目名2[無効]をクリックして、画面下のOKをクリックしてください。





[データ数の設定]をクリックして、データ数を「300」くらいに増やしてください。





ユーザーDB[3:武器]の画面を開き、最もデータIDが大きい武器の上で右クリック→[複数コピー]を選択。



左側のデータIDを「0」にしてOKをクリック。





ユーザーDB[アイテム並び順]の画面を開き、データID[100]の所で右クリック→[貼り付け]を選択。

なお、アイテムの数が極端に少ない場合はデータID[30]データID[50]に貼り付けても問題ありません。





同様の作業をユーザーDB[4:防具]にも行い、全ての防具の名前をユーザーDB[アイテム並び順]に設定してください。





あとはユーザーDB[アイテム並び順]の並び順を変えたら、データベースの設定は完了です。

▼設定例(あとで追加する事を考慮して、所々に空白の部分を設けています)



▲トップへ戻る▲


  
■メニュー画面用のアイテム選択を改造

コモンイベント[110:X[移]アイテム一覧算出]を改造します。



新規使用のセルフ変数
番号 名前 使用内容
5 [並替]全名前 ユーザーDB[2〜4]にある全ての名前とデータIDを保存し、一覧を表示する時に使用。
8 [並替]一時保存 セルフ[5]の文字列(全名前&データID)を複製し、
次に表示するアイテムや武器のデータIDを出力する時に使用。
50 [並替]タイプ番号 ユーザーDB[アイテム並び順]のタイプIDを取得する時に使用。
51 [並替]全データ数 ユーザーDBのデータ総数を取得する時に使用。
52 [並替]データID セルフ[8]からデータIDを取得する時に使用。
53 [並替]アイテムコード アイテムコードの取得で使用。※アイテムコードは下記にて説明。

セルフ変数はなるべく全ての改造するコモンイベントで未使用のセルフ変数を使うようにしています。

これはコモンイベント[110:X[移]アイテム一覧算出]に設定したイベント処理を他のコモンイベントへコピーしやすくするためです。

セルフ[9]は既に使用しているものを再利用します。



処理としては、まずユーザーDB[2〜4]に登録されている全ての名前をセルフ[5]に保存します。

セルフ[5]の保存形式は…
|名前|アイテムコード
と言った形になり…
|薬草|10000|癒しの水|10001|魔力の水|10002
と言った形で保存していきます。

区切りに使っている半角文字「|」は…

のキー入力で設定する事ができます。

|」の文字をアイテム名に使っている場合は、今回の処理を使用する事ができませんが、
意図的に使わない限り、まず使われる事が無い文字なので、文字に関しては気にしなくて良いでしょう。

セルフ[5]に全ての名前が保存されたら、ユーザーDB[アイテム並び順]に保存している名前を1つずつ出力し、
セルフ[5]に登録されている名前と照らし合わせていきます。

もしもセルフ[5]に名前が見つかった場合は、名前の後ろに保存したアイテムコードを出力し、
そのアイテムコードを基にアイテム、武器、防具を可変DB[19:万能ウィンドウ一時DB]に保存します。

アイテムコードは以下のように設定します。
種類 アイテムコード コードの設定例
アイテム ユーザーDB[2]のデータID+10000 魔力の水(データID[2])+10000=10002
武器 ユーザーDB[3]のデータID+20000 木の杖 (データID[5])+20000=20005
防具 ユーザーDB[4]のデータID+30000 鉄の小手(データID[7])+30000=30007



この色の設定は新規で追加、または元々あった設定を修正しています。
この色の設定は元々あった設定がそのまま設定されていますが、設定場所を移動している場合があります。

【イベントコード表示】
■コモンイベント「110:X[移]アイテム一覧算出」
  
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42

43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61

62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79

80
81
82
83
84
85
86
87
88
89
90
91
92
93


94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127

128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188

189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241

242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
■DB読込(ユーザ): CSelf50[[並替]タイプ番号] = ユーザDB[タイプアイテム並び順(18) のタイプ番号]
▼ ―――――――――――――――――――――――――――――――――――
▼ 【処理の内容】
▼ 所持アイテム・武器・防具を計算し、名前一覧と選択可能状態を
▼ 可変DB「万能ウィンドウ一時DB」に格納します。

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

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

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

■可変DB書込:[タイプ 万能ウィンドウ一時DB(19) を初期化]
■変数操作: CSelf32[万能ウィンドウ登録位置] = 0 + 0
▼ ■■■■■■■■■■■■■■■■■■■■全名前をセルフ[5]に保存
■文字列操作:CSelf5[全アイテム名出力] = ""
▼ ■■■■■■■■■■全てのアイテム名を出力
■DB読込(ユーザ): CSelf51[[並替]全データ数] = ユーザDB[タイプアイテム(2)のデータ数]
■変数操作: CSelf52[[並替]データID] = -1 + 0
■変数操作: CSelf53[[並替]アイテムコード] = 9999 + 0
■回数付きループ [ CSelf51[[並替]全データ数] ]回
|■変数操作: CSelf52[[並替]データID]〜CSelf53[[並替]アイテムコード] += 1 + 0
|■DB読込(ユーザ): CSelf9[一時項目名] = ユーザDB[ アイテム : CSelf52[[並替]データID] : 0 ] (2 : - : アイテム名)
|■条件分岐(文字): 【1】 CSelf9[一時項目名]が "" と同じ
          【2】 CSelf5[[並替]全名前]が "|\cself[9]|" を含む
|-◇分岐: 【1】 [ CSelf9[一時項目名] "" と同じ ]の場合↓
||■ループ開始へ戻る
||■
|-◇分岐: 【2】 [ CSelf5[[並替]全名前] "|\cself[9]|" を含む ]の場合↓
||■デバッグ文:【エラー】「\cself[9]」の名前が2つ以上あります。
||■ループ開始へ戻る
||■
|◇分岐終了◇
|■文字列操作:CSelf5[[並替]全名前] += "|\cself[9]|\cself[53]"

|■
◇ループここまで◇◇
▼ ■■■■■■■■■■全ての武器名を出力
■DB読込(ユーザ): CSelf51[[並替]全データ数] = ユーザDB[タイプ武器(3)のデータ数]
■変数操作: CSelf52[[並替]データID] = -1 + 0
■変数操作: CSelf53[[並替]アイテムコード] = 19999 + 0
■回数付きループ [ CSelf51[[並替]全データ数] ]回
|■変数操作: CSelf52[[並替]データID]〜CSelf53[[並替]アイテムコード] += 1 + 0
|■DB読込(ユーザ): CSelf9[一時項目名] = ユーザDB[ 武器 : CSelf52[[並替]データID] : 0 ] (3 : - : 武器の名前)
|■条件分岐(文字): 【1】 CSelf9[一時項目名]が "" と同じ
          【2】 CSelf5[[並替]全名前]が "|\cself[9]|" を含む
|-◇分岐: 【1】 [ CSelf9[一時項目名] "" と同じ ]の場合↓
||■ループ開始へ戻る
||■
|-◇分岐: 【2】 [ CSelf5[[並替]全名前] "|\cself[9]|" を含む ]の場合↓
||■デバッグ文:【エラー】「\cself[9]」の名前が2つ以上あります。
||■ループ開始へ戻る
||■
|◇分岐終了◇
|■文字列操作:CSelf5[[並替]全名前] += "|\cself[9]|\cself[53]"

|■
◇ループここまで◇◇
▼ ■■■■■■■■■■全ての防具名を出力
■DB読込(ユーザ): CSelf51[[並替]全データ数] = ユーザDB[タイプ防具(4)のデータ数]
■変数操作: CSelf52[[並替]データID] = -1 + 0
■変数操作: CSelf52[[並替]データID] = 29999 + 0
■回数付きループ [ CSelf51[[並替]全データ数] ]回
|■変数操作: CSelf52[[並替]データID]〜CSelf53[[並替]アイテムコード] += 1 + 0
|■DB読込(ユーザ): CSelf9[一時項目名] = ユーザDB[ 防具 : CSelf52[[並替]データID] : 0 ] (4 : - : 防具の名前)
|■条件分岐(文字): 【1】 CSelf9[一時項目名]が "" と同じ
          【2】 CSelf5[[並替]全名前]が "|\cself[9]|" を含む
|-◇分岐: 【1】 [ CSelf9[一時項目名] "" と同じ ]の場合↓
||■ループ開始へ戻る
||■
|-◇分岐: 【2】 [ CSelf5[[並替]全名前] "|\cself[9]|" を含む ]の場合↓
||■デバッグ文:【エラー】「\cself[9]」の名前が2つ以上あります。
||■ループ開始へ戻る
||■
|◇分岐終了◇
|■文字列操作:CSelf5[[並替]全名前] += "|\cself[9]|\cself[53]"

|■
◇ループここまで◇◇
▼ ■■■■■■■■■■ユーザーDB「アイテム並び順」の順番で万能ウィンドウに登録
■DB読込(ユーザ): CSelf51[[並替]全データ数] = ユーザDB[タイプCSelf50[[並替]タイプ番号](-)のデータ数]
■変数操作: CSelf52[[並替]データID] = -1 + 0
■回数付きループ [ CSelf51[[並替]全データ数] ]回
|■変数操作: CSelf52[[並替]データID] += 1 + 0
|■DB読込(ユーザ): CSelf9[一時項目名] = ユーザDB[CSelf50[[並替]タイプ番号]:CSelf52[[並替]データID]:0](- : - : ×NoData)
|■条件分岐(文字): 【1】 CSelf9[一時項目名]が "" と同じ
          【2】 CSelf5[[並替]全名前]が "|\cself[9]|" を含む
|-◇分岐: 【1】 [ CSelf9[一時項目名] "" と同じ ]の場合↓
||■ループ開始へ戻る
||■
|-◇分岐: 【2】 [ CSelf5[[並替]全名前] "|\cself[9]|" を含む ]の場合↓
||■
|-◇上記以外
||■ループ開始へ戻る
||■
|◇分岐終了◇
|■文字列操作:CSelf8[[並替]一時保存] = CSelf5[[並替]全名前]
|■文字列操作:CSelf8[[並替]一時保存] =<の指定文字以降を切り出し> "|\cself[9]|"
|■変数操作: CSelf11[一時コード番号] = CSelf8[[並替]一時保存] + 0
|■変数操作: CSelf30[処理対象] = CSelf11[一時コード番号] % 10000
|■条件分岐(変数): 【1】 CSelf11[一時コード番号] が 19999 以下
          【2】 CSelf11[一時コード番号] が 29999 以下
          【3】 CSelf11[一時コード番号] が 39999 以下
|-◇分岐: 【1】 [ CSelf11[一時コード番号] が 19999 以下 ]の場合↓

||■DB読込(可変): CSelf10[一時変数A] = 可変DB[ ┣所持アイテム個数 : CSelf30[処理対象] : 所持個数 ] (7 : - : 0)
||■条件分岐(変数): 【1】 CSelf10[一時変数A] が 1 以上
||-◇分岐: 【1】 [ CSelf10[一時変数A] が 1 以上 ]の場合↓
|||▼ 1個以上あれば万能ウィンドウに登録
|||▼
|||▼ 名前・コード・数量・付与文字列を格納

|||■可変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読込(ユーザ): 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
|||■
||◇分岐終了◇
||■
|-◇分岐: 【2】 [ CSelf11[一時コード番号] が 29999 以下 ]の場合↓

||■DB読込(可変): CSelf10[一時変数A] = 可変DB[ ┣所持武器個数 : CSelf30[処理対象] : 所持個数 ] (8 : - : 0)
||■条件分岐(変数): 【1】 CSelf10[一時変数A] が 1 以上
||-◇分岐: 【1】 [ CSelf10[一時変数A] が 1 以上 ]の場合↓
|||▼ 1個以上あれば万能ウィンドウに登録
|||▼
|||▼ 名前・コード・数量・付与文字列を格納

|||■可変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) = 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
|||■
||◇分岐終了◇
||■
|-◇分岐: 【3】 [ CSelf11[一時コード番号] が 39999 以下 ]の場合↓

||■DB読込(可変): CSelf10[一時変数A] = 可変DB[ ┗所持防具個数 : CSelf30[処理対象] : 所持個数 ] (9 : - : 0)
||■条件分岐(変数): 【1】 CSelf10[一時変数A] が 1 以上
||-◇分岐: 【1】 [ CSelf10[一時変数A] が 1 以上 ]の場合↓
|||▼ 1個以上あれば万能ウィンドウに登録
|||▼
|||▼ 名前・コード・数量・付与文字列を格納

|||■可変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) = 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[万能ウィンドウ登録位置]
■文字列操作:CSelf5[[並替]全名前] = ""


▲トップへ戻る▲


  
■戦闘用のアイテム選択を改造

コモンイベント[153:X[戦]アイテム一覧算出]を改造します。



セルフ変数の使い方はコモンイベント[110:X[移]アイテム一覧算出]と同じです。

新規使用のセルフ変数
番号 名前 使用内容
5 [並替]全名前 ユーザーDB[2〜4]にある全ての名前とデータIDを保存し、一覧を表示する時に使用。
8 [並替]一時保存 セルフ[5]の文字列(全名前&データID)を複製し、
次に表示するアイテムや武器のデータIDを出力する時に使用。
50 [並替]タイプ番号 ユーザーDB[アイテム並び順]のタイプIDを取得する時に使用。
51 [並替]全データ数 ユーザーDBのデータ総数を取得する時に使用。
52 [並替]データID セルフ[8]からデータIDを取得する時に使用。
53 [並替]アイテムコード アイテムコードの取得で使用。



改造設定はコモンイベント[110:X[移]アイテム一覧算出]と同じ内容なので、コモンイベント[110:X[移]アイテム一覧算出]の設定をコピーして、
このコモンイベント[153:X[戦]アイテム一覧算出]へ貼り付けて設定する事ができます。

但し改造前からあった設定部分(可変DB[19:万能ウィンドウ一時DB]など)はコモンイベント[110:X[移]アイテム一覧算出]とは異なるため、
コモンイベント[110:X[移]アイテム一覧算出]のイベント設定を全てコピーして、
このコモンイベント[153:X[戦]アイテム一覧算出]へ貼り付けるような設定方法は使えません。



この色の設定はコモンイベント[110:X[移]アイテム一覧算出]と同じ設定です。
この色の設定は元々あった設定がそのまま設定されていますが、設定場所を移動している場合があります。

【イベントコード表示】
■コモンイベント「153:X[戦]アイテム一覧算出」
  
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42

43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61

62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79

80
81
82
83
84
85
86
87
88
89
90
91
92
93


94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128

129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190

191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243

244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
■DB読込(ユーザ): CSelf50[[並替]タイプ番号] = ユーザDB[タイプアイテム並び順(18) のタイプ番号]
▼ ―――――――――――――――――――――――――――――――――――
▼ 【処理の内容】
▼ 所持アイテム・武器・防具を計算し、名前一覧と選択可能状態を
▼ 可変DB「万能ウィンドウ一時DB」に格納します。

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

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

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

■可変DB書込:[タイプ 万能ウィンドウ一時DB(19) を初期化]
■変数操作: CSelf32[万能ウィンドウ登録位置] = 0 + 0
▼ ■■■■■■■■■■■■■■■■■■■■全名前をセルフ[5]に保存
■文字列操作:CSelf5[全アイテム名出力] = ""
▼ ■■■■■■■■■■全てのアイテム名を出力
■DB読込(ユーザ): CSelf51[[並替]全データ数] = ユーザDB[タイプアイテム(2)のデータ数]
■変数操作: CSelf52[[並替]データID] = -1 + 0
■変数操作: CSelf53[[並替]アイテムコード] = 9999 + 0
■回数付きループ [ CSelf51[[並替]全データ数] ]回
|■変数操作: CSelf52[[並替]データID]〜CSelf53[[並替]アイテムコード] += 1 + 0
|■DB読込(ユーザ): CSelf9[一時項目名] = ユーザDB[ アイテム : CSelf52[[並替]データID] : 0 ] (2 : - : アイテム名)
|■条件分岐(文字): 【1】 CSelf9[一時項目名]が "" と同じ
          【2】 CSelf5[[並替]全名前]が "|\cself[9]|" を含む
|-◇分岐: 【1】 [ CSelf9[一時項目名] "" と同じ ]の場合↓
||■ループ開始へ戻る
||■
|-◇分岐: 【2】 [ CSelf5[[並替]全名前] "|\cself[9]|" を含む ]の場合↓
||■デバッグ文:【エラー】「\cself[9]」の名前が2つ以上あります。
||■ループ開始へ戻る
||■
|◇分岐終了◇
|■文字列操作:CSelf5[[並替]全名前] += "|\cself[9]|\cself[53]"
|■
◇ループここまで◇◇
▼ ■■■■■■■■■■全ての武器名を出力
■DB読込(ユーザ): CSelf51[[並替]全データ数] = ユーザDB[タイプ武器(3)のデータ数]
■変数操作: CSelf52[[並替]データID] = -1 + 0
■変数操作: CSelf53[[並替]アイテムコード] = 19999 + 0
■回数付きループ [ CSelf51[[並替]全データ数] ]回
|■変数操作: CSelf52[[並替]データID]〜CSelf53[[並替]アイテムコード] += 1 + 0
|■DB読込(ユーザ): CSelf9[一時項目名] = ユーザDB[ 武器 : CSelf52[[並替]データID] : 0 ] (3 : - : 武器の名前)
|■条件分岐(文字): 【1】 CSelf9[一時項目名]が "" と同じ
          【2】 CSelf5[[並替]全名前]が "|\cself[9]|" を含む
|-◇分岐: 【1】 [ CSelf9[一時項目名] "" と同じ ]の場合↓
||■ループ開始へ戻る
||■
|-◇分岐: 【2】 [ CSelf5[[並替]全名前] "|\cself[9]|" を含む ]の場合↓
||■デバッグ文:【エラー】「\cself[9]」の名前が2つ以上あります。
||■ループ開始へ戻る
||■
|◇分岐終了◇
|■文字列操作:CSelf5[[並替]全名前] += "|\cself[9]|\cself[53]"
|■
◇ループここまで◇◇
▼ ■■■■■■■■■■全ての防具名を出力
■DB読込(ユーザ): CSelf51[[並替]全データ数] = ユーザDB[タイプ防具(4)のデータ数]
■変数操作: CSelf52[[並替]データID] = -1 + 0
■変数操作: CSelf52[[並替]データID] = 29999 + 0
■回数付きループ [ CSelf51[[並替]全データ数] ]回
|■変数操作: CSelf52[[並替]データID]〜CSelf53[[並替]アイテムコード] += 1 + 0
|■DB読込(ユーザ): CSelf9[一時項目名] = ユーザDB[ 防具 : CSelf52[[並替]データID] : 0 ] (4 : - : 防具の名前)
|■条件分岐(文字): 【1】 CSelf9[一時項目名]が "" と同じ
          【2】 CSelf5[[並替]全名前]が "|\cself[9]|" を含む
|-◇分岐: 【1】 [ CSelf9[一時項目名] "" と同じ ]の場合↓
||■ループ開始へ戻る
||■
|-◇分岐: 【2】 [ CSelf5[[並替]全名前] "|\cself[9]|" を含む ]の場合↓
||■デバッグ文:【エラー】「\cself[9]」の名前が2つ以上あります。
||■ループ開始へ戻る
||■
|◇分岐終了◇
|■文字列操作:CSelf5[[並替]全名前] += "|\cself[9]|\cself[53]"
|■
◇ループここまで◇◇
▼ ■■■■■■■■■■ユーザーDB「アイテム並び順」の順番で万能ウィンドウに登録
■DB読込(ユーザ): CSelf51[[並替]全データ数] = ユーザDB[タイプCSelf50[[並替]タイプ番号](-)のデータ数]
■変数操作: CSelf52[[並替]データID] = -1 + 0
■回数付きループ [ CSelf51[[並替]全データ数] ]回
|■変数操作: CSelf52[[並替]データID] += 1 + 0
|■DB読込(ユーザ): CSelf9[一時項目名] = ユーザDB[CSelf50[[並替]タイプ番号]:CSelf52[[並替]データID]:0](- : - : ×NoData)
|■条件分岐(文字): 【1】 CSelf9[一時項目名]が "" と同じ
          【2】 CSelf5[[並替]全名前]が "|\cself[9]|" を含む
|-◇分岐: 【1】 [ CSelf9[一時項目名] "" と同じ ]の場合↓
||■ループ開始へ戻る
||■
|-◇分岐: 【2】 [ CSelf5[[並替]全名前] "|\cself[9]|" を含む ]の場合↓
||■
|-◇上記以外
||■ループ開始へ戻る
||■
|◇分岐終了◇
|■文字列操作:CSelf8[[並替]一時保存] = CSelf5[[並替]全名前]
|■文字列操作:CSelf8[[並替]一時保存] =<の指定文字以降を切り出し> "|\cself[9]|"
|■変数操作: CSelf11[一時コード番号] = CSelf8[[並替]一時保存] + 0
|■変数操作: CSelf30[処理対象] = CSelf11[一時コード番号] % 10000
|■条件分岐(変数): 【1】 CSelf11[一時コード番号] が 19999 以下
          【2】 CSelf11[一時コード番号] が 29999 以下
          【3】 CSelf11[一時コード番号] が 39999 以下
|-◇分岐: 【1】 [ CSelf11[一時コード番号] が 19999 以下 ]の場合↓

||■DB読込(可変): CSelf10[一時変数A] = 可変DB[ ┣所持アイテム個数 : CSelf30[処理対象] : 所持個数 ] (7 : - : 0)
||■条件分岐(変数): 【1】 CSelf10[一時変数A] が 1 以上
||-◇分岐: 【1】 [ CSelf10[一時変数A] が 1 以上 ]の場合↓
|||▼ 1個以上あれば万能ウィンドウに登録
|||▼
|||▼ 名前・コード・数量・付与文字列を格納

|||■可変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読込(ユーザ): 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)
||||||▼ 戦闘時に使用可能な技能ならON
||||||■条件分岐(変数): 【1】 CSelf12[一時変数B] が 1 以上
||||||-◇分岐: 【1】 [ CSelf12[一時変数B] が 1 以上 ]の場合↓
|||||||■条件分岐(変数): 【1】 CSelf12[一時変数B] が 2 以下
|||||||-◇分岐: 【1】 [ CSelf12[一時変数B] が 2 以下 ]の場合↓
||||||||■DB読込(ユーザ): CSelf12[一時変数B] = ユーザDB[ 技能 : CSelf10[一時変数A] : ┏ 効果対象 ] (0 : - : 2)
||||||||▼ 敵・味方に対して使用可能 または 戦闘時にイベント起動 の場合だけ使用可能
||||||||■条件分岐(変数): 【1】 CSelf12[一時変数B] が 101 と同じ
             【2】 CSelf12[一時変数B] が 0 以上
||||||||-◇分岐: 【1】 [ CSelf12[一時変数B] が 101 と同じ ]の場合↓
|||||||||▼ イベント起動(バトルのみ)
|||||||||■可変DB書込:DB[万能ウィンドウ一時DB:CSelf32[万能ウィンドウ登録位置]:選択可能状態[1=可]](19 : - : 2) = 1
|||||||||■
||||||||-◇分岐: 【2】 [ CSelf12[一時変数B] が 0 以上 ]の場合↓
|||||||||■条件分岐(変数): 【1】 CSelf12[一時変数B] が 12 以下
|||||||||-◇分岐: 【1】 [ CSelf12[一時変数B] が 12 以下 ]の場合↓
||||||||||▼ 味方・敵に対して使用可能
||||||||||■可変DB書込:DB[万能ウィンドウ一時DB:CSelf32[万能ウィンドウ登録位置]:選択可能状態[1=可]](19 : - : 2) = 1
||||||||||■
|||||||||◇分岐終了◇
|||||||||■
||||||||◇分岐終了◇
||||||||■
|||||||◇分岐終了◇
|||||||■
||||||◇分岐終了◇
||||||■
|||||-◇上記以外
||||||▼ 回復かイベント発生の場合
||||||■可変DB書込:DB[ 万能ウィンドウ一時DB : CSelf32[万能ウィンドウ登録位置] : 選択可能状態[1=可] ] (19 : - : 2) = 1
||||||■
|||||◇分岐終了◇
|||||■
||||◇分岐終了◇
||||■
|||◇分岐終了◇
|||▼ 万能ウィンドウの書き込み先位置を+1
|||■変数操作: CSelf32[万能ウィンドウ登録位置] += 1 + 0
|||■
||◇分岐終了◇
||■
|-◇分岐: 【2】 [ CSelf11[一時コード番号] が 29999 以下 ]の場合↓

||■DB読込(可変): CSelf10[一時変数A] = 可変DB[ ┣所持武器個数 : CSelf30[処理対象] : 所持個数 ] (8 : - : 0)
||■条件分岐(変数): 【1】 CSelf10[一時変数A] が 1 以上
||-◇分岐: 【1】 [ CSelf10[一時変数A] が 1 以上 ]の場合↓
|||▼ 1個以上あれば万能ウィンドウに登録
|||▼
|||▼ 名前・コード・数量・付与文字列を格納

|||■可変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) = 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)
||||▼ 戦闘時に使用可能な技能ならON
||||■条件分岐(変数): 【1】 CSelf12[一時変数B] が 1 以上
||||-◇分岐: 【1】 [ CSelf12[一時変数B] が 1 以上 ]の場合↓
|||||■条件分岐(変数): 【1】 CSelf12[一時変数B] が 2 以下
|||||-◇分岐: 【1】 [ CSelf12[一時変数B] が 2 以下 ]の場合↓
||||||■DB読込(ユーザ): CSelf12[一時変数B] = ユーザDB[ 技能 : CSelf10[一時変数A] : ┏ 効果対象 ] (0 : - : 2)
||||||▼ 敵・味方に対して使用可能 または 戦闘時にイベント起動 の場合だけ使用可能
||||||■条件分岐(変数): 【1】 CSelf12[一時変数B] が 101 と同じ
            【2】 CSelf12[一時変数B] が 0 以上
||||||-◇分岐: 【1】 [ CSelf12[一時変数B] が 101 と同じ ]の場合↓
|||||||▼ イベント起動(バトルのみ)
|||||||■可変DB書込:DB[万能ウィンドウ一時DB : CSelf32[万能ウィンドウ登録位置] : 選択可能状態[1=可]](19 : - : 2) = 1
|||||||■
||||||-◇分岐: 【2】 [ CSelf12[一時変数B] が 0 以上 ]の場合↓
|||||||■条件分岐(変数): 【1】 CSelf12[一時変数B] が 12 以下
|||||||-◇分岐: 【1】 [ CSelf12[一時変数B] が 12 以下 ]の場合↓
||||||||▼ 味方・敵に対して使用可能
||||||||■可変DB書込:DB[ 万能ウィンドウ一時DB:CSelf32[万能ウィンドウ登録位置]:選択可能状態[1=可] ] (19 : - : 2) = 1
||||||||■
|||||||◇分岐終了◇
|||||||■
||||||◇分岐終了◇
||||||■
|||||◇分岐終了◇
|||||■
||||◇分岐終了◇
||||■
|||◇分岐終了◇
|||▼ 万能ウィンドウの書き込み先位置を+1
|||■変数操作: CSelf32[万能ウィンドウ登録位置] += 1 + 0
|||■
||◇分岐終了◇
||■
|-◇分岐: 【3】 [ CSelf11[一時コード番号] が 39999 以下 ]の場合↓

||■DB読込(可変): CSelf10[一時変数A] = 可変DB[ ┗所持防具個数 : CSelf30[処理対象] : 所持個数 ] (9 : - : 0)
||■条件分岐(変数): 【1】 CSelf10[一時変数A] が 1 以上
||-◇分岐: 【1】 [ CSelf10[一時変数A] が 1 以上 ]の場合↓
|||▼ 1個以上あれば万能ウィンドウに登録
|||▼
|||▼ 名前・コード・数量・付与文字列を格納

|||■可変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) = 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] が 1 以上
||||-◇分岐: 【1】 [ CSelf12[一時変数B] が 1 以上 ]の場合↓
|||||■条件分岐(変数): 【1】 CSelf12[一時変数B] が 2 以下
|||||-◇分岐: 【1】 [ CSelf12[一時変数B] が 2 以下 ]の場合↓
||||||■DB読込(ユーザ): CSelf12[一時変数B] = ユーザDB[ 技能 : CSelf10[一時変数A] : ┏ 効果対象 ] (0 : - : 2)
||||||▼ 敵・味方に対して使用可能 または 戦闘時にイベント起動 の場合だけ使用可能
||||||■条件分岐(変数): 【1】 CSelf12[一時変数B] が 101 と同じ
            【2】 CSelf12[一時変数B] が 0 以上
||||||-◇分岐: 【1】 [ CSelf12[一時変数B] が 101 と同じ ]の場合↓
|||||||▼ イベント起動(バトルのみ)
|||||||■可変DB書込:DB[ 万能ウィンドウ一時DB:CSelf32[万能ウィンドウ登録位置]:選択可能状態[1=可]](19 : - : 2) = 1
|||||||■
||||||-◇分岐: 【2】 [ CSelf12[一時変数B] が 0 以上 ]の場合↓
|||||||■条件分岐(変数): 【1】 CSelf12[一時変数B] が 12 以下
|||||||-◇分岐: 【1】 [ CSelf12[一時変数B] が 12 以下 ]の場合↓
||||||||▼ 味方・敵に対して使用可能
||||||||■可変DB書込:DB[ 万能ウィンドウ一時DB:CSelf32[万能ウィンドウ登録位置]:選択可能状態[1=可]](19 : - : 2) = 1
||||||||■
|||||||◇分岐終了◇
|||||||■
||||||◇分岐終了◇
||||||■
|||||◇分岐終了◇
|||||■
||||◇分岐終了◇
||||■
|||◇分岐終了◇
|||▼ 万能ウィンドウの書き込み先位置を+1
|||■変数操作: CSelf32[万能ウィンドウ登録位置] += 1 + 0
|||■
||◇分岐終了◇
||■
|◇分岐終了◇
|■
◇ループここまで◇◇


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

■可変DB書込:DB[ 基本システム用変数 : 17 : 0 ] (18 : 万能ウィンドウ項目個数 : 数値) = CSelf32[万能ウィンドウ登録位置]
■文字列操作:CSelf5[[並替]全名前] = ""


▲トップへ戻る▲


  
■装備変更時の装備品選択を改造

コモンイベント[112:X[移]装備一覧算出]を改造します。



セルフ変数の使い方はコモンイベント[110:X[移]アイテム一覧算出]とほぼ同じですが、
アイテムの名前を取得設定は無く、またセルフ[5]に保存するアイテムコードの設定が異なります。

またセルフ[8]は既に使用しているものを再利用します。

新規使用のセルフ変数
番号 名前 使用内容
5 [並替]全名前 ユーザーDB[2〜4]にある全ての名前とデータIDを保存し、一覧を表示する時に使用。
50 [並替]タイプ番号 ユーザーDB[アイテム並び順]のタイプIDを取得する時に使用。
51 [並替]全データ数 ユーザーDBのデータ総数を取得する時に使用。
52 [並替]データID セルフ[8]からデータIDを取得する時に使用。
53 [並替]アイテムコード アイテムコードの取得で使用。

種類 アイテムコード コードの設定例
武器 ユーザーDB[3]のデータID 木の杖 (データID[5])=5
防具 ユーザーDB[4]のデータID+10000 鉄の小手(データID[7])+10000=10007



この色の設定はコモンイベント[110:X[移]アイテム一覧算出]と同じ設定です。
この色の設定は新規で追加、またはコモンイベント[110:X[移]アイテム一覧算出]の設定を修正しています。
この色の設定は元々あった設定がそのまま設定されていますが、設定場所を移動している場合があります。

【イベントコード表示】
■コモンイベント「112:X[移]装備一覧算出」
  
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24

25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43

44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60

61

62
63
64
65
66
67
68
69
70
71
72
73
74
75
76

77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94

95
96
97
98
99
100
101
102
103
104
105
106

107
108

109
110

111
112
113

114
115
116
117
118
119

120
121

122
123
124

125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154

155
156
157
158
159
160
161
162


163
164
165
166
167
168
169
170
171
172
173
174
175

176

177

178

179

180

181

182

183

184

185

186

187

188

189

190

191

192

193

194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213

214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240

241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
■DB読込(ユーザ): CSelf50[[並替]タイプ番号] = ユーザDB[タイプアイテム並び順(18) のタイプ番号]
▼ ―――――――――――――――――――――――――――――――――――
▼ 【処理の内容】
▼ 指定した装備可能箇所の装備一覧を計算し、その名前一覧と、
▼ 指定キャラの装備可能状態を、可変DB「万能ウィンドウ一時DB」に格納します。

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

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

▼ 【どのコモンイベントから主に呼び出されているか】
▼ ―――――――――――――――――――――――――――――――――――
■デバッグ文の全消去

■可変DB書込:[タイプ 万能ウィンドウ一時DB(19) を初期化]
■変数操作: CSelf32[万能DB登録位置] = 0 + 0
▼ ■■■■■■■■■■■■■■■■■■■■全名前をセルフ[5]に保存
■文字列操作:CSelf5[全アイテム名出力] = ""
▼ ■■■■■■■■■■全ての武器名を出力
■DB読込(ユーザ): CSelf51[[並替]全データ数] = ユーザDB[タイプ武器(3)のデータ数]
■変数操作: CSelf52[[並替]データID] = -1 + 0
■変数操作: CSelf53[[並替]アイテムコード] = -1 + 0
■回数付きループ [ CSelf51[[並替]全データ数] ]回
|■変数操作: CSelf52[[並替]データID]〜CSelf53[[並替]アイテムコード] += 1 + 0
|■DB読込(ユーザ): CSelf9[一時装備名] = ユーザDB[ 武器 : CSelf52[[並替]データID] : 0 ] (3 : - : 武器の名前)
|■条件分岐(文字): 【1】 CSelf9[一時装備名]が "" と同じ
          【2】 CSelf5[全名前出力]が "|\cself[9]|" を含む
|-◇分岐: 【1】 [ CSelf9[一時装備名] "" と同じ ]の場合↓
||■ループ開始へ戻る
||■
|-◇分岐: 【2】 [ CSelf5[全名前出力] "|\cself[9]|" を含む ]の場合↓
||■デバッグ文:【エラー】「\cself[9]」の名前が2つ以上あります。
||■ループ開始へ戻る
||■
|◇分岐終了◇
|■文字列操作:CSelf5[全名前出力] += "|\cself[9]|\cself[53]"
|■
◇ループここまで◇◇
▼ ■■■■■■■■■■全ての防具名を出力
■DB読込(ユーザ): CSelf51[[並替]全データ数] = ユーザDB[タイプ防具(4)のデータ数]
■変数操作: CSelf52[[並替]データID] = -1 + 0
■変数操作: CSelf53[[並替]アイテムコード] = 9999 + 0
■回数付きループ [ CSelf51[[並替]全データ数] ]回
|■変数操作: CSelf52[[並替]データID]〜CSelf53[[並替]アイテムコード] += 1 + 0
|■DB読込(ユーザ): CSelf9[一時装備名] = ユーザDB[ 防具 : CSelf52[[並替]データID] : 0 ] (4 : - : 防具の名前)
|■条件分岐(文字): 【1】 CSelf9[一時装備名]が "" と同じ
          【2】 CSelf5[全名前出力]が "|\cself[9]|" を含む
|-◇分岐: 【1】 [ CSelf9[一時装備名] "" と同じ ]の場合↓
||■ループ開始へ戻る
||■
|-◇分岐: 【2】 [ CSelf5[全名前出力] "|\cself[9]|" を含む ]の場合↓
||■デバッグ文:【エラー】「\cself[9]」の名前が2つ以上あります。
||■ループ開始へ戻る
||■
|◇分岐終了◇
|■文字列操作:CSelf5[全名前出力] += "|\cself[9]|\cself[53]"
|■
◇ループここまで◇◇
▼ ■■■■■■■■■■■■■■■■■■■■ユーザーDB「アイテム並び順」の順番で万能ウィンドウに登録
■DB読込(ユーザ): CSelf51[[並替]全データ数] = ユーザDB[タイプCSelf50[[並替]タイプ番号](-)のデータ数]
■変数操作: CSelf52[[並替]データID] = -1 + 0
■回数付きループ [ CSelf51[[並替]全データ数] ]回
|■変数操作: CSelf52[[並替]データID] += 1 + 0
|■DB読込(ユーザ): CSelf9[一時装備名] =
         ユーザDB[ CSelf50[[並替]タイプ番号] : CSelf52[[並替]データID] : 0 ] (- : - : ×NoData)
|■条件分岐(文字): 【1】 CSelf9[一時装備名]が "" と同じ
          【2】 CSelf5[全名前出力]が "|\cself[9]|" を含む
|-◇分岐: 【1】 [ CSelf9[一時装備名] "" と同じ ]の場合↓
||■ループ開始へ戻る
||■
|-◇分岐: 【2】 [ CSelf5[全名前出力] "|\cself[9]|" を含む ]の場合↓
||■
|-◇上記以外
||■ループ開始へ戻る
||■
|◇分岐終了◇
|■文字列操作:CSelf8[一時説明文] = CSelf5[全名前出力]
|■文字列操作:CSelf8[一時説明文] =<の指定文字以降を切り出し> "|\cself[9]|"
|■変数操作: CSelf11[一時TMP] = CSelf8[一時説明文] + 0
|■変数操作: CSelf30[DB読み取り位置] = CSelf11[一時TMP] % 10000

|■変数操作: CSelf38[武器=0 防具=1] = CSelf11[一時TMP] / 10000
|■条件分岐(変数): 【1】 CSelf38[武器=0 防具=1] が 0 と同じ
          【2】 CSelf38[武器=0 防具=1] が 1 と同じ
|-◇分岐: 【1】 [ CSelf38[武器=0 防具=1] が 0 と同じ ]の場合↓
||■DB読込(可変): CSelf34[所持個数] = 可変DB[ ┣所持武器個数 : CSelf30[DB読み取り位置] : 所持個数 ] (8 : - : 0)
||■
|-◇分岐: 【2】 [ CSelf38[武器=0 防具=1] が 1 と同じ ]の場合↓
||■DB読込(可変): CSelf34[所持個数] = 可変DB[ ┗所持防具個数 : CSelf30[DB読み取り位置] : 所持個数 ] (9 : - : 0)
||■
|◇分岐終了◇
|▼ 所持個数が1以上なら判定
|■条件分岐(変数): 【1】 CSelf34[所持個数] が 1 以上
|-◇分岐: 【1】 [ CSelf34[所持個数] が 1 以上 ]の場合↓
||■デバッグ文:装備有り>\cself[38]-\cself[34] 装備欄\cself[1]
||■条件分岐(変数): 【1】 CSelf1[装備欄] が 0 以上
||-◇分岐: 【1】 [ CSelf1[装備欄] が 0 以上 ]の場合↓
|||▼ ■■■■■■■■■■■■■■■■■■■■■
|||▼ 装備箇所判定
|||▼ ■■■■■■■■■■■■■■■■■■■■■
|||▼ 装備箇所が違う場合は表示されない

|||■条件分岐(変数): 【1】 CSelf1[装備欄] が 0 と同じ
           【2】 CSelf1[装備欄] が 1 以上
|||-◇分岐: 【1】 [ CSelf1[装備欄] が 0 と同じ ]の場合↓
||||▼ 武器欄には防具は絶対に装備できないので次へ
||||▼ 逆に装備欄0なら、武器はそのままスルー

||||■条件分岐(変数): 【1】 CSelf38[武器=0 防具=1] が 1 と同じ
||||-◇分岐: 【1】 [ CSelf38[武器=0 防具=1] が 1 と同じ ]の場合↓
|||||■ループ開始へ戻る
|||||■
||||◇分岐終了◇
||||■
|||-◇分岐: 【2】 [ CSelf1[装備欄] が 1 以上 ]の場合↓
||||▼ 防具類の場合
||||■条件分岐(変数): 【1】 CSelf1[装備欄] が 3 以下
           【2】 CSelf1[装備欄] が 4 以上
||||-◇分岐: 【1】 [ CSelf1[装備欄] が 3 以下 ]の場合↓
|||||■条件分岐(変数): 【1】 CSelf38[武器=0 防具=1] が 0 と同じ
            【2】 CSelf38[武器=0 防具=1] が 1 と同じ
|||||-◇分岐: 【1】 [ CSelf38[武器=0 防具=1] が 0 と同じ ]の場合↓
||||||■DB読込(ユーザ): CSelf37[装備箇所判定] =
            ユーザDB[ 武器 : CSelf30[DB読み取り位置] : 装備可能箇所1〜4 ] (3 : - : 3)
||||||■
|||||-◇分岐: 【2】 [ CSelf38[武器=0 防具=1] が 1 と同じ ]の場合↓
||||||■DB読込(ユーザ): CSelf37[装備箇所判定] =
            ユーザDB[ 防具 : CSelf30[DB読み取り位置] : 装備可能箇所1〜4 ] (4 : - : 3)
||||||■
|||||◇分岐終了◇
|||||■変数操作: CSelf12[ループ回数] = CSelf1[装備欄] - 1
|||||■
||||-◇分岐: 【2】 [ CSelf1[装備欄] が 4 以上 ]の場合↓
|||||■条件分岐(変数): 【1】 CSelf38[武器=0 防具=1] が 0 と同じ
            【2】 CSelf38[武器=0 防具=1] が 1 と同じ
|||||-◇分岐: 【1】 [ CSelf38[武器=0 防具=1] が 0 と同じ ]の場合↓
||||||■DB読込(ユーザ): CSelf37[装備箇所判定] =
            ユーザDB[ 武器 : CSelf30[DB読み取り位置] : 装備可能箇所5〜8 ] (3 : - : 4)
||||||■
|||||-◇分岐: 【2】 [ CSelf38[武器=0 防具=1] が 1 と同じ ]の場合↓
||||||■DB読込(ユーザ): CSelf37[装備箇所判定] =
            ユーザDB[ 防具 : CSelf30[DB読み取り位置] : 装備可能箇所5〜8 ] (4 : - : 4)
||||||■
|||||◇分岐終了◇
|||||■変数操作: CSelf12[ループ回数] = CSelf1[装備欄] - 4
|||||■
||||◇分岐終了◇
||||■変数操作: CSelf39[装備箇所判定フラグ] = 1 + 0
||||■回数付きループ [ CSelf12[ループ回数] ]回
|||||■変数操作: CSelf39[装備箇所判定フラグ] *= 2 + 0
|||||■
||||◇ループここまで◇◇
||||■デバッグ文:■Bit>[\cself[38],\cself[30]] \cself[37] \cself[39]
||||■条件分岐(変数): 【1】 CSelf37[装備箇所判定] が CSelf39[装備箇所判定フラグ] のビットを満たす
||||-◇分岐: 【1】 [ CSelf37[装備箇所判定] が CSelf39[装備箇所判定フラグ] のビットを満たす ]の場合↓
|||||▼ ビットを満たす場合はそのまま通過
|||||■デバッグ文:【装備】ビット成立 > \cself[30]

|||||■
||||-◇上記以外
|||||▼ ビットを満たさないのは表示なし(該当する装備欄の装備ではない)
|||||■ループ開始へ戻る
|||||■
||||◇分岐終了◇
||||■
|||◇分岐終了◇
|||■
||◇分岐終了◇
||▼ もし装備可能キャラ指定があれば判定
||■条件分岐(変数): 【1】 CSelf0[対象主人公(全部なら-1)] が 0 以上
||-◇分岐: 【1】 [ CSelf0[対象主人公(全部なら-1)] が 0 以上 ]の場合↓
|||■変数操作: CSelf33[装備可能判定(0=OK)] = 1 + 0
|||■条件分岐(変数): 【1】 CSelf38[武器=0 防具=1] が 0 と同じ
           【2】 CSelf38[武器=0 防具=1] が 1 と同じ
|||-◇分岐: 【1】 [ CSelf38[武器=0 防具=1] が 0 と同じ ]の場合↓
||||■DB読込(ユーザ): CSelf35[装備のタイプ] = ユーザDB[ 武器 : CSelf30[DB読み取り位置] : 装備のタイプ ] (3 : - : 2)
||||■
|||-◇分岐: 【2】 [ CSelf38[武器=0 防具=1] が 1 と同じ ]の場合↓
||||■DB読込(ユーザ): CSelf35[装備のタイプ] = ユーザDB[ 防具 : CSelf30[DB読み取り位置] : 装備のタイプ ] (4 : - : 2)
||||■
|||◇分岐終了◇
|||■条件分岐(変数): 【1】 CSelf35[装備のタイプ] が -2 以下
           【2】 CSelf35[装備のタイプ] が -1 と同じ
           【3】 CSelf35[装備のタイプ] が 0 以上
|||-◇分岐: 【1】 [ CSelf35[装備のタイプ] が -2 以下 ]の場合↓
||||▼ 誰でも装備可能
||||■変数操作: CSelf33[装備可能判定(0=OK)] = 0 + 0
||||■
|||-◇分岐: 【2】 [ CSelf35[装備のタイプ] が -1 と同じ ]の場合↓
||||▼ 絶対装備不能
||||■変数操作: CSelf33[装備可能判定(0=OK)] = 1 + 0
||||■
|||-◇分岐: 【3】 [ CSelf35[装備のタイプ] が 0 以上 ]の場合↓
||||▼ 装備タイプが設定されている場合
||||▼
||||▼ ここから10個分の装備タイプを調査。同じ値のが1つでもあれば装備可能判定が「0」になる

||||■DB読込(可変): CSelf36[一時主人公装備タイプ] =
           可変DB[ 主人公ステータス : CSelf0[対象主人公(全部なら-1)] : 装備可能タイプ1 ] (0 : - : 36)
||||■変数操作: [リ] CSelf33[装備可能判定(0=OK)] *=
           CSelf36[一時主人公装備タイプ] - CSelf35[装備のタイプ]
||||■DB読込(可変): CSelf36[一時主人公装備タイプ] =
           可変DB[ 主人公ステータス : CSelf0[対象主人公(全部なら-1)] : 装備可能タイプ2 ] (0 : - : 37)
||||■変数操作: [リ] CSelf33[装備可能判定(0=OK)] *=
           CSelf36[一時主人公装備タイプ] - CSelf35[装備のタイプ]
||||■DB読込(可変): CSelf36[一時主人公装備タイプ] =
           可変DB[ 主人公ステータス : CSelf0[対象主人公(全部なら-1)] : 装備可能タイプ3 ] (0 : - : 38)
||||■変数操作: [リ] CSelf33[装備可能判定(0=OK)] *=
           CSelf36[一時主人公装備タイプ] - CSelf35[装備のタイプ]
||||■DB読込(可変): CSelf36[一時主人公装備タイプ] =
           可変DB[ 主人公ステータス : CSelf0[対象主人公(全部なら-1)] : 装備可能タイプ4 ] (0 : - : 39)
||||■変数操作: [リ] CSelf33[装備可能判定(0=OK)] *=
           CSelf36[一時主人公装備タイプ] - CSelf35[装備のタイプ]
||||■DB読込(可変): CSelf36[一時主人公装備タイプ] =
           可変DB[ 主人公ステータス : CSelf0[対象主人公(全部なら-1)] : 装備可能タイプ5 ] (0 : - : 40)
||||■変数操作: [リ] CSelf33[装備可能判定(0=OK)] *=
           CSelf36[一時主人公装備タイプ] - CSelf35[装備のタイプ]
||||■DB読込(可変): CSelf36[一時主人公装備タイプ] =
           可変DB[ 主人公ステータス : CSelf0[対象主人公(全部なら-1)] : 装備可能タイプ6 ] (0 : - : 41)
||||■変数操作: [リ] CSelf33[装備可能判定(0=OK)] *=
           CSelf36[一時主人公装備タイプ] - CSelf35[装備のタイプ]
||||■DB読込(可変): CSelf36[一時主人公装備タイプ] =
           可変DB[ 主人公ステータス : CSelf0[対象主人公(全部なら-1)] : 装備可能タイプ7 ] (0 : - : 42)
||||■変数操作: [リ] CSelf33[装備可能判定(0=OK)] *=
           CSelf36[一時主人公装備タイプ] - CSelf35[装備のタイプ]
||||■DB読込(可変): CSelf36[一時主人公装備タイプ] =
           可変DB[ 主人公ステータス : CSelf0[対象主人公(全部なら-1)] : 装備可能タイプ8 ] (0 : - : 43)
||||■変数操作: [リ] CSelf33[装備可能判定(0=OK)] *=
           CSelf36[一時主人公装備タイプ] - CSelf35[装備のタイプ]
||||■DB読込(可変): CSelf36[一時主人公装備タイプ] =
           可変DB[ 主人公ステータス : CSelf0[対象主人公(全部なら-1)] : 装備可能タイプ9 ] (0 : - : 44)
||||■変数操作: [リ] CSelf33[装備可能判定(0=OK)] *=
           CSelf36[一時主人公装備タイプ] - CSelf35[装備のタイプ]
||||■DB読込(可変): CSelf36[一時主人公装備タイプ] =
           可変DB[ 主人公ステータス : CSelf0[対象主人公(全部なら-1)] : 装備可能タイプ10 ] (0 : - : 45)
||||■変数操作: [リ] CSelf33[装備可能判定(0=OK)] *= CSelf36[一時主人公装備タイプ] - CSelf35[装備のタイプ]
||||■
|||◇分岐終了◇
|||▼ ■装備可能判定を反転させる。
|||■条件分岐(変数): 【1】 CSelf33[装備可能判定(0=OK)] が 0 と同じ
|||-◇分岐: 【1】 [ CSelf33[装備可能判定(0=OK)] が 0 と同じ ]の場合↓
||||■可変DB書込:DB[ 万能ウィンドウ一時DB : CSelf32[万能DB登録位置] : 選択可能状態[1=可] ] (19 : - : 2) = 1
||||■
|||-◇上記以外
||||■可変DB書込:DB[ 万能ウィンドウ一時DB : CSelf32[万能DB登録位置] : 選択可能状態[1=可] ] (19 : - : 2) = 0
||||■
|||◇分岐終了◇
|||■
||-◇上記以外
|||▼ 特に対象主人公が設定されていなかったら全グレー
|||■可変DB書込:DB[ 万能ウィンドウ一時DB : CSelf32[万能DB登録位置] : 選択可能状態[1=可] ] (19 : - : 2) = 0
|||■
||◇分岐終了◇
||▼ 名前・コード・数量を格納
||■条件分岐(変数): 【1】 CSelf38[武器=0 防具=1] が 0 と同じ
          【2】 CSelf38[武器=0 防具=1] が 1 と同じ
||-◇分岐: 【1】 [ CSelf38[武器=0 防具=1] が 0 と同じ ]の場合↓
|||▼ 武器の場合
|||■DB読込(ユーザ): CSelf9[一時装備名] = ユーザDB[ 武器 : CSelf30[DB読み取り位置] : 武器の名前 ] (3 : - : 0)
|||■可変DB書込:DB[ 万能ウィンドウ一時DB : CSelf32[万能DB登録位置] : 項目文 ] (19 : - : 0) = CSelf9[一時装備名]
|||▼ 武器コードは20000〜
|||■変数操作: CSelf11[一時TMP] = CSelf30[DB読み取り位置] + 0
|||■可変DB書込:DB[ 万能ウィンドウ一時DB : CSelf32[万能DB登録位置] : 項目コード ] (19 : - : 1) = CSelf11[一時TMP]
|||■可変DB書込:DB[ 万能ウィンドウ一時DB : CSelf32[万能DB登録位置] : 項目コード ] (19 : - : 1) += 20000
|||▼ 説明文
|||■DB読込(ユーザ): CSelf8[一時説明文] = ユーザDB[ 武器 : CSelf30[DB読み取り位置] : 武器の説明[2行まで可] ] (3 : - : 1)
|||■可変DB書込:DB[ 万能ウィンドウ一時DB : CSelf32[万能DB登録位置] : 説明文 ] (19 : - : 6) = CSelf8[一時説明文]
|||■
||-◇分岐: 【2】 [ CSelf38[武器=0 防具=1] が 1 と同じ ]の場合↓
|||▼ 防具の場合
|||■DB読込(ユーザ): CSelf9[一時装備名] = ユーザDB[ 防具 : CSelf30[DB読み取り位置] : 防具の名前 ] (4 : - : 0)
|||■可変DB書込:DB[ 万能ウィンドウ一時DB : CSelf32[万能DB登録位置] : 項目文 ] (19 : - : 0) = CSelf9[一時装備名]
|||▼ 防具コードは20000〜
|||■変数操作: CSelf11[一時TMP] = CSelf30[DB読み取り位置] + 0
|||■可変DB書込:DB[ 万能ウィンドウ一時DB : CSelf32[万能DB登録位置] : 項目コード ] (19 : - : 1) = CSelf11[一時TMP]
|||■可変DB書込:DB[ 万能ウィンドウ一時DB : CSelf32[万能DB登録位置] : 項目コード ] (19 : - : 1) += 30000
|||▼ 説明文
|||■DB読込(ユーザ): CSelf8[一時説明文] = ユーザDB[ 防具 : CSelf30[DB読み取り位置] : 防具の説明[2行まで可] ] (4 : - : 1)
|||■可変DB書込:DB[ 万能ウィンドウ一時DB : CSelf32[万能DB登録位置] : 説明文 ] (19 : - : 6) = CSelf8[一時説明文]
|||■
||◇分岐終了◇
||▼ 数量を格納
||■可変DB書込:DB[ 万能ウィンドウ一時DB :
        CSelf32[万能DB登録位置] : 残り個数/消費ポイント ] (19 : - : 3) = CSelf34[所持個数]
||■可変DB書込:DB[ 万能ウィンドウ一時DB : CSelf32[万能DB登録位置] : 付与文字列[前] ] (19 : - : 4) = x
||▼ チェック位置を+1
||■変数操作: CSelf32[万能DB登録位置] += 1 + 0
||■
|◇分岐終了◇
|■
◇ループここまで◇◇

▼ 最後に「装備を外す」を追加
■可変DB書込:DB[ 万能ウィンドウ一時DB : CSelf32[万能DB登録位置] : 項目文 ] (19 : - : 0) = <装備を外す>
■可変DB書込:DB[ 万能ウィンドウ一時DB : CSelf32[万能DB登録位置] : 説明文 ] (19 : - : 6) = 装備を解除します。
■可変DB書込:DB[ 万能ウィンドウ一時DB : CSelf32[万能DB登録位置] : 選択可能状態[1=可] ] (19 : - : 2) = 1
▼ 装備解除はコード「-2」
■可変DB書込:DB[ 万能ウィンドウ一時DB : CSelf32[万能DB登録位置] : 項目コード ] (19 : - : 1) = -2
■変数操作: CSelf32[万能DB登録位置] += 1 + 0
▼ 万能ウィンドウ個数に登録
■可変DB書込:DB[ 基本システム用変数 : 万能ウィンドウ項目個数 : 0 ] (18 : 17 : 数値) = CSelf32[万能DB登録位置]
■文字列操作:CSelf5[全名前出力] = ""


▲トップへ戻る▲


  
■お店の売却品選択を改造

コモンイベント[086:X[移]┗ お店内部情報更新]を改造します。



セルフ変数の使い方はコモンイベント[110:X[移]アイテム一覧算出]とほぼ同じですが、アイテムコードの設定が異なります。

新規使用のセルフ変数
番号 名前 使用内容
5 [並替]全名前 ユーザーDB[2〜4]にある全ての名前とデータIDを保存し、一覧を表示する時に使用。
50 [並替]タイプ番号 ユーザーDB[アイテム並び順]のタイプIDを取得する時に使用。
51 [並替]全データ数 ユーザーDBのデータ総数を取得する時に使用。
52 [並替]データID セルフ[8]からデータIDを取得する時に使用。
53 [並替]アイテムコード アイテムコードの取得で使用。

種類 アイテムコード コードの設定例
アイテム ユーザーDB[2]のデータID 魔力の水(データID[2])=2
武器 ユーザーDB[3]のデータID+10000 木の杖 (データID[5])+10000=10005
防具 ユーザーDB[4]のデータID+20000 鉄の小手(データID[7])+20000=20007



この色の設定はコモンイベント[110:X[移]アイテム一覧算出]と同じ設定です。
この色の設定は新規で追加、またはコモンイベント[110:X[移]アイテム一覧算出]の設定や元々あった設定を修正しています。
この色の設定は元々あった設定がそのまま設定されていますが、設定場所を移動している場合があります。

【イベントコード表示】
■コモンイベント「086:X[移]┗ お店内部情報更新」
  
0
1
2
3
4
5
6
7
8
9
10
11
12

13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43

44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92

93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111

112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130

131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152

153

154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175


176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256


257
258
259
260
261
262
263
264
265
266
267
268

269

270

271

272

273

274

275

276

277

278

279

280

281

282

283
284

285
286

287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304

305
306

307
308

309
310

311
312

313
314

315
316

317
318

319
320
321
322
323
324
325
326
327
328
329
330
331

332
333


334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
■DB読込(ユーザ): CSelf50[[並替]タイプ番号] = ユーザDB[タイプアイテム並び順(18) のタイプ番号]
▼ ―――――――――――――――――――――――――――――――――――
▼ 【処理の内容】
▼ 基本システム内で主人公の所持金を取得するときは、必ずこのコモンイベントを使用します。
▼ 移動中でも戦闘中でも有効です。
▼ ―――――――――――――――――――――――――――――――――――

■変数操作: CSelf40[エラー回避カウンター] = 0 + 0
■DB読込(ユーザ): CSelf7[金額単位] = ユーザDB[ 用語設定 : 0 : [ステータス]お金の単位 ] (15 : 用語基本設定 : 18)
■イベントの挿入[名]: CSelf19[現在所持金] = ["X[共]所持金取得"] <コモンEv 57>
▼ 万能ウィンドウ一覧に買う・売るアイテムを格納
■可変DB書込:[タイプ 万能ウィンドウ一時DB(19) を初期化]
■可変DB書込:DB[ 基本システム用変数 : 17 : 0 ] (18 : 万能ウィンドウ項目個数 : 数値) = 0
■条件分岐(変数): 【1】 CSelf0[買う?売る?] が 0 と同じ
         【2】 CSelf0[買う?売る?] が 1 と同じ
-◇分岐: 【1】 [ CSelf0[買う?売る?] が 0 と同じ ]の場合↓
|▼ 買う場合
|■変数操作: CSelf90[計算戻り先] = 1 + 0
|■変数操作: CSelf21[格納元番号] = -1 + 0
|■変数操作: CSelf22[格納先番号] = -1 + 0
|■DB読込(可変): CSelf20[繰り返し回数] = 可変DB[ 基本システム用変数 : 93 : 0 ] (18 : [お店]アイテム登録個数 : 数値)
|■ループ開始
||■変数操作: CSelf21[格納元番号] += 1 + 0
||■変数操作: CSelf22[格納先番号] += 1 + 0
||■条件分岐(変数): 【1】 CSelf21[格納元番号] が CSelf20[繰り返し回数] 以上
||-◇分岐: 【1】 [ CSelf21[格納元番号] が CSelf20[繰り返し回数] 以上 ]の場合↓
|||■ループ中断
|||■
||◇分岐終了◇
||▼ 売り物を上から順番にチェックして万能ウィンドウに格納
||■DB読込(可変): CSelf9[アイテム名] = 可変DB[ × お店一時処理用:CSelf21[格納元番号]:販売アイテム名 ](16 : - : 0)
||■DB読込(可変): CSelf27[コード] = 可変DB[ × お店一時処理用:CSelf21[格納元番号]:販売アイテムコード](16 : - : 1)
||■DB読込(可変): CSelf8[説明文] = 可変DB[ × お店一時処理用:CSelf21[格納元番号] : 説明文 ](16 : - : 5)
||■DB読込(可変): CSelf25[価格] = 可変DB[ × お店一時処理用:CSelf21[格納元番号] : 価格 ](16 : - : 2)
||■DB読込(可変): CSelf26[購入可能?] = 可変DB[× お店一時処理用:CSelf21[格納元番号]:購入可能状態(0/1)](16: - :6)
||▼ 価格0だと数値が表示されないので、とりあえず価格1にする
||■変数操作: CSelf25[価格] 下限= 1 + 0
||▼
||■可変DB書込:DB[ 万能ウィンドウ一時DB : CSelf22[格納先番号] : 項目文 ] (19 : - : 0) = CSelf9[アイテム名]
||■可変DB書込:DB[ 万能ウィンドウ一時DB : CSelf22[格納先番号] : 項目コード ] (19 : - : 1) = CSelf27[コード]
||■可変DB書込:DB[ 万能ウィンドウ一時DB : CSelf22[格納先番号] : 説明文 ] (19 : - : 6) = CSelf8[説明文]
||■可変DB書込:DB[ 万能ウィンドウ一時DB : CSelf22[格納先番号] : 残り個数/消費ポイント ] (19 : - : 3) = CSelf25[価格]
||■可変DB書込:DB[ 万能ウィンドウ一時DB : CSelf22[格納先番号] : 付与文字列[後] ] (19 : - : 5) = CSelf7[金額単位]
||■条件分岐(変数): 【1】 CSelf27[コード] が 10000 以上
||-◇分岐: 【1】 [ CSelf27[コード] が 10000 以上 ]の場合↓
|||■条件分岐(変数): 【1】 CSelf27[コード] が 19999 以下
           【2】 CSelf27[コード] が 29999 以下 【3】 CSelf27[コード] が 39999 以下
|||-◇分岐: 【1】 [ CSelf27[コード] が 19999 以下 ]の場合↓
||||■変数操作: CSelf15[処理番号] = CSelf27[コード] % 10000
||||■DB読込(可変): CSelf39[一時個数] = 可変DB[ ┣所持アイテム個数 : CSelf15[処理番号] : 所持個数 ] (7 : - : 0)
||||■
|||-◇分岐: 【2】 [ CSelf27[コード] が 29999 以下 ]の場合↓
||||■変数操作: CSelf15[処理番号] = CSelf27[コード] % 20000
||||■DB読込(可変): CSelf39[一時個数] = 可変DB[ ┣所持武器個数 : CSelf15[処理番号] : 所持個数 ] (8 : - : 0)
||||■
|||-◇分岐: 【3】 [ CSelf27[コード] が 39999 以下 ]の場合↓
||||■変数操作: CSelf15[処理番号] = CSelf27[コード] % 30000
||||■DB読込(可変): CSelf39[一時個数] = 可変DB[ ┗所持防具個数 : CSelf15[処理番号] : 所持個数 ] (9 : - : 0)
||||■
|||◇分岐終了◇
|||■可変DB書込:DB[ 万能ウィンドウ一時DB : CSelf22[格納先番号] : [オプション]予備数値A ](19 : - : 7) = CSelf39[一時個数]
|||■
||◇分岐終了◇
||■条件分岐(変数): 【1】 CSelf25[価格] が CSelf19[現在所持金] 以下
||-◇分岐: 【1】 [ CSelf25[価格] が CSelf19[現在所持金] 以下 ]の場合↓
|||▼ 値段が所持金より下なら購入可能
|||■可変DB書込:DB[ 万能ウィンドウ一時DB : CSelf22[格納先番号] : 選択可能状態[1=可] ] (19 : - : 2) = 1
|||■
||-◇上記以外
|||■可変DB書込:DB[ 万能ウィンドウ一時DB : CSelf22[格納先番号] : 選択可能状態[1=可] ] (19 : - : 2) = 0
|||■
||◇分岐終了◇
||■回数付きループ [ 0 ]回
|||■デバッグ文:\cself[27] - \cself[39] <\cdb[19:\cself[22]:2]>
|||■
||◇ループここまで◇◇
||●ラベル「装備可能者計算」に飛ぶ >>>>>>>>>>>>>>>>>>>>>>>>>
||●ラベル地点「計算戻り1」 <<<<<<<<<<<<<<<<<<<<<<<<★
||■可変DB書込:DB[ 基本システム用変数 : 17 : 0 ] (18 : 万能ウィンドウ項目個数 : 数値) += 1
||■
|◇ループここまで◇◇
|■
-◇分岐: 【2】 [ CSelf0[買う?売る?] が 1 と同じ ]の場合↓
|▼ 売る場合
|■変数操作: CSelf90[計算戻り先] = 2 + 0
|■変数操作: CSelf22[格納先番号] = 0 + 0
|▼ ■■■■■■■■■■■■■■■■■■■■全名前をセルフ[5]に保存
|■文字列操作:CSelf5[[並替]全名前] = ""
|▼ ■■■■■■■■■■全てのアイテム名を出力
|■DB読込(ユーザ): CSelf51[[並替]全データ数] = ユーザDB[タイプアイテム(2)のデータ数]
|■変数操作: CSelf52[[並替]データID] = -1 + 0
|■変数操作: CSelf53[[並替]アイテムコード] = -1 + 0
|■回数付きループ [ CSelf51[[並替]全データ数] ]回
||■変数操作: CSelf52[[並替]データID]〜CSelf53[[並替]アイテムコード] += 1 + 0
||■DB読込(ユーザ): CSelf9[アイテム名] = ユーザDB[ アイテム : CSelf52[[並替]データID] : 0 ] (2 : - : アイテム名)
||■条件分岐(文字): 【1】 CSelf9[アイテム名]が "" と同じ
          【2】 CSelf5[[並替]全名前]が "|\cself[9]|" を含む
||-◇分岐: 【1】 [ CSelf9[アイテム名] "" と同じ ]の場合↓
|||■ループ開始へ戻る
|||■
||-◇分岐: 【2】 [ CSelf5[[並替]全名前] "|\cself[9]|" を含む ]の場合↓
|||■デバッグ文:【エラー】「\cself[9]」の名前が2つ以上あります。
|||■ループ開始へ戻る
|||■
||◇分岐終了◇
||■文字列操作:CSelf5[[並替]全名前] += "|\cself[9]|\cself[53]"
||■
|◇ループここまで◇◇
|▼ ■■■■■■■■■■全ての武器名を出力
|■DB読込(ユーザ): CSelf51[[並替]全データ数] = ユーザDB[タイプ武器(3)のデータ数]
|■変数操作: CSelf52[[並替]データID] = -1 + 0
|■変数操作: CSelf53[[並替]アイテムコード] = 9999 + 0
|■回数付きループ [ CSelf51[[並替]全データ数] ]回
||■変数操作: CSelf52[[並替]データID]〜CSelf53[[並替]アイテムコード] += 1 + 0
||■DB読込(ユーザ): CSelf9[アイテム名] = ユーザDB[ 武器 : CSelf52[[並替]データID] : 0 ] (3 : - : 武器の名前)
||■条件分岐(文字): 【1】 CSelf9[アイテム名]が "" と同じ
          【2】 CSelf5[[並替]全名前]が "|\cself[9]|" を含む
||-◇分岐: 【1】 [ CSelf9[アイテム名] "" と同じ ]の場合↓
|||■ループ開始へ戻る
|||■
||-◇分岐: 【2】 [ CSelf5[[並替]全名前] "|\cself[9]|" を含む ]の場合↓
|||■デバッグ文:【エラー】「\cself[9]」の名前が2つ以上あります。
|||■ループ開始へ戻る
|||■
||◇分岐終了◇
||■文字列操作:CSelf5[[並替]全名前] += "|\cself[9]|\cself[53]"
||■
|◇ループここまで◇◇
|▼ ■■■■■■■■■■全ての防具名を出力
|■DB読込(ユーザ): CSelf51[[並替]全データ数] = ユーザDB[タイプ防具(4)のデータ数]
|■変数操作: CSelf52[[並替]データID] = -1 + 0
|■変数操作: CSelf53[[並替]アイテムコード] = 19999 + 0
|■回数付きループ [ CSelf51[[並替]全データ数] ]回
||■変数操作: CSelf52[[並替]データID]〜CSelf53[[並替]アイテムコード] += 1 + 0
||■DB読込(ユーザ): CSelf9[アイテム名] = ユーザDB[ 防具 : CSelf52[[並替]データID] : 0 ] (4 : - : 防具の名前)
||■条件分岐(文字): 【1】 CSelf9[アイテム名]が "" と同じ
          【2】 CSelf5[[並替]全名前]が "|\cself[9]|" を含む
||-◇分岐: 【1】 [ CSelf9[アイテム名] "" と同じ ]の場合↓
|||■ループ開始へ戻る
|||■
||-◇分岐: 【2】 [ CSelf5[[並替]全名前] "|\cself[9]|" を含む ]の場合↓
|||■デバッグ文:【エラー】「\cself[9]」の名前が2つ以上あります。
|||■ループ開始へ戻る
|||■
||◇分岐終了◇
||■文字列操作:CSelf5[[並替]全名前] += "|\cself[9]|\cself[53]"
||■
|◇ループここまで◇◇
|▼ ■■■■■■■■■■■■■■■■■■■■ユーザーDB「アイテム並び順」の順番で万能ウィンドウに登録
|■DB読込(ユーザ): CSelf51[[並替]全データ数] = ユーザDB[タイプCSelf50[[並替]タイプ番号](-)のデータ数]
|■変数操作: CSelf52[[並替]データID] = -1 + 0

|■ループ開始
||■変数操作: CSelf52[[並替]データID] += 1 + 0
||■条件分岐(変数): 【1】 CSelf52[[並替]データID]CSelf51[[並替]全データ数] 以上
||-◇分岐: 【1】 [ CSelf52[[並替]データID]CSelf51[[並替]全データ数] 以上 ]の場合↓
|||■ループ中断
|||■
||◇分岐終了◇
||■DB読込(ユーザ): CSelf9[アイテム名] =
          ユーザDB[ CSelf50[[並替]タイプ番号] : CSelf52[[並替]データID] : 0 ] (- : - : ×NoData)
||■条件分岐(文字): 【1】 CSelf9[アイテム名]が "" と同じ
          【2】 CSelf5[[並替]全名前]が "|\cself[9]|" を含む
||-◇分岐: 【1】 [ CSelf9[アイテム名] "" と同じ ]の場合↓
|||■ループ開始へ戻る
|||■
||-◇分岐: 【2】 [ CSelf5[[並替]全名前] "|\cself[9]|" を含む ]の場合↓
|||■
||-◇上記以外
|||■ループ開始へ戻る
|||■
||◇分岐終了◇
||■文字列操作:CSelf8[説明文] = CSelf5[[並替]全名前]
||■文字列操作:CSelf8[説明文] =<の指定文字以降を切り出し> "|\cself[9]|"
||■変数操作: CSelf53[[並替]アイテムコード] = CSelf8[説明文] + 0
||■変数操作: CSelf21[格納元番号] = CSelf53[[並替]アイテムコード] % 10000

||■変数操作: CSelf30[アイテム(0)武器(1)防具(2)] = CSelf53[[並替]アイテムコード] / 10000
||■変数操作: CSelf40[エラー回避カウンター] += 1 + 0
||■条件分岐(変数): 【1】 CSelf40[エラー回避カウンター] が 100 以上
||-◇分岐: 【1】 [ CSelf40[エラー回避カウンター] が 100 以上 ]の場合↓
|||■変数操作: CSelf40[エラー回避カウンター] = 0 + 0
|||■ウェイト:1 フレーム
|||■
||◇分岐終了◇
||■条件分岐(変数): 【1】 CSelf30[アイテム(0)武器(1)防具(2)] が 0 と同じ
          【2】 CSelf30[アイテム(0)武器(1)防具(2)] が 1 と同じ
          【3】 CSelf30[アイテム(0)武器(1)防具(2)] が 2 と同じ
||-◇分岐: 【1】 [ CSelf30[アイテム(0)武器(1)防具(2)] が 0 と同じ ]の場合↓
|||■変数操作: CSelf27[コード] = 10000 + CSelf21[格納元番号]
|||■DB読込(ユーザ): CSelf9[アイテム名] = ユーザDB[ アイテム : CSelf21[格納元番号] : アイテム名 ] (2 : - : 0)
|||■DB読込(ユーザ): CSelf25[価格] = ユーザDB[ アイテム : CSelf21[格納元番号] : 販売価格 [0=売れない] ] (2 : - : 19)
|||■DB読込(可変): CSelf39[一時個数] = 可変DB[ ┣所持アイテム個数 : CSelf21[格納元番号] : 所持個数 ] (7 : - : 0)
|||■DB読込(ユーザ): CSelf8[説明文] = ユーザDB[ アイテム : CSelf21[格納元番号] : 説明文[2行まで可] ] (2 : - : 1)
|||■
||-◇分岐: 【2】 [ CSelf30[アイテム(0)武器(1)防具(2)] が 1 と同じ ]の場合↓
|||■変数操作: CSelf27[コード] = 20000 + CSelf21[格納元番号]
|||■DB読込(ユーザ): CSelf9[アイテム名] = ユーザDB[ 武器 : CSelf21[格納元番号] : 武器の名前 ] (3 : - : 0)
|||■DB読込(ユーザ): CSelf25[価格] = ユーザDB[ 武器 : CSelf21[格納元番号] : 販売価格 [0=売れない] ] (3 : - : 17)
|||■DB読込(可変): CSelf39[一時個数] = 可変DB[ ┣所持武器個数 : CSelf21[格納元番号] : 所持個数 ] (8 : - : 0)
|||■DB読込(ユーザ): CSelf8[説明文] = ユーザDB[ 武器 : CSelf21[格納元番号] : 武器の説明[2行まで可] ] (3 : - : 1)
|||■
||-◇分岐: 【3】 [ CSelf30[アイテム(0)武器(1)防具(2)] が 2 と同じ ]の場合↓
|||■変数操作: CSelf27[コード] = 30000 + CSelf21[格納元番号]
|||■DB読込(ユーザ): CSelf9[アイテム名] = ユーザDB[ 防具 : CSelf21[格納元番号] : 防具の名前 ] (4 : - : 0)
|||■DB読込(ユーザ): CSelf25[価格] = ユーザDB[ 防具 : CSelf21[格納元番号] : 販売価格 [0=売れない] ] (4 : - : 18)
|||■DB読込(可変): CSelf39[一時個数] = 可変DB[ ┗所持防具個数 : CSelf21[格納元番号] : 所持個数 ] (9 : - : 0)
|||■DB読込(ユーザ): CSelf8[説明文] = ユーザDB[ 防具 : CSelf21[格納元番号] : 防具の説明[2行まで可] ] (4 : - : 1)
|||■
||◇分岐終了◇
||▼ 対象アイテムが存在したら追加
||■条件分岐(変数): 【1】 CSelf39[一時個数] が 1 以上
||-◇分岐: 【1】 [ CSelf39[一時個数] が 1 以上 ]の場合↓
|||■可変DB書込:DB[ 万能ウィンドウ一時DB : CSelf22[格納先番号] : 項目文 ] (19 : - : 0) = CSelf9[アイテム名]
|||■可変DB書込:DB[ 万能ウィンドウ一時DB : CSelf22[格納先番号] : 項目コード ] (19 : - : 1) = CSelf27[コード]
|||■可変DB書込:DB[ 万能ウィンドウ一時DB : CSelf22[格納先番号] : 残り個数/消費ポイント ](19 : - : 3) = CSelf25[価格]
|||■可変DB書込:DB[ 万能ウィンドウ一時DB : CSelf22[格納先番号] : 付与文字列[後] ] (19 : - : 5) = CSelf7[金額単位]
|||■可変DB書込:DB[ 万能ウィンドウ一時DB : CSelf22[格納先番号] : 説明文 ] (19 : - : 6) = CSelf8[説明文]
|||■可変DB書込:DB[ 万能ウィンドウ一時DB : CSelf22[格納先番号] : [オプション]予備数値A ](19 : - : 7) = CSelf39[一時個数]
|||■条件分岐(変数): 【1】 CSelf25[価格] が 0 以下
|||-◇分岐: 【1】 [ CSelf25[価格] が 0 以下 ]の場合↓
||||▼ 値段が0なら売却不能
||||■可変DB書込:DB[ 万能ウィンドウ一時DB : CSelf22[格納先番号] : 選択可能状態[1=可] ] (19 : - : 2) = 0
||||■可変DB書込:DB[ 万能ウィンドウ一時DB : CSelf22[格納先番号] : 付与文字列[後] ] (19 : - : 5) = ------
||||■
|||-◇上記以外
||||▼ 1以上なら売却可能
||||■可変DB書込:DB[ 万能ウィンドウ一時DB : CSelf22[格納先番号] : 選択可能状態[1=可] ] (19 : - : 2) = 1
||||▼
||||■可変DB書込:DB[ 万能ウィンドウ一時DB : CSelf22[格納先番号] : 残り個数/消費ポイント ] (19 : - : 3) /= 2
||||■可変DB書込:DB[ 万能ウィンドウ一時DB : CSelf22[格納先番号] : 残り個数/消費ポイント ] (19 : - : 3) 下限 1
||||■
|||◇分岐終了◇
|||●ラベル「装備可能者計算」に飛ぶ >>>>>>>>>>>>>>>>>>>>>>>>>
|||●ラベル地点「計算戻り2」 <<<<<<<<<<<<<<<<<<<<<<<<★
|||▼ アイテムがあれば格納先に+1
|||■変数操作: CSelf22[格納先番号] += 1 + 0
|||■可変DB書込:DB[ 基本システム用変数 : 17 : 0 ] (18 : 万能ウィンドウ項目個数 : 数値) += 1
|||■
||◇分岐終了◇
||■
|◇ループここまで◇◇
|■
◇分岐終了◇
■回数付きループ [ 0 ]回
|●ラベル地点「装備可能者計算」 <<<<<<<<<<<<<<<<<<<<<<<<★
|▼ 装備の場合は、装備可能者を計算
|■可変DB書込:DB[ 万能ウィンドウ一時DB : CSelf22[格納先番号] : [オプション]予備文字列A ] (19 : - : 9) =
|■条件分岐(変数): 【1】 CSelf27[コード] が 20000 以上
|-◇分岐: 【1】 [ CSelf27[コード] が 20000 以上 ]の場合↓
||■条件分岐(変数): 【1】 CSelf27[コード] が 29999 以下 【2】 CSelf27[コード] が 39999 以下
||-◇分岐: 【1】 [ CSelf27[コード] が 29999 以下 ]の場合↓
|||■変数操作: CSelf15[処理番号] = CSelf27[コード] % 20000
|||■DB読込(ユーザ): CSelf35[対象の装備タイプ] = ユーザDB[ 武器 : CSelf15[処理番号] : 装備のタイプ ] (3 : - : 2)
|||■
||-◇分岐: 【2】 [ CSelf27[コード] が 39999 以下 ]の場合↓
|||■変数操作: CSelf15[処理番号] = CSelf27[コード] % 30000
|||■DB読込(ユーザ): CSelf35[対象の装備タイプ] = ユーザDB[ 防具 : CSelf15[処理番号] : 装備のタイプ ] (4 : - : 2)
|||■
||◇分岐終了◇
||■DB読込(可変): CSelf23[パーティ人数] = 可変DB[ 基本システム用変数 : 4 : 0 ] (18 : 現在パーティー人数 : 数値)
||■変数操作: CSelf10[一時変数A] = -1 + 0
||■回数付きループ [ CSelf23[パーティ人数] ]回
|||■変数操作: CSelf10[一時変数A] += 1 + 0
|||■変数操作: CSelf33[装備可能フラグ] = 1 + 0
|||■イベントの挿入[名]: CSelf14[キャラID] = ["X[移]選択位置主人公ID取得"] <コモンEv 105> / CSelf10[一時変数A]
|||■条件分岐(変数): 【1】 CSelf14[キャラID] が 0 以上
|||-◇分岐: 【1】 [ CSelf14[キャラID] が 0 以上 ]の場合↓
||||■条件分岐(変数): 【1】 CSelf35[対象の装備タイプ] が -1 と同じ
           【2】 CSelf35[対象の装備タイプ] が -2 以下
           【3】 CSelf35[対象の装備タイプ] が 0 以上
||||-◇分岐: 【1】 [ CSelf35[対象の装備タイプ] が -1 と同じ ]の場合↓
|||||▼ 誰も装備できない
|||||■変数操作: CSelf33[装備可能フラグ] = 0 + 0
|||||■
||||-◇分岐: 【2】 [ CSelf35[対象の装備タイプ] が -2 以下 ]の場合↓
|||||▼ 誰でも装備可能
|||||■変数操作: CSelf33[装備可能フラグ] = 1 + 0
|||||■
||||-◇分岐: 【3】 [ CSelf35[対象の装備タイプ] が 0 以上 ]の場合↓
|||||▼ 対象タイプが指定されている場合
|||||▼ ここから10個分の装備タイプを調査。同じ値のが1つでもあれば装備可能判定が「0」になる

|||||■DB読込(可変): CSelf36[一時装備タイプ] =
           可変DB[ 主人公ステータス : CSelf14[キャラID] : 装備可能タイプ1 ] (0 : - : 36)
|||||■変数操作: [リ] CSelf33[装備可能フラグ] *=
           CSelf36[一時装備タイプ] - CSelf35[対象の装備タイプ]
|||||■DB読込(可変): CSelf36[一時装備タイプ] =
           可変DB[ 主人公ステータス : CSelf14[キャラID] : 装備可能タイプ2 ] (0 : - : 37)
|||||■変数操作: [リ] CSelf33[装備可能フラグ] *=
           CSelf36[一時装備タイプ] - CSelf35[対象の装備タイプ]
|||||■DB読込(可変): CSelf36[一時装備タイプ] =
           可変DB[ 主人公ステータス : CSelf14[キャラID] : 装備可能タイプ3 ] (0 : - : 38)
|||||■変数操作: [リ] CSelf33[装備可能フラグ] *=
           CSelf36[一時装備タイプ] - CSelf35[対象の装備タイプ]
|||||■DB読込(可変): CSelf36[一時装備タイプ] =
           可変DB[ 主人公ステータス : CSelf14[キャラID] : 装備可能タイプ4 ] (0 : - : 39)
|||||■変数操作: [リ] CSelf33[装備可能フラグ] *=
           CSelf36[一時装備タイプ] - CSelf35[対象の装備タイプ]
|||||■DB読込(可変): CSelf36[一時装備タイプ] =
           可変DB[ 主人公ステータス : CSelf14[キャラID] : 装備可能タイプ5 ] (0 : - : 40)
|||||■変数操作: [リ] CSelf33[装備可能フラグ] *=
           CSelf36[一時装備タイプ] - CSelf35[対象の装備タイプ]
|||||■DB読込(可変): CSelf36[一時装備タイプ] =
           可変DB[ 主人公ステータス : CSelf14[キャラID] : 装備可能タイプ6 ] (0 : - : 41)
|||||■変数操作: [リ] CSelf33[装備可能フラグ] *=
           CSelf36[一時装備タイプ] - CSelf35[対象の装備タイプ]
|||||■DB読込(可変): CSelf36[一時装備タイプ] =
           可変DB[ 主人公ステータス : CSelf14[キャラID] : 装備可能タイプ7 ] (0 : - : 42)
|||||■変数操作: [リ] CSelf33[装備可能フラグ] *=
           CSelf36[一時装備タイプ] - CSelf35[対象の装備タイプ]
|||||■DB読込(可変): CSelf36[一時装備タイプ] =
           可変DB[ 主人公ステータス : CSelf14[キャラID] : 装備可能タイプ8 ] (0 : - : 43)
|||||■変数操作: [リ] CSelf33[装備可能フラグ] *= CSelf36[一時装備タイプ] - CSelf35[対象の装備タイプ]
|||||■DB読込(可変): CSelf36[一時装備タイプ] =
           可変DB[ 主人公ステータス : CSelf14[キャラID] : 装備可能タイプ9 ] (0 : - : 44)
|||||■変数操作: [リ] CSelf33[装備可能フラグ] *= CSelf36[一時装備タイプ] - CSelf35[対象の装備タイプ]
|||||■DB読込(可変): CSelf36[一時装備タイプ] =
           可変DB[ 主人公ステータス : CSelf14[キャラID] : 装備可能タイプ10 ] (0 : - : 45)
|||||■変数操作: [リ] CSelf33[装備可能フラグ] *= CSelf36[一時装備タイプ] - CSelf35[対象の装備タイプ]
|||||▼ 0と1を反転
|||||■条件分岐(変数): 【1】 CSelf33[装備可能フラグ] が 0 と同じ
|||||-◇分岐: 【1】 [ CSelf33[装備可能フラグ] が 0 と同じ ]の場合↓
||||||▼ 装備可能
||||||■変数操作: CSelf33[装備可能フラグ] = 1 + 0
||||||■
|||||-◇上記以外
||||||▼ 装備不能
||||||■変数操作: CSelf33[装備可能フラグ] = 0 + 0
||||||■
|||||◇分岐終了◇
|||||■
||||◇分岐終了◇
||||■回数付きループ [ 1 ]回
|||||▼ そのキャラが装備中かどうかチェック
|||||■変数操作: CSelf37[装備中フラグ] = 1 + 0
|||||■イベントの挿入[名]: CSelf36[一時装備タイプ] =
              ["X[移]選択箇所装備コード取得"] <コモンEv 106> / CSelf14[キャラID] / 0
|||||■変数操作: [リ] CSelf37[装備中フラグ] *= CSelf27[コード] - CSelf36[一時装備タイプ]
|||||■イベントの挿入[名]: CSelf36[一時装備タイプ] =
              ["X[移]選択箇所装備コード取得"] <コモンEv 106> / CSelf14[キャラID] / 1
|||||■変数操作: [リ] CSelf37[装備中フラグ] *= CSelf27[コード] - CSelf36[一時装備タイプ]
|||||■イベントの挿入[名]: CSelf36[一時装備タイプ] =
              ["X[移]選択箇所装備コード取得"] <コモンEv 106> / CSelf14[キャラID] / 2
|||||■変数操作: [リ] CSelf37[装備中フラグ] *= CSelf27[コード] - CSelf36[一時装備タイプ]
|||||■イベントの挿入[名]: CSelf36[一時装備タイプ] =
              ["X[移]選択箇所装備コード取得"] <コモンEv 106> / CSelf14[キャラID] / 3
|||||■変数操作: [リ] CSelf37[装備中フラグ] *= CSelf27[コード] - CSelf36[一時装備タイプ]
|||||■イベントの挿入[名]: CSelf36[一時装備タイプ] =
              ["X[移]選択箇所装備コード取得"] <コモンEv 106> / CSelf14[キャラID] / 4
|||||■変数操作: [リ] CSelf37[装備中フラグ] *= CSelf27[コード] - CSelf36[一時装備タイプ]
|||||■イベントの挿入[名]: CSelf36[一時装備タイプ] =
              ["X[移]選択箇所装備コード取得"] <コモンEv 106> / CSelf14[キャラID] / 5
|||||■変数操作: [リ] CSelf37[装備中フラグ] *= CSelf27[コード] - CSelf36[一時装備タイプ]
|||||■イベントの挿入[名]: CSelf36[一時装備タイプ] =
              ["X[移]選択箇所装備コード取得"] <コモンEv 106> / CSelf14[キャラID] / 6
|||||■変数操作: [リ] CSelf37[装備中フラグ] *= CSelf27[コード] - CSelf36[一時装備タイプ]
|||||■イベントの挿入[名]: CSelf36[一時装備タイプ] =
              ["X[移]選択箇所装備コード取得"] <コモンEv 106> / CSelf14[キャラID] / 7
|||||■変数操作: [リ] CSelf37[装備中フラグ] *= CSelf27[コード] - CSelf36[一時装備タイプ]
|||||▼ もし一個でも対象の装備をしていれば、ここでフラグが0になっている
|||||■条件分岐(変数): 【1】 CSelf37[装備中フラグ] が 0 と同じ
|||||-◇分岐: 【1】 [ CSelf37[装備中フラグ] が 0 と同じ ]の場合↓
||||||▼ 装備可能状態を2にする
||||||■変数操作: CSelf33[装備可能フラグ] = 2 + 0
||||||■
|||||◇分岐終了◇
|||||■
||||◇ループここまで◇◇
||||▼ 装備可能状態を格納する
||||■イベントの挿入[名]: CSelf14[キャラID] = ["X[移]選択位置主人公ID取得"] <コモンEv 105> / CSelf10[一時変数A]
||||■イベントの挿入[名]: CSelf6[一時変数A] =
              ["X[移]パラメータ取得(文字列)"] <コモンEv 73> / CSelf14[キャラID] / 0:名前
||||■文字列操作:CSelf6[一時変数A] += " "
||||■条件分岐(変数): 【1】 CSelf33[装備可能フラグ] が 0 と同じ
           【2】 CSelf33[装備可能フラグ] が 1 と同じ
           【3】 CSelf33[装備可能フラグ] が 2 と同じ
||||-◇分岐: 【1】 [ CSelf33[装備可能フラグ] が 0 と同じ ]の場合↓
|||||■文字列操作:CSelf6[一時変数A] += "×装備不能"
|||||■
||||-◇分岐: 【2】 [ CSelf33[装備可能フラグ] が 1 と同じ ]の場合↓
|||||■文字列操作:CSelf6[一時変数A] += "○装備可能"
|||||■
||||-◇分岐: 【3】 [ CSelf33[装備可能フラグ] が 2 と同じ ]の場合↓
|||||■文字列操作:CSelf6[一時変数A] += "■装備中"
|||||■
||||◇分岐終了◇
||||■文字列操作:CSelf6[一時変数A] += "\n"
||||▼ 万能ウィンドウのオプション値に追加
||||■可変DB書込:DB[ 万能ウィンドウ一時DB:CSelf22[格納先番号]:[オプション]予備文字列A ] (19 : - : 9) += CSelf6[一時変数A]
||||■
|||◇分岐終了◇
|||■
||◇ループここまで◇◇
||■
|◇分岐終了◇
|●ラベル「計算戻り\cself[90]」に飛ぶ >>>>>>>>>>>>>>>>>>>>>>>>>
|■
◇ループここまで◇◇
■文字列操作:CSelf5[[並替]全名前] = ""


以上で改造設定は完了です。


▲トップへ戻る▲


  
■戦闘中は別の並び順にする

戦闘中は戦闘専用のユーザーDB[アイテム戦闘並び順]を使用するように改造します。

戦闘専用を用意する事で、
例えば戦闘中に使えないアイテムは一覧の下の方へ移動したり、
戦闘中に使用できるアイテムのみを表示したりする事ができます。

メニュー画面のアイテム一覧 戦闘中のアイテム一覧(戦闘中に使用できる物のみを表示)



ユーザーDBの画面を開き、ユーザーDB[アイテム並び順]をコピーして、未使用のタイプに貼り付けてください。





[タイプの内容設定]をクリックし、タイプ名を「アイテム戦闘並び順」に変えて、画面下のOKをクリックしてください。





戦闘用のアイテムの一覧を設定してください。

▼設定例(戦闘中に使えるアイテム・武器・防具のみを残している)




コモンイベント[153:X[戦]アイテム一覧算出]0行目にある…
■DB読込(ユーザ): CSelf50[[並替]タイプ番号] = ユーザDB[タイプアイテム並び順(18) のタイプ番号]
の設定を開き、「アイテム並び順」の文字列を「アイテム戦闘並び順」に変えてください。




以上で設定完了です。



同様の作業手順で「装備変更画面専用」や「お店売却時専用」を作る事もできます。


▲トップへ戻る▲



◎関連ページ

◆「基本システム」って何?
┣◆コモンイベントの一覧と補足説明
┣◆基本システムで使用しているピクチャ番号
┣◆メニュー画面の処理構造
┗◆戦闘処理の処理構造

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