#============================================================================== # 「HP/MP/TPゲージによるステータス変動」(ACE) ver.2b by奈々 # # ◇使用規約 # 使用される場合はスクリプト作成者として「奈々」を明記して下さい。 # このスクリプトを改変したり、改変したものを配布するなどは自由ですが # その場合も元のスクリプトの作成者として名前は載せて下さい。 # #------------------------------------------------------------------------------ # # キャラクターのゲージ残量によってステータスを変動させることができます。 # 変動できるパラメーターはatk,def,mat,mdfの4つ。 # パラメーターそれぞれに「HP/MP/TPのどれを参照するか」「どう増減するか」 # 「特定のステートに掛かっているときのみ変動するかどうか」を設定できます。 # # このBバージョンではステータス画面、装備画面、ショップ画面においては # ゲージによる変動が無効になります。(表示だけでなくステータスそのものが変動しない) # #============================================================================== # ◇初期設定 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 #-------------------------------------------------------------------------- # ● 通常能力値の取得(再定義) #-------------------------------------------------------------------------- alias param2 param def param(param_id) unless SceneManager.scene_is?(Scene_Equip) or SceneManager.scene_is?(Scene_Status) or SceneManager.scene_is?(Scene_Shop) value = param2(param_id) value *= param_by_nana(param_id) [[value, param_max(param_id)].min, param_min(param_id)].max.to_i return value.truncate else return param2(param_id) end 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