WOLF RPGエディター(ウディタ)[3.337]/基本システム【サイトトップへ戻る】
■コモンイベント[074:X[移]レベルアップ処理]の解説
(更新:2024/05/18)


コモンイベント[074:X[移]レベルアップ処理]について解説します。


ショートカット
■コモンイベント[074:X[移]レベルアップ処理]って何?
■こうゆう時にこのコモンイベントを改造する
■[入力の数/結果を返す]について
■コモンイベント呼び出しの一覧
■セルフ変数の一覧
■イベントコマンドの解説

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

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


  
■コモンイベント[074:X[移]レベルアップ処理]って何?

主人公のレベルを増減する時に、このコモンイベント[074:X[移]レベルアップ処理]が呼び出されます。

戦闘終了時に経験値の獲得によるレベルアップ時に使用される他、
コモンイベント[007:○能力値増減]でレベルの増減や経験値の増加によるレベルアップ時に使用されます。

このコモンイベント[074:X[移]レベルアップ処理]は、指定されたレベルを増減す処理しかありませんので、
例えば経験値のレベルアップ判定などはありません。



レベルアップだけでなく、レベルダウンにも対応していますが、
レベルを上げたり下げたりを繰り返すと、「次Lvまで」の数値が変わってくる問題が発生します。

初期状態(Lv5) 「Lv5→Lv1→Lv5」と処理した場合
【詳しい説明を見る】


▲トップへ戻る▲


  
■こうゆう時にこのコモンイベントを改造する

以下のような改造を行いたい時にこのコモンイベントを改造します。

◆レベルアップ時にHP・SPを全回復させたい。

◆特殊技能の習得時の「〜を習得!」の文字を変えたい。

◆レベルのアップダウンで「次Lvまで」の数値が変わるバグを直したい。


▲トップへ戻る▲


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

コモンイベント[074:X[移]レベルアップ処理][入力の数/結果を返す]の設定は、
基本システムが必要に応じて自動的に行いますので、基本システムの利用者は何も設定する必要はありません。

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

処理対象の主人公を可変DB[0:主人公ステータス]データIDで設定。
▼数値2/コモンセルフ1「レベル増減」

増減させるレベルの量を設定。
▼数値3/コモンセルフ2「オプション」

増減したパラメータの情報を保存する
可変DB[18:基本システム用変数]データ[78〜90]を初期化するかどうかを設定。
[0]LvUP+パラメータ変化分初期化 可変DB[18:基本システム用変数]データ[78〜90]を初期化
[1]LvUP+パラメータ変化分保持 初期化なし
▼結果を返す「実際のLv変化」(セルフ変数[99:実レベル変化])

増減したレベルの量を呼び出し元に返します。
1以上 数値分だけレベルを増加
-1以下 数値分だけレベルを減少
0 レベルの増減は行っていません


▲トップへ戻る▲


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

コモンイベント[074:X[移]レベルアップ処理]を呼び出しているコモンイベント、
またはコモンイベント[074:X[移]レベルアップ処理]から呼び出しているコモンイベントの一覧です。

コモンイベント[074:X[移]レベルアップ処理]を呼び出しているコモンイベント
コモンイベント(ID順) 処理内容
070:X[移]パラメータ増減 レベルの増減や経験値の増加によるレベルアップ時に呼び出されます。
戦闘終了時の経験値獲得によるレベルアップの処理も、
このコモンイベント[070:X[移]パラメータ増減]で処理しています。

コモンイベント[074:X[移]レベルアップ処理]から呼び出しているコモンイベント
コモンイベント(ID順) 処理内容
070:X[移]パラメータ増減 攻撃力や最大HPなどを増減する時に呼び出します。

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


▲トップへ戻る▲


  
■セルフ変数の一覧

コモンイベント[074:X[移]レベルアップ処理]のセルフ変数の一覧です。

セルフ変数
番号 名前 使用内容
0 主人公データID 処理対象の主人公ID(可変DB[0:主人公ステータス]データID)を設定。
1 レベル増減 増減させるレベルの量を設定。
レベルのアップダウンの処理を行うループ処理のループ回数の設定でも使用。
2 オプション
0 可変DB[18:基本システム用変数]データ[78〜90]を初期化
1 初期化なし
9 表示メッセージ文 習得する技能の名前をユーザーDB[0:技能]から取得する時に使用。
10 一時変数A 可変DB[1:┣ 技能習得Lv]で習得する特殊技能が無いかどうかを調べる時に使用。
このセルフ[10]では「加算1」を実行し、
実際に可変DB[1:┣ 技能習得Lv]の項目IDを指定して情報を取得する時には、
セルフ[10]の値を「乗算2」にした値をセルフ[11]に設定して情報を取得します。
11 一時変数B セルフ[10]の値を「乗算2」にした値を設定し、
可変DB[1:┣ 技能習得Lv]の情報を取得する時に使用。
例えばセルフ[10]の値を「6」の場合は、
セルフ[10]×2=セルフ[11]」の設定により、
セルフ[11]には「12」が設定され、項目ID[12]の情報を取得します。
20 レベルアップ(1)ダウン(-1) レベルアップの場合は「1」を設定し、
レベルダウンの場合は「-1」を設定します。
ループ処理ではこのセルフ[20]を値でレベルのアップダウンを設定するため、
同じループ処理でレベルのアップダウン両方に対応する事ができます。
レベルの増減時のパラメータの増減は、
このセルフ[20]を乗算したパラメータが設定されます。
例えばレベルアップ時に攻撃力が「3」上がる場合は、
レベルアップの場合は「3×セルフ[20](1)=3」となって攻撃力が3増え、
レベルダウンの場合は「3×セルフ[20](-1)=-3」となって攻撃力が3減ります。
21 成長率は1/10? ユーザーDB[17:システム設定]項目[23:成長時パラメータを……]を取得。
0 可変DB[0:主人公ステータス]項目[18〜27]に設定されている
レベルアップ時のパラメータの増減をそのまま設定します。
1 可変DB[0:主人公ステータス]項目[18:〜27]に設定された値に、
乱数[0〜9]を加算した上で「10」で割った数値が能力値の増減量になります。
例えば、最大HPの増加量が「25」の場合は、
(25+0〜9)÷10」の計算により、増減量は「2」か「3」になります。
乱数が設定されるため、レベルを1増やして、
そのあとにレベルを1減らした場合は、元の能力値に戻らない事があります。
30 対象のレベル 可変DB[0:主人公ステータス]項目[4:レベル]を取得。
31 限界レベル 可変DB[0:主人公ステータス]項目[5:限界レベル]を取得。
32 主人公ID 可変DB[18:基本システム用変数]データ[78〜90]に保存しているデータの
主人公IDを取得。
可変DB[18:基本システム用変数]データ[78〜90]にデータを保存している
主人公IDと現在処理中の主人公IDが異なる場合は、
可変DB[18:基本システム用変数]データ[78〜90]を初期化。
33 MaxHP成長度 可変DB[0:主人公ステータス]項目[18:[成長]最大HP増加 /1Lv]を取得。
34 MaxSP成長度 可変DB[0:主人公ステータス]項目[19:[成長]最大SP増加 /1Lv]を取得。
35 攻撃力成長度 可変DB[0:主人公ステータス]項目[20:[成長]攻撃力増加 /1Lv]を取得。
36 防御力成長度 可変DB[0:主人公ステータス]項目[21:[成長]防御力増加 /1Lv]を取得。
37 精神攻撃成長度 可変DB[0:主人公ステータス]項目[22:[成長]精神攻撃増加 /1Lv]を取得。
38 精神防御成長度 可変DB[0:主人公ステータス]項目[23:[成長]精神防御増加 /1Lv]を取得。
39 敏捷度成長度 可変DB[0:主人公ステータス]項目[24:[成長]敏捷性増加 /1Lv]を取得。
40 命中率成長度 可変DB[0:主人公ステータス]項目[25:[成長]命中率増加 /1Lv]を取得。
41 回避率成長度 可変DB[0:主人公ステータス]項目[26:[成長]回避率増加 /1Lv]を取得。
42 クリティカル率成長度 可変DB[0:主人公ステータス]項目[27:[成長]クリティカル増加 /1Lv]を取得。
43 次必要経験値 可変DB[0:主人公ステータス]項目[55:現Lvの必要経験値]を取得。
44 必要経験値増加率[%] 可変DB[0:主人公ステータス]項目[56:必要経験値増加率[%]]を取得。
45 必要経験値増加率[固定値] 可変DB[0:主人公ステータス]項目[57:必要経験値増加[固定値]]を取得。
47 技能習得レベル 可変DB[1:┣ 技能習得Lv]から習得するレベルを取得。
48 覚える技能 可変DB[1:┣ 技能習得Lv]から習得する特殊技能の
データID(ユーザーDB[0:技能]データID)を取得。
99 実レベル変化 [結果を返す]で使用。
増減したレベルの量を設定。
現在のレベルが「10」の時に、
セルフ[1:レベル増減]が「5」の場合は、
このセルフ[99]は「5」になります。
現在のレベルが「28」で限界レベルが「30」の時に、
セルフ[1:レベル増減]が「5」の場合は、
レベルは「2」だけ上がるので、このセルフ[99]は「2」になります。
現在のレベルが「30」で限界レベルが「30」の時に、
セルフ[1:レベル増減]が「1以上」の場合、
または現在のレベルが「1」で、
セルフ[1:レベル増減]が「-1以下」の場合、
レベルの増減がありませんので、このセルフ[99]は「0」になります。

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


▲トップへ戻る▲


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

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

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

処理内容
8-27 ■条件分岐(変数): 【1】 CSelf2[オプション] が 0 と同じ
可変DB[18:基本システム用変数]データ[78〜90]を初期化する場合は分岐。
可変DB[18:基本システム用変数]データ[78〜90]にデータを保存している主人公IDと
現在処理中の主人公IDが異なる場合は、ラベル「変化値リセット」にジャンプしてきて、
可変DB[18:基本システム用変数]データ[78〜90]を初期化。
28-33 ▼ レベル増減がなければ終了
レベルの増減設定が無い場合は、ここで処理を終了させる。
37-44 ▼ レベルアップかレベルダウンか
レベルダウンの場合は、セルフ[1]の値をループ回数の設定で使うため、
マイナス値をプラス値に変えます。
47-204 ■回数付きループ [ CSelf1[レベル増減] ]回
レベルの増減量の回数だけループを実行します。
  48-67 ▼ すでに最大レベルなら成長なし
レベルアップの場合は既に限界レベルの時に、
レベルダウンの場合は既にレベル「1」の時に処理を中断します。
  71-85 ▼ 各種成長率取得
可変DB[0:主人公ステータス]項目[18〜27]に設定されている
レベルアップ時のパラメータの増減値をセルフ[33〜45]に取得。
  87-100 ▼ 主人公IDをチェック(もし主人公IDが変わっていた場合はリセット)
可変DB[18:基本システム用変数]データ[78〜90]にデータを保存している主人公IDと
現在処理中の主人公IDが異なる場合は、ラベル「変化値リセット」にジャンプして、
可変DB[18:基本システム用変数]データ[78〜90]を初期化。
  102-114 ▼ 変化値を加算+成長処理を実行
ユーザーDB[17:システム設定]項目[23:成長時パラメータを……]にて、
[1]数値の1/10だけ上昇させる[確率]」を設定している場合は、
成長度のパラメータ(セルフ[33〜42])に「乱数0〜9」を設定した上で「除算10」を実行。
なお、「乱数0〜9」はパラメータごとに異なる乱数が設定されます。
  115-116 ▼ レベルダウンなら-1倍
レベルダウンの場合は、成長度のパラメータ(セルフ[33〜42])をマイナス値に変更。
  117-126 増減するパラメータごとにコモンイベント[070:X[移]パラメータ増減]を呼び出し、
1つずつパラメータを変えていく。
  127-139 ▼ 能力値アップ履歴を保存
増減したパラメータの内容を可変DB[18:基本システム用変数]データ[78〜89]に保存。
データ[78〜89]に保存したデータはあとでレベルアップの詳細表示の時に使用します。
  141-144 ▼ レベルを+1 & 次経験値を算出
可変DB[0:主人公ステータス]項目[4:レベル]を増減し、
現在のレベルをセルフ[30]に出力。
  146-158 ■条件分岐(変数): 【1】 CSelf20[レベルアップ(1)ダウン(-1)] が 1 以上
         【2】 CSelf20[レベルアップ(1)ダウン(-1)] が -1 以下
次のレベルアップに必要な経験値を計算し、
可変DB[0:主人公ステータス]項目[55:現Lvの必要経験値]に設定。
  163-196 ■回数付きループ [ 50 ]回
可変DB[1:┣ 技能習得Lv]を調べて、習得する特殊技能があるかどうかを調べます。
    167-194 ■条件分岐(変数): 【1】 CSelf47[技能習得レベル] が 1 以上
 ■条件分岐(変数): 【1】 CSelf47[技能習得レベル] が CSelf30[対象のレベル] 以下
習得できるレベルの時には分岐。
      176-190 ■条件分岐(変数): 【1】 CSelf47[技能習得レベル] が CSelf30[対象のレベル] と同じ
習得するレベルになっている時には分岐し、
可変DB[18:基本システム用変数]データ[90:[Lvup]習得技能[文字列]]に、
習得した特殊技能の合計数は項目[0:数値]に保存し、
習得した特殊技能の名前は項目[1:文字列]に保存します。


▲トップへ戻る▲



◎関連ページ

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

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