03-05-2008, 07:12 AM (This post was last modified: 05-17-2020, 03:46 AM by DerVVulfman.
Edit Reason: forgot to update the version number from last year
)
Introduction
This script adapts front-view battle systems (like the default battle system, or the RTAB system), and turns it into a side-view battle system. Battlers can bob and weave while waiting to attack, charge forward to attack, and strike a victory pose when they win.
Screenshots
Aluxes, Gloria and Ghost battlers courtesy of Green Raven. Artist for Felix battler is unknown.
Instructions
Please refer to the following manual (in .chm help format) now available for download. >Help File Manual< If you are having problems reading the help file (the AnimBat.chm), follow these steps...
1. Right-Click the AnimBat.chm
2. Select Properties
3. Click the Unblock button at the bottom of the Properties dialog (above the OK and Cancel buttons)
4. You should now be able to read the CHM file.
Pre-Rendered Configs
The demo and the scripts above show how to generate a system that uses multiple types of spritesheets and RTP battlers. Below are two configuration files you may wish to use in it's place. Minkoff Configuration ... the typical Minkoff system without any extra. Cybersam Configuration ... a configuration system for Cybersam's 7-pose system. Charset Configuration ... a configuration system to use Charactersets for battlers. Holder Configuration ... a 13-pose system designed by Holder. RM2K3 Styled Configuration ... based on RPGMaker 2003's style, but after formed into a single 1-row sheet. RMMV Styled Configuration ... based on RPGMaker MV's style, but after formed into a single 1-row sheet.
The Formation System
Removed from Animated Battlers is the formation system. A new one (roughly similar in nature to Claihm's system) is available below if you want to make custom battle formations.
Formation System
Code:
#==============================================================================
# ** AnimBat Add-On:
# Animated Battler Formations
#------------------------------------------------------------------------------
# by DerVVulfman
# version 1.0
# 11-22-2018 (MM-DD-YYYY)
# RGSS / RPGMaker XP
#==============================================================================
#
# INTRODUCTION:
#
# It has been a long time coming in that I wanted to replace the built-in
# formation system I hardwired into "Minkoff's Animated Battlers - Enhanced",
# and finally that time has arrived. While the base system now has the origi-
# ginal single formation, it is by this system the end user can design the
# battle formations for the actor battlers. They will start out and remain
# lined up in the order the end user sets up.
#
# The system recognizes the 'Mirror Effect' system in Animated Battlers XP,
# and will adjust and reverse the battler positions accordingly. You need not
# worry about creating duplicate formation entries for both left and right
# sided formations.
#
#------------------------------------------------------------------------------
#
# CREATING THE FORMATIONS:
#
# This system allows you to create multiple formations. This is accomplished
# by the way you use the 'ABATXP_FORMATION' array. The syntax is as follows:
#
# ABATXP_FORMATION = { id => [ formation set ], id => [formation set],... }
#
# So... with that, you can make multiple sets of formations which you can
# switch to while the game is running..
#
# Now... each formation set holds the x and y position for each actor battler
# in combat. Not by their 'Actor ID' mind you, merely by party member order.
# So the first member in your party,regardless of their position in your actor
# database, will be first battler position defined in the formation set. The
# layout for each formation set is as follows:
#
# [ [Battler 1's X & Y], [Battler 2's X & Y],... ]
#
# Most people would set a formation set with allowances for 4 battlers. But if
# you wanted to use a large party script to increase the number of members in
# your battle party, you can add more than 4 battler arrays like so:
#
# ...ON = { 0 => [ [350,200], [395,235], [440,270], [485,305], [530,340] ],
# 1 => [ [530,200], [485,235], [440,275], [395,305], [350,340] ] }
#
#------------------------------------------------------------------------------
#
# SCRIPT CALL:
#
# There's only one script call you should be familiar with right now, and that
# is the script call that changes the formation you want to use in battle. By
# default, the system uses the formation set by ID #0. But you can change the
# formation being used with the following call:
#
#
# The call is simple: $game_system.abatxp_form_id = number
#
# Where the number is the ID number of your formation. That's it.
#
#
#------------------------------------------------------------------------------
#
# NOTE:
#
# While designed and intended for use with Animated Battlers VX, it can be
# used with only the Actor Battler Graphics script to change the basic for-
# mation of the heroes. With this, you can make a very simple sideview
# system... just not animated.
#
#------------------------------------------------------------------------------
#
# TERMS AND CONDITIONS:
#
# Free to use, even in commercial projects. Just note that I need some form
# of due credit... even a mere mention in some end titles.
#
#==============================================================================
module Formation
# --------------------------------------------------------------------------
POSITION = {} # Do Not Touch
# --------------------------------------------------------------------------
#==============================================================================
# ** Game_System
#------------------------------------------------------------------------------
# This class handles system-related data. Also manages vehicles and BGM, etc.
# The instance of this class is referenced by $game_system.
#==============================================================================
class Game_System
#--------------------------------------------------------------------------
# * Alias Listings
#--------------------------------------------------------------------------
alias formations_game_system_initialize initialize
#--------------------------------------------------------------------------
# * Public Instance Variables
#--------------------------------------------------------------------------
attr_accessor :abatxp_form_id # Formation ID
attr_accessor :abatxp_mirror # Mirror Effect (used by AnimBatVX)
#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------
def initialize
formations_game_system_initialize
@abatxp_form_id = 0 # Initial formation
end
end
#==============================================================================
# ** Game_Actor
#------------------------------------------------------------------------------
# This class handles actors. It's used within the Game_Actors class
# ($game_actors) and referenced by the Game_Party class ($game_party).
#==============================================================================
class Game_Actor < Game_Battler
#--------------------------------------------------------------------------
# * Alias Listings
#--------------------------------------------------------------------------
alias formations_game_actor_screen_x screen_x
alias formations_game_actor_screen_y screen_y
#--------------------------------------------------------------------------
# * Actor X Coordinate
#--------------------------------------------------------------------------
def screen_x
# Set a default retieve value
pos_x = nil
# Obtain which position is in use
position_id = $game_system.abatxp_form_id
# Assign retrieve value if the formation is properly configured
if Formation::POSITION.has_key?(position_id)
pos_x = Formation::POSITION[position_id][self.index][0]
end
# Exit with the original call if the retrieve value is still nil
return formations_game_actor_screen_x if pos_x.nil?
# Exit with the new retrieve value with accommodations for sideview
return ($game_system.sideview_mirror == true) ? (640-pos_x) : pos_x
end
#--------------------------------------------------------------------------
# * Actor Y Coordinate
#--------------------------------------------------------------------------
def screen_y
# Set a default retieve value
pos_y = nil
# Obtain which position is in use
position_id = $game_system.abatxp_form_id
# Assign retrieve value if the formation is properly configured
if Formation::POSITION.has_key?(position_id)
pos_y = Formation::POSITION[position_id][self.index][1]
end
# Exit with the original call if the retrieve value is still nil
return formations_game_actor_screen_y if pos_y.nil?
# Exit with the new retrieve value
return pos_y
end
end
#==============================================================================
# ** Game_Party
#------------------------------------------------------------------------------
# This class handles the party. It includes information on amount of gold
# and items. Refer to "$game_party" for the instance of this class.
#==============================================================================
class Game_Party
#--------------------------------------------------------------------------
# * Random Selection of Target Actor
# hp0 : limited to actors with 0 HP
#--------------------------------------------------------------------------
def random_target_actor(hp0 = false)
# Initialize roulette
roulette = []
# Loop
for actor in @actors
# If it fits the conditions
if (not hp0 and actor.exist?) or (hp0 and actor.hp0?)
# Get actor class [position]
position = formations_function_actor_target_position(actor)
# Front guard: n = 4; Mid guard: n = 3; Rear guard: n = 2
n = 4 - position
# Add actor to roulette n times
n.times do
roulette.push(actor)
end
end
end
# Exit nil if roulette size is 0
return nil if roulette.size == 0
# Spin the roulette, choose an actor
return roulette[rand(roulette.size)]
end
#--------------------------------------------------------------------------
# * Random Selection of Target Actor
# actor : Actor
#--------------------------------------------------------------------------
def formations_function_actor_target_position(actor)
# Get actor position in party
idx = @actors.index(actor)
# Obtain which position is in use
position_id = $game_system.abatxp_form_id
# Obtain original position based on class
position = $data_classes[actor.class_id].position
# Reset position if the formation is properly configured
if Formation::POSITION.has_key?(position_id)
position = Formation::POSITION[position_id][idx][2]
end
# Return with position
return position
end
end
The Window Depth Adjuster
The battlers in this system tend to draw themselves over the battlesystem's command windows. This patch can fix this for you.
Window Depth Adjuster
Code:
#==============================================================================
# ** AnimBat Add-On:
# Window Depth Adjuster
#------------------------------------------------------------------------------
# by DerVVulfman
# version 1.0
# 11-22-2018 (MM-DD-YYYY)
# RGSS / RPGMaker XP
#==============================================================================
#
# INTRODUCTION:
#
# This is a simple script addition that lets the game developer (you) set the
# depth perspective of the battlesystem's windows. Under normal circumstances,
# the Item, Skill, and other windows appear behind the Animated Battlers. This
# add-on patch lets you adjust the depth of the windows as you see fit.
#
# It's pretty simple. If you're creating your own battlesystem with this as
# a basis, you can use these simple calls on your own. ^_^
#
#
#------------------------------------------------------------------------------
#
# THANKS:
#
# To Boomy of House Slashers for pointing out the Skill Window overlap.
#
#
#------------------------------------------------------------------------------
#
# TERMS AND CONDITIONS:
#
# Free to use, even in commercial projects. Just note that I need some form
# of due credit for both Boomy and myself... even a mere mention in some end
# titles.
#
#==============================================================================
module AnimDepth
#==========================================================================
# **** C O N F I G U R A T I O N S E C T I O N **** #
#==========================================================================
#
# * Set the window depth here. Higher numbers are closer to the player
PARTY = 1000 # Depth of the Party Window (Fight/Escape)
COMMAND = 1000 # Depth of the Actor Command Window
HELP = 1000 # Depth of the Help Window
SKILL = 1000 # Depth of the Skill Window
ITEM = 1000 # Depth of the Item Window
#==========================================================================
# **** C O N F I G U R A T I O N E N D **** #
#==========================================================================
end
#==============================================================================
# ** Scene_Battle
#------------------------------------------------------------------------------
# This class performs battle screen processing.
#==============================================================================
class Scene_Battle
#--------------------------------------------------------------------------
# * Alias Listings
#--------------------------------------------------------------------------
alias animbat_depth_start_phase2 start_phase2
alias animbat_depth_start_phase3 start_phase3
alias animbat_depth_start_skill_select start_skill_select
alias animbat_depth_start_item_select start_item_select
#--------------------------------------------------------------------------
# * Start Party Command Phase
#--------------------------------------------------------------------------
def start_phase2
# Set Party and Help Window Depths
@party_command_window.z = AnimDepth::PARTY
@help_window.z = AnimDepth::HELP
# Perform the original call
animbat_depth_start_phase2
end
#--------------------------------------------------------------------------
# * Frame Update (main phase)
#--------------------------------------------------------------------------
def start_phase3
# Set Actor Command Window Depth
@actor_command_window.z = AnimDepth::COMMAND
# Perform the original call
animbat_depth_start_phase3
end
#--------------------------------------------------------------------------
# * Start Skill Selection
#--------------------------------------------------------------------------
def start_skill_select
# Perform the original call
animbat_depth_start_skill_select
# Set Skill Window Depth
@skill_window.z = AnimDepth::SKILL
end
#--------------------------------------------------------------------------
# * Start Item Selection
#--------------------------------------------------------------------------
def start_item_select
# Perform the original call
animbat_depth_start_item_select
# Set Item Window Depth
@item_window.z = AnimDepth::ITEM
end
end
Awards and Badges
A few awards of note for Animated Battlers
Honorary Awards for Spritesheet Artists
Honorary Awards for Animated Battler Scripters
Compatibility
This side-view battler script was designed to work with both, the default battle system AND the RTAB system. It was also instrumental in making Charlie Fleed's CTB. And it apparently works with a whole host of others ranging from ParaDog's and the XRXS systems and those by Trickster. But I cannot account for it working with any other systems.
Known Issues
Of known issues, Eshkova discovered that no actor and enemy may use the same battler at the same time. One can have two different monsters use the same spritesheet, or two actors may use the same spritesheet. But if an actor and enemy use the same spritesheet, only the enemy will be visible on the battle screen.
Credits and Thanks
Lots o' credits
Minkoff for the original 2005 base system.
ccoa who designed the spritestrips system as opposed to the spritesheet concept
Twin Matrix who requested a Low Percentages option and coded the basis for status effect poses
Min-Chan and Caldaron who requested fixes to Hero and enemy z-Depth
Jirby Taylor -or- Taylor who discovered an F12 stack error with the collapse code
SephirrothSpawn who instructed me on code to eliminate F12 Stack errors
Mimi-Chan who detected a timing fault with battle animations, especially full screen battle animations, and saw a variable frames-per-pose bug
Trickster for compatability code for his Gradient Bars v 3.4
Fomar0153 who supplied code to halt AT bar growth for certain battle actions
daigotsu who noticed an 'None/All' targeting error
MasterMine5823 who requested a fix on saved data issues
Alistor who notice an issue with viewports and certain gradient bar code
Angel_FX who noticed that dead hero battlers were still visible in new battles
Yin who requested the use of ccoa spritesheets
Jaberwocky who supplied dodge pose mechanices
Alistor who requested a variation of the center-pose system whereby attackers were still vertically lined up with their targets
hanetzer who requested that both individual poses and red-out collapse deaths to be available at the same time
redtri17 who noted an error in individual weapon pose
Eshkova who discovered no enemy and actor may both use the same spritesheet simultaneously
--or-
by DerVVulfman
(M. B. Randolph)
Based on the original system by
Minkoff
Spritestrip Concepts by
ccoa / S. Harlow
Additional Pptions and Programming by
Twin Matrix * SephirothSpawn * Trickster * Fomar0153 * Jaberwocky
Additional Betatesting and Reports by
Jirby Taylor / Taylor * Mimi-Chan * daigotsu * Alistor * Angel_FX * redtri17
Terms and Conditions Required for distribution:
This system is available royalty free. I make no claim as to the usage of this system, even for commercial use. Edits to the system may be permitted as to suit your needs, but I cannot guarantee these edits effectiveness nor can I guarantee support for these same edits.
When using the system, the name of the animation system must be prominent along with my name and name of the scripter who created the basis of this work (that's Minkoff... if you didn't know :D ). If your project includes a end-of-game 'Credit Roll', I would also require the listing of all parties in the Credits and Thanks section (above) as contributers and betatesters of this system. Given their assistance, I wouldn't ask no less.
Author's Notes
Um... nope... none that I can think of. And I thought there wasn't much left to add to this years ago...
First off, I found an corrected an oversight in Random Melee Attacks. An annoying little bug that used the wrong 'poses'.
I also repaired a glitch with the Actor/Enemy offset system. It was a little something that Twin Matrix pointed out to me.
I also tweaked the battler fade-in system. Works much better now. You can thank Twin Matrix for that one too.
Oh, I did some work at decreasing the size of the sprite system page. I made it more modular and managed to trim and cut a few things.
Long overdue, I added the ability for enemy battlers to have a winning 'loopable' victory pose. While normally, losing a battle takes you to a game over screen, I'm sure some scripter will extend some battlesystem so the enemies can cheer.
Oh, I finally solved the frozen target bug I've been trying to squash for months. For some time, when a target is about to be attacked, his or her animation freezes. That graphic bug sucked, but it's been fixed now.
And I fixed a combined RTP/Spritesheet fadeout color problem.
Oh, and for the record, with these changes... Animated Battlers VX and the XP version found here may now use the same configuration page. :)
;) Eventually, I'm gonna rewrite my manual for both systems.
The repair that squashed the 'Freezing Target' bug I had for several months (or a year?), created a very strange bug. The new bug was that the targets who died actually performed the DEAD pose before they performed the STRUCK pose. Weird.
I removed the long and drawn-out 'formations' system. Rather than using a system, I use an extra script where I can plot out how I want my battlers to stand. The forementioned 'Formation' patch is now available in the 1st page/post.
I also retooled the offset system which controls how battlers overlap one another when they attack. Now it takes the battler's width into consideration, not just some configuration values. I redid the offset configuration values, mind you. It's pretty much complete by now.
Hey, I found out that if you set MNK_RUSH_SPEED=4, or higher I guess, the "moving" phase starts to loop. There must be some "hidden" limit induced by the way you use it...
i'm having a problem setting up sprites in battle it still makes the sprite like a looping slide show like a tredmil of images of the sprite and isn't in the proper position. i've followed the manual you made but it still doesn't solve the problem. any advice
It's because you haven't set up the poses correctly. If you have an actor with a 6 pose charset in the script as an actor with 5 poses, then the script cuts the character in half and makes that error you're describing. Look in the Instruction Manuals, page 16 and that should explain everything. This is common mistake, don't fret.
Hey. I'm using this script and it's working very well, but this very odd error poped up. I'm also using Charlie's CTB and pretty much out of no where when people attack, it shows the Skill animation. I replaced all the default scripts and the ones I've used and it still shows up. I was wondering if you think this might be because of the Animated Battlers script. The bug poped up out of no where.
A slightly older version of Animated Battlers is already integrated into Charlie's CTB. And while the newer version of Animated Battlers can work with his CTB, only a few modifications are needed. That is still in the works.
But you didn't say 'what' the error is.
Please create a query in the SUPPORT forum as this is a joint Animated Battlers/Charlie CTB support problem. And be specific. The error... the line where the error occurs... what it looks like, reacts like. Etc.