#============================================================================== # □ 経験値詳細設定 (for VX Ace) #------------------------------------------------------------------------------ # Version : 1_20111215 # by サリサ・タイクーン # http://www.tycoon812.com/rgss/ #============================================================================== #============================================================================== # □ 素材スイッチ #============================================================================== $rgsslab = {} if $rgsslab == nil $rgsslab["経験値詳細設定"] = true if $rgsslab["経験値詳細設定"] #============================================================================== # □ カスタマイズポイント #============================================================================== module RGSSLAB end module RGSSLAB::Exp_Details_Setting #-------------------------------------------------------------------------- # ○ 自動加算 # ・記述方法: # 職業ID => 値, # (最後の設定だけ、後ろのカンマを省略する事ができます) # # レベル99以上できる素材と併用時又は # 最終レベルまでにnilが検出された場合において # この値を代用して、最終レベルまで適用します。 # # 但し、EXCLUSIONに該当する職業IDは # 適用外となりますので、ご注意下さい。 #-------------------------------------------------------------------------- ADD = { 1 => 100, 2 => 100, 3 => 100, 4 => 100, 5 => 100, 6 => 100, 7 => 100, 8 => 100, } #-------------------------------------------------------------------------- # ○ 自動加算に存在しない職業IDの設定 # ADDに当てはまらない職業IDの設定です。 #-------------------------------------------------------------------------- DEFAULT = 100 #-------------------------------------------------------------------------- # ○ 除外設定 # EXCLUSION内に該当する職業IDは # 本来の経験値(データベースの設定)となりますが # 経験値安易設定と併用している場合は # 経験値安易設定の方の設定となります。 # (経験値安易設定で行いたい職業IDもEXCLUSIONに記述して下さい) # # ADDに設定されている職業IDも、EXCLUSIONに # 該当すれば、除外の対象となります。 #-------------------------------------------------------------------------- EXCLUSION = [] end # カスタマイズポイントは、ここまで #============================================================================== # □ RGSSLAB::Exp_Details_Setting [module] #============================================================================== module RGSSLAB::Exp_Details_Setting #-------------------------------------------------------------------------- # ○ 素材設定用の定数定義 #-------------------------------------------------------------------------- MATERIAL_NAME = "経験値詳細設定" VERSION = 1 RELEASE = 20111215 end #============================================================================== # ■ Game_Actor [class] #============================================================================== class Game_Actor < Game_Battler #-------------------------------------------------------------------------- # ○ モジュールの設定 #-------------------------------------------------------------------------- RGSSLAB_001 = RGSSLAB::Exp_Details_Setting #-------------------------------------------------------------------------- # ● 指定レベルに上がるのに必要な累計経験値の取得 [再定義] # level : レベル #-------------------------------------------------------------------------- def exp_for_level(level) if $rgsslab["経験値詳細設定"] if RGSSLAB_001::EXCLUSION.include?(@class_id) return easiness_exp_for_level(level) if $rgsslab["経験値安易設定"] return self.class.exp_for_level(level) end if $rgsslab["経験値リスト"] && $rgsslab["経験値詳細設定"] if RGSSLAB_001_01::LIST[@class_id] if RGSSLAB_001_01::LIST[@class_id][level - 1] return RGSSLAB_001_01::LIST[@class_id][level - 1] else max = RGSSLAB_001_01::LIST[@class_id].size last_exp = RGSSLAB_001_01::LIST[@class_id][max - 1] if RGSSLAB_001::ADD[@class_id] return last_exp + (RGSSLAB_001::ADD[@class_id] * (level - max)) else return last_exp + (RGSSLAB_001::DEFAULT * (level - max)) end end end end return auto_plus_process(level) end return easiness_exp_for_level(level) if $rgsslab["経験値安易設定"] if $rgsslab["レベル拡張"] if level < 99 return self.class.exp_for_level(level) else lv = level.to_f basis = self.class.exp_params[0].to_f extra = self.class.exp_params[1].to_f acc_a = self.class.exp_params[2].to_f acc_b = self.class.exp_params[3].to_f return (basis * ((lv - 1) ** (0.9 + acc_a / 250)) * lv * (lv + 1) / (6 + lv ** 2 / 50 / acc_b) + (lv - 1) * extra).round.to_i end end return self.class.exp_for_level(level) end #-------------------------------------------------------------------------- # ○ 自動加算の処理 # level : レベル #-------------------------------------------------------------------------- def auto_plus_process(level) if RGSSLAB_001::ADD[@class_id] return RGSSLAB_001::ADD[@class_id] * (level - 1) else return RGSSLAB_001::DEFAULT * (level - 1) end end end end