Envision, Create, Share

Welcome to HBGames, a leading amateur game development forum and Discord server. All are welcome, and amongst our ranks you will find experts in their field from all aspects of video game design and development.

Animated Battle fault (charsets)

Hi everyone im one of the new guys in here and i have a little experience to create a basic game but it seems that i am stuck somewhere whil inserting a charset with this script (title). I have made a short vid (03:09 min)

http://www.youtube.com/watch?v=sUxcsyzTug4

Please watch my problem and tell me what you know about it.

Thanks for your coorperation RMXP.org
 
You'll need to tell us the script you're using or we can't help. Looks to me like Minkoff's Animated Battlers.

Well, I know what you've done wrong, but I don't know how to fix it since I had a look at the script and had a "Too long, i'm not reading that unless I have to" moment.

Tell us the exact name of the script you're using and it'll help us help you.
 
I posted all the files that are included with the script
This one is all commented so it may be not important:

Code:
#==============================================================================
# ** Animated Battlers - Enhanced   ver. 8.8                       (07-31-2007)
#
#------------------------------------------------------------------------------
#  * (0) Credits:  Includes features included & additional system notes
#------------------------------------------------------------------------------
#  Animated Battlers by Minkoff
#  Enhancements by DerVVulfman        
#  Low percentage and Status Poses 
#     Concept & Base coding by Twin Matrix
#  Hero & Enemy z.depth concept by Min-Chan and Caldaron ( totally redone :) )
#  Collapse stack-error found by JirbyTaylor(fixed) / Code by SephirothSpawn
#  Default 'Battle Animation' glitch found by Mimi Chan (Note, can't fully fix)
#  Compatability Fix for 'Gradient Bars v3.4+' by Trickster.
#  AT Battle Pause code supplied by Fomar0153
#  'None/All' Target error found by daigotsu. Solution found & fixed... mostly.
#  Configurables now saved in save file.  Feature requested by MasterMind5823.
#  Viewport error (related to Gradient Bar fix) detected by Alistor.  Fixed.
#  Long-running Full-Screen 'Battle Animation' glitch found by Mimi-Chan. Fixed.
#  Dead battlers found still on battlefield at combat start (found by Angel_FX).
#  
#============================================================================== 
#
#  INTRODUCTION:
#
#  This script is not a battlesystem but a graphic overlay system that can con-
#  vert a frontview 'Strategy'  battlesystem into a Sideview battlesystem.   It
#  has gone through a number of changes over the months that I have put my spin
#  on the system, originally coded by Minkoff himself.
#
#  As of now, this system works  with the default battlesystem, the RTAB system
#  by Cogwheel, ParaDog's ATB, XRXS's system,  and a number of systems designed
#  by Trickster.
#
#  Again,  this system  changes the  'graphic'  overlay system  and is meant to 
#  change the battlers  and battler's startup positions  for a sideview system.
#  It is not meant  to alter  anything else,  including combat values,  defense
#  levels, or any other graphics other than those related to the battlers them-
#  selves.
#
#============================================================================== 
#
#  REGARDING:
#  Skill and Item Scopes:
#  Until recently,  the revised system did not allow  for target scopes beyond 
#  a single target.  This was unintentional and unforseen.   However, with the
#  revision made in version 7.3, this was corrected. But, skills or items that
#  have a target scope of  'None'  would still create an error if this form of
#  attack is set in either $moving_item_atk or $moving_skill_atk hashe arrays.
#  Don't supply the id #'s of any 'None' scope skills/items into these hashes.
#
#============================================================================== 
#
#  COMPATABILITY ISSUES:
#
#  RTAB:  Connected Attacking
#  A powerful add-on to the RTAB system by Cogwheel, this script allows an ac-
#  tor to apply multiple hits on a target.  At first, there was no auto-detect
#  feature which gave ME MIGRANES... having to use insert switch in the config 
#  section.  Now there is one.  The only caveat is that you must STILL comment
#  out or remove the entire 'action_phase' routine in Con. Attacking (which is
#  roughly lines 30 to 80).
#
#  LARGE PARTY (Fomar0153's)
#  In order  to take advantage of the 'Large Party' system,  and still keep the 
#  actors and enemies in the proper viewport,  the second half of Fomar's Large
#  Party script (the Battlestatus Page) must be placed under Animated Battlers.
#  The first page  must still  be pasted  above the  battlesystem script(s)  as
#  before.  Please follow all of Fomar0153's instructions as always.
#
#============================================================================== 
#
#   ADDITIONAL CALLS AVAILABLE PRIOR TO COMBAT:
#
#------------------------------------------------------------------------------
#  SIDEVIEW MIRROR:     This value switches  the positions  of both enemies and
#                       heroes to opposite ends of the screen.
#
#   Script : $sideview_mirror = [number]
#   number : a value indicating whether the hero & enemy positions are switched
#            0 = Default:  Enemies on the left, Heroes on the right
#            1 = Switched: Heroes on the left, Enemies on the right
#
#------------------------------------------------------------------------------
#  BATTLER FORMATIONS:  This value changes the way your heroes line up when the
#                       battle starts.
#
#   Script : $formation_style = [number]
#   number : a value indicating the type of formation your heroes will use
#            0 = Diagonal (Default)    4 = Column Pattern 1
#            1 = Diagonal Pattern 2    5 = Column Pattern 2
#            2 = Slanted Pattern 1     6 = Wave Formation 1
#            3 = Slanted Pattern 2     7 = Wave Formation 2 
#
#            8 = Randomized (system will choose from 0 to 7)
#
#------------------------------------------------------------------------------ 
#  FORMATION OPTIONS:   These values  may expand your system  to go beyond the
#                       default four player system.
#
#   Script : $formation_max_member = [number]
#   number : A value indicating the maximum number of members in your party.
#             (default = 4)
#             
#   Script : $formation_max_height = [number]
#   number : A value indicating (in pixels) the top height of your party shown
#            in the Battle Screen.  The higher the number, the lower the party
#            on the screen. (default = 220)
#
#   Script : $formation_max_width  = [number]
#   number : The left/right width of the party's formation.  (default = 128)
#
#   Script : $battlestatus_height = [number]
#   number : The actual height of your battlestatus window. (default = 160)
#
#  NOTE: The combined $formation_max_height and $battlestatus_height determines
#        the vertical distance between battlers in their formation.
#
#============================================================================== 
#
#   Things added since original version by Minkoff:
#
#   Can reverse the battler positions
#   Editable spritesheet layout in script
#   Able to define total/max frames per pose
#   Can define individual # of frames per each pose
#   Can use 'red-out' RTP death or 'battler death' pose
#   Can show battler falling before death.
#   'Casting' pose now available for RTAB/Skill Timing users
#   Can show battler celebrating before victory pose
#   Can tag battlers who's victory pose loops indefinitely
#   Can show actor battlers get ready before battle starts.
#   Separate poses for 'skills', 'items' or 'weapons' based on their id
#   Can allow the battlers to step forward before using items & skills (FFVII+)
#   Attacking battlers rush towards their targets while item & skill users don't
#   Certain weapons can force the battler NOT to move
#   Certain items & skills can force battlers to 'rush' the enemy
#   Certain skills or items can force movement to the center of the screen
#   Stationary enemies. In case enemies do NOT move when they attack.
#   Adjustable 'low health' checker. Set your low health to 25%... 30%... 10%...
#   Poses now available for status ailments
#   Dead revert to 'victory' pose bug fixed.
#   Default battlers now available for actors and/or enemies
#   Default battlers now usable by ID number (had to rewrite red-out for that)
#   Escaping Enemies bug found by SteveE22.  Fixed just as fast.
#   Hero Formations (total of 8 hardwired -& 1 random- ... add at your own risk)
#   Z-Depth for attack overlapping purposes
#   Corrected attack overlap offset routine.  Overlap now based on battler size
#   Certain skills and items can now prevent movement
#   Can allow battlers to take step forward before performing 'attack' pose.(FF)
#   Certain weapons can move battlers to center screen instead of a full move.
#   Escaping Enemies can now have a pose before disappearing (was a rush pose)
#   Redesigned Scene_Battle's movement routine
#   Added pose for Critical Hits
#   Added the enemy's hash for frame number based on poses
#   Added the actor's hash for frame number based on poses
#   Re-Tooled the formations to go beyond the default four party system
#   Minor value added for compatability with Delissa's Battle Cry script
#   Default Collapse Stack-Error fixed(code by SephirothSpawn) found JirbyTaylor
#   Removed dependancy on $game_system for the Sideview Mirror system
#   Fixed the 'Blocking during Victory State' bug discovered by Kaze950
#   Battler tones now adapt to the background tones, requested by doom900
#   Fixed changing battler/battler system.  Include fade-in switch req by Neonyo
#   Set individual Actors/Enemies that phase on an attack
#   Translucent battlers... a personal desire for ghosts you can see through!
#   Adjustable opacity for translucent battlers... can't forget that.
#   FREAKIN'!!!  Fixed the Battler tones.  I forgot to 'untone' the 1st viewport.
#   Adjustable 'attack/skill/item' movement speeds requested by KAIRE.
#   Removed annoying translucency 'flicker' (excess code totally unneeded).
#   Individual 'Woozy' Rates per battlers added (JirbyTaylor gave me the idea).
#   Woozy and Status poses now override any blocking pose.  Makes sense, eh?
#   Can now use individually sized spritesheets for enemies and actors.
#   'Casting' pose now available for ParaDog's Spell Residence/Delay users.
#   Another escaping enemies (do-nothing switch) bug found by Boomy. Lengthy fix
#   Redefined the casting pose values.  Now set up for 'each' battler.  Better.
#   ---Noted: 'FullScreen' Battle Animation bug found by Mimi Chan.
#   A combination 'Nil'-Pose/Nil-State bug was fixed.  Found by Gaxx
#   'Templates per Spritesheet' system for Actors and Enemies now available.
#   ---Noted: Removed Battle Animation attempted fix. (Can't fix.  Removed.) 
#   Created 'Obtain Pose' for multiple spritesheet types to shorten code.
#   Added additional 'Custom Spritesheet' poses for the Casting pose & the like.
#   Added individual 'Casting' poses hash for each skill used.
#   Added addt. Advanced 'Custom Spritesheet' pose system for Casting & the like
#   Removed the unnecessary 'viewport.z' statement, compatible with Grad. Bars!
#   System 'can' pause the AT bar growth when performing attack, skill & item!
#   A 'None / All'-Target bug was found by daigotsu.  Taken care of... mostly.
#   Configurables (like $sideview_mirror) not saved. Bug found by MasterMind5823 
#   Now a 'casting' pose available when used with the Skill Casting Delay system
#   Bug squashed related to Casting Pose addition
#   Random Formation/Custom Battlesystem bug found by Alistor.  Very small fix.
#   The Actor Command Window was 'under' the battlers.  Found by Alistor. Fixed.
#   Moves actor battlers into viewport 1.  Fixes hero/window menu glitches.
#   Fixes the battle animation glitch found by Mimi Chan by relocating enemies!
#   Additional compatability with Fomar0153's Large Party (v2) system added.
#   Fixed a minor bug with battle poses if called from a Custom Sheet template.
#   Can tag battlers who's defeat poses loops indefinitely (Hakuya suggestion).
#   Dead guys now hidden at battle start (visible if 'raised) Thanks Angel_FX.
#   Converted the CONFIG section to use 'constants' to reduce resources used.
#   Converted the $global RTAB/ParaDog/Fomar detection values to $game_system.
#   Includes an Adaptation Switch for use with RTAB's Connected Attacking script
#   -Finally- Connected Attacking is auto-detected.  Adaption switch not needed.
#   Got tired of referring to IDX nos for template.  Poses start at 1, not 0!!!
#   
#   78 counted
#==============================================================================


Configuration:
Code:
#==============================================================================
# ** Animated Battlers - Enhanced   ver. 8.8                       (07-31-2007)
#
#------------------------------------------------------------------------------
#  * (1) Configuration:  The Sprite Battler Class (initialize system)
#============================================================================== 

  #==========================================================================
  #   ****                    GENERAL CONTROLS                       ****   #
  #==========================================================================

  # * Default Battler Style Switches
  #--------------------------------------------------------------------------        
  DEFAULT_ENEMY           = false   # If true, these switches allows the use
  DEFAULT_ACTOR           = false   # of default battlers for actors/enemies
  DEFAULT_ENEMY_ID        = []      # Ids of enemies using default battlers
  DEFAULT_ACTOR_ID        = [1]     # Ids of actors using default battlers
  DEFAULT_COLLAPSE_ACTOR  = false   # If true, restores the old 'red fade'
  DEFAULT_COLLAPSE_ENEMY  = false   #   collapse effect (using spritesheets)
  
  # * Animation Frames and Animation Speed
  #--------------------------------------------------------------------------    
  MNK_SPEED               = 4       # Framerate speed of the battlers
  MNK_RUSH_SPEED          = 1.5     # Melee/Skill/Item motion speed of the battlers
  MNK_POSES               = 11      # Maximum # of poses (stances) in the template
  MNK_FRAMES              = 4       # Maximum # of frames in each pose
  MNK_FRAMES_STANDARD     = 4       # Standard # of frames played in each pose.
  
  # Individual Spritesheet Control Center
  #--------------------------------------------------------------------------        
  MNK_POSES_ENEMY         = {1 => 4}  # ID and # of poses for each enemy
  MNK_FRAMES_ENEMY        = nil       # ID and # of frames for each enemy
  MNK_POSES_ACTOR         = {2 => 4}  # ID and # of poses for each actor
  MNK_FRAMES_ACTOR        = nil       # ID and # of frames for each actor.
      
  # * Wooziness Rates
  #-------------------------------------------------------------------------- 
  MNK_LOW_HP_PERCENTAGE  = 0.25   # Determines health% of battler for WOOZY pose.
  MNK_LOW_HP_ACTOR = {7 => 0.50, 8 => 0.75}  # Individual health% for actors.
  MNK_LOW_HP_ENEMY = {1 => 0.50}             # Individual health% for enemies.
  
    
    
  #==========================================================================
  #   ****                   POSE CONTROL CENTER                     ****   #
  #==========================================================================
    
  # Editable Template (Some people wanted to change their template design)
  #--------------------------------------------------------------------------
  MNK_POSE1   =   1   # Sets the 'Ready Pose'  (MNK_POSE1)   #1 in your template
  MNK_POSE2   =   2   # Sets the 'Struck Pose' (MNK_POSE2)   #2 in your template
  MNK_POSE3   =   3   # Sets the 'Woozy Pose'  (MNK_POSE3)   #3 in your template
  MNK_POSE4   =   4   # Sets the 'Block Pose'  (MNK_POSE4)   #4 in your template
  MNK_POSE5   =   5   # Sets the 'Charge Pose' (MNK_POSE5)   #5 in your template
  MNK_POSE6   =   6   # Sets the 'Retreat Pose'(MNK_POSE6)   #6 in your template
  MNK_POSE7   =   7   # Sets the 'Attack Pose' (MNK_POSE7)   #7 in your template
  MNK_POSE8   =   8   # Sets the 'Item Pose'   (MNK_POSE8)   #8 in your template
  MNK_POSE9   =   9   # Sets the 'Skill Pose'  (MNK_POSE9)   #9 in your template
  MNK_POSE10  =  10   # Sets the 'Victory Pose'(MNK_POSE10) #10 in your template
  MNK_POSE11  =  11   # Sets the 'Defeat Pose' (MNK_POSE11) #11 in your template
    
  # Editable Template (for Custom Actor Spritesheets)
  #--------------------------------------------------------------------------
  MNK_APOSE1   =   {2 => 2} 
  MNK_APOSE2   =   {2 => 2}   # Hilda is using a Charset graphic as a battler.
  MNK_APOSE3   =   {2 => 2}   # The battler was copied into the Battler folder.
  MNK_APOSE4   =   {2 => 2}   # This setup allows you to use Charactersets for 
  MNK_APOSE5   =   {2 => 2}   # battlers battlers.
  MNK_APOSE6   =   {2 => 3} 
  MNK_APOSE7   =   {2 => 2} 
  MNK_APOSE8   =   {2 => 2} 
  MNK_APOSE9   =   {2 => 2} 
  MNK_APOSE10  =   {2 => 1} 
  MNK_APOSE11  =   {2 => 4} 
    
  # Editable Template (for Custom Enemy Spritesheets)
  #--------------------------------------------------------------------------
  MNK_EPOSE1   =   {1 => 2} 
  MNK_EPOSE2   =   {1 => 2}   # Did the same to the ghosts.  Note that enemies have
  MNK_EPOSE3   =   {1 => 2}   # no victory pose.
  MNK_EPOSE4   =   {1 => 2}   
  MNK_EPOSE5   =   {1 => 2}   
  MNK_EPOSE6   =   {1 => 3} 
  MNK_EPOSE7   =   {1 => 2} 
  MNK_EPOSE8   =   {1 => 2} 
  MNK_EPOSE9   =   {1 => 2} 
  MNK_EPOSE11  =   {1 => 11}  # Setting the ghost to an invalid pose erases it.
                        
                        
  #==========================================================================
  #   ****               EXPANDED POSE CONTROL CENTER                ****   #
  #==========================================================================
  
  # Non-Default Poses (can expand beyond the default 11 poses here)
  # (New system mimics the revised Template system.  Can use 'custom' sheets)
  #--------------------------------------------------------------------------
  # The first value in each set indicates the index number  in a spritesheet.
  # This value is  overrided by a value  in one of the other two accompanying
  # arrays... one for actor battlerss, the other for enemy battlers.
  #
  # To define a pose linked to a specific battler, the syntax is...
  # '' hash array '' = { battler.id => pose# }
  # Where Aluxes and the Ghost (RTP)  would be  the 1st battlers (per array),
  # and the pose# would be the pose in your spritesheet.
  #
  # Combinations in the  hash arrays  are possible,  so if the MNK_POSES_DYING_E
  # array has {1 => 5, 9 => 2},  then the GHOST (enemy #1) would be using the
  # 6th pose (index 5) and the 9th enemy battler would be using the 3rd pose.
  #--------------------------------------------------------------------------
  MNK_POSES_SETUP       = 7          # Choose animation pose for 'preparation'
  MNK_POSES_SETUP_A     = {}         
  MNK_POSES_SETUP_E     = {9 => 5}    
  MNK_POSES_CASTPREP    = 4          # Set 'casting' pose for skill preparation
  MNK_POSES_CASTPREP_A  = {}          
  MNK_POSES_CASTPREP_E  = {9 => 3}    
  MNK_POSES_DYING       = 6          # Choose animation pose for dying throws.
  MNK_POSES_DYING_a     = {}          
  MNK_POSES_DYING_E     = {9 => 5}    
  MNK_POSES_ESCAPE      = 2          # Set 'coward' pose for fleeing monsters)    
  MNK_POSES_ESCAPE_A    = {}         
  MNK_POSES_ESCAPE_E    = {9 => 5}   
  MNK_POSES_CRITICAL    = nil        # Set pose for BIG hits 
  MNK_POSES_CRIT_A      = {}
  MNK_POSES_CRIT_E      = {9 =>5}
  MNK_POSES_WINNING     = 4          # Set winning (Victory Dance before pose)
  MNK_POSES_WINNING_A   = {}
  MNK_POSES_WINNING_E   = {}         
  
  # Looping Poses
  #--------------------------------------------------------------------------
  # These arrays merely hold the ID  of actors or enemies whose poses loop at
  # the end of combat.  Enemies have no 'winning' animation pose.
  MNK_LOOPS_WINNING         = [7]     # Actor IDs if their victory pose loops
  MNK_LOOPS_DEFEATED_ACTOR  = []      # Actor IDs if their defeat pose loops
  MNK_LOOPS_DEFEATED_ENEMY  = []      # Enemy IDs if their defeat pose loops
    
  # Non-Default Pose Hashes (poses dependant on .id values)
  # (New system mimics the revised Template system.)
  #--------------------------------------------------------------------------
  # The first hash in each set  indicates the id number (be it skill, item or
  # otherwise, and the pose it brings up.   These mimic the 2nd array type in
  # the above Non-Default poses.   As such, a hash value of {1 => 10) for the
  # MNK_POSES_WEAPONS hash would make  the 'Bronze Sword' use the 10th index (or
  # 11th spritesheet) pose... aka the 'Defeat' pose.
  #
  # To define an advanced pose linked to a specific battler, the syntax is...
  #  = { battler.id => { item/skill.id => pose#  } }
  # ...so this gets  more complicated.   But this does allow  each battler to
  # have his or her own unique pose, regardless of spritesheet type.
  #--------------------------------------------------------------------------
  MNK_POSES_CASTED     = {61 => 6}  # Set a specific skill to use a pose
  MNK_POSES_CASTED_A   = {}         
  MNK_POSES_CASTED_E   = {}
  MNK_POSES_STATUS     = {3 => 3}   # Set status values to poses here
  MNK_POSES_STAT_A     = {}  
  MNK_POSES_STAT_E     = {}
  MNK_POSES_SKILLS     = {57 => 7}  # Default: #57(Cross Cut) does 'Attack'
  MNK_POSES_SKILLS_A   = {}  
  MNK_POSES_SKILLS_E   = {}
  MNK_POSES_ITEMS      = {13 => 4}  # Default: #13(Sharp Stone) does 'Block'
  MNK_POSES_ITEMS_A    = {}         
  MNK_POSES_ITEMS_E    = {}         
  MNK_POSES_WEAPONS    = {}         # Didn't set any weapons to any poses
  MNK_POSES_WEAPS_A    = {}
  MNK_POSES_WEAPS_E    = {}         # Non-functional (Enemies don't use 'em.)

   
    
  #==========================================================================
  #   ****                   FRAME CONTROL CENTER                    ****   #
  #==========================================================================

  # * Frames Control 
  #--------------------------------------------------------------------------    
  MNK_FRAMES_PER_POSE    = {}               # Set #of frames to pose(by index)

  # Advanced Individual Pose/Frame Hashes   # Advanced Individual Poses  uses
                                            # hashes within hashes. As a demo 
  MNK_POSES_FR_ACTOR = {}                   # you can see that enemy #1 has 2
  MNK_POSES_FR_ENEMY = {}                   # sets of controls:  index 0 (for
                                            # a ready pose is set to 1 frame,
  # while index 3 (block) is set to 'two' frames.   Likewise, for the actor's
  # hash, Actor #7 (Gloria) has only 1 control hash.   It sets index pose '0' 
  # (the ready pose again) to use four frames of animation (even though I had
  # set the ready pose to just use '2' with the MNK_FRAMES_PER_POSE hash earlier.

    
    
  #==========================================================================
  #   ****                   MOVEMENT CONTROL CENTER                 ****   #
  #==========================================================================
      
  # * Forward Step System (Final Fantasy-Style)
  #--------------------------------------------------------------------------    
  MNK_RUSH_OFFSET        = 0        # How much additional space between battlers
  MNK_RUSH_ATTACK        = false    # If true, battler steps forward to attack
  MNK_RUSH_SKILL         = true     # If true, battler steps forward to use skill
  MNK_RUSH_ITEM          = true     # If true, battler steps forward to use item
    
  # * Movement Arrays (Arrays for skill/weapon/item IDs that affect movement)
  #--------------------------------------------------------------------------    
  MNK_MOVING_ITEM       = [1]     # Examples are items that need to be applied.
  MNK_MOVING_SKILL      = [61]    # Examples are martial-arts and sneak attacks
  MNK_MOVE2CENTER_ATK   = []      # Moves battler to center based on weapon id!
  MNK_MOVE2CENTER_ITEM  = [5]     # Moves battler to center for a big item atk!
  MNK_MOVE2CENTER_SKILL = [7]     # Moves battler to center for a big skill atk!
  #
  # * Remember, do not supply Skill or Item ID#'s that have 'None' scopes into
  #   either the MNK_MOVING_ITEM or MNK_MOVING_SKILL hashes.  These skills &
  #   item attacks have no target and would cause an error when trying to find
  #   an enemy to move towards.
 

    
  #==========================================================================
  #   ****                STATIONARY CONTROL CENTER                  ****   #
  #==========================================================================
  
  # * Stationary Battlers (simple True/False settings)
  #--------------------------------------------------------------------------    
  MNK_STATIONARY_ENEMIES = false    # If the enemies don't move while attacking
  MNK_STATIONARY_ACTORS  = false    # If the actors don't move while attacking
  
  # * Arrays filled with skill/weapon/item IDs that halt movement 
  #--------------------------------------------------------------------------    
  MNK_STATIONARY_ENEMY_IDS = []       # Enemies that don't RUN during melee attacks
  MNK_STATIONARY_WEAPONS = [17,18,19,20,21,22,23,24] # (examples are bows & guns)
  MNK_STATIONARY_SKILLS  = []       # (examples are bows & guns)
  MNK_STATIONARY_ITEMS   = []       # (examples are bows & guns)


    
  #==========================================================================
  #   ****               TRANSPARENCY CONTROL CENTER                 ****   #
  #==========================================================================
  MNK_TRANSLUCENCY      = 127      # Degree of transparency
  MNK_TRANSLUCENT_ACTOR = []       # ID of actor at translucency settings
  MNK_TRANSLUCENT_ENEMY = [1, 9]   # ID of enemy at translucency settings
  MNK_PHASING           = false    # If battlers fade in/out while charging
  MNK_PHASING_ACTOR     = [1, 2]   # IDs of actors that fade in/out if charging
  MNK_PHASING_ENEMY     = [9]      # IDs of enemies that fade in/out if charging

  MNK_FADE_IN           = true     # Battler fades in if replaced or transparent

    
    
  #==========================================================================
  #   ****                CUSTOM FEATURE CENTER                      ****   #
  #==========================================================================
        
  MNK_MIRROR_ENEMIES    = true     # Enemy battlers use reversed image
  MNK_CALC_SPEED        = false    # System calculates a mean/average speed
  MNK_AT_DELAY          = true     # Pauses battlesystem until animation done.

Sprite system:
Code:
#==============================================================================
# ** Animated Battlers - Enhanced   ver. 8.8                       (07-31-2007)
#
#------------------------------------------------------------------------------
#  * (2) Sprite System:  The Sprite Battler Class
#============================================================================== 

#==============================================================================
# ** Sprite_Battler
#------------------------------------------------------------------------------
#  This sprite is used to display the battler.It observes the Game_Character
#  class and automatically changes sprite conditions.
#==============================================================================

class Sprite_Battler < RPG::Sprite  
  #--------------------------------------------------------------------------
  # * Public Instance Variables
  #--------------------------------------------------------------------------
  attr_accessor :battler_offset         # Degree of action forcing  
  attr_accessor :skill_used             # Degree of action forcing  
  attr_accessor :item_used              # Degree of action forcing  
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  alias mnk_init initialize 
  def initialize(viewport, battler = nil)
    # --Initialize poses
    @frame, @pose   = 0, 0
    @last_time      = 0
    @last_move_time = 0
    # --Initialize Battler placement and pose types
    @battler_offset = 0
    @skill_used     = 0
    @item_used      = 0
    # --Initialize Boolean values
    @statusd        = false
    @dying          = true
    @s_pose         = false
    $victory        = false
    $defeat         = false
    @winning        = true
    # ORIGINAL Initialize call
    mnk_init(viewport, battler)
    # EVENT VALUE CALLS
    # --Obtain the Sideview switch
    $sv_mirror = $sideview_mirror
    $sv_mirror = 0 if $sideview_mirror == nil
    # -- Obtain the max party size
    $max_member = $formation_max_member
    $max_member = 4 if $formation_max_member == nil
    # --Obtain the highest position for the formation
    $formation_top = $formation_max_height
    $formation_top = 220 if $formation_max_height == nil
    # --Obtain the formation's width
    $formation_width = $formation_max_width
    $formation_width = 128 if $formation_max_width == nil
    # --Obtain the height of the Battlestatus Window
    $battlestat_height = $battlestatus_height
    $battlestat_height = 160 if $battlestatus_height == nil
  end
  #--------------------------------------------------------------------------
  # * Update
  #--------------------------------------------------------------------------
  alias mnk_update update
  def update
    return unless @battler
    if @battler.battler_name != @battler_name
      @started = false
    end    
    # Regular Update
    mnk_update

    # Set Translucency  
    if @battler.is_a?(Game_Actor) and @battler_visible
      if MNK_TRANSLUCENT_ACTOR.include?(@battler.id)
        if @battler.hidden
          self.opacity = 0
        else
          self.opacity = MNK_TRANSLUCENCY
        end
      end
    end
    if @battler.is_a?(Game_Enemy) and @battler_visible
      if MNK_TRANSLUCENT_ENEMY.include?(@battler.id)
        if @battler.hidden
          self.opacity = 0
        else
          self.opacity = MNK_TRANSLUCENCY
        end
      end
    end

    # Reset hash for Advanced Pose/Frames
    pose_temp = {}
    # Start Routine
    unless @started
      @pose = state
      if @battler.is_a?(Game_Enemy)
        if not DEFAULT_ENEMY
          if DEFAULT_ENEMY_ID == nil
            # Set up Spritesheet Standards  
            frametmp = MNK_FRAMES
            if MNK_FRAMES_ENEMY != nil
              if MNK_FRAMES_ENEMY.include?(@battler.id)
                frametmp = MNK_FRAMES_ENEMY[@battler.id] if MNK_FRAMES_ENEMY[@battler.id] != nil
              end
            end
            @width = @width / frametmp
            posetmp = MNK_POSES
            if MNK_POSES_ENEMY != nil
              if MNK_POSES_ENEMY.include?(@battler.id)
                posetmp = MNK_POSES_ENEMY[@battler.id] if MNK_POSES_ENEMY[@battler.id] != nil
              end
            end
            @height = @height / posetmp
          else
            if not DEFAULT_ENEMY_ID.include?(@battler.id)
              frametmp = MNK_FRAMES
              if MNK_FRAMES_ENEMY != nil
                if MNK_FRAMES_ENEMY.include?(@battler.id)
                  frametmp = MNK_FRAMES_ENEMY[@battler.id] if MNK_FRAMES_ENEMY[@battler.id] != nil
                end
              end
              @width = @width / frametmp
              posetmp = MNK_POSES
              if MNK_POSES_ENEMY != nil
                if MNK_POSES_ENEMY.include?(@battler.id)
                  posetmp = MNK_POSES_ENEMY[@battler.id] if MNK_POSES_ENEMY[@battler.id] != nil
                end
              end
              @height = @height / posetmp
            end
          end
        end
      end
  
      # Turn off Casting pose
      @battler.casted  = false
      @battler.casting = false

      if @battler.is_a?(Game_Actor) 
        if not DEFAULT_ACTOR
          if DEFAULT_ACTOR_ID == nil
            # Set up Spritesheet Standards  
            frametmp = MNK_FRAMES
            if MNK_FRAMES_ACTOR != nil
              if MNK_FRAMES_ACTOR.include?(@battler.id)
                frametmp = MNK_FRAMES_ACTOR[@battler.id] if MNK_FRAMES_ACTOR[@battler.id] != nil
              end
            end
            @width = @width / frametmp
            posetmp = MNK_POSES
            if MNK_POSES_ACTOR != nil
              if MNK_POSES_ACTOR.include?(@battler.id)
                posetmp = MNK_POSES_ACTOR[@battler.id] if MNK_POSES_ACTOR[@battler.id] != nil
              end
            end
            @height = @height / posetmp
          else
            if not DEFAULT_ACTOR_ID.include?(@battler.id)
              frametmp = MNK_FRAMES
              if MNK_FRAMES_ACTOR != nil
                if MNK_FRAMES_ACTOR.include?(@battler.id)
                  frametmp = MNK_FRAMES_ACTOR[@battler.id] if MNK_FRAMES_ACTOR[@battler.id] != nil
                end
              end
              @width = @width / frametmp
              posetmp = MNK_POSES
              if MNK_POSES_ACTOR != nil
                if MNK_POSES_ACTOR.include?(@battler.id)
                  posetmp = MNK_POSES_ACTOR[@battler.id] if MNK_POSES_ACTOR[@battler.id] != nil
                end
              end
              @height = @height / posetmp
            end
          end
        end
      end
      
      @battler_offset = @width * 0.75
    
      @display_x = @battler.screen_x
      @display_y = @battler.screen_y
      @display_z = @battler.screen_z
      @destination_x = @display_x
      @destination_y = @display_y
      @destination_z = @display_z
      if MNK_FADE_IN
        self.opacity = 0
      end
      
      # Make invisible if dead at battle start
      if @battler.dead?
        self.visible = false
      end
      
      @started = true
    end
    
    if @pose == nil
      @pose = state
    end    

    # Cut Out Frame 
    # Enemy Battler Routine
    if @battler.is_a?(Game_Enemy)
      if DEFAULT_ENEMY
        self.src_rect.set(@width * 0, @height * 0, @width, @height)
      else
        if DEFAULT_ENEMY_ID !=nil
          if DEFAULT_ENEMY_ID.include?(@battler.id)
            self.src_rect.set(@width * 0, @height * 0, @width, @height)
          else
            if @pose != nil
              if @frame != nil
                self.src_rect.set(@width * @frame, @height * @pose, @width, @height)
              end
            end
          end
        else
          if @pose != nil
            if @frame != nil
              self.src_rect.set(@width * @frame, @height * @pose, @width, @height)
            end
          end
        end
      end
    end
    
    # Actor Battler Routine
    if @battler.is_a?(Game_Actor)
      if DEFAULT_ACTOR
        self.src_rect.set(@width * 0, @height * 0, @width, @height)
      else
        if DEFAULT_ACTOR_ID !=nil
          if DEFAULT_ACTOR_ID.include?(@battler.id)
            self.src_rect.set(@width * 0, @height * 0, @width, @height)
          else
            if @pose != nil
              if @frame != nil
                self.src_rect.set(@width * @frame, @height * @pose, @width, @height)
              end
            end
          end
        else
          if @pose != nil
            if @frame != nil
              self.src_rect.set(@width * @frame, @height * @pose, @width, @height)
            end
          end
        end
      end
    end
   
    # Position Sprite 
    self.x = @display_x
    self.y = @display_y
    self.z = @display_z
    self.ox = @width / 2
    self.oy = @height
    
    # Adjust sprite direction if facing the other way...
    if $sv_mirror == 1
      if @battler.is_a?(Game_Actor)
        self.mirror = !!battler
      else
        if not MNK_MIRROR_ENEMIES
          self.mirror = !!battler
        end
      end
    else
      if @battler.is_a?(Game_Enemy)
        if MNK_MIRROR_ENEMIES
          self.mirror = !!battler
        end
      end
    end
    
    # Setup Frames per Pose
    poseframe = MNK_FRAMES_STANDARD
    poseframe = MNK_FRAMES_PER_POSE[@pose] if MNK_FRAMES_PER_POSE.include?(@pose)
    # Set Advanced Poses for Actors
    if @battler.is_a?(Game_Actor)
      pose_temp = MNK_POSES_FR_ACTOR[@battler.id] if MNK_POSES_FR_ACTOR.include?(@battler.id)
      poseframe = pose_temp[@pose] if pose_temp.include?(@pose)
    end    
    # Set Advanced Poses for Enemies
    if @battler.is_a?(Game_Enemy)
      pose_temp = MNK_POSES_FR_ENEMY[@battler.id] if MNK_POSES_FR_ENEMY.include?(@battler.id)
      poseframe = pose_temp[@pose] if pose_temp.include?(@pose)
    end
    
    # Make visible if returned to life
    unless @battler.dead?
      self.visible = true if @state == pose_obtain(MNK_POSE1, MNK_APOSE1, MNK_EPOSE1)
      @freeze = false
    end
  
    # Setup Animation 
    time = Graphics.frame_count / (Graphics.frame_rate / MNK_SPEED)
    if @last_time < time
      @frame = (@frame + 1) % poseframe
      if @frame == 0
        if @freeze
          @frame = poseframe - 1
          return
        end
        @pose = state
      end
    end
    @last_time = time
    # Setup Dying Animation
    if @battler.dead?
      if @dying == true
        @pose = state
        @dying = false
      end
    else
      
      # Setup/Ready for Battle (Let's get ready to RUMBLE!)
      if @s_pose == false
        tmp_pose = pose_obtain(MNK_POSES_SETUP, MNK_POSES_SETUP_A, MNK_POSES_SETUP_E)
        if tmp_pose != nil
          @pose = tmp_pose
          @s_pose = true            
        end
      end
        
      if @battler.is_a?(Game_Actor)
        if $victory == true
          if @winning == true
            @pose = state
            @winning = false
          end
        end
      end
    end
    
    # Move It
    move if moving
  end
  
  #-------------------------------------------------------------------------- 
  # * Current State
  #--------------------------------------------------------------------------
  def state
    
    @statusd = false
    
    unless @battler.dead?
      if @battler.is_a?(Game_Enemy) and MNK_TRANSLUCENT_ENEMY.include?(@battler.id)
        if @battler.hidden
          self.opacity = 0
        else
          self.opacity = MNK_TRANSLUCENCY
        end
      end
      if @battler.is_a?(Game_Actor) and MNK_TRANSLUCENT_ACTOR.include?(@battler.id)
        if @battler.hidden
          self.opacity = 0
        else
          self.opacity = MNK_TRANSLUCENCY
        end
      end
    end
    
    # Damage State
    if [nil,{}].include?(@battler.damage)
      # Battler Fine
      @state = pose_obtain(MNK_POSE1, MNK_APOSE1, MNK_EPOSE1)
      
      # Battler Wounded
      temp_percentage = MNK_LOW_HP_PERCENTAGE
      if @battler.is_a?(Game_Actor)
        temp_percentage = MNK_LOW_HP_ACTOR[@battler.id] if MNK_LOW_HP_ACTOR[@battler.id] != nil
      end
      if @battler.is_a?(Game_Enemy)
        temp_percentage = MNK_LOW_HP_ENEMY[@battler.id] if MNK_LOW_HP_ENEMY[@battler.id] != nil
      end
      if @battler.hp < @battler.maxhp * temp_percentage
        @state = pose_obtain(MNK_POSE3, MNK_APOSE3, MNK_EPOSE3)
        @statusd = true
      end
      
      # Battler Status-Effect
      for i in @battler.states
        tmp_pose2 = pose_array_obtain(MNK_POSES_STATUS, MNK_POSES_STAT_A, MNK_POSES_STAT_E, i)
        @state = tmp_pose2 if tmp_pose2 != nil
        @statusd = true if tmp_pose2 != nil
      end
      
      
      # If Battler Dead
      if @battler.dead? 
        # If using default battlers or default collapse
        if (DEFAULT_COLLAPSE_ACTOR and @battler.is_a?(Game_Actor)) or
          (DEFAULT_COLLAPSE_ENEMY and @battler.is_a?(Game_Enemy)) or
          (DEFAULT_ACTOR and @battler.is_a?(Game_Actor)) or
          (DEFAULT_ENEMY and @battler.is_a?(Game_Enemy)) or
          (DEFAULT_ENEMY_ID.include?(@battler.id) and @battler.is_a?(Game_Enemy)) or
          (DEFAULT_ACTOR_ID.include?(@battler.id) and @battler.is_a?(Game_Actor))
          # Do absolutely nothing :)
        else
          
          # Dying Animation pose
          if @dying == true
            tmp_pose = pose_obtain(MNK_POSES_DYING, MNK_POSES_DYING_a, MNK_POSES_DYING_E)
            if tmp_pose != nil
              @state = tmp_pose
            else
              @state = pose_obtain(MNK_POSE11, MNK_APOSE11, MNK_EPOSE11)
              if @battler.is_a?(Game_Actor)
                @freeze = true if not MNK_LOOPS_DEFEATED_ACTOR.include?(@battler.id)
              else
                @freeze = true if not MNK_LOOPS_DEFEATED_ENEMY.include?(@battler.id)
              end
            end  
          else
            @state = pose_obtain(MNK_POSE11, MNK_APOSE11, MNK_EPOSE11)
            if @battler.is_a?(Game_Actor)
              @freeze = true if not MNK_LOOPS_DEFEATED_ACTOR.include?(@battler.id)
            else
              @freeze = true if not MNK_LOOPS_DEFEATED_ENEMY.include?(@battler.id)
            end            
          end
          
          # Fix Opacity
          if @battler.is_a?(Game_Enemy) 
            if MNK_TRANSLUCENT_ENEMY.include?(@battler.id)
              if @battler.hidden
                self.opacity = 0
              else
                self.opacity = MNK_TRANSLUCENCY
              end
            else
              if @battler.hidden
                self.opacity = 0
              else
                self.opacity = 255
              end
            end
          else
            if MNK_TRANSLUCENT_ACTOR.include?(@battler.id)
              if @battler.hidden
                self.opacity = 0
              else
                self.opacity = MNK_TRANSLUCENCY
              end
            else
              if @battler.hidden
                self.opacity = 0
              else
                self.opacity = 255
              end
            end
          end
        end
      end
    end
   
    # Casting State 
    if @battler.casted
      if $game_system.mnk_det_para_spell
        if @battler.spelling?
          tmp_pose = pose_obtain(MNK_POSES_CASTPREP, MNK_POSES_CASTPREP_A, MNK_POSES_CASTPREP_E)
          tmp_pose2 = pose_array_obtain(MNK_POSES_CASTED, MNK_POSES_CASTED_A, MNK_POSES_CASTED_E, @battler.skill_casted)
          tmp_pose = tmp_pose2 if tmp_pose2 != nil
          @state = tmp_pose if tmp_pose != nil
        end
      else
        if $game_system.mnk_det_sd_casting
          if @battler.sd_casting
            tmp_pose = pose_obtain(MNK_POSES_CASTPREP, MNK_POSES_CASTPREP_A, MNK_POSES_CASTPREP_E)
            tmp_pose2 = pose_array_obtain(MNK_POSES_CASTED, MNK_POSES_CASTED_A, MNK_POSES_CASTED_E, @battler.skill_casted)
            tmp_pose = tmp_pose2 if tmp_pose2 != nil
            @state = tmp_pose if tmp_pose != nil
          end
        end
        if @battler.rtp != 0
          tmp_pose = pose_obtain(MNK_POSES_CASTPREP, MNK_POSES_CASTPREP_A, MNK_POSES_CASTPREP_E)
          tmp_pose2 = pose_array_obtain(MNK_POSES_CASTED,MNK_POSES_CASTED_A,MNK_POSES_CASTED_E,@battler.skill_casted)
          tmp_pose = tmp_pose2 if tmp_pose2 != nil
          @state = tmp_pose if tmp_pose != nil
        end
      end
    end
    
    # Victory State
    if @battler.is_a?(Game_Actor)
      if $victory
        if not @battler.dead?
          if @winning == true
            if MNK_POSES_WINNING != nil
              tmp_pose = pose_obtain(MNK_POSES_WINNING, MNK_POSES_WINNING_A, MNK_POSES_WINNING_E)
              @state = tmp_pose if tmp_pose != nil
            end
          else
            tmp_pose = MNK_POSE10-1
            tmp_pose = MNK_APOSE10[@battler.id]-1 if MNK_APOSE10[@battler.id] != nil
            @state = tmp_pose
            if not MNK_LOOPS_WINNING.include?(@battler.id)
              @freeze = true
            end
          end
        else
          if not @battler.dead?
            tmp_pose = MNK_POSE10-1
            tmp_pose = MNK_APOSE10[@battler.id]-1 if MNK_APOSE10[@battler.id] != nil
            @state = tmp_pose
            if not MNK_LOOPS_WINNING.include?(@battler.id)
              @freeze = true
            end
          end
        end        
      end
    # Perform check for Enemies  
    else
      
      if $defeat
        if not @battler.dead?
          if @winning == true
            if MNK_POSES_WINNING != nil
              tmp_pose = pose_obtain(MNK_POSES_WINNING, MNK_POSES_WINNING_A, MNK_POSES_WINNING_E)
              @state = tmp_pose if tmp_pose != nil
            end
          else
            tmp_pose = MNK_POSE10-1
            tmp_pose = MNK_APOSE10[@battler.id]-1 if MNK_APOSE10[@battler.id] != nil
            @state = tmp_pose
            if not MNK_LOOPS_WINNING.include?(@battler.id)
              @freeze = true
            end
          end
        else
          if not @battler.dead?
            tmp_pose = MNK_POSE10-1
            tmp_pose = MNK_APOSE10[@battler.id]-1 if MNK_APOSE10[@battler.id] != nil
            @state = tmp_pose
            if not MNK_LOOPS_WINNING.include?(@battler.id)
              @freeze = true
            end
          end
        end        
      end
    end
    
    # Guarding State (not if dead OR in victory)
    if not @battler.dead?
      if not $victory
        if @statusd == false 
          @state = pose_obtain(MNK_POSE4, MNK_APOSE4, MNK_EPOSE4) if @battler.guarding?
        end
      end
    end
    # Moving State 
    if moving
    # Adjust sprite direction if facing the other way...
      if $sv_mirror == 1
        # If enemy battler moving
        if @battler.is_a?(Game_Enemy) 
          # Battler Moving Left
          @state = pose_obtain(MNK_POSE5, MNK_APOSE5, MNK_EPOSE5) if moving.eql?(0)
          # Battler Moving Right
          @state = pose_obtain(MNK_POSE6, MNK_APOSE6, MNK_EPOSE6) if moving.eql?(1)
        # Else actor battler moving
        else
          # Battler Moving Left
          @state = pose_obtain(MNK_POSE6, MNK_APOSE6, MNK_EPOSE6) if moving.eql?(0)
          # Battler Moving Right
          @state = pose_obtain(MNK_POSE5, MNK_APOSE5, MNK_EPOSE5) if moving.eql?(1)
        end
      else      
        # If enemy battler moving
        if @battler.is_a?(Game_Enemy) 
          # Battler Moving Left
          @state = pose_obtain(MNK_POSE6, MNK_APOSE6, MNK_EPOSE6) if moving.eql?(0)
          # Battler Moving Right
          @state = pose_obtain(MNK_POSE5, MNK_APOSE5, MNK_EPOSE5) if moving.eql?(1)
        # Else actor battler moving
        else
          # Battler Moving Left
          @state = pose_obtain(MNK_POSE5, MNK_APOSE5, MNK_EPOSE5) if moving.eql?(0)
          # Battler Moving Right
          @state = pose_obtain(MNK_POSE6, MNK_APOSE6, MNK_EPOSE6) if moving.eql?(1)
        end
      end
    end
    # Return State
    return @state
  end
  
  #-------------------------------------------------------------------------- 
  # * Move
  #--------------------------------------------------------------------------
  def move
    time = Graphics.frame_count / (Graphics.frame_rate.to_f / (MNK_SPEED * 5))
    
    if @last_move_time < time
      # Pause for Animation
      return if @pose != state

        opa = 255
        if @battler.is_a?(Game_Enemy) and MNK_TRANSLUCENT_ENEMY.include?(@battler.id)
          opa = MNK_TRANSLUCENCY
        end
        if @battler.is_a?(Game_Actor) and MNK_TRANSLUCENT_ACTOR.include?(@battler.id)
          opa = MNK_TRANSLUCENCY
        end
  
      # Phasing
      if MNK_PHASING
        d1 = (@display_x - @original_x).abs
        d2 = (@display_y - @original_y).abs
        d3 = (@display_x - @destination_x).abs
        d4 = (@display_y - @destination_y).abs
        self.opacity = [opa - ([d1 + d2, d3 + d4].min * 1.75).to_i, 0].max
        
      end
      # Phasing per Actor/Enemy
      if @battler.is_a?(Game_Actor)
        if MNK_PHASING_ACTOR.include?(@battler.id)
          d1 = (@display_x - @original_x).abs
          d2 = (@display_y - @original_y).abs
          d3 = (@display_x - @destination_x).abs
          d4 = (@display_y - @destination_y).abs
          self.opacity = [opa - ([d1 + d2, d3 + d4].min * 1.75).to_i, 0].max
        end
      else      
        if MNK_PHASING_ENEMY.include?(@battler.id)
          d1 = (@display_x - @original_x).abs
          d2 = (@display_y - @original_y).abs
          d3 = (@display_x - @destination_x).abs
          d4 = (@display_y - @destination_y).abs
          self.opacity = [opa - ([d1 + d2, d3 + d4].min * 1.75).to_i, 0].max
        end
      end
      
      # Calculate Difference
      difference_x = (@display_x - @destination_x).abs
      difference_y = (@display_y - @destination_y).abs
      difference_z = (@display_z - @destination_z).abs  
      # Done? Reset, Stop
      if [difference_x, difference_y].max.between?(0, 8)
        @display_x = @destination_x
        @display_y = @destination_y
        @display_z = @destination_z
        @pose = state
        return
      end
      
      # Calculate Movement Increments
      increment_x = increment_y = 1
      if difference_x < difference_y
        increment_x = 1.0 / (difference_y.to_f / difference_x)
      elsif difference_y < difference_x
        increment_y = 1.0 / (difference_x.to_f / difference_y)
      end
      increment_z = increment_y
  
      # Calculate Movement Speed 
      if MNK_CALC_SPEED
        total = 0; $game_party.actors.each{ |actor| total += actor.agi }
        speed = @battler.agi.to_f / (total / $game_party.actors.size)
        increment_x *= speed
        increment_y *= speed
        increment_z *= speed
      end
      
      # Multiply and Move
      multiplier_x = MNK_RUSH_SPEED * (@destination_x - @display_x > 0 ? 8 : -8)
      multiplier_y = MNK_RUSH_SPEED * (@destination_y - @display_y > 0 ? 8 : -8)
      multiplier_z = MNK_RUSH_SPEED * (@destination_z - @display_z > 0 ? 8 : -8)      
      @display_x += (increment_x * multiplier_x).to_i
      @display_y += (increment_y * multiplier_y).to_i
      @display_z += (increment_z * multiplier_z).to_i
      
    end
    @last_move_time = time
  end
  
  #--------------------------------------------------------------------------
  # * Set Movement
  #--------------------------------------------------------------------------
  def setmove(destination_x, destination_y, destination_z)
    unless (@battler.is_a?(Game_Enemy) and MNK_STATIONARY_ENEMIES) or
           (@battler.is_a?(Game_Actor) and MNK_STATIONARY_ACTORS)
      unless MNK_STATIONARY_WEAPONS.include?(@battler.weapon_id) or
             MNK_STATIONARY_SKILLS.include?(@skill_used) or
             MNK_STATIONARY_ITEMS.include?(@item_used)
        @original_x = @display_x
        @original_y = @display_y
        @original_z = @display_z          
        @destination_x = destination_x
        @destination_y = destination_y
        @destination_z = destination_z
      end
    end
  end
  
  #-------------------------------------------------------------------------- 
  # * Movement Check
  #--------------------------------------------------------------------------
  def moving
    if (@display_x != @destination_x and @display_y != @destination_y and !@battler.dead?)
      return (@display_x > @destination_x ? 0 : 1)
    end
  end
  
  #--------------------------------------------------------------------------
  # * Set Pose
  #--------------------------------------------------------------------------
  def pose=(pose)
    @pose = pose
    @frame = 0
  end
  
  #--------------------------------------------------------------------------
  # * Freeze
  #--------------------------------------------------------------------------
  def freeze
    @freeze = true
  end
  
  #-------------------------------------------------------------------------- 
  # * Fallen Pose
  #--------------------------------------------------------------------------
  if @derv_anim_bat_stack.nil?
    @derv_anim_bat_stack = true
    alias mnk_collapse collapse
    def collapse
      if DEFAULT_COLLAPSE_ENEMY
        mnk_collapse if @battler.is_a?(Game_Enemy)
      end
      if DEFAULT_COLLAPSE_ACTOR
        mnk_collapse if @battler.is_a?(Game_Actor)
      end
      if DEFAULT_ENEMY
        mnk_collapse if @battler.is_a?(Game_Enemy)
      end
      if DEFAULT_ACTOR
        mnk_collapse if @battler.is_a?(Game_Actor)
      end
      if DEFAULT_ENEMY_ID != nil
        if DEFAULT_ENEMY_ID.include?(@battler.id)
          mnk_collapse if @battler.is_a?(Game_Enemy)
        end
      end
      if $defend_actor.id != nil
        if DEFAULT_ACTOR_ID.include?(@battler.id)
          mnk_collapse if @battler.is_a?(Game_Actor)
        end    
      end
    end
  end

  #--------------------------------------------------------------------------
  # * Obtain Pose
  #     pose_base   : default pose to return
  #     pose_actor  : list of poses for actors
  #     pose_enemy  : list of poses for enemies
  #--------------------------------------------------------------------------
  def pose_obtain(pose_base, pose_actor, pose_enemy)
    # create Arrays
    pos_a = {}
    pos_e = {}
    # fill created Arrays & Set pose
    pos_a = pose_actor
    pos_e = pose_enemy
    pose_now = pose_base
    # Obtain pose if not a standard pose
    if @battler.is_a?(Game_Actor)
      pose_now = pos_a[@battler.id] if pos_a[@battler.id] != nil
    else
      pose_now = pos_e[@battler.id] if pos_e[@battler.id] != nil
    end
    # Return the final pose (minus 1 for neceties)
    pose_now -= 1 if pose_now != nil
    return pose_now
  end
  
  #--------------------------------------------------------------------------
  # * Obtain Pose from hashes
  #     hash_base   : hash with default poses
  #     hash_actor  : advanced list of poses for actors
  #     hash_enemy  : advanced list of poses for enemies
  #     condition   : value determining where to get the final pose
  #--------------------------------------------------------------------------
  def pose_array_obtain(hash_base, hash_actor, hash_enemy, condition)
    # create Arrays
    hash_b    = {}
    hash_a    = {}
    hash_e    = {}
    pose_temp = {}
    # fill created Arrays & Set pose
    hash_b = hash_base
    hash_a = hash_actor
    hash_e = hash_enemy
    # Setup the temp Array
    if @battler.is_a?(Game_Actor)
      pose_temp = hash_a[@battler.id] if hash_a.include?(@battler.id)
    else
      pose_temp = hash_e[@battler.id] if hash_e.include?(@battler.id)
    end
    # Obtain the base pose based on condition (or nil)
    pose_now = hash_b[condition] if hash_b.include?(condition)
    # Obtain the optional actor/enemy pose based on condition (unless nil)
    pose_now = pose_temp[condition] if pose_temp.include?(condition)
    # Return the final pose (minus 1 for neceties)
    pose_now -= 1 if pose_now != nil
    return pose_now
  end
end


Battle system:
Code:
#==============================================================================
# ** Animated Battlers - Enhanced   ver. 8.8                       (07-31-2007)
#
#------------------------------------------------------------------------------
#  * (3) Battle System:  The Scene Battle class
#==============================================================================    

#==============================================================================
# ** Scene_Battle 
#------------------------------------------------------------------------------ 
#  This class performs battle screen processing.
#==============================================================================

class Scene_Battle
  #--------------------------------------------------------------------------
  # * Main Processing
  #--------------------------------------------------------------------------
  alias mnkmain main
  def main
    # Obtain the formation style
    # Only once per battle start
    $formation = $formation_style
    $formation = 0 if $formation_style == nil
    # if Formation is random 
    if $formation == 8 then
      $formation = rand(8).to_i
    end
    mnkmain
  end
  #--------------------------------------------------------------------------
  # * Frame Update (main phase step 1 : action preparation)
  #--------------------------------------------------------------------------
  alias mkf_up4s1 update_phase4_step1
  def update_phase4_step1(battler = @active_battler)
    if $game_system.mnk_det_rtab_systm == true
      mkf_up4s1(battler)
    else
      mkf_up4s1
    end
    if $game_system.mnk_det_sd_casting == true
      if battler != nil
        if battler.sd_casting
          battler.casted = true
        end
      end
    end    
  end
  
  #--------------------------------------------------------------------------
  # *  End Skill Selection
  #--------------------------------------------------------------------------  
  alias mkf_endss end_skill_select
  def end_skill_select
    mkf_endss
    if $game_system.mnk_det_rtab_systm
      @active_actor.skill_casted = @skill.id
    else
      @active_battler.skill_casted = @skill.id
    end
  end
  
  #--------------------------------------------------------------------------
  # * Make Skill Action Results (alias used to determine skill used)
  #--------------------------------------------------------------------------
  alias make_skill_action_result_anim make_skill_action_result
  def make_skill_action_result(battler = @active_battler, plus_id = 0)
    @rtab = !@target_battlers
    if $game_system.mnk_det_rtab_attck
      make_skill_action_result_anim(battler, plus_id)
    else
      @rtab ? make_skill_action_result_anim(battler) : make_skill_action_result_anim
    end
    @skill_used = @skill.id
    if $game_system.mnk_det_para_spell == true
      if battler.spelling?
        battler.casted = true
      end
    end    
  end
  
  #--------------------------------------------------------------------------
  # * Make Item Action Results (alias used to determine item used)
  #--------------------------------------------------------------------------
  alias make_item_action_result_anim make_item_action_result
  def make_item_action_result(battler = @active_battler)
    @rtab = !@target_battlers
    @rtab ? make_item_action_result_anim(battler) : make_item_action_result_anim
    @item_used = @item.id
    @item_usage = @item.scope
  end
  
  #-------------------------------------------------------------------------- 
  # * Frame Update (main phase step 1 : action preparation) (Casting Routine)
  #--------------------------------------------------------------------------
  alias update_phase4_step1_anim update_phase4_step1
  def update_phase4_step1(battler = @active_battler) 
    @rtab = !@target_battlers
    if $game_system.mnk_det_rtab_systm == true
      update_phase4_step1_anim(battler)
      if battler.current_action.kind == 1 and
        (not battler.current_action.forcing or @force != 2)
        if battler.rtp != 0    
          battler.casted = true
        end
      end
    else
      update_phase4_step1_anim
    end
  end
  
  #-------------------------------------------------------------------------- 
  # * Action Animation, Movement
  #--------------------------------------------------------------------------
  alias mnk_update_phase4_step3 update_phase4_step3
  def update_phase4_step3(battler = @active_battler)
    @rtab = !@target_battlers
    target = (@rtab ? battler.target : @target_battlers)[0]
    # Battle Delay System
    if MNK_AT_DELAY    
      # Fomar's Action Cost Detection
      if $game_system.mnk_det_acb_detect
        for actor in $game_party.actors
          actor.vitality= 0
        end
        for enemy in $game_troop.enemies
          enemy.vitality= 0
        end
      end
      # Trickster's AT Detection
      if $game_system.mnk_det_abs_detect
        for actor in $game_party.actors
          actor.at_multiplier= 0
        end
        for enemy in $game_troop.enemies
          enemy.at_multiplier= 0
        end
      end
      # Cogwheel RTAB Detection
      if $game_system.mnk_det_rtab_systm
        @rtab_wait_flag = true
      end
    end

    # If enemy is a default battler
    if battler.is_a?(Game_Enemy)
      if DEFAULT_ENEMY
        if @rtab then battler.white_flash = true end
        if @rtab then battler.wait = 10 end
      end
      if DEFAULT_ENEMY_ID != nil
        if DEFAULT_ENEMY_ID.include?(battler.id)
          if @rtab then battler.white_flash = true end
          if @rtab then battler.wait = 10 end
        end 
      end        
    end
    # If actor is a default battler
    if battler.is_a?(Game_Actor)
      if DEFAULT_ACTOR
        if @rtab then battler.white_flash = true end
        if @rtab then battler.wait = 10 end
      end
      if DEFAULT_ACTOR_ID != nil
        if DEFAULT_ACTOR_ID.include?(battler.id)
          if @rtab then battler.white_flash = true end
          if @rtab then battler.wait = 10 end
        end 
      end                
    end
    # Reset the 'Do Nothing' flag
    dn_flag = false
    # Set values and poses based on Action 
    case battler.current_action.kind
    when 0  # Attack
      # if Do Nothing, just return
      if battler.current_action.basic == 3
        dn_flag = true
      end
      if dn_flag != true
        rush_type = MNK_RUSH_ATTACK
        full_moving = true ; if rush_type; full_moving = false; end
        if MNK_MOVE2CENTER_ATK.include?(battler.weapon_id); center_move=true ; end
        if MNK_STATIONARY_ENEMY_IDS.include?(battler.id) and battler.is_a?(Game_Enemy)
          full_moving = false
          center_move = false
          rush_type = false
        end
        
        base_pose = pose_obtain(battler, MNK_POSE7, MNK_APOSE7, MNK_EPOSE7)
        base_pose2 = pose_array_obtain(battler, MNK_POSES_WEAPONS, MNK_POSES_WEAPS_A, MNK_POSES_WEAPS_E, battler.weapon_id)
        base_pose = base_pose2 if base_pose2 != nil        
        
        if battler.current_action.basic == 2
          # If escaping, disable all movement
          full_moving = false
          center_move = false
          rush_type = false    
          # Set the graphics
          temp_pose = pose_obtain(battler, MNK_POSES_ESCAPE, MNK_POSES_ESCAPE_A, MNK_POSES_ESCAPE_E)
          base_pose = temp_pose if temp_pose != nil
        end
      end
    when 1  # Skill
      rush_type = MNK_RUSH_SKILL
      if MNK_MOVING_SKILL.include?(@skill_used) ; full_moving = true ; end
      if MNK_MOVE2CENTER_SKILL.include?(@skill_used) ; center_move = true ; end        
      base_pose = pose_obtain(battler, MNK_POSE9, MNK_APOSE9, MNK_EPOSE9)
      base_pose2 = pose_array_obtain(battler, MNK_POSES_SKILLS, MNK_POSES_SKILLS_A, MNK_POSES_SKILLS_E, @skill_used)
      base_pose = base_pose2 if base_pose2 != nil
    when 2  # Item
      rush_type = MNK_RUSH_ITEM
      if MNK_MOVING_ITEM.include?(@item_used) or @item_scope == 1..2 ; full_moving = true ; end
      if MNK_MOVE2CENTER_ITEM.include?(@item_used); center_move = true; end
      base_pose = pose_obtain(battler, MNK_POSE8, MNK_APOSE8, MNK_EPOSE8)
      base_pose2 = pose_array_obtain(battler, MNK_POSES_ITEMS, MNK_POSES_ITEMS_A, MNK_POSES_ITEMS_E, @item_used)
      base_pose = base_pose2 if base_pose2 != nil
    end

    # Only perform action if 'Do Nothing' flag is off, ie... doing something...
    if dn_flag != true
      # Control Movement and use current pose 
      @moved = {} unless @moved
      return if @spriteset.battler(battler).moving
      if not (@moved[battler] or battler.guarding?)
        offset = offset_value(battler)        
        if rush_type        # Steps forward
          @spriteset.battler(battler).setmove(battler.screen_x - offset, battler.screen_y + 1, battler.screen_z)
        end
        if full_moving      # Runs to target
          @spriteset.battler(battler).setmove(target.screen_x + offset, target.screen_y - 1, target.screen_z + 10)
        end
        if center_move      # Runs to center
          @spriteset.battler(battler).setmove(320+(offset/4), battler.screen_y-1, battler.screen_z)
        end
        @moved[battler] = true
        return
        @spriteset.battler(battler).pose = base_pose
      elsif not battler.guarding?
        @spriteset.battler(battler).pose = base_pose
        @spriteset.battler(battler).setmove(battler.screen_x, battler.screen_y, battler.screen_z)
      end
     
      # Finish Up Skill and Item Use
      case battler.current_action.kind
      when 1
        # Flag system that skill was used
        battler.casted = false
        battler.casting = false
        @spriteset.battler(battler).skill_used =
 
trum853;266281 said:
You'll need to tell us the script you're using or we can't help. Looks to me like Minkoff's Animated Battlers.

Well, I know what you've done wrong, but I don't know how to fix it since I had a look at the script and had a "Too long, i'm not reading that unless I have to" moment.

Tell us the exact name of the script you're using and it'll help us help you.

Here is the script you wanted to check the problem out. But i don't think the script is wrong because it worked with other charsets but it uses the whole charset image as one single character.

Thanks for your coorperation
 
Code:
  # Individual Spritesheet Control Center
  #--------------------------------------------------------------------------        
  MNK_POSES_ENEMY         = {1 => 4}  # ID and # of poses for each enemy
  MNK_FRAMES_ENEMY        = nil       # ID and # of frames for each enemy
  MNK_POSES_ACTOR         = {2 => 4}  # ID and # of poses for each actor
  MNK_FRAMES_ACTOR        = nil       # ID and # of frames for each actor.
You have to setup these constants to fit with your battlers. Only basil and the ghosts have the charset setup (4 poses).
 
I didn't look at the youtube video (on a laptop right now), but it sounds like you want 'all' charsets for your battlesystem, right?

First, let's make Basil a normal spritesheet and not a default RTP battler, 'kay?
# * Default Battler Style Switches
#--------------------------------------------------------------------------
DEFAULT_ENEMY = false # If true, these switches allows the use
DEFAULT_ACTOR = false # of default battlers for actors/enemies
DEFAULT_ENEMY_ID = [] # Ids of enemies using default battlers
DEFAULT_ACTOR_ID = [] # Ids of actors using default battlers
DEFAULT_COLLAPSE_ACTOR = false # If true, restores the old 'red fade'
DEFAULT_COLLAPSE_ENEMY = false[/FONT]

Now let's set the standard number of poses for all your battlers to '4' and not '11' which is the typical Minkoff standard.
# * Animation Frames and Animation Speed
#--------------------------------------------------------------------------
MNK_SPEED = 4 # Framerate speed of the battlers
MNK_RUSH_SPEED = 1.5 # Melee/Skill/Item motion speed of the battlers
MNK_POSES = 4 # Maximum # of poses (stances) in the template
MNK_FRAMES = 4 # Maximum # of frames in each pose
MNK_FRAMES_STANDARD = 4 # Standard # of frames played in each pose.[/FONT]

With that done, we don't need to flag Basil and the Ghost to be the only ones set to '4' frames. Let's remove those conditions.
# Individual Spritesheet Control Center
#--------------------------------------------------------------------------
MNK_POSES_ENEMY = nil # ID and # of poses for each enemy
MNK_FRAMES_ENEMY = nil # ID and # of frames for each enemy
MNK_POSES_ACTOR = nil # ID and # of poses for each actor
MNK_FRAMES_ACTOR = nil # ID and # of frames for each actor.[/FONT]

Now, let's change the actual 'Template' which sets up which pose in your charset is used for what action state. THIS is what allows you to use various types of spritesheets. The setup below is used for CHARSET battlers.
# Editable Template (Some people wanted to change their template design)
#--------------------------------------------------------------------------
MNK_POSE1 = 2 # Sets the 'Ready Pose' (MNK_POSE1) #1 in your template
MNK_POSE2 = 2 # Sets the 'Struck Pose' (MNK_POSE2) #2 in your template
MNK_POSE3 = 2 # Sets the 'Woozy Pose' (MNK_POSE3) #3 in your template
MNK_POSE4 = 2 # Sets the 'Block Pose' (MNK_POSE4) #4 in your template
MNK_POSE5 = 2 # Sets the 'Charge Pose' (MNK_POSE5) #5 in your template
MNK_POSE6 = 3 # Sets the 'Retreat Pose'(MNK_POSE6) #6 in your template
MNK_POSE7 = 2 # Sets the 'Attack Pose' (MNK_POSE7) #7 in your template
MNK_POSE8 = 2 # Sets the 'Item Pose' (MNK_POSE8) #8 in your template
MNK_POSE9 = 2 # Sets the 'Skill Pose' (MNK_POSE9) #9 in your template
MNK_POSE10 = 1 # Sets the 'Victory Pose'(MNK_POSE10) #10 in your template
MNK_POSE11 = 4 # Sets the 'Defeat Pose' (MNK_POSE11) #11 in your template[/FONT]

The first pose (#1) of the charset faces up, hence calling on MNK_POSE10, the second pose (#2) of the charset is used mostly everywhere and faces to the left. The third pose is used by MNK_POSE6 to retreat as it faces the right. Finally, the fourth pose faces up (to look face down in the dirt) as he's dead.

And as you're not needing to specify Basil or the ghost as charsets as that is the default in your system, we can change and empty the next two templates:

# Editable Template (for Custom Actor Spritesheets)
#--------------------------------------------------------------------------
MNK_APOSE1 = {}
MNK_APOSE2 = {}
MNK_APOSE3 = {}
MNK_APOSE4 = {}
MNK_APOSE5 = {}
MNK_APOSE6 = {}
MNK_APOSE7 = {}
MNK_APOSE8 = {}
MNK_APOSE9 = {}
MNK_APOSE10 = {}
MNK_APOSE11 = {} [/FONT]

Same emptying proceedure for the Enemy. Simple.
 
DerVVulfman;266535 said:
I didn't look at the youtube video (on a laptop right now), but it sounds like you want 'all' charsets for your battlesystem, right?

Ty man that was one of the mos helpfull things ive ever hear here.
I should check it out right now but i can't cuz im going to a metal concert.

Iff i come in trouble with this i will reply between

26 august and 4 september

Thanks for your coorperation
 
Ok the normal charset battlers work now.
So when I get this right. When I set everything to normal again and I draw some extra poses with the normal charsets till I have 11 poses.Then the script wil work right? So the script went mad because he didn't found 11 poses?

Corrigate me if wrong
 
Basically what I did was:
  1. Describe how to turn off RTP battlers
  2. Describe hpw to change the number of poses to 4, not 11
  3. Change the 'basic' template around to use 4 pose charsets.

I recommend editing your charset battlers so the guy looks like he's face down in the dirt if dead. A little image rotation would do.

The stuff for the individual battler controls (setting Basil and the Ghost's personal battler to charset) was unnecessary, but I like to be thorough.

Also with this system, you can go and have 12, 13, 15, 22 poses if you want. ;) You can create a few more poses for things like 'Casting' poses, poses for special moves or what-have-you. Just look in the topic for info on what you can create. :D
 

Thank you for viewing

HBGames is a leading amateur video game development forum and Discord server open to all ability levels. Feel free to have a nosey around!

Discord

Join our growing and active Discord server to discuss all aspects of game making in a relaxed environment. Join Us

Content

  • Our Games
  • Games in Development
  • Emoji by Twemoji.
    Top