WOLF RPGエディター(ウディタ)[3.175]/基本システム【サイトトップへ戻る】
■コモンイベント[058:X[共]技能の習得・消去]の解説
(更新:2023/04/24)


コモンイベント[058:X[共]技能の習得・消去]について解説します。


ショートカット
■コモンイベント[058:X[共]技能の習得・消去]って何?
■[入力の数/結果を返す]について
■コモンイベント呼び出しの一覧
■セルフ変数の一覧
■イベントコマンドの解説

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

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


  
■コモンイベント[058:X[共]技能の習得・消去]って何?

コモンイベント[058:X[共]技能の習得・消去]は、指定した技能の習得や消去を行う時に使います。



ウディタ利用者がイベント設定で技能の習得や消去を行う場合は、
イベントコマンド【イベントの挿入】コモンイベント[008:○特殊技能増減]を呼び出してください。

また技能を習得しているかどうかを調べる場合は、
コモンイベント[025:▲特殊技能の有無取得]を使ってください。



処理としては「習得」と「消去」に分かれています。

習得の場合は、まず可変DB[1:┣ 技能習得Lv]に設定されている全ての設定をチェックし、
習得する技能ID(ユーザーDB[0:技能]データID)が
既に可変DB[1:┣ 技能習得Lv]が設定されている場合は、
習得するレベルを「0」にして「習得した状態」にします。

習得する技能IDが可変DB[1:┣ 技能習得Lv]に設定されていない場合は、
可変DB[1:┣ 技能習得Lv]内の技能IDが設定されていない所に習得する技能IDを設定します。

消去の場合は、指定した技能IDを可変DB[1:┣ 技能習得Lv]の中から見つけて、
見つかった場合は、習得レベルと技能IDを共に「-1」にして、設定を無効化します。
なお、まだ習得レベルに達していないこれから習得する予定の技能も消去され、習得できない状態になります。


▲トップへ戻る▲


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

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

主人公ID(可変DB[0:主人公ステータス]データID)を設定。
▼数値2/コモンセルフ1「技能番号」

技能ID(ユーザーDB[0:技能]データID)を設定。
▼数値3/コモンセルフ2「習得?消去?」

「習得=0」「消去=1」を設定。


▲トップへ戻る▲


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

コモンイベント[058:X[共]技能の習得・消去]を呼び出しているコモンイベントの一覧です。
なお、コモンイベント[058:X[共]技能の習得・消去]から呼び出しているコモンイベントはありません。

コモンイベント[058:X[共]技能の習得・消去]を呼び出しているコモンイベント
コモンイベント(ID順) 処理内容
008:○特殊技能増減 技能の習得や消去を実行する時に呼び出されます。

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


▲トップへ戻る▲


  
■セルフ変数の一覧

コモンイベント[058:X[共]技能の習得・消去]のセルフ変数の一覧です。

セルフ変数
番号 名前 使用内容
0 主人公ID 主人公ID(可変DB[0:主人公ステータス]データID)を設定。
1 技能番号 技能ID(ユーザーDB[0:技能]データID)を設定。
2 習得?消去? 「習得=0」「消去=1」を設定。
10 一時変数A 可変DB[1:┣ 技能習得Lv]項目IDを設定。
11 一時変数B 可変DB[1:┣ 技能習得Lv]項目数を取得。
12 一時変数C 可変DB[1:┣ 技能習得Lv]に設定されている技能IDを取得。
15 空き欄 可変DB[1:┣ 技能習得Lv]の中で未使用の項目が見つかった場合は、
その項目IDをセルフ[15]に設定。
そして全ての可変DB[1:┣ 技能習得Lv]を調べて、
習得する技能IDの設定が無かった場合は、
このセルフ[15]の項目IDの所に習得する技能を設定します。

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


▲トップへ戻る▲


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

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

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

処理内容
4-47 ■条件分岐(変数): 【1】 CSelf2[習得?消去?] が 0 と同じ
技能を習得させる場合は分岐。
  6 ▼ 習得の場合は、すでに覚えているかどうか(または将来覚える枠があるかどうか)を調査
セルフ[10]に「-1」を設定。
可変DB[1:┣ 技能習得Lv]の項目[1→3→5…]と奇数の項目IDを設定するため、
スタートを「-1」にして、「加算2」で値を増やしていきます。
  8 ▼ 15:最初に見つかった空欄箇所を記憶する変数
セルフ[15]に「-1」を設定。
可変DB[1:┣ 技能習得Lv]の中で未使用の項目が見つかった場合は、
その項目IDがセルフ[15]に設定されます。
  11-39 ■ループ開始
可変DB[1:┣ 技能習得Lv]内の全ての設定を調べ、
習得する技能IDの設定が無いかどうかをチェックする。
    13 可変DB[1:┣ 技能習得Lv]の設定は2個1組の設定なので、
項目IDを指定するセルフ[10]の値は「加算2」で次に調べる項目IDを設定。
    13-17 ■条件分岐(変数): 【1】 CSelf10[一時変数A] が CSelf11[一時変数B] 以上
これ以上調べる項目が無い場合は分岐。
      15 習得する技能IDが可変DB[1:┣ 技能習得Lv]に無かったので、【ループ中断】を実行。
    18 ▼ もし覚えようとしている技能が見つかったらその習得レベルを0にする
    20-27 ■条件分岐(変数): 【1】 CSelf12[一時変数C] が CSelf1[技能番号] と同じ
習得する技能IDの設定が可変DB[1:┣ 技能習得Lv]の中にあった場合は分岐。
      22 セルフ[10]に「加算-1」を設定して、1つ前の項目IDにする。
      23-24 ▼ 習得レベルを0にする(習得済みにする)  そして終了
可変DB[1:┣ 技能習得Lv]内の習得する技能IDがあった項目の
習得レベル「0(習得済み)」にして、【イベント処理中断】を実行。
    28 ▼ 最初の覚える技能「なし」の欄が見つかったら記憶しておく
    29-37 ■条件分岐(変数): 【1】 CSelf12[一時変数C] が -1 以下
 ■条件分岐(変数): 【1】 CSelf15[空き欄] が -1 と同じ
可変DB[1:┣ 技能習得Lv]内に技能IDが設定されていない項目があった場合は分岐し、
さらにセルフ[15]にまだ未使用の項目IDが設定していない場合は分岐。
      33 セルフ[15]セルフ[10](未使用の項目IDがある所)を設定。
  40 ▼ 覚えようとしている技能が見つからなかったときは空欄に追加する
  41-47 ■条件分岐(変数): 【1】 CSelf15[空き欄] が 0 以上
セルフ[15]に未使用の項目IDが設定されている場合は分岐。
    43-45 セルフ[15]の未使用の項目IDに習得する技能IDを設定し、
習得レベルを「0」にして、使用可能な状態にします。
49-72 ◇分岐: 【2】 [ CSelf2[習得?消去?] が 1 と同じ ]の場合↓
技能を消去する場合は分岐。
  50 ▼ 忘却の場合は、その技能があればどんどん消去していく
  53-72 ■ループ開始
可変DB[1:┣ 技能習得Lv]内の全ての設定を調べ、
消去する技能IDの設定が無いかどうかをチェックする。
    54 可変DB[1:┣ 技能習得Lv]の設定は2個1組の設定なので、
項目IDを指定するセルフ[10]の値は「加算2」で次に調べる項目IDを設定。
    55-59 ■条件分岐(変数): 【1】 CSelf10[一時変数A] が CSelf11[一時変数B] 以上
これ以上調べる項目が無い場合は分岐。
      57 消去する技能IDが可変DB[1:┣ 技能習得Lv]に無かったので、【ループ中断】を実行。
    60 ▼ もし忘れようとしている技能が見つかったら消去
    62-70 ■条件分岐(変数): 【1】 CSelf12[一時変数C] が CSelf1[技能番号] と同じ
可変DB[1:┣ 技能習得Lv]内に消去する技能IDの設定があった場合は分岐。
      64-68 ▼ 見つけた技能と習得レベルを-1にする
消去する技能IDが見つかった項目IDの技能IDを「-1」にして、
1つ前の項目IDにある習得レベルに「-1」を設定。


▲トップへ戻る▲



◎関連ページ

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

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