- #============================================================================== 
- #  
- # ▼ Yanfly Engine Ace - 战斗信息记录 v1.02 
- # -- 最后更新: 2012.01.24 
- # -- 使用难度: 简单 
- # -- 需要脚本: 无 
- #  
- #============================================================================== 
-   
- $imported = {} if $imported.nil? 
- $imported["YEA-CombatLogDisplay"] = true 
-   
- #============================================================================== 
- # ▼ Updates 
- # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= 
- # 2012.01.24 - Bug Fixed: Confirm window crash with Battle Command List. 
- # 2012.01.16 - Prevented subsequent line inserts. 
- # 2011.12.10 - Started Script and Finished. 
- #  
- #============================================================================== 
- # ▼ 介绍 
- # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= 
- # 有时候战斗信息跳的太快了,玩家根本来不及看,很可能错过重要的战斗信息。 
- # 本脚本提供战斗信息记录的功能,玩家可以在角色行动时在"战斗/撤退"窗口中点击 
- # 相应指令来回顾之前的全部战斗信息. 
- #  
- #============================================================================== 
- # ▼ 安装方式 
- # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= 
- # 打开脚本编辑器,将本脚本拷贝/复制到一个在▼ 插件脚本之下▼ Main之上的新 
- # 脚本页/槽中.记得保存你的工程以使脚本生效. 
- #  
- #============================================================================== 
- # ▼ 兼容性 
- # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= 
- # 本脚本仅为RPG Maker VX Ace编写.极不可能在无任何修改的情况下运行于RPG Maker VX. 
- #  
- #============================================================================== 
-   
- module YEA 
-   module COMBAT_LOG 
-   
-     #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- 
-     # - 战斗信息设置 - 
-     #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- 
-   
-     COMMAND_NAME      = "记录"         # 战斗信息记录的指令名. 
-     LINE_COLOUR       = 0              # 拆分动作行的颜色. 
-     LINE_COLOUR_ALPHA = 48             # 拆分动作行的不透明度. 
-     TEXT_BATTLE_START = "\\c[4]战斗开始!"           # 战斗开始的文本. 
-     TEXT_TURN_NUMBER  = "\\c[4]回合数: \\c[6]%d"    # 回合数的文本. 
-   
-   end # COMBAT_LOG 
- end # YEA 
-   
- #============================================================================== 
- # ▼ 编辑以下内容可能会出现电脑损坏、死机,电脑主人脑袋爆炸、昏迷、死亡或口臭 
- # 所以编辑了后果自负。 
- #============================================================================== 
-   
- #============================================================================== 
- # ■ Window_BattleLog 
- #============================================================================== 
-   
- class Window_BattleLog < Window_Selectable 
-   
-   #-------------------------------------------------------------------------- 
-   # new method: combatlog_window= 
-   #-------------------------------------------------------------------------- 
-   def combatlog_window=(window) 
-     @combatlog_window = window 
-   end 
-   
-   #-------------------------------------------------------------------------- 
-   # new method: combatlog 
-   #-------------------------------------------------------------------------- 
-   def combatlog(text) 
-     return if @combatlog_window.nil? 
-     return if text == "" 
-     @combatlog_window.add_line(text) 
-   end 
-   
-   #-------------------------------------------------------------------------- 
-   # alias method: add_text 
-   #-------------------------------------------------------------------------- 
-   alias window_battlelog_add_text_cld add_text 
-   def add_text(text) 
-     combatlog(text) 
-     window_battlelog_add_text_cld(text) 
-   end 
-   
-   #-------------------------------------------------------------------------- 
-   # alias method: replace_text 
-   #-------------------------------------------------------------------------- 
-   alias window_battlelog_replace_text_cld replace_text 
-   def replace_text(text) 
-     combatlog(text) 
-     window_battlelog_replace_text_cld(text) 
-   end 
-   
-   #-------------------------------------------------------------------------- 
-   # Start Ace Battle Engine Compatibility 
-   #-------------------------------------------------------------------------- 
-   if $imported["YEA-BattleEngine"] 
-   
-   #-------------------------------------------------------------------------- 
-   # alias method: display_current_state 
-   #-------------------------------------------------------------------------- 
-   alias window_battlelog_display_current_state_cld display_current_state 
-   def display_current_state(subject) 
-     window_battlelog_display_current_state_cld(subject) 
-     return if YEA::BATTLE::MSG_CURRENT_STATE 
-     return if subject.most_important_state_text.empty? 
-     combatlog(subject.name + subject.most_important_state_text) 
-   end 
-   
-   #-------------------------------------------------------------------------- 
-   # alias method: display_use_item 
-   #-------------------------------------------------------------------------- 
-   alias window_battlelog_display_use_item_cld display_use_item 
-   def display_use_item(subject, item) 
-     window_battlelog_display_use_item_cld(subject, item) 
-     return if YEA::BATTLE::MSG_CURRENT_ACTION 
-     if item.is_a?(RPG::Skill) 
-       combatlog(subject.name + item.message1) 
-       unless item.message2.empty? 
-         combatlog(item.message2) 
-       end 
-     else 
-       combatlog(sprintf(Vocab::UseItem, subject.name, item.name)) 
-     end 
-   end 
-   
-   #-------------------------------------------------------------------------- 
-   # alias method: display_counter 
-   #-------------------------------------------------------------------------- 
-   alias window_battlelog_display_counter_cld display_counter 
-   def display_counter(target, item) 
-     window_battlelog_display_counter_cld(target, item) 
-     return if YEA::BATTLE::MSG_COUNTERATTACK 
-     combatlog(sprintf(Vocab::CounterAttack, target.name)) 
-   end 
-   
-   #-------------------------------------------------------------------------- 
-   # alias method: display_reflection 
-   #-------------------------------------------------------------------------- 
-   alias window_battlelog_display_reflection_cld display_reflection 
-   def display_reflection(target, item) 
-     window_battlelog_display_reflection_cld(target, item) 
-     return if YEA::BATTLE::MSG_REFLECT_MAGIC 
-     combatlog(sprintf(Vocab::MagicReflection, target.name)) 
-   end 
-   
-   #-------------------------------------------------------------------------- 
-   # alias method: display_substitute 
-   #-------------------------------------------------------------------------- 
-   alias window_battlelog_display_substitute_cld display_substitute 
-   def display_substitute(substitute, target) 
-     window_battlelog_display_substitute_cld(substitute, target) 
-     return if YEA::BATTLE::MSG_SUBSTITUTE_HIT 
-     combatlog(sprintf(Vocab::Substitute, substitute.name, target.name)) 
-   end 
-   
-   #-------------------------------------------------------------------------- 
-   # alias method: display_failure 
-   #-------------------------------------------------------------------------- 
-   alias window_battlelog_display_failure_cld display_failure 
-   def display_failure(target, item) 
-     window_battlelog_display_failure_cld(target, item) 
-     return if YEA::BATTLE::MSG_FAILURE_HIT 
-     if target.result.hit? && !target.result.success 
-       combatlog(sprintf(Vocab::ActionFailure, target.name)) 
-     end 
-   end 
-   
-   #-------------------------------------------------------------------------- 
-   # alias method: display_critical 
-   #-------------------------------------------------------------------------- 
-   alias window_battlelog_display_critical_cld display_critical 
-   def display_critical(target, item) 
-     window_battlelog_display_critical_cld(target, item) 
-     return if YEA::BATTLE::MSG_CRITICAL_HIT 
-     if target.result.critical 
-       text = target.actor? ? Vocab::CriticalToActor : Vocab::CriticalToEnemy 
-       combatlog(text) 
-     end 
-   end 
-   
-   #-------------------------------------------------------------------------- 
-   # alias method: display_miss 
-   #-------------------------------------------------------------------------- 
-   alias window_battlelog_display_miss_cld display_miss 
-   def display_miss(target, item) 
-     window_battlelog_display_miss_cld(target, item) 
-     return if YEA::BATTLE::MSG_HIT_MISSED 
-     if !item || item.physical? 
-       fmt = target.actor? ? Vocab::ActorNoHit : Vocab::EnemyNoHit 
-     else 
-       fmt = Vocab::ActionFailure 
-     end 
-     combatlog(sprintf(fmt, target.name)) 
-   end 
-   
-   #-------------------------------------------------------------------------- 
-   # alias method: display_evasion 
-   #-------------------------------------------------------------------------- 
-   alias window_battlelog_display_evasion_cld display_evasion 
-   def display_evasion(target, item) 
-     window_battlelog_display_evasion_cld(target, item) 
-     return if YEA::BATTLE::MSG_EVASION 
-     if !item || item.physical? 
-       fmt = Vocab::Evasion 
-     else 
-       fmt = Vocab::MagicEvasion 
-     end 
-     combatlog(sprintf(fmt, target.name)) 
-   end 
-   
-   #-------------------------------------------------------------------------- 
-   # alias method: display_hp_damage 
-   #-------------------------------------------------------------------------- 
-   alias window_battlelog_display_hp_damage_cld display_hp_damage 
-   def display_hp_damage(target, item) 
-     window_battlelog_display_hp_damage_cld(target, item) 
-     return if YEA::BATTLE::MSG_HP_DAMAGE 
-     return if target.result.hp_damage == 0 && item && !item.damage.to_hp? 
-     combatlog(target.result.hp_damage_text) 
-   end 
-   
-   #-------------------------------------------------------------------------- 
-   # alias method: display_mp_damage 
-   #-------------------------------------------------------------------------- 
-   alias window_battlelog_display_mp_damage_cld display_mp_damage 
-   def display_mp_damage(target, item) 
-     window_battlelog_display_mp_damage_cld(target, item) 
-     return if YEA::BATTLE::MSG_MP_DAMAGE 
-     combatlog(target.result.mp_damage_text) 
-   end 
-   
-   #-------------------------------------------------------------------------- 
-   # alias method: display_tp_damage 
-   #-------------------------------------------------------------------------- 
-   alias window_battlelog_display_tp_damage_cld display_tp_damage 
-   def display_tp_damage(target, item) 
-     window_battlelog_display_tp_damage_cld(target, item) 
-     return if YEA::BATTLE::MSG_TP_DAMAGE 
-     combatlog(target.result.tp_damage_text) 
-   end 
-   
-   #-------------------------------------------------------------------------- 
-   # alias method: display_added_states 
-   #-------------------------------------------------------------------------- 
-   alias window_battlelog_display_added_states_cld display_added_states 
-   def display_added_states(target) 
-     window_battlelog_display_added_states_cld(target) 
-     return if YEA::BATTLE::MSG_ADDED_STATES 
-     target.result.added_state_objects.each do |state| 
-       state_msg = target.actor? ? state.message1 : state.message2 
-       next if state_msg.empty? 
-       combatlog(target.name + state_msg) 
-     end 
-   end 
-   
-   #-------------------------------------------------------------------------- 
-   # alias method: display_removed_states 
-   #-------------------------------------------------------------------------- 
-   alias window_battlelog_display_removed_states_cld display_removed_states 
-   def display_removed_states(target) 
-     window_battlelog_display_removed_states_cld(target) 
-     return if YEA::BATTLE::MSG_REMOVED_STATES 
-     target.result.removed_state_objects.each do |state| 
-       next if state.message4.empty? 
-       combatlog(target.name + state.message4) 
-     end 
-   end 
-   
-   #-------------------------------------------------------------------------- 
-   # alias method: display_buffs 
-   #-------------------------------------------------------------------------- 
-   alias window_battlelog_display_buffs_cld display_buffs 
-   def display_buffs(target, buffs, fmt) 
-     window_battlelog_display_buffs_cld(target, buffs, fmt) 
-     return if YEA::BATTLE::MSG_CHANGED_BUFFS 
-     buffs.each do |param_id| 
-       combatlog(sprintf(fmt, target.name, Vocab::param(param_id))) 
-     end 
-   end 
-   
-   #-------------------------------------------------------------------------- 
-   # End Ace Battle Engine Compatibility 
-   #-------------------------------------------------------------------------- 
-   end # $imported["YEA-BattleEngine"] 
-   
- end # Window_BattleLog 
-   
- #============================================================================== 
- # ■ Window_CombatLog 
- #============================================================================== 
-   
- class Window_CombatLog < Window_Selectable 
-   
-   #-------------------------------------------------------------------------- 
-   # initialize 
-   #-------------------------------------------------------------------------- 
-   def initialize 
-     @data = [] 
-     super(0, 0, Graphics.width, Graphics.height-120) 
-     deactivate 
-     hide 
-   end 
-   
-   #-------------------------------------------------------------------------- 
-   # add_line 
-   #-------------------------------------------------------------------------- 
-   def add_line(text) 
-     return if text == "-" && @data[@data.size - 1] == "-" 
-     @data.push(text) 
-   end 
-   
-   #-------------------------------------------------------------------------- 
-   # refresh 
-   #-------------------------------------------------------------------------- 
-   def refresh 
-     create_contents 
-     draw_all_items 
-   end 
-   
-   #-------------------------------------------------------------------------- 
-   # item_max 
-   #-------------------------------------------------------------------------- 
-   def item_max; return @data.size; end 
-   
-   #-------------------------------------------------------------------------- 
-   # draw_item 
-   #-------------------------------------------------------------------------- 
-   def draw_item(index) 
-     text = @data[index] 
-     return if text.nil? 
-     rect = item_rect_for_text(index) 
-     if text == "-" 
-       draw_horz_line(rect.y) 
-     else 
-       draw_text_ex(rect.x, rect.y, text) 
-     end 
-   end 
-   
-   #-------------------------------------------------------------------------- 
-   # draw_horz_line 
-   #-------------------------------------------------------------------------- 
-   def draw_horz_line(y) 
-     line_y = y + line_height / 2 - 1 
-     contents.fill_rect(4, line_y, contents_width-8, 2, line_colour) 
-   end 
-   
-   #-------------------------------------------------------------------------- 
-   # line_colour 
-   #-------------------------------------------------------------------------- 
-   def line_colour 
-     colour = text_color(YEA::COMBAT_LOG::LINE_COLOUR) 
-     colour.alpha = YEA::COMBAT_LOG::LINE_COLOUR_ALPHA 
-     return colour 
-   end 
-   
-   #-------------------------------------------------------------------------- 
-   # show 
-   #-------------------------------------------------------------------------- 
-   def show 
-     super 
-     refresh 
-     activate 
-     select([item_max-1, 0].max) 
-   end 
-   
-   #-------------------------------------------------------------------------- 
-   # hide 
-   #-------------------------------------------------------------------------- 
-   def hide 
-     deactivate 
-     super 
-   end 
-   
- end # Window_CombatLog 
-   
- #============================================================================== 
- # ■ Window_PartyCommand 
- #============================================================================== 
-   
- class Window_PartyCommand < Window_Command 
-   
-   #-------------------------------------------------------------------------- 
-   # alias method: make_command_list 
-   #-------------------------------------------------------------------------- 
-   alias window_partycommand_make_command_list_cld make_command_list 
-   def make_command_list 
-     window_partycommand_make_command_list_cld 
-     return if $imported["YEA-BattleCommandList"] 
-     add_command(YEA::COMBAT_LOG::COMMAND_NAME, :combatlog) 
-   end 
-   
- end # Window_PartyCommand 
-   
- #============================================================================== 
- # ■ Scene_Battle 
- #============================================================================== 
-   
- class Scene_Battle < Scene_Base 
-   
-   #-------------------------------------------------------------------------- 
-   # alias method: create_log_window 
-   #-------------------------------------------------------------------------- 
-   alias scene_battle_create_log_window_cld create_log_window 
-   def create_log_window 
-     scene_battle_create_log_window_cld 
-     create_combatlog_window 
-   end 
-   
-   #-------------------------------------------------------------------------- 
-   # new method: create_combatlog_window 
-   #-------------------------------------------------------------------------- 
-   def create_combatlog_window 
-     @combatlog_window = Window_CombatLog.new 
-     @log_window.combatlog_window = @combatlog_window 
-     @combatlog_window.set_handler(:cancel, method(:close_combatlog)) 
-     @combatlog_window.add_line("-") 
-     @combatlog_window.add_line(YEA::COMBAT_LOG::TEXT_BATTLE_START) 
-     @combatlog_window.add_line("-") 
-   end 
-   
-   #-------------------------------------------------------------------------- 
-   # new method: open_combatlog 
-   #-------------------------------------------------------------------------- 
-   def open_combatlog 
-     @combatlog_window.show 
-   end 
-   
-   #-------------------------------------------------------------------------- 
-   # new method: close_combatlog 
-   #-------------------------------------------------------------------------- 
-   def close_combatlog 
-     @combatlog_window.hide 
-     if $imported["YEA-BattleCommandList"] 
-       if !@confirm_command_window.nil? && @confirm_command_window.visible 
-         @confirm_command_window.activate 
-       else 
-         @party_command_window.activate 
-       end 
-     else 
-       @party_command_window.activate 
-     end 
-   end 
-   
-   #-------------------------------------------------------------------------- 
-   # alias method: create_party_command_window 
-   #-------------------------------------------------------------------------- 
-   alias create_party_command_window_cld create_party_command_window 
-   def create_party_command_window 
-     create_party_command_window_cld 
-     @party_command_window.set_handler(:combatlog, method(:open_combatlog)) 
-   end 
-   
-   #-------------------------------------------------------------------------- 
-   # alias method: turn_start 
-   #-------------------------------------------------------------------------- 
-   alias scene_battle_turn_start_cld turn_start 
-   def turn_start 
-     scene_battle_turn_start_cld 
-     @combatlog_window.add_line("-") 
-     text = sprintf(YEA::COMBAT_LOG::TEXT_TURN_NUMBER, $game_troop.turn_count) 
-     @combatlog_window.add_line(text) 
-     @combatlog_window.add_line("-") 
-   end 
-   
-   #-------------------------------------------------------------------------- 
-   # alias method: execute_action 
-   #-------------------------------------------------------------------------- 
-   alias scene_battle_execute_action_cld execute_action 
-   def execute_action 
-     @combatlog_window.add_line("-") 
-     scene_battle_execute_action_cld 
-     @combatlog_window.add_line("-") 
-   end 
-   
-   #-------------------------------------------------------------------------- 
-   # alias method: turn_end 
-   #-------------------------------------------------------------------------- 
-   alias scene_battle_turn_end_cld turn_end 
-   def turn_end 
-     scene_battle_turn_end_cld 
-     @combatlog_window.add_line("-") 
-   end 
-   
- end # Scene_Battle 
-   
- #============================================================================== 
- #  
- # ▼ End of File 
- #  
- #==============================================================================