#============================================================================== # ■ VXAce-RGSS3-36 表情差分 [Ver.1.0.1] by Claimh #------------------------------------------------------------------------------ # ・被ダメージ、回復、勝利時にアクターグラフィックを変化させます #------------------------------------------------------------------------------ # アクター : 全アクターが対象 # エネミー : メモ欄にがあるもののみ #------------------------------------------------------------------------------ #【画像素材規格】 # ・バトラー画像 # [Import] Graphics/Battlers # [File名] ActorN (N…アクターIDの数字) # [サイズ] 任意(推奨 : 640×169ぐらい) # [ 内容 ] 左から下記の4パターンで配置 # | 通常時 | 被ダメージ時 | 回復時 | 勝利時 | #============================================================================== #============================================================================== # ■ Game_BattlerBase #============================================================================== class Game_BattlerBase attr_accessor :btlrst # 戦闘時のバトラー表示 #-------------------------------------------------------------------------- # ● オブジェクト初期化 #-------------------------------------------------------------------------- alias init_fcdiff initialize def initialize init_fcdiff @btlrst = FvBtlrPicture.new end #-------------------------------------------------------------------------- # ● 表情差分有り? #-------------------------------------------------------------------------- def face_change? actor? ? true : enemy.note.include?("") end end #============================================================================== # ■ Game_Battler #============================================================================== class Game_Battler < Game_BattlerBase #-------------------------------------------------------------------------- # ● 戦闘開始処理 #-------------------------------------------------------------------------- alias on_battle_start_fcdiff on_battle_start def on_battle_start @btlrst.normal on_battle_start_fcdiff end #-------------------------------------------------------------------------- # ● 戦闘終了処理 #-------------------------------------------------------------------------- alias on_battle_end_fcdiff on_battle_end def on_battle_end on_battle_end_fcdiff @btlrst.normal end end #============================================================================== # ■ FvBtlrPicture #============================================================================== class FvBtlrPicture NORMAL=0;DAMAGE=1;RECOVER=2;WIN=3 #-------------------------------------------------------------------------- # ● オブジェクト初期化 #-------------------------------------------------------------------------- def initialize normal end #-------------------------------------------------------------------------- # ● ステータス変更 #-------------------------------------------------------------------------- def normal; @i = NORMAL; end def damage; @i = DAMAGE; end def recover; @i = RECOVER; end def win; @i = WIN; end #-------------------------------------------------------------------------- # ● ステータス矩形取得 #-------------------------------------------------------------------------- def rect(bitmap) w = bitmap.width / 4 Rect.new(@i * w, 0, w, bitmap.height) end end #============================================================================== # ■ Window_BattleLog #============================================================================== class Window_BattleLog < Window_Selectable #-------------------------------------------------------------------------- # ● 行動結果の表示 #-------------------------------------------------------------------------- alias display_action_results_fcdiff display_action_results def display_action_results(target, item) if !target.result.missed and !target.result.evaded if target.result.hp_damage > 0 or target.result.mp_damage > 0 or target.result.tp_damage > 0 target.btlrst.damage elsif target.result.hp_damage < 0 or target.result.mp_damage < 0 or target.result.tp_damage < 0 target.btlrst.recover end end display_action_results_fcdiff(target, item) target.btlrst.normal end end #============================================================================== # ■ FvDamagePops : ダメージポップクラス #============================================================================== if defined?(FvDamagePops) class FvDamagePops #------------------------------------------------------------------------ # ● ビットマップ幅 / 4 [再定義] #------------------------------------------------------------------------ def bitmap_width(bt) (@battler.face_change? ? (bt.width / 4) : bt.width) / 4 end end end #============================================================================== # ■ Sprite_Battler #============================================================================== class Sprite_Battler < Sprite_Base #-------------------------------------------------------------------------- # ● ビットマップ幅 / 2 #-------------------------------------------------------------------------- def bitmap_half (@battler.face_change? ? (bitmap.width / 4) : bitmap.width) / 2 end #-------------------------------------------------------------------------- # ● 転送元ビットマップ矩形の更新 #-------------------------------------------------------------------------- def update_bitmap_src_rect self.src_rect.set(@battler.btlrst.rect(bitmap)) end #-------------------------------------------------------------------------- # ● 原点の更新 #-------------------------------------------------------------------------- alias update_origin_fcdiff update_origin def update_origin update_origin_fcdiff if bitmap self.ox = bitmap_half update_bitmap_src_rect if @battler.face_change? end end #-------------------------------------------------------------------------- # ● 通常の設定に戻す #-------------------------------------------------------------------------- alias revert_to_normal_fcdiff revert_to_normal def revert_to_normal revert_to_normal_fcdiff self.ox = bitmap_half if bitmap end #-------------------------------------------------------------------------- # ● ボス崩壊エフェクトの更新 #-------------------------------------------------------------------------- alias update_boss_collapse_fcdiff update_boss_collapse def update_boss_collapse update_boss_collapse_fcdiff self.ox = bitmap_half + @effect_duration % 2 * 4 - 2 end end #============================================================================== # ■ BattleManager #============================================================================== class << BattleManager #-------------------------------------------------------------------------- # ● 勝利の処理 #-------------------------------------------------------------------------- alias process_victory_fcdiff process_victory def process_victory $game_party.members.each {|a| a.btlrst.win} process_victory_fcdiff end end