#< hatrack >http://hatrack.sakura.ne.jp/ < ver >2008/06/03 # # スリップダメージの仕様や、パーセンテージ(%)を変更できます。 # #============================================================================== # ★ スリップダメージ変更 #------------------------------------------------------------------------------ # ※ Game_Player より下に入れてください #============================================================================== class Game_Battler #-------------------------------------------------------------------------- # ○ 以下▲の箇所で設定変更が可能です (42行目にも設定箇所アリ) #-------------------------------------------------------------------------- HR1_battle_slip_damage_percent = 10 # ▲戦闘中のスリップダメージで受けるダメージ%を設定してください # #  初期設定は 10 %に設定されています。 # #-------------------------------------------------------------------------- # ● スリップダメージの効果適用 #-------------------------------------------------------------------------- def slip_damage_effect # ダメージを設定 self.damage = self.maxhp / (100 / HR1_battle_slip_damage_percent) # 分散 if self.damage.abs > 0 amp = [self.damage.abs * 15 / 100, 1].max self.damage += rand(amp+1) + rand(amp+1) - amp end # HP からダメージを減算 self.hp -= self.damage # メソッド終了 return true end end class Game_Party #-------------------------------------------------------------------------- # ○ 以下▲の箇所で設定変更が可能です (90行目にも設定箇所アリ) #-------------------------------------------------------------------------- HR1_slip_damage_type = 1 # ▲どちらかの数字を設定してください # #  0 … マップ移動中でも、スリップダメージで戦闘不能になる。 #  1 … マップ移動中なら、スリップダメージでは戦闘不能にならず HP が 1 残る。 # HR1_slip_damage_percent = 1 # ▲マップ移動中のスリップダメージで受けるダメージ%を設定してください # #  初期設定は 1 %に設定されています。 # #-------------------------------------------------------------------------- # ● スリップダメージチェック (マップ用) #-------------------------------------------------------------------------- def check_map_slip_damage hr_slip_damage_percent = 100 / HR1_slip_damage_percent for actor in @actors if actor.hp > 0 and actor.slip_damage? # マップ移動中なら戦闘不能にならない場合 if HR1_slip_damage_type == 1 # [@hat_dokuhp1]で[actor.hp=0]になってしまうかシミュレート hat_dokuhp1 = actor.hp hat_dokuhp1 -= [actor.maxhp / hr_slip_damage_percent, 1].max # 結果、[actor.hp=0]でないなら実際にHPを減らし、[actor.hp=0]なら1を代入 if hat_dokuhp1 > 0 actor.hp -= [actor.maxhp / hr_slip_damage_percent, 1].max else actor.hp = 1 end # マップ移動中でも戦闘不能になる場合 else actor.hp -= [actor.maxhp / hr_slip_damage_percent, 1].max end $game_screen.start_flash(Color.new(255,0,0,128), 4) $game_temp.gameover = $game_party.all_dead? end end end end class Game_Player < Game_Character #-------------------------------------------------------------------------- # ○ 以下▲の箇所で設定変更が可能です #-------------------------------------------------------------------------- HR1_slip_damage_step = 2 # ▲マップ移動中のスリップダメージを受ける歩数間隔を設定してください # #  初期設定は 2 歩毎に設定されています。 # #-------------------------------------------------------------------------- # ● 歩数増加 #-------------------------------------------------------------------------- def increase_steps super # 移動ルート強制中ではない場合 unless @move_route_forcing # 歩数増加 $game_party.increase_steps # 歩数が偶数の場合 if $game_party.steps % HR1_slip_damage_step == 0 # スリップダメージチェック $game_party.check_map_slip_damage end end end end