#============================================================================== # 「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