# ▽△▽ XRXSv39. ダメージシェイク ▽△▽ # # publish 2010/ 4/ 8 # update - /24 # #============================================================================== # カスタマイズポイント #============================================================================== module XRXSV39 # # ダメージシェイク時間 (前半時間, 後半時間, ぶれ幅) # # (連動 : イミディエイト・ダメージ+ #     ヒットストップは前半時間の間だけ有効になります。) # Duration1 = 8 Duration2 = 16 ShakeXs = [-8,4,-4,8] # # エネミーダメージブリンクを有効にする? (VX標準 : true) # EnemyDamageBlink = false end #============================================================================== # ダメージシェイク機能 #============================================================================== class Sprite_Battler < Sprite_Base alias xrxsv39_update_battler_bitmap update_battler_bitmap def update_battler_bitmap xrxsv39_update_battler_bitmap update_damageshake end def update_damageshake if @battler.battle_damageshake @damgeshake_duration = XRXSV39::Duration1 unless @damgeshake_duration n = XRXSV39::ShakeXs[(@damgeshake_duration) % 4] self.x += n @damgeshake_duration -= 1 if @damgeshake_duration == 0 @battler.battle_damageshake = false @damgeshake_duration = nil @damgeshake_duration2 = XRXSV39::Duration2 end elsif @damgeshake_duration2 n = XRXSV39::ShakeXs[(@damgeshake_duration2) % 4] self.x += n @damgeshake_duration2 -= 1 @damgeshake_duration2 = nil if @damgeshake_duration2 == 0 end end end class Game_Battler attr_accessor :battle_damageshake end #============================================================================== # HPダメージの表示時にダメージシェイクを設定 #============================================================================== class Scene_Battle < Scene_Base alias xrxsv39_display_hp_damage display_hp_damage def display_hp_damage(target, obj = nil) if target.absorbed # elsif target.hp_damage >= 1 target.battle_damageshake = true end xrxsv39_display_hp_damage(target, obj) if !XRXSV39::EnemyDamageBlink and !target.actor? target.blink = false end end end