WOLF RPGエディター(ウディタ)[2.24]/アイテム改造【サイトトップへ戻る】
■特定の主人公のみ回復アイテムが使用可能(装備品の文字列)
(更新:2023/02/07)


装備中の装備品の名前説明文に特定の文字列が設定されている場合のみ、回復アイテムが使用できるように改造します。

▼特定の文字列が設定されている装備品を装備している主人公のみを回復


例えば回復対象となるキーワードが「」の場合は「鉄」の文字が装備品の名前か説明文に設定されている
「鉄の杖」や「アイアンシールド(説明文「鉄で作られた盾。」)」などを装備している主人公が回復対象になります。



回復アイテムを使用する処理は「メニュー画面」と「戦闘中」に分かれているので、
両方に対応させる場合は、両方のコモンイベントを改造する必要があります。

なお、メニュー画面の場合は一時的に装備状態を変える事で回復する事ができるため、
メニュー画面ではあまり効果がありません。

例えば回復アイテムの使用可能な場面を「戦闘時だけ」にしたり、
回復対象の装備品を装備すると最大HP・最大SPが減ってしまったり、
回復対象の装備品を装備すると外せなくなるようにするなどの設定を行うと、
メニュー画面で一時的に装備状態を変えて回復する方法が使えなくなります。

ショートカット
■データベースの設定
■メニュー画面用のコモンイベントを改造
■戦闘用のコモンイベントを改造

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

当ページと同様の処理方法で「装備タイプ」を使った処理方法もあります。
【特定の主人公のみ回復アイテムが使用可能(装備タイプ)を見る】


  
■データベースの設定

ユーザーDB[2:アイテム][タイプの内容設定]をクリックしてタイプの設定画面を表示し、
未使用の項目で[文字列]をクリックして、項目名に「装備品キーワード」を設定。



画面下のOKをクリックしてください。



回復アイテムに「装備品キーワード」を設定してください。



キーワードは「これが回復対象」とすぐに判るようなキーワードが良いでしょう。

ジャンル キーワード見本
材質・色 「木製」「革」「鉄」「銀」「赤」「黒」
種類・特徴 「弓」「腕輪」「左手」「減少」(例:最大HPが20減少)
耐性・状態変化 「炎属性」「毒」(例:毒攻撃、毒耐性)
冠言葉 「聖なる」「呪われた」「炎の」「ドワーフ製の」

何もキーワードを設定しない場合は、無条件で回復アイテムが使えるようになります。

なお、回復アイテム以外に「装備品キーワード」を設定しても意味がないため、
回復アイテム以外は空白のままにしてください。



ユーザーDB[3:武器][4:防具]の設定にて、回復アイテムが使用できるキーワードを設定してください。

キーワードの設定は「名前」か「説明文」のどちらかに設定すれば、その装備品が回復対象になります。




▲トップへ戻る▲


  
■メニュー画面用のコモンイベントを改造

コモンイベント[118:X[移]アイテム使用効果処理]を改造します。

このコモンイベントの改造では、回復アイテムを使用する主人公を選択する処理にて、
使用する事ができない主人公を選択すると「この主人公は使用できません。」と表示し、
再び主人公の選択処理に戻ります。

「味方全員」の場合は、パーティ内に一人でも使用可能な主人公がいる場合は回復アイテムを使用し、
回復可能な主人公のみを回復します。



コモンイベント[118:X[移]アイテム使用効果処理]の「セルフ変数使用状況」に以下のセルフ変数の名前を設定してください。

番号 名前
5 キーワード取得
6 文字列取得
50 項目番号
51 装備品ID
52 パーティ並び順



84行目に以下のイベントを追加。
【イベントコード表示】
|■DB読込(ユーザ): CSelf5[キーワード取得] =
          ユーザDB[ アイテム : CSelf30[アイテム番号] : 装備品キーワード ] (2 : - : 21)



105行目に以下のイベントを追加。
【イベントコード表示】
■条件分岐(文字): 【1】 CSelf5[キーワード取得]が "" 以外
-◇分岐: 【1】 [ CSelf5[キーワード取得] "" 以外 ]の場合↓
|■イベントの挿入[名]: CSelf14[一時キャラID] =
            ["X[移]選択位置主人公ID取得"] <コモンEv 105> / CSelf11[一時変数B]
|■変数操作: CSelf50[項目番号] = 28 + 0
|■回数付きループ [ 9 ]回
||■DB読込(可変): CSelf51[装備品ID] =
          可変DB[ 主人公ステータス : CSelf14[一時キャラID] : CSelf50[項目番号] ] (0 : - : -)
||■条件分岐(変数): 【1】 CSelf51[装備品ID] が 30000 以上 【2】 CSelf51[装備品ID] が 20000 以上
||-◇分岐: 【1】 [ CSelf51[装備品ID] が 30000 以上 ]の場合↓
|||■変数操作: CSelf51[装備品ID] %= 10000 + 0
|||■文字列操作:CSelf6[文字列取得] = "\udb[4:\cself[51]:0]\n\udb[4:\cself[51]:1]"
|||■
||-◇分岐: 【2】 [ CSelf51[装備品ID] が 20000 以上 ]の場合↓
|||■変数操作: CSelf51[装備品ID] %= 10000 + 0
|||■文字列操作:CSelf6[文字列取得] = "\udb[3:\cself[51]:0]\n\udb[3:\cself[51]:1]"
|||■
||-◇上記以外
|||■文字列操作:CSelf6[文字列取得] = ""
|||■
||◇分岐終了◇
||■条件分岐(文字): 【1】 CSelf6[文字列取得]が CSelf5[キーワード取得] を含む
||-◇分岐: 【1】 [ CSelf6[文字列取得] CSelf5[キーワード取得] を含む ]の場合↓
|||■ループ中断
|||■
||◇分岐終了◇
||■変数操作: CSelf50[項目番号] += 1 + 0
||■
|◇ループここまで◇◇
|■条件分岐(変数): 【1】 CSelf50[項目番号] が 36 以上
|-◇分岐: 【1】 [ CSelf50[項目番号] が 36 以上 ]の場合↓
||■文章:この主人公は使用できません。
||●ラベル「回復アイテム処理2」に飛ぶ >>>>>>>>>>>>>>>>>>>>>>>>>
||■
|◇分岐終了◇
|■
◇分岐終了◇



159行目に以下のイベントを追加。
【イベントコード表示】
■条件分岐(文字): 【1】 CSelf5[キーワード取得]が "" 以外
-◇分岐: 【1】 [ CSelf5[キーワード取得] "" 以外 ]の場合↓
|■変数操作: CSelf52[パーティ並び順] = 0 + 0
|■回数付きループ [ 可変DB(18,4,0)[現在パーティー人数 数値 ] ]回
|■イベントの挿入[名]: CSelf14[一時キャラID] =
            ["X[移]選択位置主人公ID取得"] <コモンEv 105> / CSelf11[一時変数B]

||■変数操作: CSelf50[項目番号] = 28 + 0
||■回数付きループ [ 9 ]回
|||■DB読込(可変): CSelf51[装備品ID] =
          可変DB[ 主人公ステータス : CSelf14[一時キャラID] : CSelf50[項目番号] ] (0 : - : -)
|||■条件分岐(変数): 【1】 CSelf51[装備品ID] が 30000 以上 【2】 CSelf51[装備品ID] が 20000 以上
|||-◇分岐: 【1】 [ CSelf51[装備品ID] が 30000 以上 ]の場合↓
||||■変数操作: CSelf51[装備品ID] %= 10000 + 0
||||■文字列操作:CSelf6[文字列取得] = "\udb[4:\cself[51]:0]\n\udb[4:\cself[51]:1]"
||||■
|||-◇分岐: 【2】 [ CSelf51[装備品ID] が 20000 以上 ]の場合↓
||||■変数操作: CSelf51[装備品ID] %= 10000 + 0
||||■文字列操作:CSelf6[文字列取得] = "\udb[3:\cself[51]:0]\n\udb[3:\cself[51]:1]"
||||■
|||-◇上記以外
||||■文字列操作:CSelf6[文字列取得] = ""
||||■
|||◇分岐終了◇
|||■条件分岐(文字): 【1】 CSelf6[文字列取得]が CSelf5[キーワード取得] を含む
|||-◇分岐: 【1】 [ CSelf6[文字列取得] CSelf5[キーワード取得] を含む ]の場合↓
||||■ループ中断
||||■
|||◇分岐終了◇
|||■変数操作: CSelf50[項目番号] += 1 + 0
|||■
||◇ループここまで◇◇
||■条件分岐(変数): 【1】 CSelf50[項目番号] が 35 以下
||-◇分岐: 【1】 [ CSelf50[項目番号] が 35 以下 ]の場合↓
|||■ループ中断
|||■
||◇分岐終了◇
||■変数操作: CSelf52[パーティ並び順] += 1 + 0
||■
|◇ループここまで◇◇
|■条件分岐(変数): 【1】 CSelf50[項目番号] が 36 以上
|-◇分岐: 【1】 [ CSelf50[項目番号] が 36 以上 ]の場合↓
||■文章:使用できる主人公がいません。
||●ラベル「回復アイテム処理2」に飛ぶ >>>>>>>>>>>>>>>>>>>>>>>>>
||■
|◇分岐終了◇
|■
◇分岐終了◇



230行目に以下のイベントを追加。
【イベントコード表示】
■条件分岐(文字): 【1】 CSelf5[キーワード取得]が "" 以外
-◇分岐: 【1】 [ CSelf5[キーワード取得] "" 以外 ]の場合↓
|■変数操作: CSelf50[項目番号] = 28 + 0
|■回数付きループ [ 9 ]回
||■DB読込(可変): CSelf51[装備品ID] =
          可変DB[ 主人公ステータス : CSelf14[一時キャラID] : CSelf50[項目番号] ] (0 : - : -)
||■条件分岐(変数): 【1】 CSelf51[装備品ID] が 30000 以上 【2】 CSelf51[装備品ID] が 20000 以上
||-◇分岐: 【1】 [ CSelf51[装備品ID] が 30000 以上 ]の場合↓
|||■変数操作: CSelf51[装備品ID] %= 10000 + 0
|||■文字列操作:CSelf6[文字列取得] = "\udb[4:\cself[51]:0]\n\udb[4:\cself[51]:1]"
|||■
||-◇分岐: 【2】 [ CSelf51[装備品ID] が 20000 以上 ]の場合↓
|||■変数操作: CSelf51[装備品ID] %= 10000 + 0
|||■文字列操作:CSelf6[文字列取得] = "\udb[3:\cself[51]:0]\n\udb[3:\cself[51]:1]"
|||■
||-◇上記以外
|||■文字列操作:CSelf6[文字列取得] = ""
|||■
||◇分岐終了◇
||■条件分岐(文字): 【1】 CSelf6[文字列取得]が CSelf5[キーワード取得] を含む
||-◇分岐: 【1】 [ CSelf6[文字列取得] CSelf5[キーワード取得] を含む ]の場合↓
|||■ループ中断
|||■
||◇分岐終了◇
||■変数操作: CSelf50[項目番号] += 1 + 0
||■
|◇ループここまで◇◇
|■条件分岐(変数): 【1】 CSelf50[項目番号] が 36 以上
|-◇分岐: 【1】 [ CSelf50[項目番号] が 36 以上 ]の場合↓
||■ループ開始へ戻る
||■
|◇分岐終了◇
|■
◇分岐終了◇


以上で設定完了です。


▲トップへ戻る▲


  
■戦闘用のコモンイベントを改造

戦闘用のコモンイベントは、
コモンイベント[158:X[戦]アイテム選択実行]と、
コモンイベント[164:X[戦]行動実行結果算出]の2つを改造する必要があります。



▼コモンイベント[158:X[戦]アイテム選択実行]を改造

このコモンイベントの改造では、回復アイテムを使用する主人公を選択する処理にて、
使用する事ができない主人公を選択すると「この主人公は使用できません。」と表示し、
再び主人公の選択処理に戻ります。

「味方全員」の場合は、パーティ内に一人でも使用可能な主人公がいる場合は回復アイテムを使用し、
回復可能な主人公のみを回復します。



コモンイベント[158:X[戦]アイテム選択実行]の「セルフ変数使用状況」に以下のセルフ変数の名前を設定してください。

番号 名前
5 キーワード取得
6 文字列取得
50 項目番号
51 装備品ID
52 パーティ並び順



61行目に以下のイベントを追加。
【イベントコード表示】
■DB読込(ユーザ): CSelf5[キーワード取得] = ユーザDB[ アイテム : CSelf30 : 装備品キーワード ] (2 : - : 21)
●ラベル地点「選択やり直し」 <<<<<<<<<<<<<<<<<<<<<<<<★



70行目に以下のイベントを追加。
【イベントコード表示】
●ラベル地点「使用可能確認」 <<<<<<<<<<<<<<<<<<<<<<<<★
■条件分岐(文字): 【1】 CSelf5[キーワード取得]が "" 以外
-◇分岐: 【1】 [ CSelf5[キーワード取得] "" 以外 ]の場合↓
|■イベントの挿入[名]: CSelf14[主人公ID] = ["X[戦]スロットから主人公ID取得"] <コモンEv 141> / CSelf39[使用対象]
|■変数操作: CSelf50[項目番号] = 28 + 0
|■回数付きループ [ 9 ]回
||■DB読込(可変): CSelf51[装備品ID] =
          可変DB[ 主人公ステータス : CSelf14[主人公ID] : CSelf50[項目番号] ] (0 : - : -)
||■条件分岐(変数): 【1】 CSelf51[装備品ID] が 30000 以上 【2】 CSelf51[装備品ID] が 20000 以上
||-◇分岐: 【1】 [ CSelf51[装備品ID] が 30000 以上 ]の場合↓
|||■変数操作: CSelf51[装備品ID] %= 10000 + 0
|||■文字列操作:CSelf6[文字列取得] = "\udb[4:\cself[51]:0]\n\udb[4:\cself[51]:1]"
|||■
||-◇分岐: 【2】 [ CSelf51[装備品ID] が 20000 以上 ]の場合↓
|||■変数操作: CSelf51[装備品ID] %= 10000 + 0
|||■文字列操作:CSelf6[文字列取得] = "\udb[3:\cself[51]:0]\n\udb[3:\cself[51]:1]"
|||■
||-◇上記以外
|||■文字列操作:CSelf6[文字列取得] = ""
|||■
||◇分岐終了◇
||■条件分岐(文字): 【1】 CSelf6[文字列取得]が CSelf5[キーワード取得] を含む
||-◇分岐: 【1】 [ CSelf6[文字列取得] CSelf5[キーワード取得] を含む ]の場合↓
|||■ループ中断
|||■
||◇分岐終了◇
||■変数操作: CSelf50[項目番号] += 1 + 0
||■
|◇ループここまで◇◇
|■条件分岐(変数): 【1】 CSelf50[項目番号] が 36 以上
|-◇分岐: 【1】 [ CSelf50[項目番号] が 36 以上 ]の場合↓
||■文字列操作:CSelf6[文字列取得] = "この主人公は使用できません。"
||■イベントの挿入[名]: ["X[戦]戦闘メッセージ表示"] <コモンEv 182> / 0:表示→自動削除 / CSelf6[文字列取得]
||■イベントの挿入[名]: ["X[戦]戦闘メッセージ表示"] <コモンEv 182> / -1:消去(瞬間) / CSelf6[文字列取得]

||■変数操作: CSelf0[発動者スロット] = CSelf39[使用対象] + 0
||■条件分岐(変数): 【1】 CSelf41[アイテム 効果対象] が 1 と同じ
||-◇分岐: 【1】 [ CSelf41[アイテム 効果対象] が 1 と同じ ]の場合↓
|||●ラベル「アイテム開始」に飛ぶ >>>>>>>>>>>>>>>>>>>>>>>>>
|||■
||◇分岐終了◇
||●ラベル「選択やり直し」に飛ぶ >>>>>>>>>>>>>>>>>>>>>>>>>
||■
|◇分岐終了◇
|■
◇分岐終了◇



118行目に以下のイベントを追加。
【イベントコード表示】
●ラベル「使用可能確認」に飛ぶ >>>>>>>>>>>>>>>>>>>>>>>>>



128行目に以下のイベントを追加。
【イベントコード表示】
■条件分岐(文字): 【1】 CSelf5[キーワード取得]が "" 以外
-◇分岐: 【1】 [ CSelf5[キーワード取得] "" 以外 ]の場合↓
|■変数操作: CSelf52[パーティ並び順] = 0 + 0
|■回数付きループ [ 可変DB(18,4,0)[現在パーティー人数 数値 ] ]回
||■イベントの挿入[名]: CSelf14[主人公ID] =
             ["X[戦]スロットから主人公ID取得"] <コモンEv 141> / CSelf52[パーティ並び順]

||■変数操作: CSelf50[項目番号] = 28 + 0
||■回数付きループ [ 9 ]回
|||■DB読込(可変): CSelf51[装備品ID] =
          可変DB[ 主人公ステータス : CSelf14[主人公ID] : CSelf50[項目番号] ] (0 : - : -)
|||■条件分岐(変数): 【1】 CSelf51[装備品ID] が 30000 以上 【2】 CSelf51[装備品ID] が 20000 以上
|||-◇分岐: 【1】 [ CSelf51[装備品ID] が 30000 以上 ]の場合↓
||||■変数操作: CSelf51[装備品ID] %= 10000 + 0
||||■文字列操作:CSelf6[文字列取得] = "\udb[4:\cself[51]:0]\n\udb[4:\cself[51]:1]"
||||■
|||-◇分岐: 【2】 [ CSelf51[装備品ID] が 20000 以上 ]の場合↓
||||■変数操作: CSelf51[装備品ID] %= 10000 + 0
||||■文字列操作:CSelf6[文字列取得] = "\udb[3:\cself[51]:0]\n\udb[3:\cself[51]:1]"
||||■
|||-◇上記以外
||||■文字列操作:CSelf6[文字列取得] = ""
||||■
|||◇分岐終了◇
|||■条件分岐(文字): 【1】 CSelf6[文字列取得]が CSelf5[キーワード取得] を含む
|||-◇分岐: 【1】 [ CSelf6[文字列取得] CSelf5[キーワード取得] を含む ]の場合↓
||||■ループ中断
||||■
|||◇分岐終了◇
|||■変数操作: CSelf50[項目番号] += 1 + 0
|||■
||◇ループここまで◇◇
||■条件分岐(変数): 【1】 CSelf50[項目番号] が 35 以下
||-◇分岐: 【1】 [ CSelf50[項目番号] が 35 以下 ]の場合↓
|||■ループ中断
|||■
||◇分岐終了◇
||■変数操作: CSelf52[パーティ並び順] += 1 + 0
||■
|◇ループここまで◇◇
|■条件分岐(変数): 【1】 CSelf50[項目番号] が 36 以上
|-◇分岐: 【1】 [ CSelf50[項目番号] が 36 以上 ]の場合↓
||■文字列操作:CSelf6[文字列取得] = "使用できる主人公がいません。"
||■イベントの挿入[名]: ["X[戦]戦闘メッセージ表示"] <コモンEv 182> / 0:表示→自動削除 / CSelf6[文字列取得]
||■イベントの挿入[名]: ["X[戦]戦闘メッセージ表示"] <コモンEv 182> / -1:消去(瞬間) / CSelf6[文字列取得]

||●ラベル「選択やり直し」に飛ぶ >>>>>>>>>>>>>>>>>>>>>>>>>
||■
|◇分岐終了◇
|■
◇分岐終了◇



▼コモンイベント[164:X[戦]行動実行結果算出]を改造

このコモンイベントでは、「味方全員」の効果がある回復アイテムを使用した際、
使用可能な主人公のみに回復処理が実行するように改造します。

なお、「味方一人」や「自分自身」などの単体の処理に関しては、
主人公を選択するコモンイベント[158:X[戦]アイテム選択実行]の処理にて使用できるかどうかを判断しているため、
このコモンイベントには使用可能であるかどうかを調べる処理は設定しません。



コモンイベント[164:X[戦]行動実行結果算出]の「セルフ変数使用状況」に以下のセルフ変数の名前を設定してください。

番号 名前
5 キーワード取得
6 文字列取得
50 項目番号
51 装備品ID
52 主人公ID



58行目に以下のイベントを追加。
【イベントコード表示】
●ラベル地点「次の人」 <<<<<<<<<<<<<<<<<<<<<<<<★



81行目に以下のイベントを追加。
【イベントコード表示】
■条件分岐(変数): 【1】 CSelf23[次対象] が 0 以上
-◇分岐: 【1】 [ CSelf23[次対象] が 0 以上 ]の場合↓
|■DB読込(ユーザ): CSelf5[キーワード取得] =
         ユーザDB[ アイテム : CSelf12[一時変数C] : 装備品キーワード ] (2 : - : 21)
|■条件分岐(文字): 【1】 CSelf5[キーワード取得]が "" 以外
|-◇分岐: 【1】 [ CSelf5[キーワード取得] "" 以外 ]の場合↓
|■イベントの挿入[名]: CSelf52[主人公ID] =
            ["X[戦]スロットから主人公ID取得"] <コモンEv 141> / CSelf23[次対象]

||■変数操作: CSelf50[項目番号] = 28 + 0
||■回数付きループ [ 9 ]回
|||■DB読込(可変): CSelf51[装備品ID] =
          可変DB[ 主人公ステータス : CSelf52[主人公ID] : CSelf50[項目番号] ] (0 : - : -)
|||■条件分岐(変数): 【1】 CSelf51[装備品ID] が 30000 以上 【2】 CSelf51[装備品ID] が 20000 以上
|||-◇分岐: 【1】 [ CSelf51[装備品ID] が 30000 以上 ]の場合↓
||||■変数操作: CSelf51[装備品ID] %= 10000 + 0
||||■文字列操作:CSelf6[文字列取得] = "\udb[4:\cself[51]:0]\n\udb[4:\cself[51]:1]"
||||■
|||-◇分岐: 【2】 [ CSelf51[装備品ID] が 20000 以上 ]の場合↓
||||■変数操作: CSelf51[装備品ID] %= 10000 + 0
||||■文字列操作:CSelf6[文字列取得] = "\udb[3:\cself[51]:0]\n\udb[3:\cself[51]:1]"
||||■
|||-◇上記以外
||||■文字列操作:CSelf6[文字列取得] = ""
||||■
|||◇分岐終了◇
|||■条件分岐(文字): 【1】 CSelf6[文字列取得]が CSelf5[キーワード取得] を含む
|||-◇分岐: 【1】 [ CSelf6[文字列取得] CSelf5[キーワード取得] を含む ]の場合↓
||||■ループ中断
||||■
|||◇分岐終了◇
|||■変数操作: CSelf50[項目番号] += 1 + 0
|||■
||◇ループここまで◇◇
||■条件分岐(変数): 【1】 CSelf50[項目番号] が 36 以上
||-◇分岐: 【1】 [ CSelf50[項目番号] が 36 以上 ]の場合↓
|||●ラベル「次の人」に飛ぶ >>>>>>>>>>>>>>>>>>>>>>>>>
|||■
||◇分岐終了◇
||■
|◇分岐終了◇
|■
◇分岐終了◇


以上で設定完了です。


▲トップへ戻る▲



◎関連ページ

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

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