#============================================================================== # □ パラメータ最大値拡張(for VX Ace) #------------------------------------------------------------------------------ # Version : 1_20120105 # by サリサ・タイクーン # http://www.tycoon812.com/rgss/ #============================================================================== #============================================================================== # □ 素材スイッチ #============================================================================== $rgsslab = {} if $rgsslab == nil $rgsslab["パラメータ最大値拡張"] = true if $rgsslab["パラメータ最大値拡張"] #============================================================================== # □ カスタマイズポイント #============================================================================== module RGSSLAB end module RGSSLAB::Parameter_Max_Value_Extension #-------------------------------------------------------------------------- # ○ 用語のロード # データベースで定めた用語をロードします。 # # この値は絶対に変えないで下さい。 #-------------------------------------------------------------------------- system = load_data("Data/System.rvdata2") #-------------------------------------------------------------------------- # ○ 最大値設定 # 各パラメータの最大値の設定です。 # # 尚、パラメータの追加と併用している場合に限り # LIMITの中に、追加したパラメータの名称を追加記述する事で # 追加したパラメータにもこの素材の機能をご利用する事ができます。 # # パラメータ名は""で囲んだ上で、直接記述して下さい。 #-------------------------------------------------------------------------- LIMIT = { system::terms::params[0] => 9999, # 最大HP system::terms::params[1] => 9999, # 最大MP system::terms::params[2] => 99999, # 攻撃力 system::terms::params[3] => 99999, # 防御力 system::terms::params[4] => 99999, # 魔法力 system::terms::params[5] => 99999, # 魔法防御 system::terms::params[6] => 99999, # 敏捷性 system::terms::params[7] => 99999, # 運 } end # カスタマイズポイントは、ここまで #============================================================================== # □ RGSSLAB::Parameter_Max_Value_Extension [module] #============================================================================== module RGSSLAB::Parameter_Max_Value_Extension #-------------------------------------------------------------------------- # ○ 素材設定用の定数定義 #-------------------------------------------------------------------------- MATERIAL_NAME = "パラメータ最大値拡張" VERSION = 1 RELEASE = 20120105 #-------------------------------------------------------------------------- # ○ 操作エラー # error_number : エラー番号 #-------------------------------------------------------------------------- def self.operate_error(error_number) text = "【RGSS研究所:#{MATERIAL_NAME}】" case error_number when 1 msgbox_p text, "存在しないパラメータを指定しています。" when 2 msgbox_p text, "value[1]の値が設定されてない為、実行できません。" when 3 msgbox_p text, "マイナスの値はできません。" end end end #============================================================================== # ■ Game_BattlerBase [class] #============================================================================== class Game_BattlerBase #-------------------------------------------------------------------------- # ○ モジュールの設定 #-------------------------------------------------------------------------- RGSSLAB_004 = RGSSLAB::Parameter_Max_Value_Extension #-------------------------------------------------------------------------- # ● 公開インスタンス変数 #-------------------------------------------------------------------------- attr_accessor :abolition #-------------------------------------------------------------------------- # ● オブジェクト初期化 [エイリアス] #-------------------------------------------------------------------------- alias parameter_max_value_extension_initialize initialize def initialize parameter_max_value_extension_initialize @limit = {} @abolition = false for l in RGSSLAB_004::LIMIT do @limit[l[0]] = l[1] end end #-------------------------------------------------------------------------- # ○ 限界値の参照 # kind : パラメータの種類 #-------------------------------------------------------------------------- def limit(kind = "") return @limit if kind == "" or kind == "全部" return RGSSLAB_004.operate_error(1) if @limit[kind] == nil return @limit[kind] end #-------------------------------------------------------------------------- # ○ 限界値の代入 # value : フラグと操作するパラメータの種類(配列格納) # value[0] : 操作するパラメータ # value[1] : 変更する限界の値 #-------------------------------------------------------------------------- def limit=(value) return RGSSLAB_004.operate_error(2) if value[1] == nil return RGSSLAB_004.operate_error(3) if value[1] < 0 return RGSSLAB_004.operate_error(1) if @limit[value[0]] == nil unless value[0] == "" or value[0] == "全部" if value[0] == "" or value[0] == "全部" for a in @limit.keys do @limit[a] = value[1] end else @limit[value[0]] = value[1] end end #-------------------------------------------------------------------------- # ● 通常能力値の最大値取得 [再定義] # param_id : パラメータID #-------------------------------------------------------------------------- def param_max(param_id) if param_id < 8 return @limit[parameter_string(param_id)] else return @limit[@limit.keys[param_id]] end end #-------------------------------------------------------------------------- # ● 通常能力値の取得 [再定義] # param_id : パラメータID #-------------------------------------------------------------------------- def param(param_id) value = param_base(param_id) + param_plus(param_id) value *= param_rate(param_id) * param_buff_rate(param_id) if @abolition return [value, param_min(param_id)].max.to_i else return [[value, param_max(param_id)].min, param_min(param_id)].max.to_i end end #-------------------------------------------------------------------------- # ○ パラメータ文字列 # param_id : パラメータID #-------------------------------------------------------------------------- def parameter_string(param_id) system = $data_system case param_id when 0 ; return system.terms.params[0] when 1 ; return system.terms.params[1] when 2 ; return system.terms.params[2] when 3 ; return system.terms.params[3] when 4 ; return system.terms.params[4] when 5 ; return system.terms.params[5] when 6 ; return system.terms.params[6] when 7 ; return system.terms.params[7] end end end #============================================================================== # ■ Game_Actor [class] #============================================================================== class Game_Actor < Game_Battler #-------------------------------------------------------------------------- # ● 通常能力値の最大値取得 [再定義][オーバーライド] #-------------------------------------------------------------------------- def param_max(param_id) return super end end end