RPGツクール2000/自作メニュー
■パーティー編成(マップ移動型)
■控えの主人公にも経験値
(更新:2008/07/05)


パーティー編成(マップ移動型)にて、
戦闘に参加しなかった控えになっている主人公にも、
経験値が加算されるように設定します。


このページは応用ページです
このページは応用ページであり、
基礎ページパーティー編成(マップ移動型)になります。
【パーティー編成(マップ移動型)のページを開く】

まず基礎ページのイベントを設定して頂き、問題なく動いた後に、
このページで紹介している改良を行った方が良いでしょう。



☆処理の流れ
控えの主人公の増やす経験値の値は、
戦闘に参加した主人公の増えた経験値から算出します。

【1】
戦闘開始前にパーティー内にいる主人公の経験値を変数に記憶します。
パーティーに4人いる時には、4つの変数に4人分の経験値を記憶します。

【2】
戦闘終了後、フィールドに戻ってからコモンイベントを起動し、
戦闘不能ではない主人公の経験値の増加分を算出します。

【3】
戦闘に参加しなかった主人公に経験値を2分の1加算します。



☆変数
変数の番号使用内容の一覧表です。

変数
番号 名前 使用内容
0041 現在の勝利回数 現在の勝利回数を代入します。
0042 前の勝利回数 変数41番と比較して戦闘勝利後であるかどうかを調べます。
0043 現在の経験値 戦闘前の経験値との比較時に使います。
0044 前の経験値 戦闘前の経験値を設定します。
0045 変数番号 変数46〜49番の値を設定&呼出する時に使います。
0046 1人目の経験値 1人目の主人公の経験値を記憶します。
0047 2人目の経験値 2人目の主人公の経験値を記憶します。
0048 3人目の経験値 3人目の主人公の経験値を記憶します。
0049 4人目の経験値 4人目の主人公の経験値を記憶します。



☆イベント設定
コモンイベントに控えの主人公の経験値を増やすイベント処理の設定を行います。

イベント処理の設定は、まず2体(主人公01と02)のみのイベント処理を作り、
正常に動くかどうかの動作テストを行うと良いでしょう。
その後人数分のイベント処理を設定すると良いでしょう。

■コモンイベント「控えに経験値」
イベント開始条件:定期的に並列処理する
◆変数の操作:[0041:現在の勝利回数]代入,勝利回数
◆条件分岐:変数[0041:現在の勝利回数]がV[0042]以外<勝利回数が変わったかどうかを調べる
 ◆変数の操作:[0042:前の勝利回数]代入,勝利回数
 ◆注釈:------------------------------------------------------------
 :  :増えた経験値を算出する
 :  :

 ◆変数の操作:[0045:変数番号]代入,46<変数46番を呼び出す準備
 ◆条件分岐:主人公01がパーティーにいる
  ◆変数の操作:[0043:現在の経験値]代入,主人公01の経験値
  ◆変数の操作:[0044:前の経験値]代入,変数[V[0045]]の値
  ◆条件分岐:変数[0043:現在の経験値]がV[0044]以外<戦闘後に経験値が変化している時
   ◆指定ラベルへ飛ぶ:1番
   ◆
  :分岐終了
  ◆変数の操作:[0045:変数番号]加算,1<次の変数番号にする
  ◆
 :分岐終了
 ◆条件分岐:主人公02がパーティーにいる
  ◆変数の操作:[0043:現在の経験値]代入,主人公02の経験値
  ◆変数の操作:[0044:前の経験値]代入,変数[V[0045]]の値
  ◆条件分岐:変数[0043:現在の経験値]がV[0044]以外
   ◆指定ラベルへ飛ぶ:1番
   ◆
  :分岐終了
  ◆変数の操作:[0045:変数番号]加算,1<次の変数番号にする
  ◆
 :分岐終了
 ◆イベント処理の中断<経験値に変動が無かったのでイベント処理を終了
 ◆ラベルの設定:1番
 ◆変数の操作:[0043:現在の経験値]減算,変数[0044]の値<増えた経験値の値を出す
 ◆変数の操作:[0043:現在の経験値]除算,2<増えた経験値を2分の1にする
 ◆注釈:------------------------------------------------------------
 :  :控えの主人公の経験値を増やす
 :  :

 ◆条件分岐:主人公01がパーティーにいる(オプション:ON)
  ◆
 :それ以外の場合<主人公01がパーティーにいない時
  ◆条件分岐:主人公01が戦闘不能状態になっている(オプション:ON)
   ◆
  :それ以外の場合<戦闘不能ではない時
   ◆経験値の増減:主人公01の経験値をV[0043]増やす
   ◆
  :分岐終了
  ◆
 :分岐終了
 ◆条件分岐:主人公02がパーティーにいる(オプション:ON)
  ◆
 :それ以外の場合<主人公01がパーティーにいない時
  ◆条件分岐:主人公02が戦闘不能状態になっている(オプション:ON)
   ◆
  :それ以外の場合<戦闘不能ではない時
   ◆経験値の増減:主人公02の経験値をV[0043]増やす
   ◆
  :分岐終了
  ◆
 :分岐終了
 ◆
:分岐終了
◆注釈:------------------------------------------------------------
:  :戦闘前の経験値を記憶する
:  :

◆変数の操作:[0045:変数番号]代入,46<変数46番を呼び出す準備
◆条件分岐:主人公01がパーティーにいる
 ◆変数の操作:[V[0045]]代入,主人公01の経験値<変数に経験値を記憶
 ◆変数の操作:[0045:変数番号]加算,1<次の変数番号にする
 ◆
:分岐終了
◆条件分岐:主人公02がパーティーにいる
 ◆変数の操作:[V[0045]]代入,主人公02の経験値<変数に経験値を記憶
 ◆変数の操作:[0045:変数番号]加算,1<次の変数番号にする
 ◆
:分岐終了
◆ウェイト:0.0秒


動作テストで問題が無いようでしたら、
8体分のイベント処理を設定してください。
【8体分のイベント設定を見る】



☆徐々に選択可能な主人公を増やすに対応させる
上記の設定では、主人公が初めから全員が選択可能である時の設定であり、
ゲームを進めていく内に徐々に選択できる主人公を増やしていく時には、
さらにイベントを設定する必要があります。

以下のスイッチは、パーティー編成(マップ移動型)にて、
主人公が選択できるようになった時にONになるスイッチです。
スイッチ[0021:主人公01が選択可能]:主人公01が仲間になっている時にON。
スイッチ[0022:主人公02が選択可能]:主人公02が仲間になっている時にON。


イベント実行内容の追加設定は、以下の所に行ってください。
※ゲームの最初から最後まで選択可能である主人公には、追加設定は不要です。

■マップイベント「パーティー編成」
イベント出現条件:なし
イベント開始条件:自動的に始まる
グラフィック:透明
◆変数の操作:[0041:現在の勝利回数]代入,勝利回数
◆条件分岐:変数[0041:現在の勝利回数]がV[0042]以外
 ◆変数の操作:[0042:前の勝利回数]代入,勝利回数
 ◆注釈:------------------------------------------------------------
 :  :増えた経験値を算出する
 :  :

 ◆変数の操作:[0045:変数番号]代入,46
 ◆条件分岐:主人公01がパーティーにいる
  ◆変数の操作:[0043:現在の経験値]代入,主人公01の経験値
  ◆変数の操作:[0044:前の経験値]代入,変数[V[0045]]の値
  ◆条件分岐:変数[0043:現在の経験値]がV[0044]以外
   ◆指定ラベルへ飛ぶ:1番
   ◆
  :分岐終了
  ◆変数の操作:[0045:変数番号]加算,1
  ◆
 :分岐終了
 ◆条件分岐:主人公02がパーティーにいる
  ◆変数の操作:[0043:現在の経験値]代入,主人公02の経験値
  ◆変数の操作:[0044:前の経験値]代入,変数[V[0045]]の値
  ◆条件分岐:変数[0043:現在の経験値]がV[0044]以外
   ◆指定ラベルへ飛ぶ:1番
   ◆
  :分岐終了
  ◆変数の操作:[0045:変数番号]加算,1
  ◆
 :分岐終了
 ◆イベント処理の中断
 ◆ラベルの設定:1番
 ◆変数の操作:[0043:現在の経験値]減算,変数[0044]の値
 ◆変数の操作:[0043:現在の経験値]除算,2
 ◆注釈:------------------------------------------------------------
 :  :控えの主人公の経験値を増やす
 :  :

 ◆条件分岐:主人公01がパーティーにいる(オプション:ON)
  ◆
 :それ以外の場合
  ◆条件分岐:主人公01が戦闘不能状態になっている(オプション:ON)
   ◆
  :それ以外の場合
   ◆条件分岐:変数[0021:主人公01が選択可能]がON<追加する
    ◆経験値の増減:主人公01の経験値をV[0043]増やす<設定位置を移動
    ◆
   :分岐終了

   ◆
  :分岐終了
  ◆
 :分岐終了
 ◆条件分岐:主人公02がパーティーにいる(オプション:ON)
  ◆
 :それ以外の場合
  ◆条件分岐:主人公02が戦闘不能状態になっている(オプション:ON)
   ◆
  :それ以外の場合
   ◆条件分岐:変数[0022:主人公02が選択可能]がON<追加する
    ◆経験値の増減:主人公02の経験値をV[0043]増やす<設定位置を移動
    ◆
   :分岐終了

   ◆
  :分岐終了
  ◆
 :分岐終了
 ◆
:分岐終了
◆注釈:------------------------------------------------------------
:  :戦闘前の経験値を記憶する
:  :

◆変数の操作:[0045:変数番号]代入,46
◆条件分岐:主人公01がパーティーにいる
 ◆変数の操作:[V[0045]]代入,主人公01の経験値
 ◆変数の操作:[0045:変数番号]加算,1
 ◆
:分岐終了
◆条件分岐:主人公02がパーティーにいる
 ◆変数の操作:[V[0045]]代入,主人公02の経験値
 ◆変数の操作:[0045:変数番号]加算,1
 ◆
:分岐終了
◆ウェイト:0.0秒




☆補足
経験値の加算を2分の1ではなく80%にしたい時には、
以下のように設定してください。
◆変数の操作:[0043:現在の経験値]減算,変数[0044]の値
◆変数の操作:[0043:現在の経験値]乗算,80
◆変数の操作:[0043:現在の経験値]除算,100




◎関連ページ
 ●パーティー編成(マップ移動型)
 ○主人公の番号を変数に代入する


YADOTトップ  このサイトは何?  気紛れな空間へ戻る  メール