# ▽△▽ XRXSv28. クラス別EXP ▽△▽ # # publish 2010/ 3/23 # update - 4/ 8 # #============================================================================== # カスタマイズポイント #============================================================================== module XRXSV28 # # 初めてなるクラスでの初期EXP # ( -1 を指定するとアクター初期レベルと一致させます。 # その場合、全クラスのEXPが増加するため、 # パラメータ特殊形式により能力がアップします。) # FirstEXP = 0 # # パラメータ特殊形式タイプ # 0 : 他クラスのLvは影響しない    (クラスチェンジで大幅に変化) # 1 : 他クラスのLvの一部が影響    (クラスチェンジでゆるやかに変化) # 2 : 全クラスの中での最大Lvに準ずる (クラスチェンジで能力変化なし) # ExLvType = 1 # # タイプ1の場合の「割る数」 # ExPowDivideBy = 4 end #============================================================================== # クラス別情報の保持と変更 #============================================================================== class Game_Actor < Game_Battler def class_exp if @class_exp == nil first_exp = XRXSV28::FirstEXP first_exp = @exp_list[$data_actors[self.id].initial_level] if first_exp == -1 @class_exp = [0] + [first_exp] * ($data_classes.size - 1) end @class_exp[@class_id] = self.exp return @class_exp end alias xrxsv28_class_id_substitute class_id= def class_id=(class_id) exp_set = self.class_exp xrxsv28_class_id_substitute(class_id) change_exp(exp_set[@class_id], false) end end #============================================================================== # ステータス(パラメータ特殊形式) #============================================================================== module XRXSV28_ExtraPower def class_level(class_id) exp = self.class_exp[class_id] level = 1 while exp >= @exp_list[level+1] and @exp_list[level+1] > 0 level += 1 end return level end def extra_power_level ex_level = self.level case XRXSV28::ExLvType when 1 total_exp = 0 for id in 1...self.class_exp.size next if id == self.class_id total_exp += @exp_list[self.class_level(id)] end extra_exp = @exp_list[self.level] + (total_exp / XRXSV28::ExPowDivideBy) while extra_exp >= @exp_list[ex_level+1] and @exp_list[ex_level+1] > 0 ex_level += 1 end when 2 for id in 1...self.class_exp.size lv = self.class_level(id) ex_level = lv if ex_level < lv end end return ex_level end def maxhp original_level = @level @level = self.extra_power_level n = super @level = original_level return n end def maxmp original_level = @level @level = self.extra_power_level n = super @level = original_level return n end def atk original_level = @level @level = self.extra_power_level n = super @level = original_level return n end def def original_level = @level @level = self.extra_power_level n = super @level = original_level return n end def spi original_level = @level @level = self.extra_power_level n = super @level = original_level return n end def agi original_level = @level @level = self.extra_power_level n = super @level = original_level return n end end class Game_Actor < Game_Battler include XRXSV28_ExtraPower end