=begin RGSS3    ★ スキル発動時バトルバック暗転 ★ スキル発動時に、バトルバックを暗く変化させることで、雰囲気アップ。 ● 使い方 ●======================================================== スキルのメモ欄に「背景暗転」という文字列を含ませてください。 ==================================================================== ver1.00 Last Update : 2015/04/30 4/30 : RGSS2にあったものを移植 ろかん   http://kaisou-ryouiki.sakura.ne.jp/ =end #=================================== # ●設定箇所 #=================================== module Skill_Fade # 全てのスキルで背景を暗転させるか # (true にした場合メモ欄に設定をしなくてもバトルバックが暗転するようになります) ALL_FADE = false end #=================================== # ここまで #=================================== $rsi ||= {} $rsi["スキル発動時バトルバック暗転"] = true class Game_Action #-------------------------------------------------------------------------- # ● 通常攻撃判定 #-------------------------------------------------------------------------- def guard? item == $data_skills[subject.guard_skill_id] end #-------------------------------------------------------------------------- # ● スキル判定 #-------------------------------------------------------------------------- def skill? item.is_a?(RPG::Skill) && !attack? && !guard? end end class Game_Battler < Game_BattlerBase #-------------------------------------------------------------------------- # ● インクルード Skill_Fade #-------------------------------------------------------------------------- include Skill_Fade #-------------------------------------------------------------------------- # ● バトルバック暗転スキルを発動しようとしているかどうか #-------------------------------------------------------------------------- def fade_back_skill? if ALL_FADE current_action.skill? else current_action.skill? && current_action.item.note.include?("背景暗転") end end end class Spriteset_Battle SFO_SPEED = 7 MAX_FADE_OPACITY = SFO_SPEED * 12 #-------------------------------------------------------------------------- # ● 公開インスタンス変数 #-------------------------------------------------------------------------- attr_accessor :skill_fade_flag # スキル暗転フラグ #-------------------------------------------------------------------------- # ● 戦闘背景(床)スプライトの作成 #-------------------------------------------------------------------------- alias skill_fade_create_battleback1 create_battleback1 def create_battleback1 skill_fade_create_battleback1 @back1_sprite.color.set(0, 0, 0, 0) end #-------------------------------------------------------------------------- # ● 戦闘背景(壁)スプライトの作成 #-------------------------------------------------------------------------- alias skill_fade_create_battleback2 create_battleback2 def create_battleback2 skill_fade_create_battleback2 @back2_sprite.color = @back1_sprite.color end #-------------------------------------------------------------------------- # ● フレーム更新 #-------------------------------------------------------------------------- alias skill_fade_update update def update skill_fade_update update_fade_battleback end #-------------------------------------------------------------------------- # ● バトルバックスプライト暗転更新 #-------------------------------------------------------------------------- def update_fade_battleback if @skill_fade_flag unless @back1_sprite.color.alpha == MAX_FADE_OPACITY @back1_sprite.color.alpha += SFO_SPEED @back2_sprite.color.alpha = @back1_sprite.color.alpha end else @back1_sprite.color.alpha -= SFO_SPEED @back2_sprite.color.alpha = @back1_sprite.color.alpha end end end class Scene_Battle < Scene_Base #-------------------------------------------------------------------------- # ● アニメーションの表示 #-------------------------------------------------------------------------- alias skill_fade_show_animation show_animation def show_animation(targets, animation_id) if @subject.fade_back_skill? @spriteset.skill_fade_flag = true wait(40) end skill_fade_show_animation(targets, animation_id) end #-------------------------------------------------------------------------- # ● スキル/アイテムの使用 #-------------------------------------------------------------------------- alias skill_fade_use_item use_item def use_item skill_fade_use_item @spriteset.skill_fade_flag = false end end