ツク5らしい経験値入手システムを作ろう



デフォルトの経験値入手システムは以下のようになっています。

 ・経験値を入手するのは戦闘に参加しているキャラのみ。

 ・敵から入手した経験値に何らかの変化を加えることはできない。


これはこれで別に問題はないのですが、少し柔軟性に欠けます。
特に前者をどうにかしたい人は多いのではないのでしょうか?
というわけで、経験値入手システムを自作してみました。

・戦闘終了直後の経験値入手のスクリプトを以下のように変更する。
まずは『経験値加算』のスクリプトを削除。
(このスクリプトは変数20『獲得経験値』をメンバーの経験値に加算する役目があります)
次に以下のスクリプトを冒頭に追加。
今回は戦闘に参加していないキャラにも経験値加算・死亡中は経験値を入手しない・特定の装飾品を装備していると経験値が2倍になる場合の例を作ってみました。

 変数:『メンバー番号』=0
 繰り返し:変数:『メンバー番号』≠(登録しているメンバーの数を入れる)
  メンバー情報読み込み
  行動異常確認:『死亡』
  条件:フラグ:『間接効果確認』:OFF
   変数:『アイテム番号』=『装備:装飾品』
   アイテム情報読み込み
   場合分け:『取得名称(共通)』
    場合に当てはまる:『経験値増えーる』
    変数:『一時変数』=『獲得経験値』×2
    ブロック終点へ飛ぶ
    場合に当てはまらない
     変数:『一時変数』=『獲得経験値』
   ブロック終点
   変数:『経験値』=『経験値』+『一時変数』
  条件終点
  メンバー情報書き込み
  変数:『メンバー番号』=『メンバー情報』+1
 ブロック終点

これで自作経験値入手システムはほぼ完成です。
この後にスクリプト『レベルアップの判定』を入れれば、ちゃんとレベルアップもしてくれます。
(レベルアップの判定はプリセットの状態ですでに入れるべき部分に入っているので、特にいじらなくても大丈夫です)
また、これを応用すればさらに幅広いシステムを構築することも可能です。

ただし、このままだと、パーティ内にいないキャラのレベルアップ処理が行われません。
そのキャラを仲間に入れた後に戦闘すればレベルアップしてくれますが、少しかっこ悪いです。
――というわけで、以下のスクリプトを新しいキャラをパーティに入れた後に挿入してください。

スクリプト『レベル上げ処理』
 変数:『メンバー順位値』=0
 ゲーム情報:読み込み
 繰り返し:変数:『メンバー順位値』≠パーティ人数
  メンバー情報:メンバー番号へ変換
  メンバー情報:読み込み
  レベルアップの判定
  繰り返し:フラグ:『レベルアップ』:ON
   レベルアップの判定
  ブロック終点
  変数:『メンバー順位値』=『メンバー順位値』+1
 ブロック終点

これで無事レベルアップしてくれるはず、です。
記憶だけで書いたので、ドデカい間違いを犯しているのかもしれませんが…
なお、特技会得判定も入れるとなおよしです。
ぶっちゃけると、自分の作品にレベルで覚える特技がないため、特技会得判定の使い方がよくわからないです…
なので、各自入れてみてください。
こちらでも後日その処理を入れた修正版をうpします。


ツクテクニックのTOPに戻る