Mundo Maker
¡Bienvenid@ a Mundo Maker!

¿Quieres aprender todo sobre el RPG Maker?



Regístrate y forma parte de Mundo Maker.
Conectarse

Recuperar mi contraseña

Temas importantes
----------------------------------------
Páginas con recursos RPG Maker
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
Afiliados
Estadísticas
Tenemos 3763 miembros registrados.
El último usuario registrado es Carlos Rodriguez.

Nuestros miembros han publicado un total de 85779 mensajes en 12216 argumentos.

[XP] Wecoc's Scene Battle Enhancer

Ver el tema anterior Ver el tema siguiente Ir abajo

RPG Maker XP [XP] Wecoc's Scene Battle Enhancer

Mensaje por Wecoc el 2016-10-04, 02:27

He subido varios scripts que modifican cosas de la batalla, aunque pocos porque es una sección que no me gusta mucho, especialmente porque habitualmente es muy tedioso testear bugs. Esos scripts practicamente nunca editan Scene_Battle, sino que editan Game_Battler, Sprite_Battler o como mucho Spriteset_Battle. Eso es porque un script que modifica Scene_Battle es como una bomba de incompatibilidades con cualquier script de batalla personalizado.

Aún así, y pensado sobretodo para los que usan la batalla default pero quieren mejorarla, hoy traigo una versión extendida de Scene_Battle.
Lo que hace es fragmentar los métodos largos en submétodos para que su alias sea más cómodo y añade un contador de victorias, derrotas (solo si vuelves al mapa, no si vas a Game Over) y también de las veces que los protas escaparon de batalla.

Otra novedad es que incluye un modo para facilitar un poco el testeo a los scripters; si se está en modo $DEBUG y se pulsa Control + S se llama un método llamado debug_test_effects. Ese método está justo al final del script y por defecto está vacío, pero sirve para que probéis ahí cualquer cosa y así poderla obtener más fácilmente en batalla.

Su utilidad ahora puede parecer prácticamente nula (de hecho no se ven diferencias) pero al fin y al cabo es como un mini-SDK solo para batalla, así que su utilidad es incrementar las posibilidades a la hora de hacer add-ons.

Va encima de main y encima de otros edits de batalla, y podéis darme créditos o no por usarlo, es opcional.

Código:
#==============================================================================
# ** Wecoc's Scene Battle Enhancer v1.0
#------------------------------------------------------------------------------
#  Author: Wecoc (no credits required)
#==============================================================================

module WSBE_CORE
  
  PRINT_MODE = false

end

class Game_System
  
  attr_accessor :battle_win_count
  attr_accessor :battle_lose_count
  attr_accessor :battle_escape_count
  
  alias wecoc_battle_enhancer_ini initialize unless $@
  def initialize
    wecoc_battle_enhancer_ini
    @battle_win_count = 0
    @battle_lose_count = 0
    @battle_escape_count = 0
  end
end

#==============================================================================
# ** Scene_Battle - Basic Methods
#==============================================================================

class Scene_Battle
  #--------------------------------------------------------------------------
  # * Main
  #--------------------------------------------------------------------------
  def main
    main_variables
    setup($game_temp.battle_troop_id)
    main_windows
    start_effects_pre_transition
    @wait_count = 0
    if $data_system.battle_transition == ""
      Graphics.transition(20)
    else
      transition = $data_system.battle_transition
      Graphics.transition(40, "Graphics/Transitions/" + transition)
    end
    start_effects_post_transition
    start_phase1
    loop do
      Graphics.update
      Input.update
      update
      if $scene != self
        break
      end
    end
    end_effects_pre_transition
    $game_map.refresh
    Graphics.freeze
    dispose
    if $scene.is_a?(Scene_Title)
      Graphics.transition
      Graphics.freeze
    end
    end_effects_post_transition
    if $BTEST and not $scene.is_a?(Scene_Gameover)
      $scene = nil
    end
  end
  #--------------------------------------------------------------------------
  # * Main - Start Game_Temp / Game_System variables
  #--------------------------------------------------------------------------
  def main_variables
    $game_temp.in_battle = true
    $game_temp.battle_turn = 0
    $game_temp.battle_event_flags.clear
    $game_temp.battle_abort = false
    $game_temp.battle_main_phase = false
    $game_temp.battleback_name = $game_map.battleback_name
    $game_temp.forcing_battler = nil
    $game_system.battle_interpreter.setup(nil, 0)
  end
  #--------------------------------------------------------------------------
  # * Setup Troop ID
  #--------------------------------------------------------------------------
  def setup(troop_id)
    @troop_id = troop_id
    $game_troop.setup(@troop_id)
  end
  #--------------------------------------------------------------------------
  # * Main - Create Windows
  #--------------------------------------------------------------------------
  def main_windows
    s1 = $data_system.words.attack
    s2 = $data_system.words.skill
    s3 = $data_system.words.guard
    s4 = $data_system.words.item
    @actor_command_window = Window_Command.new(160, [s1, s2, s3, s4])
    @actor_command_window.y = 160
    @actor_command_window.back_opacity = 160
    @actor_command_window.active = false
    @actor_command_window.visible = false
    @party_command_window = Window_PartyCommand.new
    @help_window = Window_Help.new
    @help_window.back_opacity = 160
    @help_window.visible = false
    @status_window = Window_BattleStatus.new
    @message_window = Window_Message.new
    @spriteset = Spriteset_Battle.new
  end
  #--------------------------------------------------------------------------
  # * Main - Dispose Windows
  #--------------------------------------------------------------------------
  def dispose
    @actor_command_window.dispose
    @party_command_window.dispose
    @help_window.dispose
    @status_window.dispose
    @message_window.dispose
    @skill_window.dispose   if @skill_window != nil
    @item_window.dispose    if @item_window != nil
    @result_window.dispose  if @result_window != nil
    @spriteset.dispose
  end
  #--------------------------------------------------------------------------
  # * Battle Ends
  #     result : results (0:win 1:lose 2:escape)
  #--------------------------------------------------------------------------
  def battle_end(result)
    case result
      when 0 ; win_effects
      when 1 ; lose_effects
      when 2 ; escape_effects
    end
    $game_temp.in_battle = false
    $game_party.clear_actions
    for actor in $game_party.actors
      actor.remove_states_battle
    end
    $game_troop.enemies.clear
    if $game_temp.battle_proc != nil
      $game_temp.battle_proc.call(result)
      $game_temp.battle_proc = nil
    end
    $scene = Scene_Map.new
  end
  #--------------------------------------------------------------------------
  # * Update
  #--------------------------------------------------------------------------
  def update
    if $game_system.battle_interpreter.running?
      update_interpreter
    end
    $game_system.update
    $game_screen.update
    if $game_system.timer_working and $game_system.timer == 0
      $game_temp.battle_abort = true
    end
    @help_window.update
    @party_command_window.update
    @actor_command_window.update
    @status_window.update
    @message_window.update
    @spriteset.update
    if $game_temp.transition_processing
      $game_temp.transition_processing = false
      if $game_temp.transition_name == ""
        Graphics.transition(20)
      else
        transition = $game_temp.transition_name
        Graphics.transition(40, "Graphics/Transitions/" + transition)
      end
    end
    return if $game_temp.message_window_showing
    return if @spriteset.effect?
    if $game_temp.gameover
      $scene = Scene_Gameover.new
      return
    end
    if $game_temp.to_title
      $scene = Scene_Title.new
      return
    end
    if $game_temp.battle_abort
      $game_system.bgm_play($game_temp.map_bgm)
      battle_end(1)
      return
    end
    if $DEBUG && Input.press?(Input::CTRL) && Input.trigger?(Input::Y)
      debug_test_effects
      return
    end
    if @wait_count > 0
      @wait_count -= 1
      return
    end
    if $game_temp.forcing_battler == nil and
       $game_system.battle_interpreter.running?
      return
    end
    # Branch according to phase
    case @phase
    when 1  # pre-battle phase
      update_phase1
    when 2  # party command phase
      update_phase2
    when 3  # actor command phase
      update_phase3
    when 4  # main phase
      update_phase4
    when 5  # after battle phase
      update_phase5
    end
  end
  #--------------------------------------------------------------------------
  # * Update Interpreter
  #--------------------------------------------------------------------------
  def update_interpreter
    $game_system.battle_interpreter.update
    if $game_temp.forcing_battler == nil
      unless $game_system.battle_interpreter.running?
        unless judge
          setup_battle_event
        end
      end
      if @phase != 5
        @status_window.refresh
      end
    end
  end
  #--------------------------------------------------------------------------
  # * Start Pre-Battle Phase
  #--------------------------------------------------------------------------
  def start_phase1
    @phase = 1
    start_phase1_effects
    $game_party.clear_actions
    setup_battle_event
  end
  #--------------------------------------------------------------------------
  # * Start Party Command Phase
  #--------------------------------------------------------------------------
  def start_phase2
    @phase = 2
    @actor_index = -1
    @active_battler = nil
    @party_command_window.active = true
    @party_command_window.visible = true
    @actor_command_window.active = false
    @actor_command_window.visible = false
    $game_temp.battle_main_phase = false
    $game_party.clear_actions
    start_phase2_effects
    unless $game_party.inputable?
      start_phase4
    end
  end
  #--------------------------------------------------------------------------
  # * Frame Update (party command phase)
  #--------------------------------------------------------------------------
  def update_phase2
    if Input.trigger?(Input::C)
      case @party_command_window.index
      when 0  # fight
        $game_system.se_play($data_system.decision_se)
        update_phase2_fight
      when 1  # escape
        if $game_temp.battle_can_escape == false
          $game_system.se_play($data_system.buzzer_se)
          return
        end
        $game_system.se_play($data_system.decision_se)
        update_phase2_escape
      end
      return
    end
  end  
  #--------------------------------------------------------------------------
  # * Frame Update (party command phase: fight)
  #--------------------------------------------------------------------------
  def update_phase2_fight
    command_fight_effects
    start_phase3
  end
  #--------------------------------------------------------------------------
  # * Frame Update (party command phase: escape)
  #--------------------------------------------------------------------------
  def update_phase2_escape
    command_escape_effects
    enemies_agi = 0
    enemies_number = 0
    for enemy in $game_troop.enemies
      if enemy.exist?
        enemies_agi += enemy.agi
        enemies_number += 1
      end
    end
    if enemies_number > 0
      enemies_agi /= enemies_number
    end
    actors_agi = 0
    actors_number = 0
    for actor in $game_party.actors
      if actor.exist?
        actors_agi += actor.agi
        actors_number += 1
      end
    end
    if actors_number > 0
      actors_agi /= actors_number
    end
    success = rand(100) < 50 * actors_agi / enemies_agi
    if success
      $game_system.se_play($data_system.escape_se)
      $game_system.bgm_play($game_temp.map_bgm)
      battle_end(1)
    else
      escape_fail_effects
      $game_party.clear_actions
      start_phase4
    end
  end
  #--------------------------------------------------------------------------
  # * Start After Battle Phase
  #--------------------------------------------------------------------------
  def start_phase5
    @phase = 5
    $game_system.me_play($game_system.battle_end_me)
    $game_system.bgm_play($game_temp.map_bgm)
    exp = 0
    gold = 0
    treasures = []
    for enemy in $game_troop.enemies
      unless enemy.hidden
        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
    treasures = treasures[0..5]
    @exp = exp
    @gold = gold
    @treasures = treasures
    start_phase5_effects
    phase5_result
    @phase5_wait_count = 100
  end
  #--------------------------------------------------------------------------
  # * Result Window Setup
  #--------------------------------------------------------------------------
  def phase5_result
    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)
  end
  #--------------------------------------------------------------------------
  # * Frame Update (after battle phase)
  #--------------------------------------------------------------------------
  def update_phase5
    if @phase5_wait_count > 0
      @phase5_wait_count -= 1
      if @phase5_wait_count == 0
        end_phase5_effects
        @result_window.visible = true
        $game_temp.battle_main_phase = false
        @status_window.refresh
      end
      return
    end
    if Input.trigger?(Input::C)
      battle_end(0)
    end
  end
  #--------------------------------------------------------------------------
  # * Start Actor Command Phase
  #--------------------------------------------------------------------------
  def start_phase3
    @phase = 3
    @actor_index = -1
    @active_battler = nil
    start_phase3_effects
    phase3_next_actor
  end
  #--------------------------------------------------------------------------
  # * Actor Command Window Setup
  #--------------------------------------------------------------------------
  def phase3_setup_command_window
    @party_command_window.active  = false
    @party_command_window.visible = false
    @actor_command_window.active  = true
    @actor_command_window.visible = true
    @actor_command_window.x = @actor_index * 160
    @actor_command_window.index = 0
    phase3_setup_effects
  end
  #--------------------------------------------------------------------------
  # * Frame Update (actor command phase : basic command)
  #--------------------------------------------------------------------------
  def update_phase3_basic_command
    if Input.trigger?(Input::B)
      $game_system.se_play($data_system.cancel_se)
      phase3_prior_actor
      return
    end
    if Input.trigger?(Input::C)
      case @actor_command_window.index
      when 0  # attack
        $game_system.se_play($data_system.decision_se)
        update_phase3_attack
      when 1  # skill
        $game_system.se_play($data_system.decision_se)
        update_phase3_skill
      when 2  # guard
        $game_system.se_play($data_system.decision_se)
        update_phase3_guard
      when 3  # item
        $game_system.se_play($data_system.decision_se)
        update_phase3_item
      end
      return
    end
  end
  #--------------------------------------------------------------------------
  # * Frame Update (actor command phase : attack)
  #--------------------------------------------------------------------------
  def update_phase3_attack
    @active_battler.current_action.kind = 0
    @active_battler.current_action.basic = 0
    command_actor_attack_effects
    start_enemy_select
  end
  #--------------------------------------------------------------------------
  # * Frame Update (actor command phase : skill)
  #--------------------------------------------------------------------------
  def update_phase3_skill
    @active_battler.current_action.kind = 1
    command_actor_skill_effects
    start_skill_select
  end
  #--------------------------------------------------------------------------
  # * Frame Update (actor command phase : guard)
  #--------------------------------------------------------------------------
  def update_phase3_guard
    @active_battler.current_action.kind = 0
    @active_battler.current_action.basic = 1
    command_actor_guard_effects
    phase3_next_actor
  end
  #--------------------------------------------------------------------------
  # * Frame Update (actor command phase : item)
  #--------------------------------------------------------------------------
  def update_phase3_item
    @active_battler.current_action.kind = 2
    command_actor_item_effects
    start_item_select
  end
  #--------------------------------------------------------------------------
  # * Frame Update (actor command phase : skill selection)
  #--------------------------------------------------------------------------
  def update_phase3_skill_select
    @skill_window.visible = true
    @skill_window.update
    if Input.trigger?(Input::B)
      $game_system.se_play($data_system.cancel_se)
      end_skill_select
      return
    end
    if Input.trigger?(Input::C)
      @skill = @skill_window.skill
      if @skill == nil or not @active_battler.skill_can_use?(@skill.id)
        $game_system.se_play($data_system.buzzer_se)
        return
      end
      $game_system.se_play($data_system.decision_se)
      update_phase3_skill_assign
      return
    end
  end
  #--------------------------------------------------------------------------
  # * Frame Update (actor command phase : skill assignation)
  #--------------------------------------------------------------------------
  def update_phase3_skill_assign
    @active_battler.current_action.skill_id = @skill.id
    @skill_window.visible = false
    if @skill.scope == 1
      start_enemy_select
    elsif @skill.scope == 3 or @skill.scope == 5
      start_actor_select
    else
      end_skill_select
      select_skill_effects
      phase3_next_actor
    end
  end
  #--------------------------------------------------------------------------
  # * Frame Update (actor command phase : item selection)
  #--------------------------------------------------------------------------
  def update_phase3_item_select
    @item_window.visible = true
    @item_window.update
    if Input.trigger?(Input::B)
      $game_system.se_play($data_system.cancel_se)
      end_item_select
      return
    end
    if Input.trigger?(Input::C)
      @item = @item_window.item
      unless $game_party.item_can_use?(@item.id)
        $game_system.se_play($data_system.buzzer_se)
        return
      end
      $game_system.se_play($data_system.decision_se)
      update_phase3_item_assign
      return
    end
  end
  #--------------------------------------------------------------------------
  # * Frame Update (actor command phase : item assignation)
  #--------------------------------------------------------------------------
  def update_phase3_item_assign
    @active_battler.current_action.item_id = @item.id
    @item_window.visible = false
    if @item.scope == 1
      start_enemy_select
    elsif @item.scope == 3 or @item.scope == 5
      start_actor_select
    else
      end_item_select
      select_item_effects
      phase3_next_actor
    end
  end
  #--------------------------------------------------------------------------
  # * Frame Update (actor command phase : enemy selection)
  #--------------------------------------------------------------------------
  def update_phase3_enemy_select
    @enemy_arrow.update
    if Input.trigger?(Input::B)
      $game_system.se_play($data_system.cancel_se)
      end_enemy_select
      return
    end
    if Input.trigger?(Input::C)
      $game_system.se_play($data_system.decision_se)
      update_phase3_enemy_assign
      phase3_next_actor
    end
  end
  #--------------------------------------------------------------------------
  # * Frame Update (actor command phase : enemy assignation)
  #--------------------------------------------------------------------------
  def update_phase3_enemy_assign
    target_index = @enemy_arrow.index
    @active_battler.current_action.target_index = target_index
    end_enemy_select
    if @skill_window != nil
      end_skill_select
      target = $game_troop.enemies[target_index]
      select_skill_effects(target, target_index)
    end
    if @item_window != nil
      end_item_select
      target = $game_troop.enemies[target_index]
      select_item_effects(target, target_index)
    end
  end
  #--------------------------------------------------------------------------
  # * Frame Update (actor command phase : actor selection)
  #--------------------------------------------------------------------------
  def update_phase3_actor_select
    @actor_arrow.update
    if Input.trigger?(Input::B)
      $game_system.se_play($data_system.cancel_se)
      end_actor_select
      return
    end
    if Input.trigger?(Input::C)
      $game_system.se_play($data_system.decision_se)
      update_phase3_actor_assign
      phase3_next_actor
    end
  end
  #--------------------------------------------------------------------------
  # * Frame Update (actor command phase : actor assignation)
  #--------------------------------------------------------------------------
  def update_phase3_actor_assign
    target_index = @actor_arrow.index
    @active_battler.current_action.target_index = target_index
    end_actor_select
    if @skill_window != nil
      end_skill_select
      target = $game_party.actors[target_index]
      select_skill_effects(target, target_index)
    end
    if @item_window != nil
      end_item_select
      target = $game_party.actors[target_index]
      select_item_effects(target, target_index)
    end
  end
  #--------------------------------------------------------------------------
  # * Start Main Phase
  #--------------------------------------------------------------------------
  def start_phase4
    @phase = 4
    $game_temp.battle_turn += 1
    for index in 0...$data_troops[@troop_id].pages.size
      page = $data_troops[@troop_id].pages[index]
      if page.span == 1
        $game_temp.battle_event_flags[index] = false
      end
    end
    @actor_index = -1
    @active_battler = nil
    @party_command_window.active  = false
    @party_command_window.visible = false
    @actor_command_window.active  = false
    @actor_command_window.visible = false
    $game_temp.battle_main_phase  = true
    start_phase4_effects
    for enemy in $game_troop.enemies
      enemy.make_action
    end
    make_action_orders
    @phase4_step = 1
  end
  #--------------------------------------------------------------------------
  # * Frame Update (main phase step 1 : action preparation)
  #--------------------------------------------------------------------------
  def update_phase4_step1
    @help_window.visible = false
    return if judge
    if $game_temp.forcing_battler == nil
      setup_battle_event
      if $game_system.battle_interpreter.running?
        return
      end
    end
    if $game_temp.forcing_battler != nil
      @action_battlers.delete($game_temp.forcing_battler)
      @action_battlers.unshift($game_temp.forcing_battler)
    end
    if @action_battlers.size == 0
      start_phase2
      return
    end
    @animation1_id = 0
    @animation2_id = 0
    @common_event_id = 0
    @active_battler = @action_battlers.shift
    return if @active_battler.index == nil
    if @active_battler.hp > 0 and @active_battler.slip_damage?
      update_phase4_slip_damage
    end
    update_phase4_remove_states
    @status_window.refresh
    @phase4_step = 2
  end
  #--------------------------------------------------------------------------
  # * Frame Update (main phase step 1 : slip damage)
  #--------------------------------------------------------------------------
  def update_phase4_slip_damage
    @active_battler.slip_damage_effect
    slip_damage_effects
    @active_battler.damage_pop = true
  end
  #--------------------------------------------------------------------------
  # * Frame Update (main phase step 1 : remove states auto)
  #--------------------------------------------------------------------------
  def update_phase4_remove_states
    remove_states_auto_effects
    @active_battler.remove_states_auto
  end
  #--------------------------------------------------------------------------
  # * Make Basic Action Results
  #--------------------------------------------------------------------------
  def make_basic_action_result
    case @active_battler.current_action.basic
    when 0 # attack
      @animation1_id = @active_battler.animation1_id
      @animation2_id = @active_battler.animation2_id
      set_attack_target_battlers
      for target in @target_battlers
        basic_attack_effects(target)
        target.attack_effect(@active_battler)
      end
    when 1 # guard
      @help_window.set_text($data_system.words.guard, 1)
      basic_guard_effects
    when 2 # escape
      @help_window.set_text("Escape", 1)
      basic_escape_effects
      @active_battler.escape
    when 3 # nothing
      $game_temp.forcing_battler = nil
      basic_nothing_effects
      @phase4_step = 1
    end
  end
  #--------------------------------------------------------------------------
  # * Set Attack Target Battlers
  #--------------------------------------------------------------------------
  def set_attack_target_battlers
    if @active_battler.is_a?(Game_Enemy)
      if @active_battler.restriction == 3
        target = $game_troop.random_target_enemy
      elsif @active_battler.restriction == 2
        target = $game_party.random_target_actor
      else
        index = @active_battler.current_action.target_index
        target = $game_party.smooth_target_actor(index)
      end
    end
    if @active_battler.is_a?(Game_Actor)
      if @active_battler.restriction == 3
        target = $game_party.random_target_actor
      elsif @active_battler.restriction == 2
        target = $game_troop.random_target_enemy
      else
        index = @active_battler.current_action.target_index
        target = $game_troop.smooth_target_enemy(index)
      end
    end
    @target_battlers = target.to_a
  end
  #--------------------------------------------------------------------------
  # * Make Skill Action Results
  #--------------------------------------------------------------------------
  def make_skill_action_result
    @skill = $data_skills[@active_battler.current_action.skill_id]
    unless @active_battler.current_action.forcing
      unless @active_battler.skill_can_use?(@skill.id)
        $game_temp.forcing_battler = nil
        @phase4_step = 1
        return
      end
    end
    @active_battler.sp -= @skill.sp_cost
    @status_window.refresh
    @help_window.set_text(@skill.name, 1)
    @animation1_id = @skill.animation1_id
    @animation2_id = @skill.animation2_id
    @common_event_id = @skill.common_event_id
    set_target_battlers(@skill.scope)
    for target in @target_battlers
      skill_action_effects(target)
      target.skill_effect(@active_battler, @skill)
    end
  end
  #--------------------------------------------------------------------------
  # * Make Item Action Results
  #--------------------------------------------------------------------------
  def make_item_action_result
    @item = $data_items[@active_battler.current_action.item_id]
    unless $game_party.item_can_use?(@item.id)
      @phase4_step = 1
      return
    end
    if @item.consumable
      $game_party.lose_item(@item.id, 1)
    end
    @help_window.set_text(@item.name, 1)
    @animation1_id = @item.animation1_id
    @animation2_id = @item.animation2_id
    @common_event_id = @item.common_event_id
    index = @active_battler.current_action.target_index
    target = $game_party.smooth_target_actor(index)
    set_target_battlers(@item.scope)
    for target in @target_battlers
      item_action_effects(target)
      target.item_effect(@item)
    end
  end
  #--------------------------------------------------------------------------
  # * Frame Update (main phase step 4 : animation for target)
  #--------------------------------------------------------------------------
  def update_phase4_step4
    if @animation2_id != 0
      @target_battlers.each_with_index do |s,i|
        s.instance_variable_set(:@disable_animation, false)
        if i > 0 && $data_animations[@animation2_id].position == 3
          s.instance_variable_set(:@disable_animation, true)
        end
      end
    end
    for target in @target_battlers
      target.animation_id = @animation2_id
      target.animation_hit = (target.damage != "Miss")
    end
    @wait_count = 8
    @phase4_step = 5
  end
end

#==============================================================================
# ** Scene_Battle - Effect Methods
#==============================================================================

class Scene_Battle
  
  include WSBE_CORE
  
  def start_effects_pre_transition
    print "Start Battle - Pre Transition" if $DEBUG && PRINT_MODE
  end
  
  def start_effects_post_transition
    print "Start Battle - Post Transition" if $DEBUG && PRINT_MODE
  end
  
  def end_effects_pre_transition
    print "End Battle - Pre Transition" if $DEBUG && PRINT_MODE
  end
  
  def end_effects_post_transition
    print "End Battle - Post Transition" if $DEBUG && PRINT_MODE
  end

  def win_effects
    print "You Win!" if $DEBUG && PRINT_MODE
    $game_system.battle_win_count += 1
  end
  
  def lose_effects
    print "You Lose!" if $DEBUG && PRINT_MODE
    $game_system.battle_lose_count += 1
  end
  
  def escape_effects
    print "You Escape!" if $DEBUG && PRINT_MODE
    $game_system.battle_escape_count += 1
  end
  
  def start_phase1_effects
    print "Start Phase 1 (Pre-Battle Phase)" if $DEBUG && PRINT_MODE
  end
  
  def start_phase2_effects
    print "Start Phase 2 (Party Command Phase)" if $DEBUG && PRINT_MODE
  end
  
  def start_phase3_effects
    print "Start Phase 3 (Actor Command Phase)" if $DEBUG && PRINT_MODE
  end
  
  def phase3_setup_effects
    print "Phase 3 Setup Command Window" if $DEBUG && PRINT_MODE
  end
  
  def start_phase4_effects
    print "Start Phase 4 (Main Phase)" if $DEBUG && PRINT_MODE
  end
  
  def start_phase5_effects
    print "Start Phase 5 (After Battle Phase)" if $DEBUG && PRINT_MODE
  end
    
  def end_phase5_effects
    print "End Phase 5 (After Battle Phase)" if $DEBUG && PRINT_MODE
  end
  
  def command_fight_effects
    print "Fight Command Selected" if $DEBUG && PRINT_MODE
  end
  
  def command_escape_effects
    print "Escape Command Selected" if $DEBUG && PRINT_MODE
  end
  
  def escape_fail_effects
    print "Escape Failed!" if $DEBUG && PRINT_MODE
  end
  
  def command_actor_attack_effects
    if $DEBUG && PRINT_MODE
      print "Actor: #{@active_battler.name} - Command Attack Selected"
    end
  end
  
  def command_actor_skill_effects
    if $DEBUG && PRINT_MODE
      print "Actor: #{@active_battler.name} - Command Skill Selected"
    end
  end
  
  def command_actor_guard_effects
    if $DEBUG && PRINT_MODE
      print "Actor: #{@active_battler.name} - Command Guard Selected"
    end
  end
  
  def command_actor_item_effects
    if $DEBUG && PRINT_MODE
      print "Actor: #{@active_battler.name} - Command Item Selected"
    end
  end
  
  def select_skill_effects(target=nil, target_id=-1)
    if $DEBUG && PRINT_MODE
      actor_s = @active_battler.name
      skill_s = "#{@skill.name} (#{@skill.id})"
      target_s = !target.nil? ? "#{target.name} (#{target_id})" : "-"
      print "Skill Selected/n" +
      "Actor: #{actor_s}, Skill: #{skill_s}, Target: #{target_s}"
    end
  end
  
  def select_item_effects(target=nil, target_id=-1)
    if $DEBUG && PRINT_MODE
      actor_s = @active_battler.name
      item_s = "#{@item.name} (#{@item.id})"
      target_s = !target.nil? ? "#{target.name} (#{target_id})" : "-"
      print "Item Selected/n" +
      "Actor: #{actor_s}, Item: #{item_s}, Target: #{target_s}"
    end
  end
  
  def slip_damage_effects
    if $DEBUG && PRINT_MODE
      print "#{@active_battler.name} Slip Damage\n#{@active_battler.damage}"
    end
  end
  
  def remove_states_auto_effects
    print "#{@active_battler.name} Remove States Auto" if $DEBUG && PRINT_MODE
  end
  
  def basic_attack_effects(target)
    if $DEBUG && PRINT_MODE
      print "Attack\n" +
      "Attacker: #{@active_battler.name}, Target: #{target.name}"
    end
  end
  
  def basic_guard_effects
    print "Guard\n#{@active_battler.name}" if $DEBUG && PRINT_MODE
  end
  
  def basic_escape_effects
    print "Escape\n#{@active_battler.name}" if $DEBUG && PRINT_MODE
  end
  
  def basic_nothing_effects
    print "Nothing\n#{@active_battler.name}" if $DEBUG && PRINT_MODE
  end
  
  def skill_action_effects(target)
    if $DEBUG && PRINT_MODE
      battler_s = @active_battler.name
      skill_s = "#{@skill.name} (#{@skill.id})"
      target_s = target.name
      print "Skill\n" +
      "Battler: #{battler_s}, Skill: #{skill_s}, Target: #{target_s}"
    end
  end
  
  def item_action_effects(target)
    if $DEBUG && PRINT_MODE
      battler_s = @active_battler.name
      item_s = "#{@item.name} (#{@item.id})"
      target_s = target.name
      print "Item\n" +
      "Battler: #{battler_s}, Item: #{item_s}, Target: #{target_s}"
    end
  end
  
  def debug_test_effects
  end
end
avatar
Wecoc
Administrador
Administrador



Créditos 9370

Gracias : 517

Volver arriba Ir abajo

RPG Maker XP Re: [XP] Wecoc's Scene Battle Enhancer

Mensaje por RiKennedy-Maker el 2016-10-04, 12:32

:S mmm se ve bueno.....
aunque en lo personal, si bien dige que soy nuevo como grafista soy todavía más nuevo con RGSS XD pero la verdad me pareció interesante.... puede servirle a otro usuario.
si algún día lo llego a usar te pondré en los créditos  Cool

Edit: Edite una frase que no tenía mucho sentido XD
Salu-2 Cool


Última edición por RiKennedy-Maker el 2016-10-04, 12:34, editado 1 vez (Razón : le di muy rápido y no pude leer una frase mal echa)
avatar
RiKennedy-Maker
Reportero

0/3

Créditos 360

Gracias : 52

Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba


Permisos de este foro:
No puedes responder a temas en este foro.