185 lines
8 KiB
Ruby
185 lines
8 KiB
Ruby
#==============================================================================
|
||
# □ パラメータ最大値拡張(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
|