レベルアップまでの経験値について

ああああ

ユーザー
レベルアップまでの経験値をレベルごとに自分で設定したいんですけど
どうすればいいんでしょうか?
わかる方お願いします
 
これはスクリプトに手を加えることで可能です。

Game_Actor の 63~68行目
コード:
  def exp_for_level(level)
    self.class.exp_for_level(level)
  end
となっていますが、真ん中の行が処理内容です。
level が引数なので、例えば、レベル×100 でレベルアップさせたい場合、
コード:
 def exp_for_level(level)
   (level - 1) * 100
  end
のように書き換えればいいです
(レベル1の必要経験値を0にするために、levelから1を引いている)。
また、経験値の表をレベル1から順番に持ちたい場合、配列を使うなどの方法があります。
このあたりはご自分で調べてみて分からなければ相談に乗ります。
 

ああああ

ユーザー
返信ありがとうございます
すみません63~68行目にそのコードが見当たらないです。
ひょっとしてそちらがvxaceだから?
 
あ、VXAceではなく、VXでしたか。それではやり方が異なります。
VXなら、Game_Actorの134~146行目を書き換えるといいです。
コード:
def make_exp_list
    @exp_list[1] = @exp_list[100] = 0
    m = actor.exp_basis
    n = 0.75 + actor.exp_inflation / 200.0;
    for i in 2..99
      @exp_list[i] = @exp_list[i-1] + Integer(m)
      m *= 1 + n;
      n *= 0.9;
    end
  end
この部分の @exp_list[レベル] というのが、「次のレベルになるのに必要な経験値」を指します。
よって、ここを書き換えるといいと思います。
例えば、レベル2,3,4,... になるのに 10 × (レベル - 1)の2乗 にする場合、以下のように書き換えます。
コード:
def make_exp_list
  @exp_list[100] = 0
  for i in 1..99
    @exp_list[i] = ((i - 1) ** 2) * 10
  end
end
(※余談ですがこれはRPGツクール95の経験値曲線です。)
ここを書き換えれば自由にいじることが可能です。

もし、他にも気になる点があったら(例:アクターごとに経験値曲線を変えたい)
また相談してください。
 

ああああ

ユーザー
返信ありがとうございます
ちょっと難しそうなんでやめときます
数値をちょっと書き換えるぐらいだろうと思ったけど甘かったですね笑
お手数おかけしました
 
トップ