1. このサイトではcookie (クッキー) を使用しています。サイトの利用を継続した場合、cookieの使用に同意したものとみなさせていただきます。 詳しくはこちらをご覧ください。

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

ああああ2018-12-30に開始した「ツクールVX/VXAce」の中の討論

  1. ああああ

    ああああ ユーザー

    レベルアップまでの経験値をレベルごとに自分で設定したいんですけど
    どうすればいいんでしょうか?
    わかる方お願いします
     
    #1
  2. 神無月サスケ

    神無月サスケ ユーザー

    これはスクリプトに手を加えることで可能です。

    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から順番に持ちたい場合、配列を使うなどの方法があります。
    このあたりはご自分で調べてみて分からなければ相談に乗ります。
     
    #2
  3. ああああ

    ああああ ユーザー

    返信ありがとうございます
    すみません63~68行目にそのコードが見当たらないです。
    ひょっとしてそちらがvxaceだから?
     
    #3
  4. 神無月サスケ

    神無月サスケ ユーザー

    あ、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の経験値曲線です。)
    ここを書き換えれば自由にいじることが可能です。

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

    ああああ ユーザー

    返信ありがとうございます
    ちょっと難しそうなんでやめときます
    数値をちょっと書き換えるぐらいだろうと思ったけど甘かったですね笑
    お手数おかけしました
     
    #5
    ワタベ がいいね!しました

このページを共有