#----------------------------------------------------------------------------
# 戦闘で負ったダメージを維持するエネミー by 貪藻矢射妥←
#----------------------------------------------------------------------------
# 戦闘終了してもエネミーのHPを保持する
# ※ぶっちゃけるとFF〇のデス〇イズのような演出をやってみる
#
# ★注意
# 複数のエネミーには対応していないので、特殊なボスの場合のみ設定してください
#
# トループの設定にて ターン0 のページにスクリプトで
# set_hp_hold(エネミーID)
# とすることで有効になります
#
#============================================================================
# 変更点
# まだなし
#==============================================================================
# ■ Game_System
#==============================================================================
class Game_System
#--------------------------------------------------------------------------
# ● 公開インスタンス変数
#--------------------------------------------------------------------------
attr_accessor :en_hp_hld_flg # エネミーのHP保持フラグハッシュ
attr_accessor :en_hp_holding # エネミーのHPハッシュ
#--------------------------------------------------------------------------
# ● オブジェクト初期化
#--------------------------------------------------------------------------
alias initialize_Enemy_HP_Hold initialize
def initialize
# 元の処理を実施
initialize_Enemy_HP_Hold
@en_hp_hld_flg = {}
@en_hp_holding = {}
end
#--------------------------------------------------------------------------
# ● エネミーのHP保持フラグの設定
# id : エネミーのID
#--------------------------------------------------------------------------
def set_hp_hold(id)
@en_hp_hld_flg[id] = true
end
end
#==============================================================================
# ■ Scene_Battle (分割定義 1)
#==============================================================================
class Scene_Battle
#--------------------------------------------------------------------------
# ● バトル終了
# result : 結果 (0:勝利 1:逃走 2:敗北)
#--------------------------------------------------------------------------
alias battle_end_Enemy_HP_Hold battle_end
def battle_end(result)
$game_troop.enemies.each do |enemy|
if enemy.exist? && $game_system.en_hp_hld_flg[enemy.id] == true
# 逃走した場合、あるいは敗北した場合、現HPを退避する
$game_system.en_hp_holding[enemy.id] = enemy.hp
else
# 戦闘に勝利した場合、HPは最大にリセット
$game_system.en_hp_holding[enemy.id] = enemy.maxhp
end
end
# 元の処理を実施
battle_end_Enemy_HP_Hold(result)
end
end
#==============================================================================
# ■ Scene_Battle (分割定義 2)
#==============================================================================
class Scene_Battle
#--------------------------------------------------------------------------
# ● フレーム更新 (プレバトルフェーズ)
#--------------------------------------------------------------------------
alias update_phase1_Enemy_HP_Hold update_phase1
def update_phase1
# エネミーのHPを再設定
$game_troop.enemies.each do |enemy|
if enemy.exist? && $game_system.en_hp_hld_flg[enemy.id] == true &&
$game_system.en_hp_holding[enemy.id].is_a?(Numeric)
enemy.hp = $game_system.en_hp_holding[enemy.id]
end
end
# 元の処理を実施
update_phase1_Enemy_HP_Hold
end
end
#==============================================================================
# ■ Interpreter (分割定義 X)
#==============================================================================
class Interpreter
#--------------------------------------------------------------------------
# ● エネミーのHP保持フラグの設定
# id : エネミーのID
#--------------------------------------------------------------------------
def set_hp_hold(id)
if id.is_a?(Numeric)
$game_system.en_hp_hld_flg[id] = true
else
p "数値以外が設定されました"
end
end
end
|