Inscrit le: 20 Mai 2007, 00:00 Messages: 159 Points d'aide: 0/60
Créations :
Voir ses créations
|
------------- 2em script - Code: Tout sélectionner
#============================================================================== # ■ VX-RGSS2-6 Side-View Battle System [MotionCtrl] [Ver.1.0.0] by Claimh #------------------------------------------------------------------------------ # English Translation By: Elemental Crisis [http://www.rpgcrisis.net] #------------------------------------------------------------------------------ # This script carries out the movement controls of the actors. #==============================================================================
#============================================================================== # ■ Scene_Battle #============================================================================== class Scene_Battle < Scene_Base #-------------------------------------------------------------------------- # ● Battle Start Process #-------------------------------------------------------------------------- alias process_battle_start_sideview process_battle_start def process_battle_start for battler in $game_party.members + $game_troop.members battler.move_mode = SideView::M_MODE_WAIT end process_battle_start_sideview end #-------------------------------------------------------------------------- # ● Victory Process #-------------------------------------------------------------------------- alias process_victory_sideview process_victory def process_victory for actor in $game_party.members actor.move_mode = SideView::M_MODE_WIN end process_victory_sideview end #-------------------------------------------------------------------------- # ● Wait Until Motion Control Is Finished #-------------------------------------------------------------------------- def wait_for_motion while @active_battler.motion_stop update_basic end end #-------------------------------------------------------------------------- # ● Execute Combat Operations: Attack [Redefinition] #-------------------------------------------------------------------------- def execute_action_attack text = sprintf(Vocab::DoAttack, @active_battler.name) @message_window.add_instant_text(text) targets = @active_battler.action.make_targets #---Enemy attack sound reproduced. if @active_battler.is_a?(Game_Enemy) Sound.play_enemy_attack wait(15, true) end #--- Proximity (Going) SideView.set_target_point(@active_battler, targets[0]) @active_battler.move_mode = SideView::M_MODE_ATK1 @active_battler.motion_stop = true wait_for_motion #--- Attack wait(5) @active_battler.move_mode = SideView::M_MODE_ATK2 #--- display_attack_animation(targets) wait(20) for target in targets target.attack_effect(@active_battler) display_action_effects(target) end #--- Proximity (Return) @active_battler.move_mode = SideView::M_MODE_ATK3 @active_battler.motion_stop = true wait_for_motion #---Wait for target in targets target.move_mode = SideView::M_MODE_WAIT end @active_battler.move_mode = SideView::M_MODE_WAIT #--- end #-------------------------------------------------------------------------- # ● Execute Combat Operations: Skill [Redefinition] #-------------------------------------------------------------------------- def execute_action_skill skill = @active_battler.action.skill text = @active_battler.name + skill.message1 @message_window.add_instant_text(text) unless skill.message2.empty? wait(10) @message_window.add_instant_text(skill.message2) end #--- Enemy attack sound reproduced. if @active_battler.is_a?(Game_Enemy) Sound.play_enemy_attack wait(15, true) end #--- Long distance attack @active_battler.move_mode = SideView::M_MODE_MAGI #--- targets = @active_battler.action.make_targets display_animation(targets, skill.animation_id) @active_battler.mp -= @active_battler.calc_mp_cost(skill) $game_temp.common_event_id = skill.common_event_id for target in targets target.skill_effect(@active_battler, skill) display_action_effects(target, skill) end #---Wait for target in targets target.move_mode = SideView::M_MODE_WAIT end @active_battler.move_mode = SideView::M_MODE_WAIT #--- end #-------------------------------------------------------------------------- # ● Execute Combat Operations: Item [Redefinition] #-------------------------------------------------------------------------- def execute_action_item item = @active_battler.action.item text = sprintf(Vocab::UseItem, @active_battler.name, item.name) @message_window.add_instant_text(text) #--- Enemy attack sound reproduced. if @active_battler.is_a?(Game_Enemy) Sound.play_enemy_attack wait(15, true) end #--- Long distance attack @active_battler.move_mode = SideView::M_MODE_MAGI #--- targets = @active_battler.action.make_targets display_animation(targets, item.animation_id) $game_party.consume_item(item) $game_temp.common_event_id = item.common_event_id for target in targets target.item_effect(@active_battler, item) display_action_effects(target, item) end #---Wait for target in targets target.move_mode = SideView::M_MODE_WAIT end @active_battler.move_mode = SideView::M_MODE_WAIT #--- end #-------------------------------------------------------------------------- # ● Attack Animation Display [Redefinition] # Targets : Object's Arrangement #-------------------------------------------------------------------------- # 【Changed part】 # Enemy sound effect is changed so it can be used in each phase of operation. # However, it changes so that the attack animation of an enemy can be displayed. #-------------------------------------------------------------------------- def display_attack_animation(targets) display_normal_animation(targets, @active_battler.atk_animation_id, false) display_normal_animation(targets, @active_battler.atk_animation_id2, true) wait_for_animation end #-------------------------------------------------------------------------- # ● HP Damage display [Redefinition] # target : Candidate # obj : Skill or item #-------------------------------------------------------------------------- def display_hp_damage(target, obj = nil) if target.hp_damage == 0 # No damage return if obj != nil and obj.damage_to_mp return if obj != nil and obj.base_damage == 0 fmt = target.actor? ? Vocab::ActorNoDamage : Vocab::EnemyNoDamage text = sprintf(fmt, target.name) elsif target.absorbed # Absorption fmt = target.actor? ? Vocab::ActorDrain : Vocab::EnemyDrain text = sprintf(fmt, target.name, Vocab::hp, target.hp_damage) elsif target.hp_damage > 0 # Damage if target.actor? text = sprintf(Vocab::ActorDamage, target.name, target.hp_damage) Sound.play_actor_damage $game_troop.screen.start_shake(5, 5, 10) target.blink = true # Only adds here else text = sprintf(Vocab::EnemyDamage, target.name, target.hp_damage) Sound.play_enemy_damage target.blink = true end else # Recovery fmt = target.actor? ? Vocab::ActorRecovery : Vocab::EnemyRecovery text = sprintf(fmt, target.name, Vocab::hp, -target.hp_damage) Sound.play_recovery end @message_window.add_instant_text(text) wait(30) end end
|
|