ACBS - Atoa Custom Battle System 2.0 Final - Victor Sant - 07-04-2010
@Rusty
Well i was going to state this once i post the update.
When the update is finnished, i will be taking request, but it will have some conditions.
For something "general" i would do it for free, but it would be added as an add-on and everyone would use.
But for something exclusive, or not so funciotinal, it would be necessary an fee ($$ or 'talent swap', mainly spriting or audio works).
Once i relase the update, i will post everything about it.
ACBS - Atoa Custom Battle System 2.0 Final - Rusty - 07-04-2010
That's good news Atoa, okay then, i will wait until you release the update.
RE: ACBS - Atoa Custom Battle System 2.0 Final - Victor Sant - 02-20-2011
Code:
# V3.2 | 19 - 02 - 2011
# • Bug Fixes.
# • Removed the setting for Auto States from the Add | Enemy Advanced Status,
# these settings are now on an separated add-on.
# • New basic settings:
# - Make enemies use another actions if the selected one isn't available,
# avoid it's losing the turn. (Enemy_Dont_Skip_Action)
# - Hide SP value for skills that cost 0 SP. (Hide_Zero_SP)
# - Random move for damage pop (Randon_Move)
# - Movimento aleatório para exibição de dano (Random_Move)
# - Set Base critical rate (Base_Critical_Rate)
# - Set Base critical damage rate (Base_Critical_Damage)
# - Pose for Evade when in Danger (Danger_Evade_Pose)
# - Pose for Critical Physical Skill (Critical_Skill_Pose)
# - Allows battler to act even if it's another battler target(Allow_Enemy_Target)
# - Allows battler to act even if it's targets are active (Allow_Active_Target)
# • Changes on the Add | Custom Window Settings:
# - Hide_Zero_SP removed and added to the basic settings
# • Changes on Add | Skill Scan:
# - Scan_Window_Position, Scan_Window_Dimension, Scan_Border_Opacity,
# Scan_Back_Opacity removed and replaced by Scan_Window_Settings.
# • New Advanced Settings:
# - Ignore move settings of the weapon for physical skills ("IGNOREWEAPONMOVE")
# - Add weapon element for skill damage. ("WEAPONELEMENT")
# - Add weapon added effects for skill damage. ("WEAPONSTATES")
# - Add weapon damage variance for skill damage. ("WEAPONVARIANCE")
# - Battler moves intantly to the target spot ("TELEPORTTOTARGET")
# - Update movement during combos ("MOVEINCOMBO")
# - Clear target battler list between hits ("CLEARRANDOM")
# - Action don't show any animation ("NOANIMATION")
# - Show animations in actions with multiple hits ("HITSANIMATION")
# - Shows different animations based on the target or battler direction
# ("ANIMDIRECTIONCASTER/**", "ANIMDIRECTIONTARGET/**", "ANIMDIRECTIONPOSITION/**")
# - Centralize screen animations on the targets ("ANIMCENTERTARGET")
# - Invert animations based on the target or battler direction
# ("ANIMMIRRORTARGET/**", "ANIMMIRRORCASTER/**")
# - New critical settings for skills ("CRITICAL/**", "WEAPONCRITICAL/**" ,
# "CRITICALDAMAGE/**", "CRITICALWEAPONDAMAGE/**")
#
# • Scripts Updated:
# - ACBS | Config 1 - Basic
# - ACBS | Config 2 - Advanced
# - ACBS | Object
# - ACBS | RPG::
# - ACBS | RPG::Sprite
# - ACBS | Sprite Damage
# - ACBS | Sprite Battler
# - ACBS | Spriteset Battle
# - ACBS | Game Battler
# - ACBS | Game Actor
# - ACBS | Game Enemy
# - ACBS | Game Party
# - ACBS | Arrow Class
# - ACBS | Scene Battle 1
# - ACBS | Scene Battle 2
# - ACBS | Scene Battle 3
# - ACBS | Scene Battle 4
#
# • New Add-Ons
# - Add | Counter Attack
# - Add | Custom Damage
# - Add | States Graphic
# - Add | Enemy Auto States
#
# • New Utility/Patches
# - Utility | FFVIII Draw
#
# • Add-Ons Updated:
# - Add | Atoa CTB
# - Add | Atoa ATB
# - Add | Status Limit
# - Add | Equipment Multi Slots
# - Add | New Status
# - Add | Two Hands
# - Add | Advanced Weapons
# - Add | New Resistenca System
# - Add | Equipment with Skills
# - Add | Enemy Advanced Status
# - Add | Individual Battle Commands
# - Add | Enemy Name Window
# - Add | Automatic Actions
# - Add | Skill Drain
# - Add | Skill Charge
# - Add | Skill Blitz
# - Add | Skill Scan
# - Add | Skill Combination
# - Add | Battle Advantages
# - Add | Atoa Bestiary
# - Add | Equipment Sprite
# - Add | Battle Camera
# - Add | Legaia Combo
# - Add | Combo Display
# - Add | Damage Limit
#
# • Patchs/Utilitátios Updated:
# - Ultility | Victory Window FF7
# - Patch | Megalukes Interactive Rotational Arrow
English version updated to Version 3.2
Please if anyone find a bug, provide detailed information about it so i can fix.
One: Is there a way to change the CTB list into pictures? And a way to change it so that the pictures for monster show certain pictures based on a 'type' of monster.
Think like this;
Phoenix > Bird > Picture: Bird
Zombie > Undead > Picture: Undead
Boss > Boss > Picture: Boss
etc....
You can make it so there is a tag in the enemies name or something.
Two: Is there a way to make this script work with the CTB?
Content Hidden
Quote:#==============================================================================
# ** 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
#--------------------------------------------------------------------------
# * Public Instance Variables
#--------------------------------------------------------------------------
attr_reader :total_exp
attr_accessor :exp_list
#--------------------------------------------------------------------------
# * Setup
# actor_id : actor ID
#--------------------------------------------------------------------------
alias dargor_total_exp_setup setup
alias dargor_make_exp_list make_exp_list
def setup(actor_id)
@exp_list = @exp_list = Array.new(101)
@total_exp = 0
dargor_total_exp_setup(actor_id)
end
#--------------------------------------------------------------------------
# * Calculate EXP
#--------------------------------------------------------------------------
def make_exp_list
if FileTest.exist?("Data/Exp.rxdata")
$data_exp = load_data("Data/Exp.rxdata")
if $data_exp.actors.include?(@actor_id)
if $data_exp.list[@actor_id].nil?
dargor_make_exp_list
else
@exp_list = $data_exp.list[@actor_id]
end
else
dargor_make_exp_list
end
else
dargor_make_exp_list
end
end
#--------------------------------------------------------------------------
# * Change EXP
# exp : new EXP
#--------------------------------------------------------------------------
def exp=(exp)
@exp = [[exp, 9999999].min, 0].max
if not $data_exp.nil? and $data_exp.actors.include?(@actor_id)
@total_exp = @exp
# Level up
while @total_exp >= @exp_list[@level+1] and @exp_list[@level+1] > 0
@exp = @exp % @exp_list[@level+1]
@level += 1
# Learn skill
for j in $data_classes[@class_id].learnings
if j.level == @level
learn_skill(j.skill_id)
end
end
end
# Level down
else
# Level up
while @exp >= @exp_list[@level+1] and @exp_list[@level+1] > 0
@level += 1
# Learn skill
for j in $data_classes[@class_id].learnings
if j.level == @level
learn_skill(j.skill_id)
end
end
end
# Level down
end
# Correction if exceeding current max HP and max SP
@hp = [@hp, self.maxhp].min
@sp = [@sp, self.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] > 0 ? @exp_list[@level+1] - @exp_list[@level] : 0
end
end
#==============================================================================
# ** Window_LevelUP
#==============================================================================
class Window_LevelUp < Window_Base
#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------
def initialize(actor, pos)
#change this to true to show the actor's face
@face = false
@actor = actor
y = (pos * 120)
super(280, y, 360, 120)
self.contents = Bitmap.new(width - 32, height - 32)
self.back_opacity = 255
if $d_dum == false
refresh
end
end
#--------------------------------------------------------------------------
# * Refresh
#--------------------------------------------------------------------------
def refresh
self.contents.clear
self.contents.font.size = 18
self.contents.font.name = $fontface
if @face == true
draw_actor_face(@actor, 4, 0)
else
draw_actor_graphic(@actor, 50, 80)
end
draw_actor_name(@actor, 111, 0)
draw_actor_level(@actor, 186, 0)
show_next_exp = @actor.level == 99 ? "---" : "#{@actor.next_exp}"
min_bar = @actor.level == 99 ? 1 : @actor.now_exp
max_bar = @actor.level == 99 ? 1 : @actor.next_exp
draw_slant_bar(115, 80, min_bar, max_bar, 190, 6, bar_color = Color.new(0, 100, 0, 255), end_color = Color.new(0, 255, 0, 255))
self.contents.draw_text(115, 24, 300, 32, "Exp: #{@actor.now_exp}")
self.contents.draw_text(115, 48, 300, 32, "Level Up: #{show_next_exp}")
end
#--------------------------------------------------------------------------
# * Level UP
#--------------------------------------------------------------------------
def level_up
self.contents.font.color = system_color
self.contents.draw_text(230, 48, 80, 32, "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(186, 24, 80, 32, "Learned:")
self.contents.font.color = system_color
self.contents.draw_text(261, 24, 90, 32, skill)
end
end
end
#==============================================================================
# ** Window_Exp
#==============================================================================
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.id, 1)
when RPG::Weapon
$game_party.gain_weapon(item.id, 1)
when RPG::Armor
$game_party.gain_armor(item.id, 1)
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(exp, gold, treasures)
$d_dum = false
d_extra = 0
i = 0
for actor in $game_party.actors
# Fill up the Lv up windows
@lvup_window = Window_LevelUp.new($game_party.actors[i], i)
i += 1
end
# Make Dummies
if @show_dummies == true
$d_dum = true
for m in i..3
@lvup_window[m] = Window_LevelUp.new(m, m)
end
end
@exp_window = Window_EXP.new(exp)
@m_i_window = Window_Money_Items.new(gold, treasures)
@press_enter = nil
gainedexp = exp
@level_up = [0, 0, 0, 0]
@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", 100, 300)
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", 70, 150)
actor.recover_all
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", 70, 150)
$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(filename, hue = 0)
self.load_bitmap("Graphics/Faces/", filename, hue)
end
end
#--------------------------------------------------------------------------
# * Window_Base
#--------------------------------------------------------------------------
class Window_Base < Window
#--------------------------------------------------------------------------
# * Draw Actor Face
#--------------------------------------------------------------------------
def draw_actor_face(actor, x, y)
bitmap = RPG::Cache.face(actor.character_name, actor.character_hue)
self.contents.blt(x, y, bitmap, Rect.new(0,0,bitmap.width, bitmap.height))
end
#--------------------------------------------------------------------------
# * Draw Slant Bar(by SephirothSpawn)
#--------------------------------------------------------------------------
def draw_slant_bar(x, y, min, max, width = 152, height = 6,
bar_color = Color.new(150, 0, 0, 255), end_color = Color.new(255, 255, 60, 255))
# Draw Border
for i in 0..height
self.contents.fill_rect(x + i, y + height - i, width + 1, 1, Color.new(50, 50, 50, 255))
end
# Draw Background
for i in 1..(height - 1)
r = 100 * (height - i) / height + 0 * i / height
g = 100 * (height - i) / height + 0 * i / height
b = 100 * (height - i) / height + 0 * i / height
a = 255 * (height - i) / height + 255 * i / height
self.contents.fill_rect(x + i, y + height - i, width, 1, Color.new(r, b, g, a))
end
# Draws Bar
for i in 1..( (min / max.to_f) * width - 1)
for j in 1..(height - 1)
r = bar_color.red * (width - i) / width + end_color.red * i / width
g = bar_color.green * (width - i) / width + end_color.green * i / width
b = bar_color.blue * (width - i) / width + end_color.blue * i / width
a = bar_color.alpha * (width - i) / width + end_color.alpha * i / width
self.contents.fill_rect(x + i + j, y + height - j, 1, 1, Color.new(r, g, b, a))
end
end
end
end[/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i]
When the battle is over the CTB/ATB list/Bar is still on the screen at the end... over the Battle Status. Just so you know I have editted this script to work with my EXP modification script, so it might not work as is on a new project.
#==============================================================================
# ** RPG::Exp
#------------------------------------------------------------------------------
# This class handles EXP list for all actors.
#==============================================================================
module RPG
class Exp
#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------
def initialize
@list = [] # Exp list
@actors = [1,2,7,8] # Actors affected by this EXP system
end
#--------------------------------------------------------------------------
# * Public Instance Variables
#--------------------------------------------------------------------------
attr_accessor :list
attr_accessor :actors
end
end
#==============================================================================
# ** Game_Actor
#------------------------------------------------------------------------------
# This class handles the actor. It's used within the Game_Actors class
# ($game_actors) and refers to the Game_Party class ($game_party).
#==============================================================================
=begin
class Game_Actor < Game_Battler
#--------------------------------------------------------------------------
# * Public Instance Variables
#--------------------------------------------------------------------------
attr_reader :total_exp
attr_accessor :exp_list
#--------------------------------------------------------------------------
# * Setup
# actor_id : actor ID
#--------------------------------------------------------------------------
alias dargor_total_exp_setup setup
alias dargor_make_exp_list make_exp_list
def setup(actor_id)
@exp_list = @exp_list = Array.new(101)
@total_exp = 0
dargor_total_exp_setup(actor_id)
end
#--------------------------------------------------------------------------
# * Calculate EXP
#--------------------------------------------------------------------------
def make_exp_list
if FileTest.exist?("Data/Exp.rxdata")
$data_exp = load_data("Data/Exp.rxdata")
if $data_exp.actors.include?(@actor_id)
if $data_exp.list[@actor_id].nil?
dargor_make_exp_list
else
@exp_list = $data_exp.list[@actor_id]
end
else
dargor_make_exp_list
end
else
dargor_make_exp_list
end
end
#--------------------------------------------------------------------------
# * Change EXP
# exp : new EXP
#--------------------------------------------------------------------------
def exp=(exp)
@exp = [[exp, 9999999].min, 0].max
if not $data_exp.nil? and $data_exp.actors.include?(@actor_id)
@total_exp = @exp
# Level up
while @total_exp >= @exp_list[@level+1] and @exp_list[@level+1] > 0
@exp = @exp % @exp_list[@level+1]
@level += 1
# Learn skill
for j in $data_classes[@class_id].learnings
if j.level == @level
learn_skill(j.skill_id)
end
end
end
# Level down
else
# Level up
while @exp >= @exp_list[@level+1] and @exp_list[@level+1] > 0
@level += 1
# Learn skill
for j in $data_classes[@class_id].learnings
if j.level == @level
learn_skill(j.skill_id)
end
end
end
# Level down
end
# Correction if exceeding current max HP and max SP
@hp = [@hp, self.maxhp].min
@sp = [@sp, self.maxsp].min
end
=end
#==============================================================================
# ** Window_ExpEditor
#------------------------------------------------------------------------------
# This window displays EXP needed for a specific level.
#==============================================================================
#==============================================================================
# ** Scene_ExpEditor
#------------------------------------------------------------------------------
# This class performs EXP Editor screen processing.
#==============================================================================
class Scene_ExpEditor
#--------------------------------------------------------------------------
# * Main Processing
#--------------------------------------------------------------------------
def main
# Initialize EXP object
if FileTest.exist?("Data/Exp.rxdata")
$data_exp = load_data("Data/Exp.rxdata")
else
$data_exp = RPG::Exp.new
end
# Make system object
$data_system = load_data("Data/System.rxdata")
$game_system = Game_System.new
# Make actor object
$data_actors = load_data("Data/Actors.rxdata")
$game_actors = Game_Actors.new
# Make classes and armors object
$data_classes = load_data("Data/Classes.rxdata")
$data_armors = load_data("Data/Armors.rxdata")
# Make title graphic
@sprite = Sprite.new
@sprite.bitmap = RPG::Cache.title($data_system.title_name)
# Make command window
commands = ['Initialize', 'Save', 'Quit']
@command_window = Window_Command.new(320, commands)
@command_window.active = false
@command_window.x = 320
@command_window.y = 64
@command_window.back_opacity = 160
# Make help window
@help_window = Window_Help.new
@help_window.back_opacity = 160
# Make actor window
actors = []
for i in 1...$data_actors.size
case i
when 0...10
id = "00#{i}:"
when 10...99
id = "0#{i}:"
else
id = "#{i}:"
end
actors << id + $data_actors[i].name
end
@actor_window = Window_Command.new(160,actors)
@actor_window.y = 64
@actor_window.height = 12 * 32 + 32
@actor_window.back_opacity = 160
# Make level window
levels = []
for i in 1..99
levels << "Level #{i}"
end
@level_window = Window_Command.new(160,levels)
@level_window.active = false
@level_window.x = 160
@level_window.y = 64
@level_window.height = 12 * 32 + 32
@level_window.back_opacity = 160
# Make exp window
@exp_window = Window_InputNumber.new(7)
@exp_window.active = false
@exp_window.x = 348
@exp_window.y = 288
@exp_window.back_opacity = 160
# Make editor window
@editor_window = Window_ExpEditor.new
@editor_window.y = 192
@editor_window.back_opacity = 160
# Execute transition
Graphics.transition
# Main loop
loop do
# Update game screen
Graphics.update
# Update input information
Input.update
# Frame update
update
# Abort loop if screen is changed
if $scene != self
break
end
end
# Prepare for transition
Graphics.freeze
# Dispose of sprites
@sprite.bitmap.dispose
@sprite.dispose
# Dispose of windows
@command_window.dispose
@actor_window.dispose
@level_window.dispose
@exp_window.dispose
@editor_window.dispose
@help_window.dispose
end
#--------------------------------------------------------------------------
# * Frame Update
#--------------------------------------------------------------------------
def update
@command_window.update
@actor_window.update
@level_window.update
@help_window.update
if @command_window.active
update_command
return
end
if @actor_window.active
update_actor
return
end
if @level_window.active
update_level
return
end
if @exp_window.active
update_exp
return
end
end
#--------------------------------------------------------------------------
# * Load actors data
#--------------------------------------------------------------------------
def load_actors_data
$data_actors = load_data("Data/Actors.rxdata")
$game_actors = Game_Actors.new
level = @level_window.index + 1
actor = @actor_window.index + 1
@editor_window.set(actor, level)
exp = $game_actors[actor].exp_list[level]
@exp_window.number = exp
@exp_window.refresh
end
#--------------------------------------------------------------------------
# * Frame Update (Command Window)
#--------------------------------------------------------------------------
def update_command
if Input.trigger?(Input::B)
@actor_window.active = true
@command_window.active = false
end
case @command_window.index
when 0
@help_window.set_text("Reset modifications")
when 1
@help_window.set_text("Save modifications")
when 2
@help_window.set_text("Quit the editor")
end
if Input.trigger?(Input::C)
case @command_window.index
when 0
load_actors_data
when 1
save_exp
Audio.se_play("Audio/SE/056-Right02", 80, 110)
when 2
$scene = nil
end
end
end
#--------------------------------------------------------------------------
# * Frame Update (Actor Window)
#--------------------------------------------------------------------------
def update_actor
level = @level_window.index + 1
actor_id = @actor_window.index + 1
actor = $game_actors[actor_id]
@help_window.set_text("Change #{actor.name}'s EXP list.")
if Input.trigger?(Input::B)
@actor_window.active = false
@command_window.active = true
elsif Input.trigger?(Input::C)
@actor_window.active = false
@level_window.active = true
end
@editor_window.set(actor_id, level)
end
#--------------------------------------------------------------------------
# * Frame Update (Level Window)
#--------------------------------------------------------------------------
def update_level
level = @level_window.index + 1
actor_id = @actor_window.index + 1
actor = $game_actors[actor_id]
@help_window.set_text("Change #{actor.name}'s EXP list for level #{level}.")
if Input.trigger?(Input::B)
@level_window.active = false
@actor_window.active = true
elsif Input.trigger?(Input::C)
@level_window.active = false
@exp_window.active = true
end
actor = @actor_window.index + 1
@editor_window.set(actor_id, level)
exp = $game_actors[actor].exp_list[level]
@exp_window.number = exp
end
#--------------------------------------------------------------------------
# * Frame Update (Exp Window)
#--------------------------------------------------------------------------
def update_exp
level = @level_window.index + 1
actor_id = @actor_window.index + 1
actor = $game_actors[actor_id]
@help_window.set_text("Choose the amount of EXP needed for #{actor.name} to reach level #{level}")
@exp_window.update
if Input.trigger?(Input::B)
@exp_window.active = false
@level_window.active = true
elsif Input.trigger?(Input::C)
level = @level_window.index + 1
actor = @actor_window.index + 1
$game_actors[actor].exp_list[level] = @exp_window.number
@exp_window.active = false
@level_window.active = true
end
end
#--------------------------------------------------------------------------
# * Save EXP object
#--------------------------------------------------------------------------
def save_exp
for i in 1...$data_actors.size
if $data_exp.actors.include?(i)
for j in 1..99
$data_exp.list[i] = $game_actors[i].exp_list
end
end
end
save_data($data_exp, "Data/Exp.rxdata")
end
end[/i][/i]
[i][i]
This the EXP script if needed.... Should work just fine as is...
Thanks in advance
Firestalker
[/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i]
RE: ACBS - Atoa Custom Battle System 3.2 - Victor Sant - 04-02-2011
@firestalker5
Everything you need to know about the CTB display:
Code:
# Order show style
Ctb_Order_Style = 0
# 0 = Vertical Window with the battlers names, if an character start to cast
# an skill, the skill name will be shown in the window too
# 1 = Vertical Window with images that represents each battler
# 2 = Horizontal Window with images that represents each battler
# 3 = No exhibition
# Name of the image file shown if an battler do not have an image
# when 'Ctb_Order_Style' equal 1 or 2.
# The dimensions of the window are adjusted according to the dimension of
# this image. It must be on the 'Faces' folder
Defatult_Ctb_Img = 'default_ctb_turn'
# File name extensions for the order images
Ctb_Img_Ext = '_ctb_turn'
# If 'Ctb_Order_Style' equal 1 or 2, you will need the images for the battlers
# they must be placed on the Faces folder and must have the name equal the
# battler graphis file name + Ctb_Img_Ext.
# E.g.: if the battler file name is '001-Fighter01' and Ctb_Img_Ext = '_ctb_turn'
# the order image must be named '001-Fighter01_ctb_turn'
#
# Optitional Indicators:
# There's some optional graphics that can be added to show the battler condition.
# These images are shown *above* the battler turn indicator
#
# There's 4 default graphics, plus the ones for the status effects.
# The default files are:
# 'Active' + Ctb_Img_Ext = graphic that shows the active battler.
# 'Cast' + Ctb_Img_Ext = graphic that shows battlers casting skills.
# 'Conf' + Ctb_Img_Ext = graphic that shows "confused" battlers. (with restritions 2 and 3)
# 'Stop' + Ctb_Img_Ext = graphic that shows "paralized" battlers (with restriction 4)
#
# You can also make images for the status effects, the file name must be
# 'State Name' + Ctb_Img_Ext.
# Ex.: if the state name is 'Venom' and Ctb_Img_Ext = '_ctb_turn'
# the file name must be 'Venom_ctb_turn'
#
# Remember that these images are optional, so theres no problem in not using them.
# Shows battler indicator more than one on the action list if they're
# going to act more than one time on the set interval?
Ctb_Show_Duplicates = true
# Tipe of "slide" of the turn images
Ctb_Graphic_Slide = 0
# 0 = no slide
# 1 = enemies and actors slide to the same sides
# 2 = enemies and actors slide to different sides
# Number of Names/Images shown on the order window
Show_Ctb_Turn = 10
You can set images for individual enemies, so you can add the image you want to any enemy.
Also the ACBS already have it's own add-on to display the EXP exactly like this (Ultility | Victory Window FF7), why are you using this script instead of the add-on?
(04-02-2011, 04:37 AM)Atoa Wrote: @firestalker5
Everything you need to know about the CTB display:
Code:
# Order show style
Ctb_Order_Style = 0
# 0 = Vertical Window with the battlers names, if an character start to cast
# an skill, the skill name will be shown in the window too
# 1 = Vertical Window with images that represents each battler
# 2 = Horizontal Window with images that represents each battler
# 3 = No exhibition
# Name of the image file shown if an battler do not have an image
# when 'Ctb_Order_Style' equal 1 or 2.
# The dimensions of the window are adjusted according to the dimension of
# this image. It must be on the 'Faces' folder
Defatult_Ctb_Img = 'default_ctb_turn'
# File name extensions for the order images
Ctb_Img_Ext = '_ctb_turn'
# If 'Ctb_Order_Style' equal 1 or 2, you will need the images for the battlers
# they must be placed on the Faces folder and must have the name equal the
# battler graphis file name + Ctb_Img_Ext.
# E.g.: if the battler file name is '001-Fighter01' and Ctb_Img_Ext = '_ctb_turn'
# the order image must be named '001-Fighter01_ctb_turn'
#
# Optitional Indicators:
# There's some optional graphics that can be added to show the battler condition.
# These images are shown *above* the battler turn indicator
#
# There's 4 default graphics, plus the ones for the status effects.
# The default files are:
# 'Active' + Ctb_Img_Ext = graphic that shows the active battler.
# 'Cast' + Ctb_Img_Ext = graphic that shows battlers casting skills.
# 'Conf' + Ctb_Img_Ext = graphic that shows "confused" battlers. (with restritions 2 and 3)
# 'Stop' + Ctb_Img_Ext = graphic that shows "paralized" battlers (with restriction 4)
#
# You can also make images for the status effects, the file name must be
# 'State Name' + Ctb_Img_Ext.
# Ex.: if the state name is 'Venom' and Ctb_Img_Ext = '_ctb_turn'
# the file name must be 'Venom_ctb_turn'
#
# Remember that these images are optional, so theres no problem in not using them.
# Shows battler indicator more than one on the action list if they're
# going to act more than one time on the set interval?
Ctb_Show_Duplicates = true
# Tipe of "slide" of the turn images
Ctb_Graphic_Slide = 0
# 0 = no slide
# 1 = enemies and actors slide to the same sides
# 2 = enemies and actors slide to different sides
# Number of Names/Images shown on the order window
Show_Ctb_Turn = 10
You can set images for individual enemies, so you can add the image you want to any enemy.
Also the ACBS already have it's own add-on to display the EXP exactly like this (Ultility | Victory Window FF7), why are you using this script instead of the add-on?
Didn't notice that add-on.... it was buried at the bottom. Using it now.
But there is one thing I liked about my EXP Script... I was able to set my own experience points per level. I could make it 10 point to level 2 or 100. I can't do that now. The EXP editor conflicts with your Battle window and Battle result doesn't show the changed exp [the menu either for that matter].
As for the Images thing... yes, I know you can use images for the CTB list. What I want to do is make a GENERIC image for all the enemies of specific type. Like a bird [whether a flying Eagle or waddling Penguin] will always be a bird in the list.
Let's go like this:
You fight an Eagle and Zombie. The list says Bird and Undead.
Next battle you fight a Penguin and two Skeletons. The list says Bird and has two Undead.
Third battle has you fighting an Eagle, Penguin, and the Zombie is the Boss. The list says Boss, Two birds.
This way I can make one generic graphic for all the different types of enemies and I don't have to make numerous images for all the enemy battlers. Not only will it save time, but also space, ultimately file size. Plus I can keep track of the images better this way.
I hope that explains what I'd like to do better.
RE: ACBS - Atoa Custom Battle System 3.2 - Victor Sant - 04-03-2011
Code:
def now_exp
return @exp - @exp_list[@level]
end
Search for something like this on the
Quote:You fight an Eagle and Zombie. The list says Bird and Undead.
Next battle you fight a Penguin and two Skeletons. The list says Bird and has two Undead.
Third battle has you fighting an Eagle, Penguin, and the Zombie is the Boss. The list says Boss, Two birds.
This way I can make one generic graphic for all the different types of enemies and I don't have to make numerous images for all the enemy battlers. Not only will it save time, but also space, ultimately file size. Plus I can keep track of the images better this way.
The main problem of doing something generic: it's hard to do something to attend everyone specific need.
My politic is simple: i won't do something new for something that's is already possible, and isn't hard to do (and for me hard is different from time consuming).
I understand that you want to save some space, but for me, it's more important do make things that isn't yet possible, than add an different way to do something that is already possible to do with a bit of effort. And also even if you use one image for each battler, it wouldn't be higher than 3MBs, since the images are small, you're not going to use 200x200 images for the turn order right? =P
I actually changed that part when I was trying to edit the script myself, but it didn't do what I was hoping it would. I actually just use my battle report and for some reason the problem of the CTB not disappearing fixed itself. Now when I use images as backgrounds the images don't disappear, but CTB one does... weird?
About the other thing... I just thought I'd try. It's not that I'm adverse to work I was just trying to make things easier. No big deal. But is there a way to make it so at least when the monster is a boss you can label him as such in CTB?
Something like a Zombie is named Boss in the CTB, but still named Zombie when you select him for attack... or something like that.
Maybe now I can suggest something... A difficulty system where the monsters grow with hero's? You set the min and max and the monster grows each level the hero gains until the hero reaches the max level the monster can have.
What do you say? Or is there something similar already there?
This is an annoying little error I get whenever I accidentally hit the Shift Key on my computer while in the middle of a battle?
This is the line: "@active_battler.ctb_update(@active_battler.current_cost)"
It's annoying since I accidentally hit that key once every few battles. I can only imagine what would happen if some else was playing and didn't save before they did this.
Any ideas?
OH YEAH!!! I fixed the problem I was having about the background images not disposing... I had to comment a few lines out of your scripts, but they dispose like their supposed to now.
Also, thanks to you're script and me looking through it I was able to add Image Backgrounds to other scripts that didn't have it before.
So I have to definitely thank you for that. Thank you.
I'm posting again since know one will know I posted if I just edit my last post and it'll go unnoticed...
I fixed the "Shift Button" bug, but it required removing a whole section of the CTB script. I didn't really see a point in the section anyway since it basically went back the last person that did an action... Not really applicable in CTB.
Also if you 'escape' when the CTB is set to show words not faces then you'll get an argument error.
-----------------------------
I have also been using some of the other scripts you have there and I have found at least on that seems to not work at all: Skill: Drain.
I followed the instructions, but using the skill does nothing but damage the enemy. Normal skill move... Also, I was wondering if you can get this to work so that enemies can use it also. I have a few strategies I would like to try... Basically when an enemy runs out of SP [or runs low] it'll use Drain to replenish their SP so they can continue the battle.
-------------------------------------------
If I find more bugs should I just post them or try to fix them myself? Mind you my script knowledge is lacking a lot and I usually just fumble through until it starts working. So the scripts might turn into something unrecognizable when I'm done.
-------------------------------------------
I'm editing my post since I'm sure people are getting tired of me posting replies.... Here goes: Another bug, but the is with the INdividual Battle Commands script. There is an option to put a background on the Commands, but what is it supposed to do? Whenever I put the background there it just stay in the corner and never moves. Is that what it's supposed to do? I thought it was supposed to act like the background of the window and follow the Command Window around, wherever it goes. It doesn't do that.
I managed to get a background on the name Window above the Command Window but for some reason the same technique doesn't work for the Command Window... It's a little frustrating and I think I'll sleep on it.
I see there are options for the Items Window and Skills Window as well, but I think I'll get the Command Window BG to work first and then see if I have to adjust those as well.
I also think I can use the same tech I used on the name window for the Help window... Completing the full picture battle screen. Yay me!