#==============================================================================
# 「HP/MP/TPゲージによるステータス変動」(ACE) ver1.1 by奈々
#
# ◇使用規約
# 使用される場合はスクリプト作成者として「奈々」を明記して下さい。
# このスクリプトを改変したり、改変したものを配布するなどは自由ですが
# その場合も元のスクリプトの作成者として名前は載せて下さい。
#
#------------------------------------------------------------------------------
#
# キャラクターのゲージ残量によってステータスを変動させることができます。
# 変動できるパラメーターはatk,def,mat,mdfの4つ。
# パラメーターそれぞれに「HP/MP/TPのどれを参照するか」「どう増減するか」
# 「特定のステートに掛かっているときのみ変動するかどうか」を設定できます。
#
#==============================================================================
# ◇初期設定
module NanaSeven
ATK_UP_STATE = -1 #攻撃力上昇のステートID(0で常時、-1でOFF)
ATK_UP_RATE = 200 #上昇する値、指定はゲージ0のときの修正値
#200ならゲージ0で+200(=300%)、ゲージ半分で+100(=200%)
ATK_HP_MP_TP = 1 #影響するゲージ、HPなら1、MPなら2、TPなら3
DEF_UP_STATE = -1
DEF_UP_RATE = 200
DEF_HP_MP_TP = 1
MAT_UP_STATE = -1
MAT_UP_RATE = 200
MAT_HP_MP_TP = 2
MDF_UP_STATE = -1
MDF_UP_RATE = 200
MDF_HP_MP_TP = 2
end
#------------------------------------------------------------------------------
class Game_Battler < Game_BattlerBase
#--------------------------------------------------------------------------
# ● 通常能力値の取得(再定義)
#--------------------------------------------------------------------------
def param(param_id)
value = param_base(param_id) + param_plus(param_id)
value *= param_rate(param_id) * param_buff_rate(param_id) * param_by_nana(param_id)
[[value, param_max(param_id)].min, param_min(param_id)].max.to_i
return value.truncate
end
#--------------------------------------------------------------------------
# ● ステータス変動判定&処理
#--------------------------------------------------------------------------
def param_by_nana(param_id)
case param_id
when 2
if self.state?(NanaSeven::ATK_UP_STATE) or NanaSeven::ATK_UP_STATE == 0
case NanaSeven::ATK_HP_MP_TP
when 1
val = NanaSeven::ATK_UP_RATE * (1 - self.hp_rate) * 0.01 + 1
when 2
val = NanaSeven::ATK_UP_RATE * (1 - self.mp_rate) * 0.01 + 1
when 3
val = NanaSeven::ATK_UP_RATE * (1 - self.tp_rate) * 0.01 + 1
end
return val
end
when 3
if self.state?(NanaSeven::DEF_UP_STATE) or NanaSeven::DEF_UP_STATE == 0
case NanaSeven::DEF_HP_MP_TP
when 1
val = NanaSeven::DEF_UP_RATE * (1 - self.hp_rate) * 0.01 + 1
when 2
val = NanaSeven::DEF_UP_RATE * (1 - self.mp_rate) * 0.01 + 1
when 3
val = NanaSeven::DEF_UP_RATE * (1 - self.tp_rate) * 0.01 + 1
end
return val
end
when 4
if self.state?(NanaSeven::MAT_UP_STATE) or NanaSeven::MAT_UP_STATE == 0
case NanaSeven::MAT_HP_MP_TP
when 1
val = NanaSeven::MAT_UP_RATE * (1 - self.hp_rate) * 0.01 + 1
when 2
val = NanaSeven::MAT_UP_RATE * (1 - self.mp_rate) * 0.01 + 1
when 3
val = NanaSeven::MAT_UP_RATE * (1 - self.tp_rate) * 0.01 + 1
end
return val
end
when 5
if self.state?(NanaSeven::MDF_UP_STATE) or NanaSeven::MDF_UP_STATE == 0
case NanaSeven::MDF_HP_MP_TP
when 1
val = NanaSeven::MDF_UP_RATE * (1 - self.hp_rate) * 0.01 + 1
when 2
val = NanaSeven::MDF_UP_RATE * (1 - self.mp_rate) * 0.01 + 1
when 3
val = NanaSeven::MDF_UP_RATE * (1 - self.tp_rate) * 0.01 + 1
end
return val
end
end
return 1
end
end