Compatibility with battle symphony and mog hunter's battle hud ex

lexietanium

Veteran
Veteran
Joined
May 29, 2013
Messages
98
Reaction score
19
First Language
Tagalog :P
Primarily Uses
EDIT: I made an error with the title, I actually meant mog hunter's ATB script with battle symphony >_<.

Hi, I was wondering if there's anyway to make them compatible. Everything works well when you only have one player, but when the other members come in and you battle, the game crashes =(, I really want the atb with battle symphony to work together.
 
Last edited by a moderator:

ShadowLurk

Tanoshii~
Veteran
Joined
Feb 14, 2014
Messages
226
Reaction score
53
Primarily Uses
I am confused by your question. I can use Yami's Symphony and Mog's Battle Hud EX just fine. Actually, I don't think Yami's script do anything with the battle interface.

Perhaps the compatibility issue is not with Yami's, but the one you use for ATB? Also, when it crashed, what is the error message?
 

lexietanium

Veteran
Veteran
Joined
May 29, 2013
Messages
98
Reaction score
19
First Language
Tagalog :P
Primarily Uses
I am confused by your question. I can use Yami's Symphony and Mog's Battle Hud EX just fine. Actually, I don't think Yami's script do anything with the battle interface.

Perhaps the compatibility issue is not with Yami's, but the one you use for ATB? Also, when it crashed, what is the error message?
>_< Sorry that's what I meant. It is battle symphony incompatibility with mog hunter's ATB. I really want the two to work together =(. And I went around lookin for other ATB with no luck *yami's doesn't work well with the hud either*. And if I use victor's I would have to pay xD. Any suggestions?
 

ShadowLurk

Tanoshii~
Veteran
Joined
Feb 14, 2014
Messages
226
Reaction score
53
Primarily Uses
...aren't Victor's scripts free to use? (except for commercial project, that is).

Anyway, I tried to make a new, clean project and copied both Symphony and Mog's ATB there. They both works fine.

Maybe it's the ordering of the script that makes the error?
 

lexietanium

Veteran
Veteran
Joined
May 29, 2013
Messages
98
Reaction score
19
First Language
Tagalog :P
Primarily Uses
...aren't Victor's scripts free to use? (except for commercial project, that is).

Anyway, I tried to make a new, clean project and copied both Symphony and Mog's ATB there. They both works fine.

Maybe it's the ordering of the script that makes the error?
=( I'm doing commercial so no go xD. Also, I hope you don't mind, but may you please tell me how you did the order? Also. can you try having one of the battle hud ex in there too to see if all 3 work well together on your side. Coz with mine, only the battlehud and battle symphony work but when I throw atb in there =( no go 

PS sorry for the bother >_< 
 
Last edited by a moderator:

ShadowLurk

Tanoshii~
Veteran
Joined
Feb 14, 2014
Messages
226
Reaction score
53
Primarily Uses
Found the problem. Put this below the scripts:

class Game_Actor < Game_Battler alias :mog_sym_compat_act_setup :setup def setup(actor_id) mog_sym_compat_act_setup(actor_id) @action_input_index = 0 end endThe snippet should make the problem go away. Those scripts' order doesn't actually really matter, because as far as I can see, they are not even overwriting/aliasing the same methods.
 

lexietanium

Veteran
Veteran
Joined
May 29, 2013
Messages
98
Reaction score
19
First Language
Tagalog :P
Primarily Uses
Found the problem. Put this below the scripts:

class Game_Actor < Game_Battler alias :mog_sym_compat_act_setup :setup def setup(actor_id) mog_sym_compat_act_setup(actor_id) @action_input_index = 0 end endThe snippet should make the problem go away. Those scripts' order doesn't actually really matter, because as far as I can see, they are not even overwriting/aliasing the same methods.
Thank you so much!! =D was wondering if you can explain what was wrong with it? could it just not find it? *it's so I can use this as reference for future scripting probs*
 

ShadowLurk

Tanoshii~
Veteran
Joined
Feb 14, 2014
Messages
226
Reaction score
53
Primarily Uses
The problem is that for some reason when BattleSymphony is installed, @action_input_index is not set when accessed by the ATB script. it is hard to say where the problem is, as it is quite hard to track what went where. Perhaps one of those scripts changes how the script updates, but....

Anyway, the quick fix for that is just to initialize @action_input_index at actor setup.
 

lexietanium

Veteran
Veteran
Joined
May 29, 2013
Messages
98
Reaction score
19
First Language
Tagalog :P
Primarily Uses
The problem is that for some reason when BattleSymphony is installed, @action_input_index is not set when accessed by the ATB script. it is hard to say where the problem is, as it is quite hard to track what went where. Perhaps one of those scripts changes how the script updates, but....

Anyway, the quick fix for that is just to initialize @action_input_index at actor setup.
Going by what you said, I also have yanfly's battle system, but it's causing a conflict with the atb as well. What happens is that after the very first turn is over, when it's the character's turn again, it just keeps going back and forth between the party members, not doing anything. So do you think I also have to initialize? but would it be the turn_end part of the atb script?

Here's the script for yanfly's battle system https://dl.dropboxusercontent.com/u/17078211/Scripts/YEA/Ace_Battle_Engine.rb

and here's the atb's. The problem arises after clicking the command. They also don't do anything after you choose a command. They simply go to the next character and so on. Actually, writing this now ._. it may not be from the turn end part then. @_@ ah sorry I tried solving it myself but no luck

if true

#==============================================================================

# +++ MOG - ATB System  (v 1.0) +++

#==============================================================================

# By Moghunter 

# http://www.atelier-rgss.com/

#==============================================================================

# Sistema de batalha de turnos em tempo real.

#==============================================================================

 

#==============================================================================

# ● AT SYSTEM

#==============================================================================

# A velocidade de AT é baseaddo na agilidade do Battler.

# Em caso de batalhas preventivas (Preemptive) os aliados começarão com AT em

# 80% e os inimigos começarão com AT em 0 (Zero)

# Em batalhas surpresas (Surprise) é o inverso das batalhas preventivas.

# Em batalhas normais todos os battlers começarão com AT em 40%.

#==============================================================================

# ● CAST TIME

#==============================================================================

# Para definir uma habilidade ou item com a função de Cast Time basta definir

# o valor da velocidade (Speed) diferente de 0 (Zero).

#

# NOTA - Não é possível ativar 2 ou mais habilidades com a função Cast Time no

# mesmo turno. (Caso você esteja usando características de Multi Action em

# seu projeto.)

#==============================================================================

module MOG_AT_SYSTEM

  #Som quando o sistema AT estiver no maximo

  SE_ACTIVE = "Decision2"

  #Definição do valor de AT para ativar a ação.(Gauge Meter).

  AT_GAUGE_METER = 5000

  # Definição do tipo de duração (Contagem/formula) de um turno.

  # Essa definição influência na ativação dos eventos de batalha.

  # (BATTLE EVENTS)

  #

  # 0 - Duração de um turno é um valor fixo.

  # 1 - Duração de um turno é multiplicado pela quantidade de batllers.

  # 2 - Duração de um turno é baseado na média de agilidade dos battlers.

  #

  TURN_DURATION_TYPE = 1

  # Definição de valor usado para calcular a duração de um turno.

  TURN_DURATION = 60

  # Definição da animação quando o battler usa habilidades de carregamento.

  CAST_ANIMATION = 49

  # Ativar a janela de LOG, deixe desativado se desejar uma batalha mais

  # dinâmica.

  WAIT_LOG_WINDOW = true

  # Ativar a mensagem inicial com os nomes dos inimigos.

  MESSAGE_ENEMY_APPEAR = false

  # Definição da posição da janela de mensagem.

  # 0 - Superior

  # 1 - Centro

  # 2 - Inferior  

  MESSAGE_POSITION = 0

  # Tipo de posicionamento da Hud.

  # 0 - Posição fixa.

  # 1 - Posição baseado no valor X e Y do battler.

  AT_HUD_POSITION_TYPE = 0

  #Posição geral (Inicial) da Hud.

  AT_HUD_POSITION = [25,400]

  #Posição do medidor de AT

  AT_METER_POSITION = [29,1]

  #Definição da posição do espaço da HUD entre os membros do grupo.

  #

  #MEMBERS_SPACE = [Horizontal ,Vertical]

  #

  MEMBERS_SPACE = [136,0]

  #Velocidade de animação do medidor de at, defina 0 se não quiser a animação.

  AT_METER_FLOW_SPEED = 3

  #Prioridade da Hud.

  BATTLE_HUD_Z = 0    

end

 

$imported = {} if $imported.nil?

$imported[:mog_atb_system] = true

 

#==============================================================================

# ■ Game_System

#==============================================================================

class Game_System

  

  attr_accessor :at_max

  

  #--------------------------------------------------------------------------

  # ● Initialize

  #--------------------------------------------------------------------------         

  alias mog_at_system_initialize initialize

  def initialize

      @at_max = [[MOG_AT_SYSTEM::AT_GAUGE_METER, 999999].min, 100].max

      mog_at_system_initialize

  end

  

end 

 

#==============================================================================

# ■ BattleManager

#==============================================================================

module BattleManager

  

  #--------------------------------------------------------------------------

  # ● Battle Start

  #--------------------------------------------------------------------------  

  def self.battle_start

      $game_system.battle_count += 1

      $game_party.on_battle_start

      $game_troop.on_battle_start

      if MOG_AT_SYSTEM::MESSAGE_ENEMY_APPEAR

         $game_troop.enemy_names.each do |name|

         $game_message.add(sprintf(Vocab::Emerge, name))

         end

      end

      if @preemptive

         $game_message.add(sprintf(Vocab::preemptive, $game_party.name))

      elsif @surprise

         $game_message.add(sprintf(Vocab::Surprise, $game_party.name))

      end

      wait_for_message

  end

  

  #--------------------------------------------------------------------------

  # ● Input Start

  #--------------------------------------------------------------------------

  def self.input_start_at(battler)

      if @phase != :input

         @phase = :input

         battler.make_actions

         clear_actor

      end

      return !@surprise && battler.inputable?

  end

 

  #--------------------------------------------------------------------------

  # ● Turn Start

  #--------------------------------------------------------------------------

  def self.turn_start

      @phase = :turn

      clear_actor

      make_action_orders

  end  

  

  #--------------------------------------------------------------------------

  # ● Preemtive Attack

  #--------------------------------------------------------------------------  

  def self.preemptive_attack

      @preemptive

  end  

  

  #--------------------------------------------------------------------------

  # ● Suprise Attack

  #--------------------------------------------------------------------------    

  def self.surprise_attack

      @surprise

  end    

  

end  

 

#==============================================================================

# ■ Game Action

#==============================================================================

class Game_Action  

 

  #--------------------------------------------------------------------------

  # ● Prepare

  #--------------------------------------------------------------------------             

  alias mog_at_system_prepare prepare

  def prepare

      mog_at_system_prepare

      set_cast_action

  end

  

  #--------------------------------------------------------------------------

  # ● Set Cast Action

  #--------------------------------------------------------------------------               

  def set_cast_action

      return if forcing

      if @item.object != nil and @item.object.speed != 0 and @subject.at_cast.empty?

         @subject.at_cast = [@item.object,@item.object.speed.abs,@target_index] 

         @item.object = nil

         @subject.animation_id = MOG_AT_SYSTEM::CAST_ANIMATION

         @subject.at = 0

         BattleManager.turn_end if @subject.auto_battle?

      elsif !@subject.at_cast.empty?

         if @subject.at_cast[1] == 0

            @item.object = @subject.at_cast[0]

            @target_index = @subject.at_cast[2]            

            @subject.at_cast.clear

         else   

            @item.object = nil

         end

      end  

  end  

  

end

 

 

#==============================================================================

# ■ Game Battler Base

#==============================================================================

class Game_BattlerBase  

 

  #--------------------------------------------------------------------------

  # ● Inputable?

  #--------------------------------------------------------------------------             

  def inputable?

      normal? && !auto_battle? && self.at == $game_system.at_max

  end

  

end

 

#==============================================================================

# ■ Game_Battler

#==============================================================================

class Game_Battler < Game_BattlerBase

  

   attr_accessor :at

   attr_accessor :at_cast

   attr_accessor :at_turn_duration

   attr_accessor :at_action

   

  #--------------------------------------------------------------------------

  # ● Initialize

  #--------------------------------------------------------------------------       

   alias mog_at_system_initialize initialize

   def initialize

       mog_at_system_initialize

       @at = 0

       @at_cast = []

       @at_cast_selectable = true

       @at_turn_duration = 0

       @at_action = nil

   end

     

  #--------------------------------------------------------------------------

  # ● At

  #--------------------------------------------------------------------------          

   def at

       n = at_active? ? $game_system.at_max : 0

       return [[@at, n].min, 0].max

   end  

   

  #--------------------------------------------------------------------------

  # ● At Active

  #--------------------------------------------------------------------------             

   def at_active?

       return false if restriction >= 4

       return false if self.hp == 0 

       return true

   end  

   

  #--------------------------------------------------------------------------

  # ● Added New State

  #--------------------------------------------------------------------------  

  alias mog_at_system_add_new_state add_new_state

  def add_new_state(state_id)

      mog_at_system_add_new_state(state_id)

      if restriction >= 4

         self.at_cast.clear

         self.at = 0 

      end   

  end   

  

  #--------------------------------------------------------------------------

  # ● can AT?

  #--------------------------------------------------------------------------    

  def can_upd_at?

      return false if restriction >= 4

      return false if self.hp == 0

      return false if !self.at_cast.empty?

      return false if self.at_action != nil

      return true

  end

  

end

 

#==============================================================================

# ■ Game Enemy

#==============================================================================

class Game_Enemy < Game_Battler

  

  #--------------------------------------------------------------------------

  # ● Tranform

  #--------------------------------------------------------------------------  

   alias mog_at_system_transform transform

   def transform(enemy_id)

       mog_at_system_transform(enemy_id)

       self.at = 0

       self.at_cast.clear

   end

end   

 

if !MOG_AT_SYSTEM::WAIT_LOG_WINDOW

#==============================================================================

# ■ BattleManager

#==============================================================================

class Window_BattleLog < Window_Selectable

 

  #--------------------------------------------------------------------------

  # ● Refresh

  #--------------------------------------------------------------------------    

  def refresh

  end  

 

  #--------------------------------------------------------------------------

  # ● Message Speed

  #--------------------------------------------------------------------------    

  def message_speed

      return 5

  end

 

end

end

 

#==============================================================================

# ■ Scene Battle

#==============================================================================

class Scene_Battle < Scene_Base

  include MOG_AT_SYSTEM

  

  #--------------------------------------------------------------------------

  # ● AT Wait

  #--------------------------------------------------------------------------         

  alias mog_at_system_start start

  def start

      reset_at_parameter  

      mog_at_system_start

  end  

    

  #--------------------------------------------------------------------------

  # ● Battle Start

  #--------------------------------------------------------------------------

  def battle_start

      BattleManager.battle_start

      process_event

      set_turn_duration

  end 

    

  #--------------------------------------------------------------------------

  # ● Reset AT Parameter

  #--------------------------------------------------------------------------  

  def reset_at_parameter

      return if @at_phase != nil

      @at_phase = 0

      n_at = $game_system.at_max * 40 / 100

      p_at = $game_system.at_max * 90 / 100

      s_at = 0

      all_battle_members.each do |battler|

          if BattleManager.preemptive_attack

             battler.at = p_at if battler.is_a?(Game_Actor)

             battler.at = s_at if battler.is_a?(Game_Enemy)

          elsif BattleManager.surprise_attack   

             battler.at = p_at if battler.is_a?(Game_Enemy)

             battler.at = s_at if battler.is_a?(Game_Actor)

          else   

             battler.at = n_at

          end

          if battler.at >= $game_system.at_max 

             battler.at = $game_system.at_max - 1 

          end

          battler.at = 0 if battler.at < 0  

          battler.at_cast.clear

        end

  end

 

  #--------------------------------------------------------------------------

  # ● Set Turn Duration

  #--------------------------------------------------------------------------

  def set_turn_duration

      max_battlers = all_battle_members.size > 0 ? all_battle_members.size : 1

      case TURN_DURATION_TYPE

        when 1

           n  = TURN_DURATION * max_battlers

        when 2

           turn_sp = 0

           all_battle_members.each do |battler|

               turn_sp += battler.agi

           end  

           n = TURN_DURATION + (turn_sp / max_battlers) 

        else

           n = TURN_DURATION

      end

      turn_time_max = [[n, 9999].min, 120].max

      @turn_duration = [0, turn_time_max]

      if @status_window != nil

         @status_window.open

      end   

  end   

  

  #--------------------------------------------------------------------------

  # ● Turn End

  #--------------------------------------------------------------------------

  def turn_end

      @at_phase = 0

      all_battle_members.each do |battler|

         if battler.at >= $game_system.at_max

            battler.at = 0

            refresh_status

            @log_window.display_auto_affected_status(battler)

            @log_window.wait_and_clear

         end

      end

      BattleManager.turn_end

  end

    

  #--------------------------------------------------------------------------

  # ● Update Turn Duration

  #--------------------------------------------------------------------------             

  def update_turn_duration

      return if @turn_duration == nil or @turn_duration[0] == nil

      @turn_duration[0] += 1

      if @turn_duration[0] >= @turn_duration[1]

         @turn_duration[0] = 0

         $game_troop.increase_turn

         process_event

         check_states_effect_turn

      end  

  end

  

  #--------------------------------------------------------------------------

  # ● Check States Effect Turn

  #--------------------------------------------------------------------------               

  def check_states_effect_turn

      all_battle_members.each do |battler|  

          battler.on_turn_end if battler.restriction >= 4

      end  

  end  

  

  #--------------------------------------------------------------------------

  # ● Update AT System

  #--------------------------------------------------------------------------           

  def update_at_system      

      reset_at_parameter if @at_phase == nil

      set_turn_duration if @turn_duration == nil

      return if !can_update_at?

      update_turn_duration

      all_battle_members.each do |battler|

          update_battler_turn_duration(battler)

          if !battler.at_cast.empty?

             battler.at_cast[1] -= 1

             if battler.at_cast[1] <= 0

                execute_at_cast(battler)

                break

             end

          else

             battler.at += battler.agi

          end    

          if battler.at >= $game_system.at_max

             battler.on_turn_end

             update_at_actor(battler)

             update_at_enemy(battler)

             battler.current_action.prepare if battler.current_action

             if battler.at_cast.empty?

                @at_phase = 1

                turn_start if battler.is_a?(Game_Enemy)

             end             

             break

          end   

      end  

  end

    

  #--------------------------------------------------------------------------

  # ● Update Battler Turn Duration

  #--------------------------------------------------------------------------             

  def update_battler_turn_duration(battler)

      if battler.restriction >= 4

         battler.at_turn_duration += 1

         if battler.at_turn_duration >= $game_system.at_max

            battler.on_turn_end 

            battler.at_turn_duration = 0

         end   

      else   

         battler.at_turn_duration = 0

      end  

  end  

  

  #--------------------------------------------------------------------------

  # ● Execute AT CAST

  #--------------------------------------------------------------------------             

  def execute_at_cast(battler)

      @subject = battler

      battler.make_actions  

      turn_start 

  end  

  

  #--------------------------------------------------------------------------

  # ● Update AT Actor 

  #--------------------------------------------------------------------------             

  def update_at_actor(battler)    

      return if !battler.is_a?(Game_Actor)

      Audio.se_play("Audio/SE/" + SE_ACTIVE,100,100)  

      start_party_command_selection_at(battler)

  end 

  

  #--------------------------------------------------------------------------

  # ● Update AT Enemy

  #--------------------------------------------------------------------------             

  def update_at_enemy(battler)    

      return if !battler.is_a?(Game_Enemy)

      battler.make_actions

  end    

  

  #--------------------------------------------------------------------------

  # ● Can Update AT

  #--------------------------------------------------------------------------             

  def can_update_at?

      return false if $game_troop.interpreter.running?

      return false if BattleManager.action_forced?

      return false if @at_phase != 0

      return false if $game_message.visible 

      return false if BattleManager.in_turn?

      return true

  end    

  

  #--------------------------------------------------------------------------

  # ● Star Party Command Selection at

  #--------------------------------------------------------------------------

  def start_party_command_selection_at(battler)

      unless scene_changing?

         refresh_status

         @status_window.unselect

         @status_window.open

         if BattleManager.input_start_at(battler)

            @actor_command_window.close

            next_command

         else

           turn_start

         end

      end

  end  

  

  #--------------------------------------------------------------------------

  # ● Update Basic

  #--------------------------------------------------------------------------        

  alias mog_at_system_update_basic update_basic

  def update_basic

      mog_at_system_update_basic

      update_at_system

      update_party_command

      $game_message.position = MESSAGE_POSITION

  end

  

  #--------------------------------------------------------------------------

  # ● Update Party Command

  #--------------------------------------------------------------------------      

  def update_party_command

      return if !@party_command_window.active

      return if !@actor_command_window.visible

      return if $game_message.visible

      if Input.trigger?:) B)

         next_command

         Sound.play_cancel

         @party_command_window.active = false

      end  

  end 

     

end

 

unless $imported[:mog_battle_hud_ex]

 

#==============================================================================

# ■ Game Temp

#==============================================================================

class Game_Temp

  

  attr_accessor :cache_at_meter

  

  #--------------------------------------------------------------------------

  # ● Initialize

  #--------------------------------------------------------------------------      

  alias mog_at_meter_initialize initialize

  def initialize

      mog_at_meter_initialize

      cache_atmeter

  end

  

  #--------------------------------------------------------------------------

  # ● Cache ATmeter

  #--------------------------------------------------------------------------      

  def cache_atmeter

      @cache_at_meter = []

      @cache_at_meter.push(Cache.system("Battle_AT_Meter"))

      @cache_at_meter.push(Cache.system("Battle_AT_Layout"))

  end

  

end

 

#==============================================================================

# ■ AT Meter

#==============================================================================

class AT_Meter

  

  include MOG_AT_SYSTEM

  

  #--------------------------------------------------------------------------

  # ● Initialize

  #--------------------------------------------------------------------------    

  def initialize(actor)

      @actor = actor

      @flow_speed = 0

      if AT_HUD_POSITION_TYPE == 1 and @actor.use_sprite?

         @x = AT_HUD_POSITION[0] +  @actor.screen_x rescue 0

         @y = AT_HUD_POSITION[1] +  @actor.screnn_y rescue 0

      else   

         @x = AT_HUD_POSITION[0] + (MEMBERS_SPACE[0] * @actor.index)

         @y = AT_HUD_POSITION[1] + (MEMBERS_SPACE[1] * @actor.index)        

      end

      pre_cache

      create_layout

      create_at_meter

  end

  

  #--------------------------------------------------------------------------

  # ● Pre Cache

  #--------------------------------------------------------------------------      

  def pre_cache

      @meter = $game_temp.cache_at_meter[0]

      @meter_cw = @meter.width / 3

      @meter_ch = @meter.height / 3

  end

  

  #--------------------------------------------------------------------------

  # ● Create Layout

  #--------------------------------------------------------------------------      

  def create_layout

      @layout = Sprite.new

      @layout.bitmap = $game_temp.cache_at_meter[1]

      @layout.z = BATTLE_HUD_Z

      @layout.x = @x

      @layout.y = @y

  end

  

  #--------------------------------------------------------------------------

  # ● Create AT Meter

  #--------------------------------------------------------------------------      

  def create_at_meter

      @at_meter = Sprite.new

      @at_meter.bitmap = Bitmap.new(@meter_cw,@meter_ch)

      @at_meter.z =  BATTLE_HUD_Z + 50

      @at_meter.x = @x + AT_METER_POSITION[0]

      @at_meter.y = @y + AT_METER_POSITION[1] 

      @at_flow = rand(@meter_cw * 2)

      at_flow_update

  end  

  

  #--------------------------------------------------------------------------

  # ● Dispose

  #--------------------------------------------------------------------------    

  def dispose

      return if @layout == nil

      @layout.dispose

      @layout = nil

      @at_meter.bitmap.dispose

      @at_meter.dispose

  end  

  

  #--------------------------------------------------------------------------

  # ● Update

  #--------------------------------------------------------------------------  

  def update

      return if @layout == nil

      at_position

      @flow_speed += 1

      if @flow_speed >= AT_METER_FLOW_SPEED

         @flow_speed = 0

         at_flow_update

      end

  end

  

  #--------------------------------------------------------------------------

  # ● Update

  #--------------------------------------------------------------------------    

  def at_position

      return unless AT_HUD_POSITION_TYPE == 1 and @actor.use_sprite?

      @x = AT_HUD_POSITION[0] +  @actor.screen_x rescue 0

      @y = AT_HUD_POSITION[1] +  @actor.screnn_y rescue 0

      @layout.x = @x

      @layout.y = @y

      @at_meter.x = @x + AT_METER_POSITION[0]

      @at_meter.y = @y + AT_METER_POSITION[1]

  end

    

  #--------------------------------------------------------------------------

  # ● AT Flow Update

  #--------------------------------------------------------------------------

  def at_flow_update

      @at_meter.bitmap.clear

      if !@actor.at_cast.empty?

         max_cast = @actor.at_cast[0].speed.abs != 0 ? @actor.at_cast[0].speed.abs : 1

         at_width = @meter_cw * @actor.at_cast[1] / max_cast

         ch = @meter_ch * 2

      else 

         at_width = @meter_cw * @actor.at / $game_system.at_max

         ch = @actor.at < $game_system.at_max ? 0 : @meter_ch

      end  

      src_rect = Rect.new(@at_flow, ch,at_width, @meter_ch)

      @at_meter.bitmap.blt(0,0, @meter, src_rect)

      @at_flow += AT_METER_FLOW_SPEED

      @at_flow = 0 if @at_flow >=  @meter_cw * 2      

  end   

  

end  

 

#==============================================================================

# ■ Spriteset Battle

#==============================================================================

class Spriteset_Battle

  

  #--------------------------------------------------------------------------

  # ● Initialize

  #--------------------------------------------------------------------------           

  alias mog_at_system_initialize initialize

  def initialize

      mog_at_system_initialize

      create_at_meter

  end  

  

  #--------------------------------------------------------------------------

  # ● Create AT Meter

  #--------------------------------------------------------------------------             

  def create_at_meter     

      @at_meter = []

      for i in $game_party.battle_members

          @at_meter.push(AT_Meter.new(i))

      end      

  end  

  

  #--------------------------------------------------------------------------

  # ● Dispose

  #--------------------------------------------------------------------------      

  alias mog_at_system_dispose dispose

  def dispose

      mog_at_system_dispose

      dispose_at_meter

  end

    

  #--------------------------------------------------------------------------

  # ● Dispose AT Meter

  #--------------------------------------------------------------------------        

  def dispose_at_meter

      return if @at_meter == nil

      @at_meter.each {|sprite| sprite.dispose }

      @at_meter = nil

  end  

  

  #--------------------------------------------------------------------------

  # ● Update

  #--------------------------------------------------------------------------        

  alias mog_at_system_update update

  def update

      mog_at_system_update

      update_at_meter

  end  

  

  #--------------------------------------------------------------------------

  # ● Update AT Meter

  #--------------------------------------------------------------------------          

  def update_at_meter

      return if @at_meter == nil 

      @at_meter.each {|sprite| sprite.update }

  end  

  

end

 

end

 

end
 

ShadowLurk

Tanoshii~
Veteran
Joined
Feb 14, 2014
Messages
226
Reaction score
53
Primarily Uses
Okay, I've seen the source of the problem. Both Yanfly's Battle Engine and Mog's ATB overwrites the turn_end part of the Scene_Battle. Here's what can be done:

First, make sure Mog's ATB is above Yanfly's Battle Engine. There are so many methods Mog's script is overwriting...

Then, copy this snippet just below both of those script:

class Scene_Battle < Scene_Base def turn_end @at_phase = 0 all_battle_members.each do |battler| if battler.at >= $game_system.at_max battler.at = 0 refresh_status @log_window.display_auto_affected_status(battler) @log_window.wait_and_clear end end update_party_cooldowns if $imported["YEA-CommandParty"] BattleManager.turn_end endendI've mixed both turn_ends into one, hopefully no lost functionality. As this will overwrite turn_end, all scripts aliasing turn_end must be placed below these.
 

lexietanium

Veteran
Veteran
Joined
May 29, 2013
Messages
98
Reaction score
19
First Language
Tagalog :P
Primarily Uses
Okay, I've seen the source of the problem. Both Yanfly's Battle Engine and Mog's ATB overwrites the turn_end part of the Scene_Battle. Here's what can be done:

First, make sure Mog's ATB is above Yanfly's Battle Engine. There are so many methods Mog's script is overwriting...

Then, copy this snippet just below both of those script:

class Scene_Battle < Scene_Base def turn_end @at_phase = 0 all_battle_members.each do |battler| if battler.at >= $game_system.at_max battler.at = 0 refresh_status @log_window.display_auto_affected_status(battler) @log_window.wait_and_clear end end update_party_cooldowns if $imported["YEA-CommandParty"] BattleManager.turn_end endendI've mixed both turn_ends into one, hopefully no lost functionality. As this will overwrite turn_end, all scripts aliasing turn_end must be placed below these.
 Ok so I've done what you said, the problem now is that because the atb was placed before mog's battle hud ex, unless I put the ATB's original graphics in, it still won't work. But putting the atb's original graphics causes two atb bars to appear for the characters but it works xD. Putting the hud above battle symphony and yami's battle script causes a crash though. 

=D haha I shouldn't have doubted my first conclusion that it was turn_ends *getting better with learning scripts*.

PS: Thanks for having the patience to help me out u.u. =) on a brighter note, this will also help a lot of other people. I saw quite a few who had the same problem as I.

UPDATE: XD so what I did instead was made the size as small as possible for the atb original graphics n made em transparent :p . It works even with multiple party members hahah
 
Last edited by a moderator:

Users Who Are Viewing This Thread (Users: 0, Guests: 1)

Latest Threads

Latest Posts

Latest Profile Posts

How many parameters is 'too many'??
Yay, now back in action Happy Christmas time, coming back!






Back in action to develop the indie game that has been long overdue... Final Fallacy. A game that keeps on giving! The development never ends as the developer thinks to be the smart cookie by coming back and beginning by saying... "Oh bother, this indie game has been long overdue..." How could one resist such? No-one c
So I was playing with filters and this looked interesting...

Versus the normal look...

Kind of gives a very different feel. :LZSexcite:
To whom ever person or persons who re-did the DS/DS+ asset packs for MV (as in, they are all 48x48, and not just x2 the pixel scale) .... THANK-YOU!!!!!!!!! XwwwwX

Forum statistics

Threads
105,849
Messages
1,016,977
Members
137,563
Latest member
cexojow
Top