# # スリップダメージカスタマイズ(Ver.2.00) # (C)2009 TYPE74RX-T # #============================================================================== # ★ 再定義ポイント #------------------------------------------------------------------------------ # class Game_Party # def check_map_slip_damage #============================================================================== #============================================================================== # ■ RPG::State #============================================================================== module RPG class State alias rx_rgssb12_initialize initialize def initialize # メソッドを呼び戻す rx_rgssb12_initialize @rx_slip_d = 0 @rx_slip_r = 0 end attr_accessor :rx_slip_d attr_accessor :rx_slip_r alias rx_rgssb12_name name unless $@ def name rx_slip = @name.split(/\s* \s*/) @rx_slip_d = 0 @rx_slip_r = 0 rx_slip[1] = "xxx" if rx_slip[1] == nil unless rx_slip[1] == "xxx" if rx_slip[1].include?("スリップ率") rx_slip_r = rx_slip[1].scan(/[-10-9]+/) @rx_slip_r = rx_slip_r[0].to_i elsif rx_slip[1].include?("スリップ") rx_slip_d = rx_slip[1].scan(/[-10-9]+/) @rx_slip_d = rx_slip_d[0].to_i end return rx_slip[0] end # メソッドを呼び戻す rx_rgssb12_name end end end #============================================================================== # ■ Game_Battler #------------------------------------------------------------------------------ #  バトラーを扱うクラスです。このクラスは Game_Actor クラスと Game_Enemy クラ # スのスーパークラスとして使用されます。 #============================================================================== class Game_Battler #-------------------------------------------------------------------------- # ★ スリップダメージ算出 #-------------------------------------------------------------------------- def rx_slip_damages rx_slip_pts = 0 rx_slip_r = 0 rx_slip_d = 0 rx_regen_r = 0 rx_regen_d = 0 for rx_s in self.states # ★ 新定義変数を追加 $data_states[rx_s].name # ★ スリップダメージのレーティング(または数値)が一番大きいモノを算出 rx_slip_r = $data_states[rx_s].rx_slip_r if rx_slip_r < $data_states[rx_s].rx_slip_r rx_slip_d = $data_states[rx_s].rx_slip_d if rx_slip_d < $data_states[rx_s].rx_slip_d # ★ リジェネレーションのレーティング(または数値)が一番大きいモノを算出 rx_regen_r = $data_states[rx_s].rx_slip_r if rx_regen_r > $data_states[rx_s].rx_slip_r rx_regen_d = $data_states[rx_s].rx_slip_d if rx_regen_d > $data_states[rx_s].rx_slip_d end # ★ リジェネレーション効果がなければ unless rx_regen_r < 0 or rx_regen_d < 0 # 割合によるものと規定の数値のうち、大きいものを算出 rx_slip_pts = self.maxhp * rx_slip_r / 100 rx_slip_pts = rx_slip_d if rx_slip_pts < rx_slip_d else # 割合によるものと規定の数値のうち、小さいものを算出 rx_slip_pts = self.maxhp * rx_regen_r / 100 rx_slip_pts = rx_regen_d if rx_slip_pts > rx_regen_d end return rx_slip_pts end #-------------------------------------------------------------------------- # ● スリップダメージの効果適用 #-------------------------------------------------------------------------- alias rx_rgssb12_slip_damage_effect slip_damage_effect def slip_damage_effect rx_slip_pts = rx_slip_damages # ★ ダメージの設定と HP の減算 if rx_slip_pts != 0 self.damage = rx_slip_pts self.hp -= self.damage return true end # メソッドを呼び戻す rx_rgssb12_slip_damage_effect end end #============================================================================== # ■ Game_Party #------------------------------------------------------------------------------ #  パーティを扱うクラスです。ゴールドやアイテムなどの情報が含まれます。このク # ラスのインスタンスは $game_party で参照されます。 #============================================================================== class Game_Party #-------------------------------------------------------------------------- # ● スリップダメージチェック (マップ用) #-------------------------------------------------------------------------- def check_map_slip_damage rx_slip_damage = 0 # ★ 専用変数追加 for actor in @actors if actor.hp > 0 and actor.slip_damage? # -------------------改造ここから------------------- # ★ スリップダメージ算出 rx_slip_damage = actor.rx_slip_damages if rx_slip_damage != 0 actor.hp -= rx_slip_damage else # 通常処理 actor.hp -= [actor.maxhp / 100, 1].max end # -------------------改造ここまで------------------- if actor.hp == 0 $game_system.se_play($data_system.actor_collapse_se) end $game_screen.start_flash(Color.new(255,0,0,128), 4) $game_temp.gameover = $game_party.all_dead? end end end end