BGMを途切れさせずにバトル
[概要]
現在のBGMとバトルBGMが同じとき、曲を途切れさせずにバトルシーンに切り替えます。
また、バトル終了MEをオフにしたときに戦闘終了時に生じる待ち時間を短縮する機能もあります。
[スクリプト]
#============================================================================== # ++ BGMを途切れさせずにバトル ver. 1.00 ++ # Script by パラ犬 # http://2d6.parasite.jp/ #------------------------------------------------------------------------------ # 現在のBGMとバトルBGMが同じとき、曲を途切れさせずにバトルシーンに切り替えます。 # また、バトル終了MEをオフにしたときに戦闘終了時に生じる待ち時間を # 短縮する機能もあります。 #------------------------------------------------------------------------------ # 戦闘終了時に曲を途切れさせないようにするには、 # イベントコマンドでバトル終了MEを「(none)」に設定してください。 #============================================================================== #============================================================================== # ■ Scene_Map #============================================================================== class Scene_Map #-------------------------------------------------------------------------- # ● バトルの呼び出し #-------------------------------------------------------------------------- def call_battle # バトル呼び出しフラグをクリア $game_temp.battle_calling = false # メニュー呼び出しフラグをクリア $game_temp.menu_calling = false $game_temp.menu_beep = false # エンカウント カウントを作成 $game_player.make_encounter_count # マップ BGM を記憶 $game_temp.map_bgm = $game_system.playing_bgm # バトル開始 SE を演奏 $game_system.se_play($data_system.battle_start_se) # バトル BGM を演奏 $game_system.bgm_play($game_system.battle_bgm) # プレイヤーの姿勢を矯正 $game_player.straighten # バトル画面に切り替え $scene = Scene_Battle.new end end #============================================================================== # ■ Scene_Battle (分割定義 2) #============================================================================== class Scene_Battle #-------------------------------------------------------------------------- # ● アフターバトルフェーズ開始 #-------------------------------------------------------------------------- def start_phase5 # フェーズ 5 に移行 @phase = 5 if $game_system.battle_end_me.name != "" # バトル終了 ME を演奏 $game_system.me_play($game_system.battle_end_me) end # バトル開始前の BGM に戻す $game_system.bgm_play($game_temp.map_bgm) # EXP、ゴールド、トレジャーを初期化 exp = 0 gold = 0 treasures = [] # ループ for enemy in $game_troop.enemies # エネミーが隠れ状態でない場合 unless enemy.hidden # 獲得 EXP、ゴールドを追加 exp += enemy.exp gold += enemy.gold # トレジャー出現判定 if rand(100) < enemy.treasure_prob if enemy.item_id > 0 treasures.push($data_items[enemy.item_id]) end if enemy.weapon_id > 0 treasures.push($data_weapons[enemy.weapon_id]) end if enemy.armor_id > 0 treasures.push($data_armors[enemy.armor_id]) end end end end # トレジャーの数を 6 個までに限定 treasures = treasures[0..5] # EXP 獲得 for i in 0...$game_party.actors.size actor = $game_party.actors[i] if actor.cant_get_exp? == false last_level = actor.level actor.exp += exp if actor.level > last_level @status_window.level_up(i) end end end # ゴールド獲得 $game_party.gain_gold(gold) # トレジャー獲得 for item in treasures case item when RPG::Item $game_party.gain_item(item.id, 1) when RPG::Weapon $game_party.gain_weapon(item.id, 1) when RPG::Armor $game_party.gain_armor(item.id, 1) end end # バトルリザルトウィンドウを作成 @result_window = Window_BattleResult.new(exp, gold, treasures) if $game_system.battle_end_me.name != "" # ウェイトカウントを設定 @phase5_wait_count = 100 else # ウェイトカウントを設定 @phase5_wait_count = 20 end end end
[更新履歴]
2006/1/25 ver.1.00
公開。
戻る