WOLF RPGエディター(ウディタ)[2.24]/技能改造【サイトトップへ戻る】
■特殊技能の一覧を並び替える
(更新:2023/02/10)


特殊技能の一覧を指定した並び順で表示するように改造します。

改造前 改造後

アイテムの一覧の並び替えは別ページにあります。
【アイテムの一覧の並び替えるのページを開く】

ショートカット
■改造内容の確認
■データベースの設定
■メニュー画面用の特殊技能選択を改造
■戦闘用の特殊技能選択を改造
■戦闘中は別の並び順にする

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

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

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


  
■改造内容の確認

特殊技能を選択する画面の表示は、可変DB[1:┣ 技能習得Lv]設定順で表示されます。



例えば「ヒール」と「ヒールレイン」の設定順を入れ替えると、特殊技能の一覧の表示も入れ替わります。

初期設定([ヒール]→[ヒールレイン]順) 変更後([ヒールレイン]→[ヒール]順)

そのため、可変DB[1:┣ 技能習得Lv]の設定順を変えれば一覧の並び順も変わりますが、
しかし特殊技能を作成するごとに可変DB[1:┣ 技能習得Lv]の設定順を修正する作業は大変であり、
また主人公の人数が多い場合は、設定ミスによる不具合が発生するリスクがあります。

さらに…
■イベントの挿入[名]: ["○特殊技能増減"] <コモンEv 8> / 12:ウルファール / 3:ヒールレイン / 0:習得する
のように、イベントの設定で特殊技能を習得する場合は、基本的に一覧の一番下に追加されるため、
回復系の特殊技能なども一覧の下の方に表示される状態になります。



そこで当ページでは、ユーザーDBユーザーDB[技能並び順]を作成し、
このユーザーDB[技能並び順]で設定した並び順で特殊技能の一覧を表示するように改造します。

この方法だと全ての主人公の並び順を統一させる事ができ、
イベント設定であとから追加した特殊技能も指定した位置に表示されます。



今回の改造では…
●メニュー画面の特殊技能選択(コモンイベント[111:X[移]技能一覧算出])
●戦闘中の特殊技能選択(コモンイベント[154:X[戦]技能一覧算出])
の2つのコモンイベントを改造します。



並び順を設定する処理では、技能名を検索して処理しています。

同じ技能名が複数設定されている場合は、説明文を含めて検索します。

そのため、同じ技能名が複数ある場合は、技能ごとに説明文を変えてください。

同じ技能名の2つの説明を同じ説明文にしたい場合は、1つ目の説明文が「味方一人のHPを回復」の場合は、
もう1つの説明文は「 味方一人のHPを回復 」などと左右に空白文字を入れて、2つの説明文に違いを付けてください。


▲トップへ戻る▲


  
■データベースの設定

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





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




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





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




▲トップへ戻る▲


  
■メニュー画面用の特殊技能選択を改造

コモンイベント[111:X[移]技能一覧算出]を改造します。



新規使用のセルフ変数
番号 名前 使用内容
5 [並替]全名前 ユーザーDB[技能並び順]にある全ての名前を取得し、一覧を表示する時に使用。
6 [並替]切出 文字列の操作処理で使用。
50 [並替]タイプ番号 ユーザーDB[技能並び順]のタイプIDを取得する時に使用。
51 [並替]全データ数 ユーザーDBのデータ総数を取得する時に使用。
52 [並替]データID セルフ[8]からデータIDを取得する時に使用。

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

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

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



処理としては、まずユーザーDB[技能並び順]に登録されている全てのデータID・名前・説明文をセルフ[5]に保存します。

セルフ[5]の保存形式は…
|データID>|名前|<説明文|改行
と言った形になり…
|0>|通常攻撃(技能側)|<|
|1>|ヒール|<味方一人のHPを回復|
|2>|ヒール(強化版)|<味方一人のHPを回復(大)|
と言った形で保存していきます。

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

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

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



ユーザーDB[技能並び順]のデータID・名前・説明文をセルフ[5]に保存したら、
次にユーザーDB[0:技能]の名前を出力し、セルフ[5]の中に同じ名前があるかどうかを調べます。

同じ名前があった場合は、その名前を削除し、代わりにユーザーDB[0:技能]データIDを設定します。

>|技能の名前|< >||データID<

例えば「ヒール(強化版)」がユーザーDB[0:技能]データID[40]にある場合は以下のようになります。
|2>|ヒール(強化版)|< |2>||40<

同じ技能名が複数あった場合は「技能名+説明文」で指定した技能があるかどうかを調べます。



ユーザーDB[技能並び順]ユーザーDB[0:技能]の名前の照らし合わしが終わったら、
次に主人公が特殊技能を習得しているかどうかを調べます。

もしも習得している場合は、その技能の文字列を以下のように変更します。
>|| ><||

これにより、「><||」となっている技能が習得済み(一覧に表示)となります。



最後にユーザーDB[技能並び順]データID順に1つずつ技能が習得済みかどうか(「><||」があるかどうか)を調べ、
取得済みの場合は可変DB[19:万能ウィンドウ一時DB]に技能の情報を保存します。



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

【イベントコード表示】
■コモンイベント「111: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
■DB読込(ユーザ): CSelf50[[並替]タイプ番号] = ユーザDB[タイプ技能並び順(18) のタイプ番号]
▼ ―――――――――――――――――――――――――――――――――――
▼ 【処理の内容】
▼ 指定キャラクターの技能一覧を計算し、その技能一覧と選択可能状態を
▼ 可変DB「万能ウィンドウ一時DB」に格納します。

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

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

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

■可変DB書込:[タイプ 万能ウィンドウ一時DB(19) を初期化]
■変数操作: CSelf32[万能ウィンドウ登録位置] = 0 + 0
▼ ■■■■■■■■■■ユーザーDB【技能並び順】の並び順を設定
■文字列操作:CSelf5[[並替]全名前] = ""
■DB読込(ユーザ): CSelf51[[並替]全データ数] = ユーザDB[タイプCSelf50[[並替]タイプ番号](-)のデータ数]
■変数操作: CSelf52[[並替]データID] = -1 + 0
■回数付きループ [ CSelf51[[並替]全データ数] ]回
|■変数操作: CSelf52[[並替]データID] += 1 + 0
|■DB読込(ユーザ):CSelf9[一時項目名] = ユーザDB[ CSelf50[[並替]タイプ番号] : CSelf52[[並替]データID] : 0 ](-:-:×NoData)
|■DB読込(ユーザ):CSelf8[付与HP名] = ユーザDB[ CSelf50[[並替]タイプ番号] : CSelf52[[並替]データID] : 1 ](-:-:×NoData)
|■文字列操作:CSelf8[付与HP名] =<から文字列を置換> "\n" → ""
|■条件分岐(文字): 【1】 CSelf9[一時項目名]が "" と同じ 【2】 CSelf5[[並替]全名前]が ">|\cself[9]|<" を含む
|-◇分岐: 【1】 [ CSelf9[一時項目名] "" と同じ ]の場合↓
||■ループ開始へ戻る
||■
|-◇分岐: 【2】 [ CSelf5[[並替]全名前] ">|\cself[9]|<" を含む ]の場合↓
||■条件分岐(文字): 【1】 CSelf9[一時項目名]が ">|\cself[9]|<\cself[8]|" を含む
||-◇分岐: 【1】 [ CSelf9[一時項目名] ">|\cself[9]|<\cself[8]|" を含む ]の場合↓
|||■デバッグ文:【エラー】「\cself[9]」が【技能並び順】に2つ以上あります。
|||■ループ開始へ戻る
|||■
||◇分岐終了◇
||■
|◇分岐終了◇
|■文字列操作:CSelf5[[並替]全名前] += "|\cself[52]>|\cself[9]|<\cself[8]|\n"
|■
◇ループここまで◇◇

▼ ■■■■■■■■■■ユーザーDB【0:技能】に名前があるかチェック
■DB読込(ユーザ): CSelf51[[並替]全データ数] = ユーザDB[タイプ技能(0)のデータ数]
■変数操作: CSelf52[[並替]データID] = -1 + 0
■回数付きループ [ CSelf51[[並替]全データ数] ]回
|■変数操作: CSelf52[[並替]データID] += 1 + 0
|■DB読込(ユーザ): CSelf9[一時項目名] = ユーザDB[ 技能 : CSelf52[[並替]データID] : 0 ] (0 : - : 技能の名前)
|■条件分岐(文字): 【1】 CSelf9[一時項目名]が "" と同じ
|-◇分岐: 【1】 [ CSelf9[一時項目名] "" と同じ ]の場合↓
||■ループ開始へ戻る
||■
|◇分岐終了◇
|■文字列操作:CSelf6[[並替]切出] = CSelf5[[並替]全名前]
|■文字列操作:CSelf6[[並替]切出] =<から指定文字まで切り出し> ">|\cself[9]|<"
|■文字列操作:CSelf8[付与HP名] = CSelf5[[並替]全名前]
|■文字列操作:CSelf8[付与HP名] =<の指定文字以降を切り出し> "\cself[6]>|\cself[9]|<"
|■条件分岐(文字): 【1】 CSelf8[付与HP名]が ">|\cself[9]|<" を含む
|-◇分岐: 【1】 [ CSelf8[付与HP名] ">|\cself[9]|<" を含む ]の場合↓
||■DB読込(ユーザ): CSelf8[付与HP名] = ユーザDB[ 技能 : CSelf52[[並替]データID] : 1 ] (0 : - : 説明)
||■文字列操作:CSelf8[付与HP名] =<から文字列を置換> "\n" → ""
||■文字列操作:CSelf5[[並替]全名前] =<から文字列を置換> ">|\cself[9]|<\cself[8]|" → ">||\cself[52]<"
||■
|-◇上記以外
||■文字列操作:CSelf5[[並替]全名前] =<から文字列を置換> ">|\cself[9]|<" → ">||\cself[52]<"
||■
|◇分岐終了◇
|■
◇ループここまで◇◇

▼ ■■■■■■■■■■習得済みをチェック
■変数操作: CSelf30[処理対象個数] = -1 + 0
■DB読込(可変): CSelf36[現在レベル] = 可変DB[ 主人公ステータス : CSelf0[対象主人公ID] : レベル ] (0 : - : 4)
■回数付きループ [ 50 ]回
|■変数操作: CSelf30[処理対象個数] += 1 + 0
|■変数操作: CSelf31[注目位置] = CSelf30[処理対象個数] * 2
|■DB読込(可変): CSelf35[習得レベル] = 可変DB[ ┣ 技能習得Lv : CSelf0[対象主人公ID] : CSelf31[注目位置] ] (1 : - : -)
|■変数操作: CSelf31[注目位置] += 1 + 0
|■DB読込(可変): CSelf34[技能コード] = 可変DB[ ┣ 技能習得Lv : CSelf0[対象主人公ID] : CSelf31[注目位置] ] (1 : - : -)
|■条件分岐(変数): 【1】 CSelf35[習得レベル] が 0 以上
|-◇分岐: 【1】 [ CSelf35[習得レベル] が 0 以上 ]の場合↓
||■条件分岐(変数): 【1】 CSelf34[技能コード] が 0 以上
||-◇分岐: 【1】 [ CSelf34[技能コード] が 0 以上 ]の場合↓
|||▼ レベルが既定以上になっていれば万能ウィンドウに登録
|||■条件分岐(変数): 【1】 CSelf35[習得レベル] が CSelf36[現在レベル] 以下
|||-◇分岐: 【1】 [ CSelf35[習得レベル] が CSelf36[現在レベル] 以下 ]の場合↓
||||■文字列操作:CSelf5[[並替]全名前] =<から文字列を置換> ">||\cself[34]<" → "><||\cself[34]<"
||||■
|||◇分岐終了◇
|||■
||◇分岐終了◇
||■
|◇分岐終了◇
|■
◇ループここまで◇◇
▼ ■■■■■■■■■■習得済みを可変DB【万能ウィンドウ】へ保存
■DB読込(ユーザ): CSelf51[[並替]全データ数] = ユーザDB[タイプCSelf50[[並替]タイプ番号](-)のデータ数]
■変数操作: CSelf52[[並替]データID] = -1 + 0
■回数付きループ [ CSelf51[[並替]全データ数] ]回
|■変数操作: CSelf52[[並替]データID] += 1 + 0
|■条件分岐(文字): 【1】 CSelf5[[並替]全名前]が "|\cself[52]><||" を含む
|-◇分岐: 【1】 [ CSelf5[[並替]全名前] "|\cself[52]><||" を含む ]の場合↓
||■
|-◇上記以外
||■ループ開始へ戻る
||■
|◇分岐終了◇
|■文字列操作:CSelf5[[並替]全名前] =<の指定文字以降を切り出し> "|\cself[52]><||"
|■変数操作: CSelf34[技能コード] = CSelf5[[並替]全名前] + 0

|▼ 万能ウィンドウの書き込み先位置を+1
|■変数操作: CSelf32[万能ウィンドウ登録位置] += 1 + 0
|▼ 名前・コード・数量・付与文字列を格納
|■DB読込(ユーザ): CSelf9[一時項目名] = ユーザDB[ 技能 : CSelf34[技能コード] : 技能の名前 ] (0 : - : 0)
|■変数操作: CSelf11[一時コード番号] = CSelf30[処理対象個数] + 0
|■可変DB書込:DB[ 万能ウィンドウ一時DB : CSelf32[万能ウィンドウ登録位置] : 項目文 ] (19: - :0) = CSelf9[一時項目名]
|■可変DB書込:DB[ 万能ウィンドウ一時DB : CSelf32[万能ウィンドウ登録位置] : 項目コード ] (19: - :1) = CSelf34[技能コード]
|■DB読込(ユーザ): CSelf9[一時項目名] = ユーザDB[ 技能 : CSelf34[技能コード] : 説明 ] (0: - :1)
|■可変DB書込:DB[ 万能ウィンドウ一時DB : CSelf32[万能ウィンドウ登録位置] : 説明文 ] (19: - :6) = CSelf9[一時項目名]
|▼ 消費ポイントを格納
|■DB読込(ユーザ): CSelf10[一時変数A] = ユーザDB[ 技能 : CSelf34[技能コード] : ┗ 消費ポイント ] (0 : - : 5)
|■可変DB書込:DB[ 万能ウィンドウ一時DB:CSelf32[万能ウィンドウ登録位置]:残り個数/消費ポイント ](19: - :3)=CSelf10[一時変数A]
|▼ HP消費型なら「HP」に該当する文字列を付与
|■DB読込(ユーザ): CSelf10[一時変数A] = ユーザDB[ 技能 : CSelf34[技能コード] : ┏ 消費するものは? ] (0 : - : 4)
|■条件分岐(変数): 【1】 CSelf10[一時変数A] が 1 と同じ
|-◇分岐: 【1】 [ CSelf10[一時変数A] が 1 と同じ ]の場合↓
||■DB読込(ユーザ): CSelf8[付与HP名] = ユーザDB[ 用語設定 : 0 : [ステータス]HP名称 ] (15 : 用語基本設定 : 7)
||■可変DB書込:DB[ 万能ウィンドウ一時DB : CSelf32[万能ウィンドウ登録位置]:付与文字列[前] ](19: - :4) += CSelf8[付与HP名]
||■
|◇分岐終了◇
|▼ 選択可能かどうか判定
|■DB読込(ユーザ): CSelf12[一時変数B] = ユーザDB[ 技能 : CSelf34[技能コード] : 使用可能シーン ](0 : - : 6)
|■条件分岐(変数): 【1】 CSelf12[一時変数B] が 0 以上
|-◇分岐: 【1】 [ CSelf12[一時変数B] が 0 以上 ]の場合↓
||■条件分岐(変数): 【1】 CSelf12[一時変数B] が 1 以下
||-◇分岐: 【1】 [ CSelf12[一時変数B] が 1 以下 ]の場合↓
|||▼ 残りHP・SP判定
|||■DB読込(ユーザ): CSelf10[一時変数A] = ユーザDB[ 技能 : CSelf34[技能コード] : ┏ 消費するものは? ] (0 : - : 4)
|||■条件分岐(変数): 【1】 CSelf10[一時変数A] が 0 と同じ 【2】 CSelf10[一時変数A] が 1 と同じ
|||-◇分岐: 【1】 [ CSelf10[一時変数A] が 0 と同じ ]の場合↓
||||■DB読込(可変): CSelf12[一時変数B] = 可変DB[ 主人公ステータス : CSelf0[対象主人公ID] : SP ] (0 : - : 8)
||||■
|||-◇分岐: 【2】 [ CSelf10[一時変数A] が 1 と同じ ]の場合↓
||||■DB読込(可変): CSelf12[一時変数B] = 可変DB[ 主人公ステータス : CSelf0[対象主人公ID] : HP ] (0 : - : 6)
||||■変数操作: CSelf12[一時変数B] -= 1 + 0
||||■
|||◇分岐終了◇
|||■DB読込(ユーザ): CSelf13[一時変数C] = ユーザDB[ 技能 : CSelf34[技能コード] : ┗ 消費ポイント ] (0 : - : 5)
|||■条件分岐(変数): 【1】 CSelf12[一時変数B] が CSelf13[一時変数C] 未満
|||-◇分岐: 【1】 [ CSelf12[一時変数B] が CSelf13[一時変数C] 未満 ]の場合↓
||||▼ 必要ポイントが足りなかったらチェック終了
||||■ループ開始へ戻る
||||■
|||◇分岐終了◇
|||▼ 封印チェック
|||■DB読込(可変): CSelf12[一時変数B] = 可変DB[ ×主人公一時DB : CSelf0[対象主人公ID] : [一時]封印状態? ](17: - :16)
|||■DB読込(ユーザ): CSelf12[一時変数B] *= ユーザDB[ 技能 : CSelf34[技能コード] : 特殊技能制限の影響を… ] (0: - :21)
|||■条件分岐(変数): 【1】 CSelf12[一時変数B] が 0 以外
|||-◇分岐: 【1】 [ CSelf12[一時変数B] が 0 以外 ]の場合↓
||||■ループ開始へ戻る
||||■
|||◇分岐終了◇
|||▼ 発動アイテムチェック
|||■変数操作: CSelf14[発動アイテムチェック] = 1 + 0
|||■DB読込(ユーザ): CSelf13[一時変数C] = ユーザDB[ 技能 : CSelf34[技能コード] : 発動アイテム要する?[消費] ](0: - :20)
|||■条件分岐(変数): 【1】 CSelf13[一時変数C] が 0 以上
|||-◇分岐: 【1】 [ CSelf13[一時変数C] が 0 以上 ]の場合↓
||||■イベントの挿入[名]: CSelf13[一時変数C] = ["X[共]アイテム所持数取得"] <コモンEv 54> / CSelf13[一時変数C]
||||▼ アイテムがなかったら発動アイテムチェックを0にする
||||■条件分岐(変数): 【1】 CSelf13[一時変数C] が 0 以下
||||-◇分岐: 【1】 [ CSelf13[一時変数C] が 0 以下 ]の場合↓
|||||■変数操作: CSelf14[発動アイテムチェック] = 0 + 0
|||||■
||||◇分岐終了◇
||||■
|||◇分岐終了◇
|||■条件分岐(変数): 【1】 CSelf14[発動アイテムチェック] が 1 以上
|||-◇分岐: 【1】 [ CSelf14[発動アイテムチェック] が 1 以上 ]の場合↓
||||■DB読込(ユーザ): CSelf12[一時変数B] = ユーザDB[ 技能 : CSelf34[技能コード] : ┏ 効果対象 ] (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[ 基本システム用変数 : 万能ウィンドウ項目個数 : 0 ] (18 : 17 : 数値) = CSelf32[万能ウィンドウ登録位置]
■可変DB書込:DB[ 基本システム用変数 : 万能ウィンドウ項目個数 : 0 ] (18 : 17 : 数値) += 1
■文字列操作:CSelf5[[並替]全名前] = ""


▲トップへ戻る▲


  
■戦闘用の特殊技能選択を改造

コモンイベント[154:X[戦]技能一覧算出]を改造します。



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

新規使用のセルフ変数
番号 名前 使用内容
5 [並替]全名前 ユーザーDB[技能並び順]にある全ての名前を取得し、一覧を表示する時に使用。
6 [並替]切出 文字列の操作処理で使用。
50 [並替]タイプ番号 ユーザーDB[技能並び順]のタイプIDを取得する時に使用。
51 [並替]全データ数 ユーザーDBのデータ総数を取得する時に使用。
52 [並替]データID セルフ[8]からデータIDを取得する時に使用。



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

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



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

【イベントコード表示】
■コモンイベント「154: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
■DB読込(ユーザ): CSelf50[[並替]タイプ番号] = ユーザDB[タイプ技能並び順(18) のタイプ番号]
▼ ―――――――――――――――――――――――――――――――――――
▼ 【処理の内容】
▼ 指定したキャラの所持技能を計算し、名前一覧と選択可能状態を
▼ 可変DB「万能ウィンドウ一時DB」に格納します。

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

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

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

■可変DB書込:[タイプ 万能ウィンドウ一時DB(19) を初期化]
■変数操作: CSelf32[万能ウィンドウ登録位置] = 0 + 0
▼ ■■■■■■■■■■ユーザーDB【技能並び順】の並び順を設定
■文字列操作:CSelf5[[並替]全名前] = ""
■DB読込(ユーザ): CSelf51[[並替]全データ数] = ユーザDB[タイプCSelf50[[並替]タイプ番号](-)のデータ数]
■変数操作: CSelf52[[並替]データID] = -1 + 0
■回数付きループ [ CSelf51[[並替]全データ数] ]回
|■変数操作: CSelf52[[並替]データID] += 1 + 0
|■DB読込(ユーザ):CSelf9[一時項目名] = ユーザDB[ CSelf50[[並替]タイプ番号] : CSelf52[[並替]データID] : 0 ](-:-:×NoData)
|■DB読込(ユーザ):CSelf8[付与HP名] = ユーザDB[ CSelf50[[並替]タイプ番号] : CSelf52[[並替]データID] : 1 ](-:-:×NoData)
|■文字列操作:CSelf8[付与HP名] =<から文字列を置換> "\n" → ""
|■条件分岐(文字): 【1】 CSelf9[一時項目名]が "" と同じ 【2】 CSelf5[[並替]全名前]が ">|\cself[9]|<" を含む
|-◇分岐: 【1】 [ CSelf9[一時項目名] "" と同じ ]の場合↓
||■ループ開始へ戻る
||■
|-◇分岐: 【2】 [ CSelf5[[並替]全名前] ">|\cself[9]|<" を含む ]の場合↓
||■条件分岐(文字): 【1】 CSelf9[一時項目名]が ">|\cself[9]|<\cself[8]|" を含む
||-◇分岐: 【1】 [ CSelf9[一時項目名] ">|\cself[9]|<\cself[8]|" を含む ]の場合↓
|||■デバッグ文:【エラー】「\cself[9]」が【技能並び順】に2つ以上あります。
|||■ループ開始へ戻る
|||■
||◇分岐終了◇
||■
|◇分岐終了◇
|■文字列操作:CSelf5[[並替]全名前] += "|\cself[52]>|\cself[9]|<\cself[8]|\n"
|■
◇ループここまで◇◇
▼ ■■■■■■■■■■ユーザーDB【0:技能】に名前があるかチェック
■DB読込(ユーザ): CSelf51[[並替]全データ数] = ユーザDB[タイプ技能(0)のデータ数]
■変数操作: CSelf52[[並替]データID] = -1 + 0
■回数付きループ [ CSelf51[[並替]全データ数] ]回
|■変数操作: CSelf52[[並替]データID] += 1 + 0
|■DB読込(ユーザ): CSelf9[一時項目名] = ユーザDB[ 技能 : CSelf52[[並替]データID] : 0 ] (0 : - : 技能の名前)
|■条件分岐(文字): 【1】 CSelf9[一時項目名]が "" と同じ
|-◇分岐: 【1】 [ CSelf9[一時項目名] "" と同じ ]の場合↓
||■ループ開始へ戻る
||■
|◇分岐終了◇
|■文字列操作:CSelf6[[並替]切出] = CSelf5[[並替]全名前]
|■文字列操作:CSelf6[[並替]切出] =<から指定文字まで切り出し> ">|\cself[9]|<"
|■文字列操作:CSelf8[付与HP名] = CSelf5[[並替]全名前]
|■文字列操作:CSelf8[付与HP名] =<の指定文字以降を切り出し> "\cself[6]>|\cself[9]|<"
|■条件分岐(文字): 【1】 CSelf8[付与HP名]が ">|\cself[9]|<" を含む
|-◇分岐: 【1】 [ CSelf8[付与HP名] ">|\cself[9]|<" を含む ]の場合↓
||■DB読込(ユーザ): CSelf8[付与HP名] = ユーザDB[ 技能 : CSelf52[[並替]データID] : 1 ] (0 : - : 説明)
||■文字列操作:CSelf8[付与HP名] =<から文字列を置換> "\n" → ""
||■文字列操作:CSelf5[[並替]全名前] =<から文字列を置換> ">|\cself[9]|<\cself[8]|" → ">||\cself[52]<"
||■
|-◇上記以外
||■文字列操作:CSelf5[[並替]全名前] =<から文字列を置換> ">|\cself[9]|<" → ">||\cself[52]<"
||■
|◇分岐終了◇
|■
◇ループここまで◇◇

▼ ■■■■■■■■■■習得済みをチェック
■変数操作: CSelf30[処理対象個数] = -1 + 0
■イベントの挿入[名]: CSelf15 = ["X[戦]スロットから主人公ID取得"] <コモンEv 141> / CSelf0[対象主人公ID]
■DB読込(可変): CSelf36[現在レベル] = 可変DB[ 主人公ステータス : CSelf15 : レベル ] (0 : - : 4)
■回数付きループ [ 50 ]回
|■変数操作: CSelf30[処理対象個数] += 1 + 0
|■変数操作: CSelf31[注目位置] = CSelf30[処理対象個数] * 2
|■DB読込(可変): CSelf35[習得レベル] = 可変DB[ ┣ 技能習得Lv : CSelf15 : CSelf31[注目位置] ] (1 : - : -)
|■変数操作: CSelf31[注目位置] += 1 + 0
|■DB読込(可変): CSelf34[技能コード] = 可変DB[ ┣ 技能習得Lv : CSelf15 : CSelf31[注目位置] ] (1 : - : -)
|■条件分岐(変数): 【1】 CSelf35[習得レベル] が 0 以上
|-◇分岐: 【1】 [ CSelf35[習得レベル] が 0 以上 ]の場合↓
||■条件分岐(変数): 【1】 CSelf34[技能コード] が 0 以上
||-◇分岐: 【1】 [ CSelf34[技能コード] が 0 以上 ]の場合↓
|||▼ レベルが既定以上になっていれば万能ウィンドウに登録
|||■条件分岐(変数): 【1】 CSelf35[習得レベル] が CSelf36[現在レベル] 以下
|||-◇分岐: 【1】 [ CSelf35[習得レベル] が CSelf36[現在レベル] 以下 ]の場合↓
||||■文字列操作:CSelf5[[並替]全名前] =<から文字列を置換> ">||\cself[34]<" → "><||\cself[34]<"
||||■
|||◇分岐終了◇
|||■
||◇分岐終了◇
||■
|◇分岐終了◇
|■
◇ループここまで◇◇
▼ ■■■■■■■■■■習得済みを可変DB【万能ウィンドウ】へ保存
■DB読込(ユーザ): CSelf51[[並替]全データ数] = ユーザDB[タイプCSelf50[[並替]タイプ番号](-)のデータ数]
■変数操作: CSelf52[[並替]データID] = -1 + 0
■回数付きループ [ CSelf51[[並替]全データ数] ]回
|■変数操作: CSelf52[[並替]データID] += 1 + 0
|■条件分岐(文字): 【1】 CSelf5[[並替]全名前]が "|\cself[52]><||" を含む
|-◇分岐: 【1】 [ CSelf5[[並替]全名前] "|\cself[52]><||" を含む ]の場合↓
||■
|-◇上記以外
||■ループ開始へ戻る
||■
|◇分岐終了◇
|■文字列操作:CSelf5[[並替]全名前] =<の指定文字以降を切り出し> "|\cself[52]><||"
|■変数操作: CSelf34[技能コード] = CSelf5[[並替]全名前] + 0

|▼ 万能ウィンドウの書き込み先位置を+1
|■変数操作: CSelf32[万能ウィンドウ登録位置] += 1 + 0
|▼ 名前・コード・数量・付与文字列を格納
|■DB読込(ユーザ): CSelf9[一時項目名] = ユーザDB[ 技能 : CSelf34[技能コード] : 技能の名前 ] (0 : - : 0)
|■変数操作: CSelf11[一時コード番号] = CSelf30[処理対象個数] + 0
|■可変DB書込:DB[ 万能ウィンドウ一時DB : CSelf32[万能ウィンドウ登録位置] : 項目文 ] (19 : - : 0) = CSelf9[一時項目名]
|■可変DB書込:DB[ 万能ウィンドウ一時DB : CSelf32[万能ウィンドウ登録位置] : 項目コード ] (19 : - : 1) = CSelf34[技能コード]
|■DB読込(ユーザ): CSelf9[一時項目名] = ユーザDB[ 技能 : CSelf34[技能コード] : 説明 ] (0 : - : 1)
|■可変DB書込:DB[ 万能ウィンドウ一時DB : CSelf32[万能ウィンドウ登録位置] : 説明文 ] (19 : - : 6) = CSelf9[一時項目名]
|▼ 消費ポイントを格納
|■DB読込(ユーザ): CSelf10[一時変数A] = ユーザDB[ 技能 : CSelf34[技能コード] : ┗ 消費ポイント ] (0 : - : 5)
|■可変DB書込:DB[ 万能ウィンドウ一時DB:CSelf32[万能ウィンドウ登録位置]:残り個数/消費ポイント ](19: - :3)=CSelf10[一時変数A]
|▼ HP消費型なら「HP」に該当する文字列を付与
|■DB読込(ユーザ): CSelf10[一時変数A] = ユーザDB[ 技能 : CSelf34[技能コード] : ┏ 消費するものは? ] (0 : - : 4)
|■条件分岐(変数): 【1】 CSelf10[一時変数A] が 1 と同じ
|-◇分岐: 【1】 [ CSelf10[一時変数A] が 1 と同じ ]の場合↓
||■DB読込(ユーザ): CSelf8[付与HP名] = ユーザDB[ 用語設定 : 0 : [ステータス]HP名称 ] (15 : 用語基本設定 : 7)
||■可変DB書込:DB[ 万能ウィンドウ一時DB:CSelf32[万能ウィンドウ登録位置]:付与文字列[前] ] (19 : - : 4) += CSelf8[付与HP名]
||■
|◇分岐終了◇
|▼ 選択可能かどうか判定
|■DB読込(ユーザ): CSelf12[一時変数B] = ユーザDB[ 技能 : CSelf34[技能コード] : 使用可能シーン ] (0 : - : 6)
|▼ 戦闘時のみ使用可能
|■条件分岐(変数): 【1】 CSelf12[一時変数B] が 1 以上
|-◇分岐: 【1】 [ CSelf12[一時変数B] が 1 以上 ]の場合↓
||■条件分岐(変数): 【1】 CSelf12[一時変数B] が 2 以下
||-◇分岐: 【1】 [ CSelf12[一時変数B] が 2 以下 ]の場合↓
|||▼ ■■■条件設定、ここから
|||▼ 残りHP・SP判定

|||■DB読込(ユーザ): CSelf10[一時変数A] = ユーザDB[ 技能 : CSelf34[技能コード] : ┏ 消費するものは? ] (0 : - : 4)
|||■条件分岐(変数): 【1】 CSelf10[一時変数A] が 0 と同じ【2】 CSelf10[一時変数A] が 1 と同じ
|||-◇分岐: 【1】 [ CSelf10[一時変数A] が 0 と同じ ]の場合↓
||||■DB読込(可変): CSelf12[一時変数B] = 可変DB[ ×┏ 戦闘一時ステータス[基]:CSelf0[対象主人公ID] : SP ](10 : - : 7)
||||■
|||-◇分岐: 【2】 [ CSelf10[一時変数A] が 1 と同じ ]の場合↓
||||■DB読込(可変): CSelf12[一時変数B] = 可変DB[ ×┏ 戦闘一時ステータス[基]:CSelf0[対象主人公ID] : HP ](10 : - : 5)
||||■変数操作: CSelf12[一時変数B] -= 1 + 0
||||■
|||◇分岐終了◇
|||■DB読込(ユーザ): CSelf13[一時変数C] = ユーザDB[ 技能 : CSelf34[技能コード] : ┗ 消費ポイント ] (0 : - : 5)
|||■条件分岐(変数): 【1】 CSelf12[一時変数B] が CSelf13[一時変数C] 未満
|||-◇分岐: 【1】 [ CSelf12[一時変数B] が CSelf13[一時変数C] 未満 ]の場合↓
||||■ループ開始へ戻る
||||■
|||◇分岐終了◇
|||▼
|||▼ 発動アイテムチェック

|||■変数操作: CSelf14[発動アイテムチェック] = 1 + 0
|||■DB読込(ユーザ): CSelf13[一時変数C] = ユーザDB[ 技能 : CSelf34[技能コード] : 発動アイテム要する?[消費] ] (0 : - : 20)
|||■条件分岐(変数): 【1】 CSelf13[一時変数C] が 0 以上
|||-◇分岐: 【1】 [ CSelf13[一時変数C] が 0 以上 ]の場合↓
||||■イベントの挿入[名]: CSelf13[一時変数C] = ["X[共]アイテム所持数取得"] <コモンEv 54> / CSelf13[一時変数C]
||||▼ アイテムがなかったら発動アイテムチェックを0にする
||||■条件分岐(変数): 【1】 CSelf13[一時変数C] が 0 以下
||||-◇分岐: 【1】 [ CSelf13[一時変数C] が 0 以下 ]の場合↓
|||||■変数操作: CSelf14[発動アイテムチェック] = 0 + 0
|||||■
||||◇分岐終了◇
||||■
|||◇分岐終了◇
|||▼ 発動アイテムがあるか、またはアイテム使用しない技能の場合
|||■条件分岐(変数): 【1】 CSelf14[発動アイテムチェック] が 1 以上
|||-◇分岐: 【1】 [ CSelf14[発動アイテムチェック] が 1 以上 ]の場合↓
||||■DB読込(ユーザ): CSelf12[一時変数B] = ユーザDB[ 技能 : CSelf34[技能コード] : ┏ 効果対象 ] (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[ 基本システム用変数 : 万能ウィンドウ項目個数 : 0 ] (18 : 17 : 数値) = CSelf32[万能ウィンドウ登録位置]
■可変DB書込:DB[ 基本システム用変数 : 万能ウィンドウ項目個数 : 0 ] (18 : 17 : 数値) += 1
■文字列操作:CSelf5[[並替]全名前] = ""


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


▲トップへ戻る▲


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

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

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

▼使用できない技能を一覧の下の方に表示
メニュー画面の特殊技能一覧 戦闘中の特殊技能一覧



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





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





戦闘用の技能の一覧を設定してください。

▼設定例(戦闘中に使えない「ヒール(強化版)」を下の方へ移動)




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




以上で設定完了です。


▲トップへ戻る▲



◎関連ページ

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

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