Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
 RTAB Compatibility Help!
#1
I recently found a Battle Result Script by Raziel. I think that it's the only Battle Result Script that is compatible with the Tanketai Sideview Battle Script.

Here's what the Battle Result Script does.

[Image: ErrorRTAB2.jpg]

Here's The Battle Result Script.
PHP Code:
#==============================================================================
# ** Battle Report
#==============================================================================
# Raziel (originally by David Schooley alias Illustrationism)
# Version 1.6
# 2006-10-08
#------------------------------------------------------------------------------
# * Instructions
#  ~ Place this script above main. Make a folder in the pictures folder
#    and call it Faces. When using a face picture, make sure it's
#    named like the character's file. To turn facesets on search for
#    @face = false and set it to true to turn facesets on.
#------------------------------------------------------------------------------
#==============================================================================
# ** Game_Actor
#==============================================================================

class Game_Actor Game_Battler
  
#--------------------------------------------------------------------------
  # * Change EXP
  #     exp : new EXP
  #--------------------------------------------------------------------------
  
def exp=(exp)
    @
exp = [[exp9999999].min0].max
    
while @exp >= @exp_list[@level+1] and @exp_list[@level+1] > 0
      
@level += 1
      
# NEW - David
      
$d_new_skill nil
      
for j in $data_classes[@class_id].learnings
        
if j.level == @level
          learn_skill
(j.skill_id)
          
# NEW - David
          
skill $data_skills[j.skill_id]
          
$d_new_skill skill.name
        end
      end
    end
    
while @exp < @exp_list[@level]
      @
level -= 1
    end
    
@hp = [@hpself.maxhp].min
    
@sp = [@spself.maxsp].min
  end
  
#--------------------------------------------------------------------------
  # * Get the current EXP
  #--------------------------------------------------------------------------
  
def now_exp
    
return @exp - @exp_list[@level]
  
end
  
#--------------------------------------------------------------------------
  # * Get the next level's EXP
  #--------------------------------------------------------------------------
  
def next_exp
    
return @exp_list[@level+1] > ? @exp_list[@level+1] - @exp_list[@level] : 0
  end
end  
#==============================================================================
# ** Window_LevelUP
#==============================================================================

class Window_LevelUp Window_Base
  
#--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  
def initialize(actorpos)
    
#change this to true to show the actor's face
    
@face true
    
@actor actor
    y 
= (pos 120)
    
super(280y360120)
    
self.contents Bitmap.new(width 32height 32)
    
self.back_opacity 255    
    
if $d_dum == false
      refresh
    end
  end
  
#--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  
def refresh
    self
.contents.clear
    self
.contents.font.size 18
    
if @face == true
      draw_actor_face
(@actor40)
    else
      
draw_actor_graphic(@actor5080)
    
end
    draw_actor_name
(@actor1110)
    
draw_actor_level(@actor1860)
    
show_next_exp = @actor.level == 99 "---" "#{@actor.next_exp}"
    
min_bar = @actor.level == 99 : @actor.now_exp
    max_bar 
= @actor.level == 99 : @actor.next_exp
    draw_slant_bar
(11580min_barmax_bar1906bar_color Color.new(01000255), end_color Color.new(02550255))
    
self.contents.draw_text(1152430032"Exp: #{@actor.now_exp}")
    
self.contents.draw_text(1154830032"Level Up: #{show_next_exp}")
  
end
  
#--------------------------------------------------------------------------
  # * Level UP
  #--------------------------------------------------------------------------
  
def level_up
    self
.contents.font.color system_color
    self
.contents.draw_text(230488032"LEVEL UP!")
  
end
  
#--------------------------------------------------------------------------
  # * Learn Skill
  #--------------------------------------------------------------------------
  
def learn_skill(skill)
    
self.contents.font.color normal_color
    unless $d_new_skill 
== nil
      Audio
.se_play("Audio/SE/105-Heal01")
      
self.contents.draw_text(186248032"Learned:")
      
self.contents.font.color system_color
      self
.contents.draw_text(261249032skill)
    
end
  end
end
#==============================================================================
# ** Window_Exp
#==============================================================================

class Window_EXP Window_Base
  
#--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  
def initialize(exp)
    
super(0028060)
    
self.contents Bitmap.new(width 32height 32)
    
self.back_opacity 255
    refresh
(exp)
  
end
  
#--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  
def refresh(exp)
    
self.contents.clear
    self
.contents.font.color system_color
    self
.contents.draw_text(0015032"Exp Earned:")
    
self.contents.font.color normal_color
    self
.contents.draw_text(18005432exp.to_s2)
  
end
end
#==============================================================================
# ** Window_Money_Items
#==============================================================================

class Window_Money_Items Window_Base
  
#--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  
def initialize(moneytreasures)
    @
treasures treasures
    super
(060280420)
    
self.contents Bitmap.new(width 32height 32)
    
self.back_opacity 255
    refresh
(money)
  
end
  
#--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  
def refresh(money)
    @
money money
    self
.contents.clear
    self
.contents.font.color system_color
    self
.contents.draw_text(4410032"Items Found:")
    
self.contents.font.color normal_color
    y 
32
    
for item in @treasures
      draw_item_name
(item4y)
      
+= 32
    end
    cx 
contents.text_size($data_system.words.gold).width
    self
.contents.font.color normal_color
    self
.contents.draw_text(4340220-cx-232$game_party.gold.to_s2)
    
self.contents.font.color normal_color
    self
.contents.draw_text(4300220-cx-232"+ " + @money.to_s2)
    
self.contents.font.color system_color
    self
.contents.draw_text(124-cx340cx 10032$data_system.words.gold2)
  
end
end
#==============================================================================
# ** Scene_Battle
#==============================================================================

class Scene_Battle
  
#--------------------------------------------------------------------------
  # * Alias Listings
  #--------------------------------------------------------------------------
  
alias raz_battle_report_main main
  alias raz_battle_report_be battle_end
  
#--------------------------------------------------------------------------
  # * Game Temp Variable Setup
  #--------------------------------------------------------------------------
  
def main
    
@lvup_window = []
    @
show_dummies true
    raz_battle_report_main
    
@lvup_window nil
    
@level_up nil
    
@ch_stats nil
    
@ch_compare_stats nil
    Audio
.me_stop
  end
  
#--------------------------------------------------------------------------
  # * Battle Ends
  #     result : results (0:win 1:lose 2:escape)
  #--------------------------------------------------------------------------
  
def battle_end(result)
    
raz_battle_report_be(result)
    @
status_window.visible false
    
@spriteset.dispose
    Graphics
.transition
    
if result == 0
      display_lv_up
(@exp, @gold, @treasures)
      
loop do
        
Graphics.update
        Input
.update
        
if Input.trigger?(Input::C)
          break
        
end
      end
      trash_lv_up
    end
  end
  
#--------------------------------------------------------------------------
  # * Start After Battle Phase
  #--------------------------------------------------------------------------
  
def start_phase5
    
# Shift to phase 5
    
@phase 5
    
# Play battle end ME
    
$game_system.me_play($game_system.battle_end_me)
    
# Return to BGM before battle started
    
$game_system.bgm_play($game_temp.map_bgm)
    
# Initialize EXP, amount of gold, and treasure
    
exp 0
    gold 
0
    treasures 
= []
    
# Loop
    
for enemy in $game_troop.enemies
      
# If enemy is not hidden
      
unless enemy.hidden
        
# Add EXP and amount of gold obtained
        
exp += enemy.exp
        gold 
+= enemy.gold
        
# Determine if treasure appears
        
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
    
# Treasure is limited to a maximum of 6 items
    
treasures treasures[0..5]
    @
treasures treasures
    
@exp  exp
    
@gold gold
    
for item in treasures
      
case item
      when RPG
::Item
        $game_party
.gain_item(item.id1)
      
when RPG::Weapon
        $game_party
.gain_weapon(item.id1)
      
when RPG::Armor
        $game_party
.gain_armor(item.id1)
      
end
    end
    
@phase5_wait_count 10
  end
  
#--------------------------------------------------------------------------
  # * Frame Update (after battle phase)
  #--------------------------------------------------------------------------
  
def update_phase5
    
if @phase5_wait_count 0
      
@phase5_wait_count -= 1
      
if @phase5_wait_count == 0
        $game_temp
.battle_main_phase false        
      end
      
return
    
end
    battle_end
(0)
  
end
  
#--------------------------------------------------------------------------
  # * Display Level UP
  #--------------------------------------------------------------------------
  
def display_lv_up(expgoldtreasures)
    
$d_dum false
    d_extra 
0
    i 
0
    
for actor in $game_party.actors
      
# Fill up the Lv up windows
      
@lvup_window[i] = Window_LevelUp.new($game_party.actors[i], i)
      
+= 1
    end
    
# Make Dummies
    
if @show_dummies == true
      $d_dum 
true
      
for m in i..3
        
@lvup_window[m] = Window_LevelUp.new(mm)
      
end
    end
    
@exp_window Window_EXP.new(exp)
    @
m_i_window Window_Money_Items.new(goldtreasures)
    @
press_enter nil
    gainedexp 
exp
    
@level_up = [0000]
    @
d_new_skill = [""""""""]
    @
d_breakout false
    
@m_i_window.refresh(gold)
    
wait_for_OK
    
@d_remember $game_system.bgs_memorize
    Audio
.bgs_play("Audio/SE/032-Switch01"100300)
    
max_exp exp
    value 
28
    
if exp value
      value 
exp
    end
    
if value == 0
      value 
1
    end
    
for n in 0..gainedexp - (max_exp value)
      
exp -= (max_exp value)
      if @
d_breakout == false
        Input
.update
      end
      
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 += (max_exp value)
          
# Fill up the Lv up windows
          
if @d_breakout == false
            
@lvup_window[i].refresh
            
@exp_window.refresh(exp)
          
end
          
if actor.level last_level
            
@level_up[i] = 5
            Audio
.se_play("Audio/SE/056-Right02.ogg"70150)
            if 
$d_new_skill
              
@d_new_skill[i] = $d_new_skill
            end
          end
          
if @level_up[i] == 0
            
@d_new_skill[i] = ""
          
end
          
if @level_up[i] > 0
            
@lvup_window[i].level_up
            
if @d_new_skill[i] != ""
              
@lvup_window[i].learn_skill(@d_new_skill[i])
            
end
          end
          
if Input.trigger?(Input::C) or exp <= 0
            
@d_breakout true
          end
        end
        
if @d_breakout == false
          
if @level_up[i] >0
            
@level_up[i] -= 1
          end
          Graphics
.update
        end
      end
      
if @d_breakout == true
        
for i in 0...$game_party.actors.size
          actor 
$game_party.actors[i]
          if 
actor.cant_get_exp? == false
            actor
.exp += exp
          end
        end
        exp 
0
        
break
      
end
    end
    Audio
.bgs_stop
    
@d_remember $game_system.bgs_restore
    
for i in 0...$game_party.actors.size
      
@lvup_window[i].refresh
    end
    
@exp_window.refresh(exp)
    
Audio.se_play("Audio/SE/006-System06.ogg"70150)
    
$game_party.gain_gold(gold)
    @
m_i_window.refresh(0)
    
Graphics.update
  end
  
#--------------------------------------------------------------------------
  # * Trash Level UP
  #--------------------------------------------------------------------------
  
def trash_lv_up
    
for i in 0...4
      
@lvup_window[i].visible false
    end
    
@exp_window.visible false
    
@m_i_window.visible false
    
@lvup_window nil
    
@exp_window nil
    
@m_i_window nil
  end
  
# Wait until OK key is pressed
  
def wait_for_OK
    loop 
do
      
Input.update
      Graphics
.update
      
if Input.trigger?(Input::C)
        break
      
end
    end
  end
end  
#--------------------------------------------------------------------------
#   * Module RPG::Cache
#--------------------------------------------------------------------------
  
module RPG::Cache
  def self
.face(filenamehue 0)
    
self.load_bitmap("Graphics/Faces/"filenamehue)
  
end
end
#--------------------------------------------------------------------------
# * Window_Base
#--------------------------------------------------------------------------

class Window_Base Window
  
#--------------------------------------------------------------------------
  # * Draw Actor Face
  #--------------------------------------------------------------------------
  
def draw_actor_face(actorxy)
    
bitmap RPG::Cache.face(actor.character_nameactor.character_hue)
    
self.contents.blt(xybitmapRect.new(0,0,bitmap.widthbitmap.height))
  
end
  
#--------------------------------------------------------------------------
  # * Draw Slant Bar(by SephirothSpawn)
  #--------------------------------------------------------------------------
  
def draw_slant_bar(xyminmaxwidth 152height 6,
      
bar_color Color.new(15000255), end_color Color.new(25525560255))
    
# Draw Border
    
for i in 0..height
      self
.contents.fill_rect(iheight iwidth 11Color.new(505050255))
    
end
    
# Draw Background
    
for i in 1..(height 1)
      
100 * (height i) / height height
      g 
100 * (height i) / height height
      b 
100 * (height i) / height height
      a 
255 * (height i) / height 255 height
      self
.contents.fill_rect(iheight iwidth1Color.new(rbga))
    
end
    
# Draws Bar
    
for i in 1..( (min max.to_f) * width 1)
      for 
j in 1..(height 1)
        
bar_color.red * (width i) / width end_color.red width
        g 
bar_color.green * (width i) / width end_color.green width
        b 
bar_color.blue * (width i) / width end_color.blue width
        a 
bar_color.alpha * (width i) / width end_color.alpha width
        self
.contents.fill_rect(jheight j11Color.new(rgba))
      
end
    end
  end
end 

And Here's the Addon which makes the Battle Result Script compatible with RTAB scripts.
PHP Code:
class Scene_Battle
 alias raz_battle_fix_be battle_end
 def battle_end
(result)
   
raz_battle_fix_be(result)
   @
status_window.visible false
   
@spriteset.dispose
   Graphics
.transition
   
if result == 0
     display_lv_up
(@exp, @gold, @treasures)
     
loop do
       
Graphics.update
       Input
.update
       
if Input.trigger?(Input::C)
         break
       
end
     end
     trash_lv_up
   end
 end
end 

The Battle Result script comes with a addon script which makes it compatible with an RTAB script(By DerVVulfman), so i got the addon that came with the Battle Result Script because i'm also using Atoa's RTAB. Everything goes good until i complete a battle, this error shows up.

[Image: RTABError.jpg]

The error comes up after i close the battle result window. Can someone help me out?
Reply }
#2
I made a test :
I downloaded the demo of the CBS here, pasted your Battle Result Script below, then the Addon.
I got the error after a battle too.

Having read the scripts, it seems that the Addon is already integrated in your version of the Battle Result Script.
I removed the Addon and then it didn't crash.

I suggest you to give a try.
Some scripts :
Working on :
Reply }
#3
Did you also paste Atoa's ATB Script also? Because it won't work with Atoa's ATB and the addon that came with the Battle Result Script was suppose to make it compatible.
Reply }
#4
Ahem.

RTAB is a battlesystem created by a Japanese scripter named Cogwheel. Atoa's ATB is a separate battlesystem. Neither battlesystem will work with one another. And Cogwheel's RTAB is fairly complex and incompatible with a number of default 'battle' scripts.

As to using the Raziel/Illustrationism Battle Report system with Atoa's battlesystem... I never tried the two together. But I don't see combining Atoa's battlesystem and RTAB as possible.

Funny how other people started trying to call their own systems 'RTABSs' after Cogwheel's...
Reply }
#5
I think you misunderstood what i was saying. I'm not asking to make a RTAB and ATB compatible. I'm trying to ask for help with making Atoa's ATB script compatible with Raziel's Battle status.

Edit: Ok, i see where you misunderstood me. On my first post i said that i was using Atoa's RTAB. I'm not using an RTAB, i'm using Atoa's ATB. Here it is.
PHP Code:
#==============================================================================
# Add-On: Atoa's Active Time Battle
# by Atoa
#==============================================================================
# This Add-On adds a time bar system to the game
# If you don't want to use this Add-ON, simply delete it
# The configurations are explained below
#==============================================================================

module N01  
  
# Do not remove or change this line
  
Cast_Time = {}
  
# Do not remove or change this line

  # Waiting Mode
  
Wait_Mode 0
  
# 0 = On Hold Battle: the bar stops to select actions, skills and itens
  # 1 = Semi On Hold Battle: the bar stop to select itens and skills.
  # 2 = 100% Active Battle: the bar will never stop.
  
  # Pause the bar when a battler is executing an action?
  
Wait_Act_End true
  
  
# Show individual time bars for the battlers?
  
Meters true
  
  
# Show a single bar that indicates the battler's action order?
  
Bars true
  
  
# Battle Speed
  
Speed 10.0
  
  
# Initial bar value modifier
  
Atb_Initial_Value 0
  
  
# Multiplication rate of the initial bar value
  
Atb_Initial_Rate  1.0
  
  
# Definition of turn shifting.
  # This definition must be used for the duration of effects and
  # battle event conditions
  # This value does not count to enemies actions conditions
  
Custom_Turn_Count 0
  
# 0 = By number of fighters
  # 1 = By number of executed actions
  # 2 = By time (in frames)
  
  # If 'Custom_Turn_Count = 1', define how many actions are equal to 1 turn
  
Action_Turn_Count 10
  
  
# If 'Custom_Turn_Count = 2', define how much time (in frames) are equal to 1 turn
  
Time_Tunr_Count 1200 # 20 frames is about 1 second
  
  # Activate a timer for the casting of magical skills?
  
Magic_Skill_Cast true
  
  
# Activate a timer for the casting of physical skills?
  
Physical_Skill_Cast true
  
  
# Activate a timer for the casting of itens?
  
Item_Cast true
  
  
# Set the escape style
  
Escape_Type 0
  
# 0 = Escape options is shown on the character's action menu
  # 1 = Keep pressed the key set in Escape_Input to escape
  #     shows a message on the screen
  # 2 = Keep pressed the key set in Escape_Input to escape
  #     shows an escape bar
  
  # Key that must be pressed to escape
  
Escape_Input Input::A
  
# Input::A  = Keyborard:Z
  # Input::B  = Keyborard:X
  # Input::C  = Keyborard:C
  # Input::X  = Keyborard:A
  # Input::Y  = Keyborard:S
  # Input::Z  = Keyborard:D
  # Input::L  = Keyborard:Q
  # Input::R  = Keyborard:W
 
  # Show the name for the escape option when Escape_Type = 0
  
Escape_Name 'Escape'
  
  
# Escape message when Escape_Type = 1
  
Escape_Message 'Escaping...'
  
Cant_Escape_Message "Can't Escape!"
  
  
# Time (in frames) needed to escape when Escape_Type > 0 
  # it is affected by the agility of characters and enemies
  
Escape_Time 600
  
  
# Name of the graphic file when Escape_Type = 2
  
Escape_Skin 'ESCAPEMeter'
  
  
# Position of the Fleeing Bar
  
Escape_Meter_Pos_Type 0
  
# 0 = Above the characters
  # 1 = Upper-Mid of the screen
  # 2 = Custom position
  
  # Custom position of the Fleeing Bar when Escape_Meter_Pos_Type = 2
  
Escape_Meter_Position = [240,64]
  
  
# Time Bar configurations
  
Meter_Skin  'ATBMeter' # Graphic file name that represents the bars
                           # must be on the Graphic/Windowskins folder
  
  # Position of the character's Time Bars
  
Meter_Pos_Style 0
  
# 0 = Horizontal Pattern, not centralized
  # 1 = Horizontal Pattern, centralized
  # 2 = Vertical Bars
  # 3 = Under the characters
  # 4 = Custom
  
  # Readjust the Time Bar's position on the battle screen
  
X_Meter 12  # X position of the Bars
  
Y_Meter 360 # Y position of the Bars

  # Custom Time Bar position, only valid when Meter_Pos_Style = 4
  
Meter_Position = [[460,180],[480,210],[500,240],[520,270]]

  
# Coordinate 'Z' (height) of the Meter image if Meter_Pos_Style = 4
  
Meter_Height 500
  
  
# Position of the enemie's Time Bars
  
Enemy_Meter 0
  
# 0 = No time bars for the enemies
  # 1 = Under the enemy
  # 2 = Vertical list on the Side
  
  # Configuration of the Action Bars.
  
Bar_Skin 'ATBBar' # Name of the graphic file that represents the bar, must be
                      # on the Graphics/Windowskins folder
  
X_Bar    128      # X position of the Bars
  
Y_Bar    =  80      # Y position of the Bars
  
  # Name of the default graphic Icon for characters
  
Default_Party_Icon '050-Skill07'
  
# Individual character's Icons
  # Must be configured on the following way: 'Battler file name' => 'Icon file name'
  
Party_Icon = {
    
'003-Fighter03' => 'Atoa-Icon',
    
'008-Fighter08' => 'Kahh-Icon',
    
'040-Mage08' => 'Herena-Icon',
    
'035-Mage03' => 'Tunicoelp-Icon',
  }
  
  
# Name of the default graphic Icon for enemies
  
Default_Enemy_Icon '046-Skill03' 
  
# Individual icons for enemies
  # must be configured on the following way: 'Battler file name' => 'Icon file name'
  
Enemy_Icon = {
  
'003-Fighter03' => 'Ash-Icon',
  
'049-Soldier01' => 'Soldier-Icon',
  }
  
  
# Sound effect played when teh character's turn comes.
  
Command_Up_SE '046-Book01'
    
  
# ATB's maximum value, only change if you know what you doing.
  
Max_Atb 60000
  
  
#¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤
  # CAST SETTINGS
  #¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤
  
  # Default cast pose
  
Casting_Pose_Default "WAIT"
  
  
# Individual cast pose
  # Casting_Pose = { Actor ID => "Action Name"}
  
Casting_Pose = { => "GUARD_ATTACK"=> "WAIT-FLOAT"}
  
  
# NOTE: The poses must be configurated on the main config.
  
  # Set here the cast time for each item and skill
  # By default all items have the cast speed = 0 (that means, no cast).
  #  
  #   Cast_Time[Action_Type] = {Action_ID => [Speed, status]}
  #     Action_Type = 'Skill' for skills, 'Item' for items
  #     Action_ID = ID of the skill or item
  #     Speed = cast speed, higher value = faster cast
  #       recomended values between 500-100
  #     Status = The status that the cast speed is based
  #       if nil, the cast will have fixed speed
  #       the status can be:
  #         'hp', 'sp', 'level', 'str', 'dex', 'int', 'agi'

  
Cast_Time['Skill'] = {=> [500,'int'], => [400,'int'], => [300,'int'], 
    
=> [500,'int'], => [400,'int'], => [300,'int'], 10 => [500,'int'], 
    
11 => [400,'int'], 12 => [300,'int'], 13 => [500,'int'], 14 => [400,'int'], 
    
15 => [300,'int'], 16 => [500,'int'], 17 => [400,'int'], 18 => [300,'int'], 
    
19 => [500,'int'], 20 => [400,'int'], 21 => [300,'int'], 22 => [500,'int'], 
    
23 => [400,'int'], 24 => [300,'int'], 25 => [500,'int'], 26 => [400,'int'], 
    
27 => [300,'int'], 28 => [500,'int'], 29 => [400,'int'], 30 => [300,'int']}
  
  
Cast_Time['Item'] = {=> [500,'int'], => [500,'int'], => [500,'int'], 
    
=> [500,'int'], => [500,'int'], => [500,'int'], 10 => [500,'int'], 
    
11 => [500,'int'], 12 => [500,'int']}
  
end

#==============================================================================
# ? Atoa Module
#==============================================================================
$atoa_script['SBS ATB'] = true

#==============================================================================
# ? RPG::Skill
#==============================================================================
class RPG::Skill
  
#----------------------------------------------------------------------------
  
include N01
  
#----------------------------------------------------------------------------
  
def cast_speed(battler)
    if 
Cast_Time != nil and Cast_Time['Skill'] != nil and Cast_Time['Skill'][@id] != nil
      cast1 
Cast_Time['Skill'][@id][0]
      if 
Cast_Time['Skill'][@id][1].nil?
        
cast2 200
      
else
        if 
Cast_Time['Skill'][@id][1] == 'level'
          
cast2 = (eval("battler.#{Cast_Time['Skill'][@id][1]}") * 2) + 100
        elsif Cast_Time
['Skill'][@id][1] == 'hp' or Cast_Time['Skill'][@id][1] == 'sp' 
          
cast2 = (eval("battler.#{Cast_Time['Skill'][@id][1]}") / 50) + 100
        
else
          
cast2 = (eval("battler.#{Cast_Time['Skill'][@id][1]}") / 5) + 100
        end
      end
      
return (cast1 cast2).to_i
    end
    
return 0
  end
end

#==============================================================================
# ? RPG::Item
#==============================================================================
class RPG::Item
  
#----------------------------------------------------------------------------
  
include N01
  
#----------------------------------------------------------------------------
  
def cast_speed(battler)
    if 
Cast_Time != nil and Cast_Time['Item'] != nil and Cast_Time['Item'][@id] != nil
      cast1 
Cast_Time['Item'][@id][0]
      if 
Cast_Time['Item'][@id][1].nil?
        
cast2 200
      
else
        if 
Cast_Time['Item'][@id][1] == 'level'
          
cast2 = (eval("battler.#{Cast_Time['Item'][@id][1]}") * 2) + 100
        elsif Cast_Time
['Item'][@id][1] == 'hp' or Cast_Time['Item'][@id][1] == 'sp' 
          
cast2 = (eval("battler.#{Cast_Time['Item'][@id][1]}") / 50) + 100
        
else
          
cast2 = (eval("battler.#{Cast_Time['Item'][@id][1]}") / 5) + 100
        end
      end
      
return cast1 cast2
    end
    
return 0
  end
end

#==============================================================================
# ? Game_Temp
#==============================================================================
class Game_Temp
  
#--------------------------------------------------------------------------
  
attr_accessor :max_escape_count
  attr_accessor 
:escape_count
  
#--------------------------------------------------------------------------
  
def escape_atb_linetype
    
return 2 unless @battle_can_escape
    
return if @battle_can_escape
  end
  
#--------------------------------------------------------------------------
  
def escape_atb_lineamount
    
return 100 * @escape_count / @max_escape_count if @battle_can_escape
    
return 100 unless @battle_can_escape
  end
  
#--------------------------------------------------------------------------
  
def max_escape_count
    
return @max_escape_count.nil? ? @max_escape_count : @max_escape_count
  end
  
#--------------------------------------------------------------------------
  
def escape_count
    
return @escape_count.nil? ? @escape_count : @escape_count
  end
  
#--------------------------------------------------------------------------
  
def max_escape_count=(n)
    @
max_escape_count n
  end
  
#--------------------------------------------------------------------------
  
def escape_count=(n)
    @
escape_count n
  end
end

#==============================================================================
# ? Game_Battler
#==============================================================================
class Game_Battler
  
#--------------------------------------------------------------------------
  
include N01
  
#--------------------------------------------------------------------------
  
attr_accessor :cast_action
  attr_accessor 
:cast_target
  attr_accessor 
:turn_count
  attr_accessor 
:guarding
  attr_accessor 
:passed
  
#--------------------------------------------------------------------------
  
alias acbs_initialize_atb initialize
  def initialize
    acbs_initialize_atb
    
@cast_skill = @turn_count 0
    
@guarding = @passed false
  end
  
#--------------------------------------------------------------------------
  
def atb_linetype
    
return if self.cast_action != nil and self.atb_full?
    return 
if self.cast_action != nil
    
return if self.atb_full?
    return 
1
  end
  
#--------------------------------------------------------------------------
  
def atb_lineamount
    
return if self.dead?
    return 
100 self.atb self.max_atb
  end
  
#--------------------------------------------------------------------------
  
def atb_enemy_visible
    
return if self.dead? and Enemy_Meter 0
    
return 255
  end
  
#--------------------------------------------------------------------------
  
def max_atb
    
return Max_Atb
  end
  
#--------------------------------------------------------------------------
  
def atb
    
return @atb.nil? ? @atb : @atb
  end
  
#--------------------------------------------------------------------------
  
def atb=(n)
    @
atb = [[n.to_i0].maxself.max_atb].min
  end
  
#--------------------------------------------------------------------------
  
def atb_preset
    percent 
self.max_atb Atb_Initial_Rate * (rand(64) + 16) * self.agi total_agi 240
    self
.atb Atb_Initial_Value percent
  end
  
#--------------------------------------------------------------------------
  
def total_agi
    total 
0
    
for battler in $game_party.actors $game_troop.enemies
      total 
+= battler.agi
    end
    
return total
  end
  
#--------------------------------------------------------------------------
  
def atb_full?
    return @
atb == self.max_atb
  end
  
#--------------------------------------------------------------------------
  
def atb_update
    
if self.cast_action.nil?
      
self.atb += Speed * (190 rand(10)) * self.agi total_agi
    
else
      
cast cast_action.cast_speed(self)
      
self.atb += Speed cast total_agi
    end
  end
  
#--------------------------------------------------------------------------
  
def casting
    
if Casting_Pose[self.id] != nil
      
return Casting_Pose[self.id]
    
end
    
return Casting_Pose_Default
  end
end

#==============================================================================
# ? Game_Actor
#==============================================================================
class Game_Actor Game_Battler
  
#--------------------------------------------------------------------------
  
def inputable?
    return (
self.atb_full? and super)
  
end
end

#==============================================================================
# ? Game_Enemy
#==============================================================================
class Game_Enemy Game_Battler
  
#--------------------------------------------------------------------------
  
def movable?
    return (
self.atb_full? and super)
  
end
  
#--------------------------------------------------------------------------
  
def make_action
    self
.current_action.clear
    
return unless self.movable?
    
available_actions = []
    
rating_max 0
    
for action in self.actions
      n 
= @turn_count
      a 
action.condition_turn_a
      b 
action.condition_turn_b
      next 
if (== and != a) or (and (or or != b))
      
next if self.hp 100.0 self.maxhp action.condition_hp
      next 
if $game_party.max_level action.condition_level
      switch_id 
action.condition_switch_id
      next 
if switch_id and $game_switches[switch_id] == false
      available_actions 
<< action
      rating_max 
action.rating if action.rating rating_max
    end
    ratings_total 
0
    
for action in available_actions
      ratings_total 
+= action.rating - (rating_max 3) if action.rating rating_max 3
    end
    
if ratings_total 0
      value 
rand(ratings_total)
      for 
action in available_actions
        
if action.rating rating_max 3
          
if value action.rating - (rating_max 3)
            
self.current_action.kind action.kind
            self
.current_action.basic action.basic
            self
.current_action.skill_id action.skill_id
            self
.current_action.decide_random_target_for_enemy
            
return
          else
            
value -= action.rating - (rating_max 3)
          
end
        end
      end
    end
  end
end

#==============================================================================
# ? Game_System
#==============================================================================
class Game_System
  
#--------------------------------------------------------------------------
  
include N01
  
#--------------------------------------------------------------------------
  
attr_accessor :wait_mode
  attr_accessor 
:action_wait
  
#--------------------------------------------------------------------------
  
alias acbs_initialize_atb initialize
  def initialize
    acbs_initialize_atb
    
@wait_mode Wait_Mode
    
@action_wait Wait_Act_End
  end
end

#==============================================================================
# ? Sprite_Battler
#==============================================================================
class Sprite_Battler RPG::Sprite
  
#--------------------------------------------------------------------------
  
def stand_by
    
@repeat_action = @battler.normal
    
@repeat_action = @battler.pinch if @battler.hp <= @battler.maxhp 4
    
@repeat_action = @battler.defence if @battler.defense_pose
    
@repeat_action = @battler.casting if @battler.cast_action != nil
    unless 
@battler.state_id == nil
      
for state in @battler.battler_states.reverse
        next 
if state.extension.include?("NOSTATEANIME")
        
next if @battler.is_a?(Game_Enemy) && state.extension.include?("EXCEPTENEMY")
        @
repeat_action state.base_action
      end 
    end
  end 
  
#--------------------------------------------------------------------------
  
def push_stand_by
    action 
= @battler.normal
    action 
= @battler.pinch if @battler.hp <= @battler.maxhp 4
    action 
= @battler.defence if @battler.defense_pose
    action 
= @battler.casting if @battler.cast_action != nil
    
for state in @battler.battler_states.reverse
      next 
if state.extension.include?("NOSTATEANIME")
      
next if @battler.is_a?(Game_Enemy) && state.extension.include?("EXCEPTENEMY")
      
action state.base_action
    end
    
@repeat_action action
    
@action.delete("End")
    
act ACTION[action].dup
    
for i in 0...act.size
      
@action.push(act[i])
    
end  
    
@action.push("End")
    @
anime_end true
    
@angle self.angle 0
  end
end

#==============================================================================
# ? Scene_Battle
#==============================================================================
class Scene_Battle
  
#--------------------------------------------------------------------------
  
include N01
  
#--------------------------------------------------------------------------
  
alias acbs_main_atb main
  def main
    turn_count_speed  
    
@escape_ratio 40
    $game_temp
.escape_count 0
    
@escape_type, @escape_name Escape_TypeEscape_Name
    
@input_battlers, @action_battlers = [], []
    @
input_battler, @action_battler nilnil
    
@escaped = @update_turn_end = @action_phase false
    acbs_main_atb
  end
  
#--------------------------------------------------------------------------
  
alias acbs_start_atb start
  def start
    acbs_start_atb
    add_bars
    
for battler in $game_party.actors $game_troop.enemies
      battler
.turn_count 0
      battler
.atb 0
      battler
.atb_preset
      battler
.cast_action nil
      battler
.cast_target nil
      battler
.defense_pose false
    end
    
for actor in $game_party.actors
      actor
.atb actor.max_atb if $preemptive
      actor
.atb if $back_attack 
    end
    
for enemy in $game_troop.enemies
      enemy
.atb if $preemptive
      enemy
.atb enemy.max_atb if $back_attack 
    end
    update_meters
  end
  
#--------------------------------------------------------------------------
  
alias acbs_terminate_atb terminate
  def terminate
    acbs_terminate_atb
    remove_bars
  end
  
#--------------------------------------------------------------------------
  
def add_bars
    
@atb_meters ATB_Meters.new if Meters
    
@atb_meters_enemy ATB_Meters_Enemy.new if Enemy_Meter != and Meters
    
@atb_bars ATB_Bars.new if Bars
  end
  
#--------------------------------------------------------------------------
  
def remove_bars
    
@atb_meters.dispose if Meters
    
@atb_bars.dispose if Bars
    
@atb_meters_enemy.dispose if Enemy_Meter != and Meters
  end
  
#--------------------------------------------------------------------------
  
alias acbs_update_atb update
  def update
    
if @phase == 1
      $game_temp
.battle_main_phase true
      
@actor_command_window.opacity 0
      
@phase 0
    elsif 
@phase != 5
      
@phase 0
    end
    
@event_running true if $game_system.battle_interpreter.running?
    
acbs_update_atb
    
if $game_system.battle_interpreter.running?
      return
    
elsif @event_running
      
@status_window.refresh
      
@event_running false
    end
    
return $scene Scene_Gameover.new if $game_temp.gameover
    
return update_phase5 if @phase == 5
    
@event_running true if $game_system.battle_interpreter.running?
    if @
update_turn_end
      turn_ending 
      
@update_turn_end false
    end
    
if Input.press?(Escape_Input) and @escape_type 
      
if $game_temp.battle_can_escape
        $game_temp
.max_escape_count update_phase2_escape_rate
        $game_temp
.escape_count += 2 unless @wait_on
        
@escaping true
        
if !@help_window.visible and @escape_type == 1
          
@help_window.set_text('')
          @
help_window.set_text(Escape_Message1)
        
end
        
if @escape_type == 2
          
if @escape_atb_meters.nil?
            @
escape_atb_meters Escape_Meters.new
            @
escape_meter_opacity 0
            
@escape_atb_meters.visible true
          
else @escape_atb_meters != nil
            
@escape_atb_meters.opacity 15 * @escape_meter_opacity
            
@escape_meter_opacity = [@escape_meter_opacity 117].min
            
@escape_atb_meters.refresh
          end
        end
        
if $game_temp.escape_count >= $game_temp.max_escape_count
          $game_temp
.escape_count 0
          update_phase2_escape unless $game_party
.all_dead?
        
end
      
else
        @
help_window.set_text(Cant_Escape_Message1) if @escape_type == 1        
        
if @escape_type == 2       
          
if @escape_atb_meters.nil?
            @
escape_atb_meters Escape_Meters.new
            @
escape_meter_opacity 0
            
@escape_atb_meters.visible true
          
else @escape_atb_meters != nil
            
@escape_atb_meters.opacity 15 * @escape_meter_opacity
            
@escape_meter_opacity = [@escape_meter_opacity 117].min
            
@escape_atb_meters.refresh
          end
        end
      end
    elsif 
@escape_type 0
      
if @escaping
        
@escaping false
        
@help_window.visible false
      end
      $game_temp
.escape_count = [$game_temp.escape_count 10].max unless @wait_on
      
if @escape_atb_meters != nil and $game_temp.escape_count == 0
        
@escape_atb_meters.opacity 15 * @escape_meter_opacity
        
@escape_meter_opacity = [@escape_meter_opacity 10].max
        
if @escape_meter_opacity == 0
          
@escape_atb_meters.dispose 
          
@escape_atb_meters nil
        end
      end
      
@escape_atb_meters.refresh if @escape_atb_meters != nil
    end
    
return if @escaped
    atb_update
    input_battler_update
(false)
    if @
action_battlers[0] != nil && @action_battler.nil?
      @
action_battlers.flatten!
      @
action_battler = @action_battlers[0]
      if @
action_battler.dead?
        @
action_battler.atb 0
        
@action_battler nil
      
else
        
start_phase4
      end
    end
    
if @action_battler != nil && !@spriteset.effect?
      @
active_battler = @action_battler
      update_phase4
    end
  end
  
#--------------------------------------------------------------------------
  
alias acbs_judge_atb judge
  def judge
    
@end_battle acbs_judge_atb
    
return @end_battle
  end
  
#--------------------------------------------------------------------------
  
alias acbs_update_basic_atb update_basic
  def update_basic
    atb_update unless 
@battle_start
    input_battler_update
(true)
    
acbs_update_basic_atb
  end
  
#--------------------------------------------------------------------------
  
def input_battler_update(basic)
    for 
battler in  $game_troop.enemies $game_party.actors
      
if battler.atb_full? and battler != @action_battler and not
         
@action_battlers.include?(battler)
        
battler_turn(battler)
        break if 
Wait_Act_End and not battler.actor?
      
end
    end
    
if @input_battlers[0] != nil && @input_battler.nil? && !@wait_on
      
@input_battlers.flatten!
      @
input_battler = @input_battlers[0]
      if @
input_battler.current_action.forcing || @input_battler.restriction == || 
        @
input_battler.restriction == 3
        
if @input_battler.restriction == || @input_battler.restriction == 3
          
@input_battler.current_action.kind 0
          
@input_battler.current_action.basic 0
        end
        
@input_battler.defense_pose false
        
@action_battlers << @input_battler
        
@input_battlers.shift
        
@input_battler nil
      elsif 
@input_battler.inputable?
        @
actor_index $game_party.actors.index(@input_battler)
        @
input_battler.current_action.clear
        
@input_battler.blink true
      
else
        @
input_battler.atb_update
        
@input_battlers.shift
        
@input_battler nil
      end
    end
    
if @input_battler != nil
      
@input_action true if basic
      
@now_battler = @active_battler
      
@active_battler = @input_battler
      
@input_battler.defense_pose false
      phase3_setup_command_window 
if @actor_command_window.opacity == 0
      update_phase3
      
@active_battler = @now_battler
      
@input_action false if basic
    end
    
for battler in $game_party.actors $game_troop.enemies
      
if battler.dead? or not battler.exist?
        @
input_battlers.delete(battler)
        @
action_battlers.delete(battler)
      
end
    end
  end
  
#--------------------------------------------------------------------------
  
def battler_turn(battler)
    
battler.turn_count += 1
    
if battler.is_a?(Game_Actor)
      if 
battler.inputable? and battler.cast_action.nil?
        @
input_battlers << battler
      
else
        if 
battler.restriction == || battler.restriction == 3
          battler
.current_action.kind 0
          battler
.current_action.basic 0
        end
        battler
.defense_pose false
        
@action_battlers << battler
      end
    
else
      
battler.make_action
      
@action_battlers << battler
    end
  end
  
#--------------------------------------------------------------------------
  
def atb_update
    
@wait_on wait_on
    
return if @wait_on
    
@atb_turn_count += if Custom_Turn_Count == 2
    
if @atb_turn_count >= @abt_turn_speed
      
@update_turn_end true
      $game_temp
.battle_turn += 1
      turn_count_speed
      
for battler in $game_party.actors $game_troop.enemies
        battler
.remove_states_auto if battler.exist?
      
end
      setup_battle_event
    end
    
for battler in $game_party.actors $game_troop.enemies
      unless battler 
== @action_battler or
         (@
escaping and battler.actor? and @escape_type 0)
        
battler.atb_update if battler.exist? and not battler.restriction == 4
      end
    end
    update_meters
  end
  
#--------------------------------------------------------------------------
  
def wait_on
    
return true if $game_system.wait_mode == and (@skill_window != nil or @item_window != nil)
    return 
true if $game_system.wait_mode == and @input_battler != nil
    
return true if $game_system.action_wait and @action_battler != nil
    
return true if @force_wait or @battle_end or @escaped
    
return false
  end
  
#--------------------------------------------------------------------------
  
def start_phase2
  end
  
#--------------------------------------------------------------------------
  
def update_meters
    
@atb_meters.refresh if Meters
    
@atb_meters_enemy.refresh if Enemy_Meter != and Meters
    
@atb_bars.refresh if Bars
  end
  
#--------------------------------------------------------------------------
  
def turn_count_speed
    
@atb_turn_count = @abt_turn_speed 0
    
case Custom_Turn_Count
    when 0
      
for battler in $game_party.actors $game_troop.enemies
        
@abt_turn_speed += if battler.exist?
      
end
    when 1
      
@abt_turn_speed Action_Turn_Count
    when 2
      
@abt_turn_speed Time_Tunr_Count
    end
  end
  
#--------------------------------------------------------------------------
  
def update_phase2_escape
    windows_dispose
    update_phase2_escape_type1 
if @escape_type == 
    update_phase2_escape_type2 
if @escape_type 0
  end
  
#--------------------------------------------------------------------------
  
def update_phase2_escape_type1
    enemies_agi 
enemies_number 0
    
for enemy in $game_troop.enemies
      
if enemy.exist?
        
enemies_agi += enemy.agi
        enemies_number 
+= 1
      end
    end
    enemies_agi 
/= [enemies_number1].max
    actors_agi 
actors_number 0
    
for actor in $game_party.actors
      
if actor.exist?
        
actors_agi += actor.agi
        actors_number 
+= 1
      end
    end
    actors_agi 
/= [actors_number1].max
    
@success rand(100) < @escape_ratio actors_agi enemies_agi
    
if @success
      
@battle_end true
      $game_system
.se_play($data_system.escape_se)
      
$game_system.bgm_play($game_temp.map_bgm)
      
battle_end(1)
    else
      @
escape_ratio += 3
      phase3_next_actor
    end
  end
  
#--------------------------------------------------------------------------
  
def update_phase2_escape_type2
    
@escaped true
    
@party_command_window.visible false
    
@party_command_window.active false
    
@actor_command_window.visible false if @actor_command_window != nil
    
@actor_command_window.active false if @actor_command_window != nil
    wait
(1)
    @
battle_end true
    $game_system
.se_play($data_system.escape_se)
    
$game_system.bgm_play($game_temp.map_bgm)
    if @
escape_atb_meters != nil
      
@escape_atb_meters.dispose 
      
@escape_atb_meters nil
    end
    battle_end
(1)
  
end
  
#--------------------------------------------------------------------------
  
def update_phase2_escape_rate
    enemies_agi 
enemies_number 0
    
for enemy in $game_troop.enemies
      
if enemy.exist?
        
enemies_agi += enemy.agi
        enemies_number 
+= 1
      end
    end
    enemies_agi 
/= [enemies_number1].max
    actors_agi 
actors_number 0
    
for actor in $game_party.actors
      
if actor.exist?
        
actors_agi += actor.agi
        actors_number 
+= 1
      end
    end
    actors_agi 
/= [actors_number1].max
    escape_rate 
Escape_Time enemies_agi / (actors_agi Speed)
    return 
escape_rate
  end
  
#--------------------------------------------------------------------------
  
alias acbs_start_phase5_atb start_phase5
  def start_phase5
    
if @input_battler != nil
      
@help_window.visible false if @help_window != nil
      windows_dispose
      
@input_battler.blink false if @input_battler != nil
    end
    
@atb_meters.opacity if Meter_Pos_Style == 3
    update_meters
    acbs_start_phase5_atb
  end
  
#--------------------------------------------------------------------------
  
alias acbs_update_phase5_atb update_phase5
  def update_phase5
    windows_dispose
    acbs_update_phase5_atb
  end
  
#--------------------------------------------------------------------------
  
def phase3_setup_command_window
    
return if @escaped
    
if @active_battler != nil && @active_battler.cast_action != nil
      
@active_battler.blink false
      
return    
    
end
    Audio
.se_play('Audio/SE/' Command_Up_SE)    
    @
party_command_window.active false
    
@party_command_window.visible false
    
@actor_command_window.dispose if @actor_command_window != nil
    s1 
$data_system.words.attack
    s2 
$data_system.words.skill
    s3 
$data_system.words.item
    s4 
$data_system.words.guard
    s5 
= @escape_name
    
if @escape_type == 0
      
@actor_command_window Window_Command.new(160, [s1s2s3s4s5])  
    else
      @
actor_command_window Window_Command.new(160, [s1s2s3s4])  
    
end
    
@actor_command_window.COMMAND_WINDOW_POSITION[0]
    @
actor_command_window.COMMAND_WINDOW_POSITION[1]
    @
actor_command_window.back_opacity COMMAND_OPACITY
    
@actor_command_window.4500
    
@active_battler_window.refresh(@active_battler)
    @
active_battler_window.visible BATTLER_NAME_WINDOW
    
@active_battler_window.COMMAND_WINDOW_POSITION[0]
    @
active_battler_window.COMMAND_WINDOW_POSITION[1] - 64
    
@active_battler_window.4500
  end
  
#--------------------------------------------------------------------------
  
alias acbs_start_enemy_select_atb start_enemy_select
  def start_enemy_select
    
@teste true
    acbs_start_enemy_select_atb
    
@atb_meters.visible true if Meters
    update_meters unless Wait_Mode 
== 2
  end
  
#--------------------------------------------------------------------------
  
alias acbs_update_phase3_skill_select_atb update_phase3_skill_select
  def update_phase3_skill_select
    
@atb_meters.visible false if Meters and Meter_Pos_Style and HIDE_WINDOW
    acbs_update_phase3_skill_select_atb
    update_meters unless Wait_Mode 
== 2
  end
  
#--------------------------------------------------------------------------
  
alias acbs_update_phase3_item_select_atb update_phase3_item_select
  def update_phase3_item_select
    
@atb_meters.visible false if Meters and Meter_Pos_Style and HIDE_WINDOW
    acbs_update_phase3_item_select_atb
    update_meters unless Wait_Mode 
== 2
  end
  
#--------------------------------------------------------------------------
  
alias acbs_start_actor_select_atb start_actor_select
  def start_actor_select
    acbs_start_actor_select_atb
    
@atb_meters.visible true if Meters
    update_meters unless Wait_Mode 
== 2
  end
  
#--------------------------------------------------------------------------
  
alias acbs_start_skill_select_atb start_skill_select
  def start_skill_select
    acbs_start_skill_select_atb
    
@atb_meters.visible false if Meters and Meter_Pos_Style and HIDE_WINDOW
    update_meters unless Wait_Mode 
== 2
  end
  
#--------------------------------------------------------------------------
  
alias acbs_end_skill_select_atb end_skill_select
  def end_skill_select
    acbs_end_skill_select_atb
    
@atb_meters.visible true if Meters
    update_meters unless Wait_Mode 
== 2
  end
  
#--------------------------------------------------------------------------
  
alias acbs_start_item_select_atb start_item_select
  def start_item_select
    acbs_start_item_select_atb
    
@atb_meters.visible false if Meters and Meter_Pos_Style and HIDE_WINDOW
    update_meters unless Wait_Mode 
== 2
  end
  
#--------------------------------------------------------------------------
  
alias acbs_end_item_select_atb end_item_select
  def end_item_select
    acbs_end_item_select_atb
    
@atb_meters.visible true if Meters
    update_meters unless Wait_Mode 
== 2
  end
  
#--------------------------------------------------------------------------
  
def phase3_next_actor
    
@input_battler.blink false
    action_battler 
= @input_battlers.shift
    
@action_battlers << action_battler
    command_input_cancel
    
@input_battler nil
    
@actor_index nil
    
@active_battler nil
  end
  
#--------------------------------------------------------------------------
  
def phase3_prior_actor
    
@input_battler.current_action.kind 0
    
@input_battler.current_action.basic 3
    
@input_battler.blink false
    action_battler 
= @input_battlers.shift
    
@action_battlers << action_battler
    
@input_battler nil
    
@actor_index nil
    
@active_battler nil
    windows_dispose
  end
  
#--------------------------------------------------------------------------
  
alias acbs_update_phase3_atb update_phase3
  def update_phase3
    
if cancel_command?
      if 
can_act?
        if [
23].include?(@input_battler.restriction)
          @
input_battler.current_action.kind 0
          
@input_battler.current_action.basic 0
        end
        
@action_battlers << @input_battler
      end
      command_input_cancel
      
return
    
end
    acbs_update_phase3_atb
  end
  
#--------------------------------------------------------------------------
  
def cancel_command?
    return 
false if @input_battler.nil?
    return 
true if @input_battler.current_action.forcing
    
return true if [234].include?(@input_battler.restriction)
    return 
true if not $game_party.actors.include?(@input_battler)
    return 
false
  end
  
#--------------------------------------------------------------------------
  
def can_act?
    return 
true if @input_battler.current_action.forcing
    
return true if [23].include?(@input_battler.restriction)
    return 
false
  end
  
#--------------------------------------------------------------------------
  
alias acbs_update_phase3_basic_command_atb update_phase3_basic_command
  def update_phase3_basic_command
    
if Input.trigger?(Input::C)
      case @
actor_command_window.commands[@actor_command_window.index]
      
when @escape_name
        
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
        
return
      
end
    end
    
if Input.trigger?(Input::UP) and @input_action
      $game_system
.se_play($data_system.cursor_se)
      @
actor_command_window.index -= 1
      
if @actor_command_window.index <= -1   
        
@actor_command_window.index = @actor_command_window.commands_size 1
      end
      
return
    
end
    
if Input.trigger?(Input::DOWN) and @input_action
      $game_system
.se_play($data_system.cursor_se)
      @
actor_command_window.index += 1
      
if @actor_command_window.index >= @actor_command_window.commands_size 1
        
@actor_command_window.index 0
      end
      
return
    
end
    
if Input.trigger?(Input::B)
      
$game_system.se_play($data_system.decision_se)
      
phase3_next_actor
      
return
    
end
    
if Input.trigger?(Input::A)
      
$game_system.se_play($data_system.decision_se)
      @
input_battler.passed true
      phase3_next_actor
      
return
    
end
    acbs_update_phase3_basic_command_atb 
  end
  
#--------------------------------------------------------------------------
  
def command_input_cancel
    windows_dispose
    
@input_battler.blink false
    
@input_battlers.delete(@input_battler)
    @
input_battler nil
  end
  
#--------------------------------------------------------------------------
  
def windows_dispose
    
@help_window.visible false if !@escaping
    
if @enemy_arrow != nil
      
@enemy_arrow.dispose
      
@enemy_arrow nil
    end
    
if @actor_arrow != nil
      
@actor_arrow.dispose
      
@actor_arrow nil
    end
    
if @actor_arrow != nil
      
@actor_arrow.dispose
      
@actor_arrow nil
    end
    
if @skill_window != nil
      
@skill_window.dispose
      
@skill_window nil
    end
    
if @item_window != nil
      
@item_window.dispose
      
@item_window nil
    end
    
if @enemy_arrow_all != nil
      
@enemy_arrow_all.dispose_multi_arrow
      
@enemy_arrow_all nil
    end
    
if @actor_arrow_all != nil
      
@actor_arrow_all.dispose_multi_arrow
      
@actor_arrow_all nil
    end
    
if @battler_arrow_all != nil
      
@battler_arrow_all.dispose_multi_arrow
      
@battler_arrow_all nil
    end
    
if @actor_command_window != nil
      
@actor_command_window.active false
      
@actor_command_window.visible false
      
@active_battler_window.visible false
      
@actor_command_window.opacity 0
    end
    
@status_window.visible true
  end
  
#--------------------------------------------------------------------------
  
alias acbs_update_phase4_step1_atb update_phase4_step1
  def update_phase4_step1
    
if @action_battlers.size == 0
      
@input_battlers.clear
      
@action_battlers.clear
      
@action_battler.atb 0
      
@action_battler nil
    end
    acbs_update_phase4_step1_atb
  end  
  
#--------------------------------------------------------------------------
  
alias acbs_update_phase4_step2_atb update_phase4_step2
  def update_phase4_step2
    
@active_battler.defense_pose false
    
if @active_battler.cast_action != nil
      active_cast 
= @active_battler.cast_action
      
if active_cast.scope == or active_cast.scope == or active_cast.scope == 5
        
@active_battler.current_action.target_index = @active_battler.cast_target
      end
      
if active_cast.is_a?(RPG::Skill)
        @
active_battler.current_action.kind 
        
@active_battler.current_action.skill_id = @active_battler.cast_action.id
      elsif active_cast
.is_a?(RPG::Item)  
        @
active_battler.current_action.kind 
        
@active_battler.current_action.item_id = @active_battler.cast_action.id
      end
    end
    
for state in @active_battler.battler_states
      
@active_battler.remove_state(state.id) if state.extension.include?("ZEROTURNLIFT")
    
end
    acbs_update_phase4_step2_atb
  end
  
#--------------------------------------------------------------------------
  
alias make_skill_action_result_atb_n01 make_skill_action_result
  def make_skill_action_result
    skill 
$data_skills[@action_battler.current_action.skill_id]
    if @
action_battler.cast_action == nil
      
@active_battler.cast_action skill
      
@active_battler.cast_target = @active_battler.current_action.target_index
      
@cast_speed skill.cast_speed(@active_battler)
      @
active_battler.cast_action nil if @cast_speed == 0
      
@spriteset.set_stand_by_action(@active_battler.actor?, @active_battler.index)
      return 
unless @cast_speed == 0
    end
    make_skill_action_result_atb_n01
    
@active_battler.cast_action nil
  end
  
#--------------------------------------------------------------------------
  
alias make_item_action_result_atb_n01 make_item_action_result
  def make_item_action_result
    item 
$data_items[@action_battler.current_action.item_id]
    if @
action_battler.cast_action == nil
      
@active_battler.cast_action item
      
@active_battler.cast_target = @active_battler.current_action.target_index
      
@cast_speed item.cast_speed(@active_battler)
      @
active_battler.cast_action nil if @cast_speed == 0
      
@spriteset.set_stand_by_action(@active_battler.actor?, @active_battler.index)
      return 
unless @cast_speed == 0
    end
    make_item_action_result_atb_n01
    
@active_battler.cast_action nil
  end 
  
#--------------------------------------------------------------------------
  
alias acbs_action_end_atb action_end
  def action_end
    acbs_action_end_atb
    
@active_battler.cast_action nil
  end
  
#--------------------------------------------------------------------------
  
def start_phase4
    
@phase4_step 1
    
@action_phase true
  end
  
#--------------------------------------------------------------------------
  
alias acbs_update_phase4_step6_atb update_phase4_step6
  def update_phase4_step6
    acbs_update_phase4_step6_atb
    
@atb_turn_count += 1 unless Custom_Turn_Count == 2
    
@active_battler.atb 0 unless @active_battler.passed
    
@active_battler.passed false
    
@input_battlers.delete(@active_battler)
    @
action_battlers.delete(@active_battler)
    @
action_battler nil
    
@action_phase false
    update_meters
    judge
  end
end

#==============================================================================
# ? Window_Command
#==============================================================================
class Window_Command Window_Selectable
  
#--------------------------------------------------------------------------
  
attr_accessor :commands
  
#--------------------------------------------------------------------------
  
def commands_size
    
return @item_max
  end
end

#==============================================================================
# ? ATB_Meters
#==============================================================================
class ATB_Meters
  
#--------------------------------------------------------------------------
  
attr_accessor :meters
  
#--------------------------------------------------------------------------
  
include N01
  
#--------------------------------------------------------------------------
  
def initialize
    
@meters = []
    @
skin RPG::Cache.windowskin(Meter_Skin)
    for 
i in 0...$game_party.actors.size
      
@meter MeterSprite.new(@skin5)
      
refresh_meter(i)
    
end
    refresh
  end
  
#--------------------------------------------------------------------------
  
def refresh
    
return if !Meters
    
for i in @meters.size...$game_party.actors.size
      refresh_meter
(i)
    
end
    
for i in $game_party.actors.size...@meters.size
      
@meters[i].dispose
      
@meters[i] = nil
    end
    
@meters.compact!    
    for 
i in 0...$game_party.actors.size
      actor 
$game_party.actors[i]
      @
meters[i].line   actor.atb_linetype
      
@meters[i].amount actor.atb_lineamount
      
@meters[i].atb_visible 255
    end
  end
  
#--------------------------------------------------------------------------
  
def refresh_meter(i)
    
actor $game_party.actors[i]
    case 
Meter_Pos_Style
    when 0
      
@meter.* (624 MAX_MEMBER) + X_Meter
      
@meter.Y_Meter
    when 1
      
@meter.X_Meter + ((624 MAX_MEMBER) * (($game_party.actors.size)/2.0 i)).floor
      
@meter.Y_Meter
    when 2
      
@meter.X_Meter
      
@meter.32 Y_Meter
    when 3
      
@meter.actor.screen_x - @skin.width 2
      
@meter.actor.screen_y - @skin.height 5
    when 4
      base 
Meter_Position[i]
      @
meter.base[0]
      @
meter.base[1]
    
end
    
@meters[i] = @meter
  end
  
#--------------------------------------------------------------------------
  
def visible=(b)
    @
meters.each{|spritesprite.visible }
  
end
  
#--------------------------------------------------------------------------
  
def opacity=(b)
    @
meters.each{|spritesprite.opacity }
  
end
  
#--------------------------------------------------------------------------
  
def dispose
    
@meters.each{|spritesprite.dispose }
  
end
end

#==============================================================================
# ? ATB_Meters_Enemy
#==============================================================================
class ATB_Meters_Enemy
  
#--------------------------------------------------------------------------
  
attr_accessor :enemy_meters
  
#--------------------------------------------------------------------------
  
include N01
  
#--------------------------------------------------------------------------
  
def initialize
    
@meters = []
    @
enemy_meters = [] if Enemy_Meter != 0
    
@skin RPG::Cache.windowskin(Meter_Skin)
    for 
i in 0...$game_troop.enemies.size
      next unless $game_troop
.enemies[i].exist?
      @
enemy_meter MeterSprite.new(@skin5)
      
refresh_enemy_meter(i)
    
end
    refresh
  end
  
#--------------------------------------------------------------------------
  
def refresh
    
return if !Meters
    
for i in @enemy_meters.size...$game_troop.enemies.size
      refresh_enemy_meter
(i)
    
end
    
for i in $game_troop.enemies.size...@enemy_meters.size
      
@enemy_meters[i].dispose
      
@enemy_meters[i] = nil
    end
    
@enemy_meters.compact!    
    for 
i in 0...$game_troop.enemies.size
      enemy 
$game_troop.enemies[i]
      
next unless enemy.exist?
      @
enemy_meters[i].line   enemy.atb_linetype
      
@enemy_meters[i].amount enemy.atb_lineamount
      
@enemy_meters[i].atb_visible enemy.atb_enemy_visible
    end
  end
  
#--------------------------------------------------------------------------
  
def refresh_enemy_meter(i)
    
enemy $game_troop.enemies[i]
    return @
enemy_meters[i] = nil unless enemy.exist?
    case 
Enemy_Meter
    when 1
      
@enemy_meter.enemy.screen_x - @skin.width 2
      
@enemy_meter.enemy.screen_y - @skin.height 5
      
@enemy_meter.100
    when 2
      
@enemy_meter.32
      
@enemy_meter.80 32
      
@enemy_meter.1000
    end
    
@enemy_meters[i] = @enemy_meter
  end
  
#--------------------------------------------------------------------------
  
def visible=(b)
    @
meters.each{|spritesprite.visible }
  
end
  
#--------------------------------------------------------------------------
  
def opacity=(b)
    @
meters.each{|spritesprite.opacity }
  
end
  
#--------------------------------------------------------------------------
  
def dispose
    
@enemy_meters.each{|spritesprite.dispose }
  
end
end

#==============================================================================
# ? ATB_Bars
#==============================================================================
class ATB_Bars
  
#--------------------------------------------------------------------------
  
include N01
  
#--------------------------------------------------------------------------
  
def initialize
    
@base Sprite.new
    @
base.bitmap RPG::Cache.windowskin(Bar_Skin).dup
    
@base.X_Bar
    
@base.Y_Bar
    
@base.1000
    
@width  = @base.bitmap.width
    
@height = @base.bitmap.height
    
@icon_set = []
    @
base.opacity self.opacity 0
    refresh
  end
  
#--------------------------------------------------------------------------
  
def refresh
    
@base.opacity self.opacity 255 if Bars
    
return @base.opacity self.opacity if !Bars
    need_initializes 
= []
    for 
battler in $game_party.actors $game_troop.enemies
      exist 
false
      
for set in @icon_set
        exist 
|= (set[1] == battler)
      
end
      need_initializes 
<< battler unless exist
    end
    
for battler in need_initializes
      iconname 
nil
      
if battler.is_a?(Game_Actor)
        
iconname Party_Icon[battler.battler_name]
      else
        
iconname Enemy_Icon[battler.battler_name]
      
end
      
if iconname.nil?
        if 
battler.is_a?(Game_Actor)
          
iconname Default_Party_Icon
        
else
          
iconname Default_Enemy_Icon
        end
      end
      sprite 
Sprite.new
      
sprite.bitmap RPG::Cache.icon(iconname).dup
      sprite
.Y_Bar + @height 12
      
@icon_set << [spritebattler]
    
end
    
for set in @icon_set
      set
[0].X_Bar + @width set[1].atb set[1].max_atb 12
      set
[0].1001
      set
[0].visible = (!set[1].dead? and set[1].exist?)
    
end
  end
  
#--------------------------------------------------------------------------
  
def visible=(n)
    @
base.visible n
    
@icon_set.each{|setset[0].visible }
  
end
  
#--------------------------------------------------------------------------
  
def opacity=(n)
    @
base.opacity n
    
@icon_set.each{|setset[0].opacity }
  
end
  
#--------------------------------------------------------------------------
  
def dispose
    
@base.dispose
    
@icon_set.each{|setset[0].dispose }
  
end
end

#==============================================================================
# ? Escape_Meters
#==============================================================================
class Escape_Meters
  
#--------------------------------------------------------------------------
  
attr_accessor :meters
  attr_reader   
:meters
  attr_accessor 
:enemy_meters
  attr_reader   
:enemy_meters
  
#--------------------------------------------------------------------------
  
include N01
  
#--------------------------------------------------------------------------
  
def initialize
    
@skin RPG::Cache.windowskin(Escape_Skin)
    @
escape_meter MeterSprite.new(@skin3)
    
refresh_meter
    refresh
  end
  
#--------------------------------------------------------------------------
  
def refresh
    
@escape_meter.line   $game_temp.escape_atb_linetype
    
@escape_meter.amount $game_temp.escape_atb_lineamount
  end
  
#--------------------------------------------------------------------------
  
def refresh_meter
    
case Escape_Meter_Pos_Type
    when 0
      
@escape_meter.608 - @skin.width
      
@escape_meter.80
    when 1
      
@escape_meter.320 skin.width
      
@escape_meter.64
    when 2
      
@escape_meter.Escape_Meter_Position[0]
      @
escape_meter.Escape_Meter_Position[1]
    
end
  end
  
#--------------------------------------------------------------------------
  
def visible=(n)
    @
escape_meter.visible n
  end
  
#--------------------------------------------------------------------------
  
def opacity=(n)
    @
escape_meter.opacity n
  end
  
#--------------------------------------------------------------------------
  
def dispose
    
@escape_meter.dispose
  end
end

#==============================================================================
# ? MeterSprite
#==============================================================================
class MeterSprite Sprite
  
#--------------------------------------------------------------------------
  
include N01
  
#--------------------------------------------------------------------------
  
def initialize(skinline_height)
    @
line_height line_height
    
@skin   skin
    
@width  = @skin.width
    
@height = @skin.height / @line_height
    
@line   1
    
@amount 0
    
@atb_visible 0
    
@base_sprite.dispose if @base_sprite != nil
    
@base_sprite Sprite.new
    @
base_sprite.bitmap = @skin
    
@base_sprite.src_rect.set(00, @width, @height)
    @
base_sprite.450 * @line_height
    
@base_sprite.60 if Meter_Pos_Style == and @line_height == 5
    
@base_sprite.Meter_Height if Meter_Pos_Style == and @line_height == 5
    
@base_sprite.opacity 0
    super
()
    
self.= @base_sprite.1
    self
.bitmap = @skin
    self
.line 1
    self
.opacity = @base_sprite.opacity if !Meters or @line_height == 3
  end
  
#--------------------------------------------------------------------------
  
def line=(n)
    @
line n
    refresh
  end
  
#--------------------------------------------------------------------------
  
def amount=(n)
    @
amount n
    refresh
  end
  
#--------------------------------------------------------------------------
  
def visible=(n)
    
super
    
@base_sprite.visible n
    refresh
  end
  
#--------------------------------------------------------------------------
  
def atb_visible=(n)
    @
atb_visible n
    refresh
  end
  
#--------------------------------------------------------------------------
  
def refresh
    
@base_sprite.opacity self.opacity = @atb_visible if @line_height == 5
    
@base_sprite.opacity self.opacity if @line_height == 3
    
@base_sprite.=  self.1
    self
.opacity = @base_sprite.opacity if !Meters and @line_height == 5
    self
.src_rect.set(0, @line * @height, @width * @amount 100, @height)
  
end
  
#--------------------------------------------------------------------------
  
def x=(n)
    
super
    
@base_sprite.n
  end
  
#--------------------------------------------------------------------------
  
def y=(n)
    
super
    
@base_sprite.n
  end
  
#--------------------------------------------------------------------------
  
def dispose
    
@base_sprite.dispose
    super
  end
end 
Reply }
#6
Another attempt with scripts in this order :
- Tanketai Sideview Battle Script
- Raziel's Battle Report script
- the following fix :
Code:
#==============================================================================
# ** Scene_Battle
#==============================================================================

class Scene_Battle
  #--------------------------------------------------------------------------
  # * Frame Update (after battle phase)
  #--------------------------------------------------------------------------
  def update_phase5
    remove_bars
    if @phase5_wait_count > 0
      @phase5_wait_count -= 1
      if @phase5_wait_count == 0
        $game_temp.battle_main_phase = false        
      end
      return
    end
    if !@lvup_window.nil? then battle_end(0) end
  end
end
- Add-On: Atoa's Active Time Battle
- Main

Didn't crash...
Some scripts :
Working on :
Reply }
#7
I know where this left off. Thanks to the hack from Wednesday night, we're missing Flare Knight's response:

Quote:Thank you so much! It works now. :)

Hehe...
Reply }


Possibly Related Threads…
Thread Author Replies Views Last Post
   Script compatibility help Lord Vectra 3 3,519 07-25-2021, 11:42 PM
Last Post: DerVVulfman
   Adding face script on Cogwheel's RTAB Battle Status rekkatsu 15 12,739 08-25-2020, 03:09 AM
Last Post: DerVVulfman
Question  MGC ISO Engine + Extra Movement Frames compatibility Morrigan Aensland 1 5,356 10-26-2013, 12:03 PM
Last Post: evindom
   Cogwheels RTAB help sherper1 15 14,605 01-29-2010, 04:32 PM
Last Post: DerVVulfman
   Issue with RTAB and battle event systems... samsonite789 4 6,795 11-08-2009, 07:21 AM
Last Post: Jaberwocky



Users browsing this thread: