iPhone App Directory
RPG Maker VX
 
Gallery Members Search Calendar Help


Welcome Guest ( Log In | Register )

Collapse

>Announcement

The 2nd Quarter Contest has arrived! Go check it out in the Community Announcements now!
7 Pages V   1 2 3 > »   
Reply to this topicStart new topic
> RSSBS - Reedo's Simple Side Battle System, A simple, highly compatible, plug-and-play, SBS.
Rating 5 V
Reedo
post Jan 7 2010, 06:36 AM
Post #1



Group Icon


Type: Coder




Reedo's Simple Side Battle System (RSSBS)

Version 1.0
January 07, 2010
(Update for Ace - Sept 13, 2013 - See below)

By Reedo


References
None. This is an original script by Reedo.

Description
While there are a number of existing SBS scripts out there, most of them require a fair-to-significant amount of configuration to use, and are often incompatible with many other scripts.

However, for a simple, classic "Final Fantasy" feel, the SBS does not have to be all that complex. And it can be written in such a way as to maintain a high level of compatibility.

This script is my attempt at doing just that; creating a simple to use (plug-and-play), highly compatible, side-battle-system.

The script has gone through a fair amount of testing and has proven pretty solid so far. The original support thread can be found here:
http://www.rpgmakervx.net/index.php?showtopic=24587

Please read it first if you have any problems, or find an incompatibility with another script.

I also plan to release additional functionality in a series of expansion scripts. These will be optional scripts to further enhance the SBS experience. The first of these is an enhancement for the YEZ Victory Aftermath script, and is attached to this post. Watch for updates, as I will continue to add expansions to this post until it becomes unreasonable to do so.

Features

The Simple SBS provides a classic "FF"-style side-battle experience.

This script will:
Spoiler:

  • Draw the party on the right side of the screen, facing left, during batle.
  • Cause actors to perform their stepping animation when they are on the ground, and have no state restrictions applied.
  • Place a shadow under the actor.
  • Provide a target for animations, and optionally, animations themselves.
  • Line up actors in a staggerd row, top to bottom, with adjustable spacing, recessed according to the position value of their class.
  • Cause actors to step forward when performing an action.
  • Draw actors lying down, whitened, and semi-transparent when dead.
  • Cause living actors to do a victory dance at the end of battle.
  • Provide the option to horizontally flip enemy images by enemy ID.



Screen Shots

These are screen shots of just the SBS by itself:
Spoiler:

The battle begins!



An actor attacks the enemy...



The party wins, and does their default "hop-and-twirl" victory dance.



These are screen shots of the YEZ-RSSBS demo with all scripts in place:
Spoiler:

The battle begins!



An actor attacks the enemy...



An enemy attacks an actor!



The party wins the battle, and victory is displayed!



Finally the Victory Aftermath is displayed.



Known Bugs
None.

Please report any on the support thread if found: http://www.rpgmakervx.net/index.php?showtopic=24587

Requirements
None. This is a stand-alone script.

However, for the best experience, the use of YEZ is suggested.

Installation
Plug-and-Play

Just drop it under materials; be sure to install under all YEZ scripts if used.

Compatibility
Should be compatible with most other scripts.

This script only does a minor overwrite of one method. It should be compatible with other scripts providing they do no overwrite, and highly-modify, the default battle system.

Demo
Two demos are attached. RSSBS-Demo contains just the SBS script. DemoYEZ-with-RSBSS is the Yanfly YEZ demo with the SBS, the Victory Splash & Wait - RSSBS-YEZ Victory Aftermath enhancement script, and Reedo's Tile Based Battle Backgrounds installed.

Script
This is the complete script.

Spoiler:

CODE
###############################################################################
##  RSSBS - Reedo's Simple Side Battle System
##  Version 1.0
##  January 7, 2010
##  By Reedo
###############################################################################
##  SOURCE
##
##  Source thread:
##
##
##  Support thread:
##    http://www.rpgmakervx.net/index.php?showtopic=24587
###############################################################################
##  REFERENCES
##
##  None.  This is an original script by Reedo.
##  However other people have contributed ideas and bug finds. Please see the
##  support thread link above for details.
###############################################################################
##  DESCRIPTION
##
##  This script provides a plug-and-play Side Battle System for the default
##  battle system. This is purely an asthetic script, and as such, it only
##  modifies the visuals of the battle. It does not modify battle mechanics
##  when used by itself.
##
##  This script will:
##  1) Draw the party on the right side of the screen, facing left, during batle.
##  2) Cause actors to perform their stepping animation when they are on the
##     ground, and have no state restrictions applied.
##  3) Place a shadow under the actor.
##  4) Provide a target for animations, and optionally, animations themselves.
##  5) Line up actors in a staggerd row, top to bottom, with adjustable spacing,
##     recessed according to the position value of their class.
##  6) Cause actors to step forward when performing an action.
##  7) Draw actors lying down, whitened, and semi-transparent when dead.
##  8) Cause living actors to do a victory dance at the end of battle.
##  9) Provide the option to horizontally flip enemy images by enemy ID.
##
##  When used with the YERD or YEZ battle scripts, you then get even more
##  animation options (such as casting animations) and popups for most battle
##  event messages.  This SBS and YEZ combine to form an amazing SBS experience!
##     YEZ Script Link:  http://www.pockethouse.com/yez/
###############################################################################
##  COMPATIBILITY
##
##  Should be compatible with most other scripts.
##
##  This script overwrites 1 method: Spriteset_Battle.update_actors
##  All other methods are aliased, and those aliases are called.
##  The one overwrite should not cause an issue as the only functionality it
##  supresses is setting the party members to the current battle sprites. The
##  rest of the original method is maintained, and this script handles the
##  relationship between party members and battle sprites.
###############################################################################
##  REQUIREMENTS
##
##  None
###############################################################################
##  INSTALLATION
##
##  Plug-and-play. (and this time I mean it for reals!)
##
##  Insert below Materials, above other Reedo scripts.
##  All Reedo scripts should be below all YERD/YEZ scripts.
###############################################################################
##  RIGHTS & RESTRICTIONS
##
##  As with most Reedo scripts, this script is free to re-use, as-is,
##  in personal, educational, and commercial RPGVX development projects,
##  providing that:  this script, as well as the rpgmakervx.net forum link  
##  from which it was obtained, are credited in writing displayed readily
##  to the user of the final compiled code assembly.
##
##  Reedo and rgpmakervx.net retain all rights of intellect and ownership.
##  You forego all rights of warranty by utilizing this script.
###############################################################################
##  USAGE
##
##  Plug and play.  Suggested to use YEZ Battle Engine Zealous, and Reedo's
##  Tile-Based Battle Backgrounds scripts.
##
##  Some visual options can be modified below.
###############################################################################

###############################################################################
##  USER OPTIONS
###############################################################################
module REEDO_SBS

# If desired, you can modify the default script options using the constants
# below. In most cases though, you should not need to adjust these values.
  
###############################################################################
## This section controls the battle animations provided by this script
###############################################################################
  # This controls whether or not this script will provide animations during
  # battle. Set to 'true' when using this script without any other battle scene
  # enhancements. Set to 'false' when using battle scene enhancements such
  # as YEZ/YERD. Default is 'false'.
  SBS_ACTION_ANIMES = false
  
  # If this script is providing animations, then you can specify which
  # animations to use a default.
  SBS_DEFAULT_ATTACK_ANIME = 19
  # Skill and item animations will use the animation assigned to the skill or
  # item, if any. If none is assigned, then the default will be used. Specify
  # a value of 0 if you do not want a default animation. These values have no
  # effect if SBS_ACTION_ANIMES is set to 'false'.
  SBS_DEFAULT_SKILL_ANIME = 1
  SBS_DEFAULT_ITEM_ANIME = 1
  
###############################################################################
## This section adjusts the actors positions on screen
###############################################################################
  ACTOR_START_LINE = 432        # The left-most position of the first actor
  ACTOR_START_TOP = 80          # The top-most position of the first actor
  ACTOR_STAGGER_HORZ = 8        # The amount to recess each actor to the right
  ACTOR_STAGGER_VERT = 16       # The vertical spacing between characters
  ACTOR_CLASS_POS_STAGGER = 16  # The extra distance to the right for class position
  ACTOR_STEP_IN_DISTANCE = 64   # The distance an actor steps in during an action
  ACTOR_STEP_IN_RATE = 8        # The rate at which the actor covers the distance
  
###############################################################################
## This section controls when an actor displays their stepping animation
###############################################################################
  # If an actor has a state applied which has a restriction value listed in
  # the following array, the actor will not display their stepping animation
  # until the state is removed.
  NO_STEP_RESTRICTIONS = [4, 5]
  # Has the same effect as above, but halts the stepping animation based on
  # the state's ID, without regard to the state's restriction.
  NO_STEP_STATES = []
  
###############################################################################
## This section adjusts the appearance of an actor when dead
###############################################################################
  ACTOR_DEATH_OPACITY = 175              # The tranparency of dead actors
  ACTOR_DEATH_ANGLE = 270                # The angle to rotate the body
  ACTOR_DEATH_TONE = [128, 128, 128, 0]  # A color tone to apply to the image
  ACTOR_DEATH_OFFSET_X = -8              # A horizontal offset to move the body by
  ACTOR_DEATH_OFFSET_Y = -8              # A vertical offset to move the body by
  
###############################################################################
## This section adjusts the actor's shadow
###############################################################################
  ACTOR_SHADOW_IMAGE = "Shadow"       # The name of the system image to use
  ACTOR_SHADOW_CUSTOM_PICTURE = nil   # The name of a resource picture to use instead; nil to use system image
  ACTOR_SHADOW_OFFSET_X = 0           # The horizontal offset to the actor's position
  ACTOR_SHADOW_OFFSET_Y = 8           # The vertical offset to the actor's position
  ACTOR_DEATH_SHADOW_OFFSET_X = 8     # Additional X offset added when dead
  ACTOR_DEATH_SHADOW_OFFSET_Y = 2     # Additional Y offset added when dead
  
###############################################################################
## This section adjusts the victory dance
###############################################################################
  VICTORY_DANCE_JUMP_HEIGHT = 16    # The height of the jump
  VICTORY_DANCE_JUMP_INCREMENT = 2  # The rate of jump movement
  VICTORY_DANCE_JUMP_HOVER = 4      # The number of frames to wait in the air
  VICTORY_DANCE_JUMP_WAIT = 70      # The number of frames before jumping again
  VICTORY_DANCE_JUMP_TWIST = true   # True to twirl when jumping; false to face forward
  
###############################################################################
## This section adjusts the battle floor location
###############################################################################
  BATTLE_FLOOR_TOP = 128  # Allows you to set the top of the battle floor
  
###############################################################################
## This section adjusts enemy images
###############################################################################
  # Specify the ID of enemies who should have their image flipped in battle
  FLIP_ENEMY = [
                2, 3, 4, 5, 8, 10, 12, 13, 14, 16, 17,
                18, 19, 21, 22, 23, 25, 28, 29,
                
               ]
  
end
###############################################################################
##  MAIN SCRIPT
###############################################################################
##  EDITS BEYOND THIS POINT ARE AT YOUR OWN RISK!!!
###############################################################################
class Game_Battler
  alias reedo_sbs_gb_add_state add_state
  def add_state(state_id)
    reedo_sbs_gb_add_state(state_id)
    if self.is_a?(Game_Actor) and $scene.is_a?(Scene_Battle)
      bs = $scene.reedo_get_battle_sprite(reedo_battle_sprite_id)
      return if bs == nil
      bs.reedo_bc_sprite.character.step_anime = reedo_check_step_anime
      reedo_update_life_state
    end
  end
  
  alias reedo_sbs_gb_remove_state remove_state
  def remove_state(state_id)
    reedo_sbs_gb_remove_state(state_id)
    if self.is_a?(Game_Actor) and $scene.is_a?(Scene_Battle)
      bs = $scene.reedo_get_battle_sprite(reedo_battle_sprite_id)
      return if bs == nil
      bs.reedo_bc_sprite.character.step_anime = reedo_check_step_anime
      reedo_update_life_state
    end    
  end
  
  def reedo_check_step_anime
    return false if dead?
    for state in states
      return false if REEDO_SBS::NO_STEP_STATES.include?(state.id)
      return false if REEDO_SBS::NO_STEP_RESTRICTIONS.include?(state.restriction)
    end
    return true
  end
  
  def reedo_update_life_state(battle_sprite = nil)
    if dead?
      if !@reedo_dead_set
        reedo_set_dead_state(battle_sprite)
        @reedo_dead_set = true
      end
    else
      if @reedo_dead_set
        reedo_set_live_state(battle_sprite)
        @reedo_dead_set = false
      end
    end
  end
  
  def reedo_reset_dead_set
    @reedo_dead_set = false
  end
  
  def reedo_set_dead_state(battle_sprite = nil)
    if battle_sprite == nil
      bs = $scene.reedo_get_battle_sprite(reedo_battle_sprite_id)
    else
      bs = battle_sprite
    end
    return if bs == nil
    return if bs.reedo_bc_sprite.is_dead
    bs.reedo_bc_sprite.angle = REEDO_SBS::ACTOR_DEATH_ANGLE
    tone = REEDO_SBS::ACTOR_DEATH_TONE
    bs.reedo_bc_sprite.tone.set(tone[0], tone[1], tone[2], tone[3])
    bs.reedo_bc_sprite.character.opacity = REEDO_SBS::ACTOR_DEATH_OPACITY
    bs.reedo_bc_sprite.character.screen_x += REEDO_SBS::ACTOR_DEATH_OFFSET_X
    bs.reedo_bc_sprite.character.screen_y += REEDO_SBS::ACTOR_DEATH_OFFSET_Y
    bs.reedo_bc_sprite.shadow_sprite.x += REEDO_SBS::ACTOR_DEATH_SHADOW_OFFSET_X
    bs.reedo_bc_sprite.shadow_sprite.y += REEDO_SBS::ACTOR_DEATH_SHADOW_OFFSET_Y    
    bs.reedo_bc_sprite.is_dead = true
  end
  
  def reedo_set_live_state(battle_sprite = nil)
    if battle_sprite == nil
      bs = $scene.reedo_get_battle_sprite(reedo_battle_sprite_id)
    else
      bs = battle_sprite
    end
    return if bs == nil
    return if bs.reedo_bc_sprite.is_dead != true
    bs.reedo_bc_sprite.angle = 0
    bs.reedo_bc_sprite.tone.set(0, 0, 0, 0)
    bs.reedo_bc_sprite.character.opacity = 255
    bs.reedo_bc_sprite.character.screen_x -= REEDO_SBS::ACTOR_DEATH_OFFSET_X
    bs.reedo_bc_sprite.character.screen_y -= REEDO_SBS::ACTOR_DEATH_OFFSET_Y
    bs.reedo_bc_sprite.shadow_sprite.x -= REEDO_SBS::ACTOR_DEATH_SHADOW_OFFSET_X
    bs.reedo_bc_sprite.shadow_sprite.y -= REEDO_SBS::ACTOR_DEATH_SHADOW_OFFSET_Y
    bs.reedo_bc_sprite.is_dead = false
  end
end

class Game_Actor
  attr_accessor :reedo_battle_sprite_id
  attr_accessor :screen_x
  attr_accessor :screen_y
end

class Game_Actors
  def members
    return @data
  end
end

class Game_Troop
  def troop_id
    return @troop_id
  end
end

class Game_Character  
  alias reedo_sbs_gc_screen_x screen_x
  def screen_x
    if $scene.is_a?(Scene_Battle)
      return @battle_screen_x
    else
      return reedo_sbs_gc_screen_x
    end
  end

  alias reedo_sbs_gc_screen_y screen_y
  def screen_y
    if $scene.is_a?(Scene_Battle)
      return @battle_screen_y
    else
      return reedo_sbs_gc_screen_y
    end
  end
  
  def opacity=(value)
    @opacity = value
  end
  def screen_x=(value)
    @battle_screen_x = value
  end
  def screen_y=(value)
    @battle_screen_y = value
  end
  def step_anime
    return @step_anime
  end
  def step_anime=(value)
    @step_anime = value
  end
end

class Sprite_Base
  attr_accessor :reedo_victory_wait
end

class Sprite_Character
  attr_accessor :shadow_sprite
  attr_accessor :is_dead
  
  alias reedo_sbs_sc_dispose dispose
  def dispose
    @shadow_sprite.dispose if @shadow_sprite != nil
    reedo_sbs_sc_dispose
  end
  
  def create_shadow_sprite
    @shadow_sprite = Sprite_Base.new(self.viewport)
    bmp = Cache.picture(REEDO_SBS::ACTOR_SHADOW_CUSTOM_PICTURE) if REEDO_SBS::ACTOR_SHADOW_CUSTOM_PICTURE != nil
    bmp = Cache.system(REEDO_SBS::ACTOR_SHADOW_IMAGE) if bmp == nil
    @shadow_sprite.bitmap = bmp
    @shadow_sprite.src_rect = Rect.new(0, 0, bmp.width, bmp.height)
    @shadow_sprite.x = self.x - self.ox + REEDO_SBS::ACTOR_SHADOW_OFFSET_X
    @shadow_sprite.y = self.y - self.oy + REEDO_SBS::ACTOR_SHADOW_OFFSET_Y
    @shadow_sprite.z = self.z - 1
  end
  
  alias reedo_sbs_sc_update update
  def update
    reedo_sbs_sc_update
    @shadow_sprite.update if @shadow_sprite != nil
  end
end

class Sprite_Battler
  attr_accessor :reedo_bc_sprite

  alias reedo_sbs_sb_dispose dispose
  def dispose
    @reedo_bc_sprite.dispose if @reedo_bc_sprite != nil
    reedo_sbs_sb_dispose
  end
  
  alias reedo_sbs_sb_update update
  def update
    reedo_sbs_sb_update
    @reedo_bc_sprite.update if @reedo_bc_sprite != nil
  end
end

class Spriteset_Battle
  alias reedo_sbs_ssb_create_battlefloor create_battlefloor
  def create_battlefloor
    reedo_sbs_ssb_create_battlefloor
    @battlefloor_sprite.y = REEDO_SBS::BATTLE_FLOOR_TOP
  end
  
  alias reedo_sbs_ssb_create_actors create_actors
  def create_actors
    if @actor_sprites != nil
      dispose_actors
    end
    reedo_sbs_ssb_create_actors
    @reedo_start_points = {}
    @actor_sprites = []
    i = 1
    for actor in $game_party.members
      actor.reedo_battle_sprite_id = i - 1        
      gc = Game_Character.new
      gc.set_graphic(actor.character_name, actor.character_index)
      gc.set_direction(4)
      gc.screen_x = 0; gc.screen_y = 0
      bc = Sprite_Character.new(@viewport1, gc)
      gc.screen_x = REEDO_SBS::ACTOR_START_LINE +
                    ($data_classes[actor.class_id].position *
                    REEDO_SBS::ACTOR_CLASS_POS_STAGGER) +
                    ((i - 1) * REEDO_SBS::ACTOR_STAGGER_HORZ)
      gc.screen_y = REEDO_SBS::ACTOR_START_TOP + ((bc.height * i) +
                    (REEDO_SBS::ACTOR_STAGGER_VERT * i))
      actor.screen_x = gc.screen_x; actor.screen_y = gc.screen_y
      sb = Sprite_Battler.new(@viewport1, actor)
      sb.reedo_victory_wait = REEDO_SBS::VICTORY_DANCE_JUMP_HOVER
      sb.reedo_bc_sprite = bc
      gc.step_anime = actor.reedo_check_step_anime
      @reedo_start_points[sb] = [gc.screen_x, gc.screen_y]
      @actor_sprites.push(sb)  
      bc.update
      bc.create_shadow_sprite
      actor.reedo_reset_dead_set
      actor.reedo_update_life_state(sb)
      i += 1
    end
  end
  
  alias reedo_sbs_ssb_create_enemies create_enemies
  def create_enemies
    reedo_sbs_ssb_create_enemies
    for sprite in @enemy_sprites
      if REEDO_SBS::FLIP_ENEMY.include?(sprite.battler.enemy_id)
        sprite.mirror = true
      end
    end
  end
  
  def update_actors
    if $scene.is_a?(Scene_Battle)
      if $scene.victory_dance_time
        reedo_update_victory_dance
      end
    end    
    for sprite in @actor_sprites
      sprite.reedo_bc_sprite.character.update
      sprite.update
    end
  end
  
  def reedo_get_battle_sprite(sprite_id)
    return nil if !sprite_id.is_a?(Fixnum)
    return nil if sprite_id < 0
    return nil if sprite_id >= @actor_sprites.length
    return @actor_sprites[sprite_id]
  end
  
  def reedo_update_victory_dance
    if @victory_delta == nil
      @victory_delta = -REEDO_SBS::VICTORY_DANCE_JUMP_INCREMENT
      for sp in @actor_sprites
        sp.reedo_bc_sprite.character.step_anime = false
      end
    end
    for sp in @actor_sprites
      next if sp.battler.reedo_check_step_anime == false
      stpt = @reedo_start_points[sp]
      if sp.reedo_bc_sprite.character.screen_y < stpt[1] - REEDO_SBS::VICTORY_DANCE_JUMP_HEIGHT
        if sp.reedo_victory_wait <= 0
          @victory_delta = REEDO_SBS::VICTORY_DANCE_JUMP_INCREMENT
          sp.reedo_victory_wait = REEDO_SBS::VICTORY_DANCE_JUMP_WAIT
        else
          @victory_delta = 0
          sp.reedo_victory_wait -= 1
        end
      end
      if sp.reedo_bc_sprite.character.screen_y > stpt[1]
        if sp.reedo_victory_wait <= 0
          @victory_delta = -REEDO_SBS::VICTORY_DANCE_JUMP_INCREMENT
          sp.reedo_victory_wait = REEDO_SBS::VICTORY_DANCE_JUMP_HOVER
          sp.reedo_bc_sprite.character.step_anime = false
        else
          @victory_delta = 0
          sp.reedo_victory_wait -= 1
          sp.reedo_bc_sprite.character.step_anime = true if !sp.reedo_bc_sprite.character.step_anime
        end
      end
      if REEDO_SBS::VICTORY_DANCE_JUMP_TWIST
        if sp.reedo_bc_sprite.character.screen_y <= stpt[1]
          if (sp.reedo_bc_sprite.character.screen_y - stpt[1]) % (REEDO_SBS::VICTORY_DANCE_JUMP_HEIGHT / 4) == 0
            case sp.reedo_bc_sprite.character.direction
            when 4; sp.reedo_bc_sprite.character.set_direction(2)
            when 2; sp.reedo_bc_sprite.character.set_direction(6)
            when 6; sp.reedo_bc_sprite.character.set_direction(8)
            when 8; sp.reedo_bc_sprite.character.set_direction(4)
            end
          end
        else
          sp.reedo_bc_sprite.character.set_direction(4) if sp.reedo_bc_sprite.character.direction != 4
        end
      end
      sp.reedo_bc_sprite.character.screen_y += @victory_delta
      sp.battler.screen_y += @victory_delta
    end
  end
end

class Scene_Battle
  attr_reader :victory_dance_time
  
  alias reedo_sbs_sb_start start
  def start
    reedo_sbs_sb_start
    @current_party = $game_party.members
  end
  
  alias reedo_sbs_sb_terminate terminate
  def terminate
    reedo_teardown_actors
    reedo_sbs_sb_terminate
  end
  
  alias reedo_sbs_sb_update update
  def update
    if @current_party != $game_party.members
      @spriteset.create_actors
      @current_party = $game_party.members
    end
    reedo_sbs_sb_update
  end
  
  alias reedo_sbs_sb_execute_action_attack execute_action_attack
  def execute_action_attack
    reedo_do_execute_action("attack")
  end

  alias reedo_sbs_sb_execute_action_skill execute_action_skill
  def execute_action_skill
    reedo_do_execute_action("skill")
  end
  
  alias reedo_sbs_sb_execute_action_item execute_action_item
  def execute_action_item
    reedo_do_execute_action("item")
  end
  
  alias reedo_sbs_sb_process_victory process_victory
  def process_victory
    @victory_dance_time = true
    reedo_sbs_sb_process_victory
  end
  
  def reedo_get_battle_sprite(sprite_id)
    return @spriteset.reedo_get_battle_sprite(sprite_id)
  end
  
  def reedo_teardown_actors
    for actor in $game_actors.members
      actor.reedo_battle_sprite_id = nil if actor != nil
    end
  end
  
  def reedo_do_execute_action(action_method)
    targets = @active_battler.action.make_targets
    if @active_battler.is_a?(Game_Actor)
      reedo_actor_step_in
      if REEDO_SBS::SBS_ACTION_ANIMES
        targets.each do |t|
          if t.is_a?(Game_Actor)
            bs = reedo_get_battle_sprite(t.reedo_battle_sprite_id)
            bs.reedo_bc_sprite.character.animation_id = eval("reedo_get_" + action_method + "_animation") if bs != nil
          end
        end
      end
      eval("reedo_sbs_sb_execute_action_" + action_method)
      reedo_actor_step_back
    else
      if REEDO_SBS::SBS_ACTION_ANIMES
        targets.each do |t|
          if t.is_a?(Game_Actor)
            bs = reedo_get_battle_sprite(t.reedo_battle_sprite_id)
            bs.reedo_bc_sprite.character.animation_id = eval("reedo_get_" + action_method + "_animation") if bs != nil
          end
        end
      end
      eval("reedo_sbs_sb_execute_action_" + action_method)
    end
  end
  
  def reedo_get_attack_animation
    return REEDO_SBS::SBS_DEFAULT_ATTACK_ANIME
  end
  
  def reedo_get_skill_animation
    skill = $data_skills[@active_battler.action.skill_id]
    aid = REEDO_SBS::SBS_DEFAULT_SKILL_ANIME
    aid = skill.animation_id if skill.animation_id > 0    
    return aid
  end

  def reedo_get_item_animation
    item = $data_items[@active_battler.action.item_id]
    aid = REEDO_SBS::SBS_DEFAULT_ITEM_ANIME
    aid = item.animation_id if item.animation_id > 0    
    return aid
  end
  
  def reedo_actor_step_in
    delta = 0
    dr = REEDO_SBS::ACTOR_STEP_IN_RATE
    while delta < REEDO_SBS::ACTOR_STEP_IN_DISTANCE
      bs = reedo_get_battle_sprite(@active_battler.reedo_battle_sprite_id)
      return if bs == nil
      bs.reedo_bc_sprite.shadow_sprite.x -= dr
      bs.reedo_bc_sprite.character.screen_x -= dr
      bs.battler.screen_x -= dr
      Graphics.update
      @spriteset.update
      delta += dr
    end
  end
  
  def reedo_actor_step_back
    delta = 0
    dr = REEDO_SBS::ACTOR_STEP_IN_RATE
    while delta < REEDO_SBS::ACTOR_STEP_IN_DISTANCE
      bs = reedo_get_battle_sprite(@active_battler.reedo_battle_sprite_id)
      return if bs == nil
      bs.reedo_bc_sprite.shadow_sprite.x += dr
      bs.reedo_bc_sprite.character.screen_x += dr
      bs.battler.screen_x += dr
      Graphics.update
      @spriteset.update
      delta += dr
    end
  end
end



Victory Splash & Wait - RSSBS-YEZ Victory Aftermath Enhancement

This enhancement script provides a victory "scene" before the YEZ Victory Aftermath scene is shown. During this wait, a victory splash image can be shown and an additional sound effect can be played. This wait gives the player a chance to view the actor's victory dance. The player presses "C" or "A" to continue to the YEZ Victory Aftermath.

Script
This is the complete script.

Spoiler:

CODE
###############################################################################
##  Victory Splash & Wait
##  RSSBS-YEZ Victory Aftermath Enhancement
##  Version 1.0
##  January 5, 2010
##  By Reedo
###############################################################################
##  SOURCE
##
##  Source thread:
##
##
##  Support thread:
##    http://www.rpgmakervx.net/index.php?showtopic=24587
###############################################################################
##  REFERENCES
##
##  None.  This is an original script by Reedo.
##  However other people have contributed ideas and bug finds. Please see the
##  support thread link above for details.
###############################################################################
##  DESCRIPTION
##
##  This script adds a delay between the victory in battle, and the display of
##  the YEZ Victory Aftermath scene. This gives the player a chance to view
##  your SBS victory dance, before going into the Aftermath. The player will
##  need to press A or C to continue to the aftermath. During this wait, you
##  may display a victory splash graphic to the user and play a sound effect.
##  If a victory splash image is used, it will start at 1% of its original
##  size and zoom out to 100% before the wait delay begins.
###############################################################################
##  COMPATIBILITY
##
##  Compatible with RSSBS and YEZ.  
##  Should be compatible with other YEZ-compatible scripts.
###############################################################################
##  REQUIREMENTS
##
##  YEZ Victory Aftermath (and any subsequent required scripts)
##  Reedo's Simple SBS
###############################################################################
##  INSTALLATION
##
##  Plug-and-play, however, the victory splash image must be added if used.
##
##  Insert below Simple SBS.
###############################################################################
##  RIGHTS & RESTRICTIONS
##
##  As with most Reedo scripts, this script is free to re-use, as-is,
##  in personal, educational, and commercial RPGVX development projects,
##  providing that:  this script, as well as the rpgmakervx.net forum link  
##  from which it was obtained, are credited in writing displayed readily
##  to the user of the final compiled code assembly.
##
##  Reedo and rgpmakervx.net retain all rights of intellect and ownership.
##  You forego all rights of warranty by utilizing this script.
###############################################################################
##  USAGE
##
##  Add a victory splash image to resources/pictures if you want to use a
##  splash image during victory wait.
##
##  Some options can be modified below.
###############################################################################

###############################################################################
##  USER OPTIONS
###############################################################################
module REEDO_SSBS_VEX
  # This value sets a picture to show during victory. This picture will initially
  # be displayed at 1% of it's original size.  It will then zoom in at the
  # increment specified below, until it has reached 100% of its original size.
  VICTORY_SPLASH_IMAGE = "Victory"
  
  # This is the amount by which the victory splash image will zoom in on each
  # frame, after intially being displayed, until it has reached 100%.
  VICTORY_SPLASH_ZOOM_RATE = 0.02  # Zoom increases by 2% per frame
  
  # This is a sound effect played in conjunciton with showing the splash image.
  VICTORY_SPLASH_SE = RPG::SE.new("Flash2")
  
  # This is the number of frames to wait, after a splash image has finished
  # displaying, before the user can press C or A to advance to the Aftermath.
  VICTORY_SPLASH_WAIT = 30
  
  # By default, this script will start the normal battle end ME and map music
  # transition when the victory wait begins. Set to false if you are controlling
  # the battle music by some other method
  PLAY_VICTORY_MUSIC = true
  
  # By default, this script will set the YEZ Victory Aftermath BYPASS_BGM_SWITCH
  # to true, to prevent that script from replaying the victory music. Set to true
  # to disable this feature.
  DISBLE_YEZ_MUSIC_BYPASS = false
end

class Scene_Battle
  alias reedo_sbsvex_sb_terminate terminate
  def terminate
    @reedo_vex_sprite.dispose if @reedo_vex_sprite != nil
    @reedo_vex_sprite = nil
    reedo_sbsvex_sb_terminate
  end
  
  alias reedo_sbsvex_sb_update update
  def update
    if @reedo_in_victory_ex == true
      super
      update_basic(true)
      update_info_viewport  
      reedo_update_victory_ex
    else
      reedo_sbsvex_sb_update
    end
  end
  
  alias reedo_sbsvex_sb_process_victory process_victory
  def process_victory
    if @reedo_in_victory_ex != true
      @victory_dance_time = true
      reedo_process_victory_ex
    end
  end  
  
  def reedo_process_victory_ex
    @info_viewport.visible = false
    if REEDO_SSBS_VEX::PLAY_VICTORY_MUSIC
      RPG::BGM.stop
      $game_system.battle_end_me.play
    end
    @reedo_in_victory_ex = true
  end
  
  def reedo_update_victory_ex
    if @reedo_vex_sprite == nil
      reedo_create_vex_sprite
      @reedo_vex_wait = REEDO_SSBS_VEX::VICTORY_SPLASH_WAIT
      REEDO_SSBS_VEX::VICTORY_SPLASH_SE.play if REEDO_SSBS_VEX::VICTORY_SPLASH_SE.is_a?(RPG::SE)
      unless $BTEST
        $game_temp.map_bgm.play
        $game_temp.map_bgs.play
      end
    end
    @reedo_vex_sprite.update
    if @reedo_vex_sprite.zoom_x >= 1.0
      if @reedo_vex_wait <= 0
        if Input.trigger?(Input::C) || Input.trigger?(Input::A)
          @reedo_vex_sprite.visible = false
          @reedo_in_victory_ex = false
          if REEDO_SSBS_VEX::DISBLE_YEZ_MUSIC_BYPASS != true
            yez_switch_cache = $game_switches[YEZ::VICTORY::BYPASS_BGM_SWITCH]
            $game_switches[YEZ::VICTORY::BYPASS_BGM_SWITCH] = true
          end
          reedo_sbsvex_sb_process_victory
          if REEDO_SSBS_VEX::DISBLE_YEZ_MUSIC_BYPASS != true
            $game_switches[YEZ::VICTORY::BYPASS_BGM_SWITCH] = yez_switch_cache
          end
        end
      end
      @reedo_vex_wait -= 1
    else
    @reedo_vex_sprite.zoom_x += REEDO_SSBS_VEX::VICTORY_SPLASH_ZOOM_RATE
    @reedo_vex_sprite.zoom_y = @reedo_vex_sprite.zoom_x      
    end
  end
  
  def reedo_create_vex_sprite
    vp = Viewport.new(0, 0, 544, 416)
    vp.z = 1000
    sp = Sprite_Base.new(vp)
    if REEDO_SSBS_VEX::VICTORY_SPLASH_IMAGE != nil
      sp.bitmap = Cache.picture(REEDO_SSBS_VEX::VICTORY_SPLASH_IMAGE)
      sp.src_rect = Rect.new(0, 0, sp.bitmap.width, sp.bitmap.height)
      sp.ox = sp.width / 2
      sp.oy = sp.height / 2
      sp.x = vp.rect.width / 2
      sp.y = vp.rect.height / 2
      sp.zoom_x = 0.01
      sp.zoom_y = sp.zoom_x
      sp.visible = true
    end
    @reedo_vex_sprite = sp
  end
end



RPG Maker VX Ace Edition (RSSBSACE)
For anyone using VX Ace who would still like a simple SBS, I've started working on an Ace version of RSSBS. This is version 1.1 of the script and is moderately tested to be complete and functional as intended. While I have not performed any compatibility testing with other scripts, the design follows the same principles as the original script so I expect a high degree of compatibility. That said, this version does have a little more overwriting than the original, and RGSS3 has a number of differences so I cannot be sure that this is as compatible as the original.

Spoiler:

CODE
###############################################################################
##  RSSBSACE - Reedo's Simple Side Battle System (for VX ACE)
##  Version 1.1
##  September 13, 2013
##  By Reedo
###############################################################################
##  REFERENCES
##
##  None.  This is an original script by Reedo.
###############################################################################
##  COMPATIBILITY
##
##  Should be compatible with most other scripts.
##
##  OVERWRITES (2)
##    Spriteset_Battle.update_actors
##    BattleManager.process_victory (currenty re-implemented)
##
##  STATE CHANGES (1)
##    Map scroll position (display_x, display_y) is stored and set to 0,0 when
##    battle begins, and then is restored when battle ends.
###############################################################################
##  REQUIREMENTS
##
##  None for installation and operation.
##
##  However, enemy troops will need to be repositioned manually in the database
##  editor. This script may work best with all custom enemy images designed for
##  side-battle view.
###############################################################################
##  INSTALLATION
##
##  Plug-and-play.
##
##  Insert below Materials, above other add-on scripts.
###############################################################################
##  RIGHTS & RESTRICTIONS
##
##  As with most Reedo scripts, this script is free to re-use, as-is,
##  in personal, educational, and commercial RPGVX Ace development projects,
##  providing that:  this script is credited in writing displayed readily
##  to the user of the final compiled code assembly.
##
##  Reedo retains all rights of intellect and ownership.
##  You forego all rights of warranty by utilizing this script.
###############################################################################

###############################################################################
##  USER OPTIONS
###############################################################################
module REEDO_SBS
  ACTOR_START_TOP = 6.2     # Top position (in tiles) for first actor in party
  ACTOR_START_LEFT = 14.5   # Left position (in tiles) for first actor in party
  ACTOR_STAGGER_HORZ = 1.0  # The amount to recess each actor to the right (in tiles)
  ACTOR_STAGGER_VERT = 0.5  # The vertical spacing between characters (in tiles)
  ACTOR_STEPS_IN_OUT = 10   # The number of steps to take when moving to attack
  ACTOR_STEP_DISTANCE = 0.1 # The distance to move with each step (in tiles)
  
  ACTOR_DEATH_OPACITY = 125   # Transparency of dead actors
  ACTOR_DEATH_TONE = Tone.new(128, 128, 128, 0)  # Overlay color of dead actors
  ACTOR_DEATH_ANGLE = 270     # Rotation angle of dead actor sprite
  ACTOR_DEATH_OFFSET_X = -0.6 # Offset in tiles for dead actors
  ACTOR_DEATH_OFFSET_Y = -0.2 # Offset in tiles for dead actors
  
  VICTORY_DANCE_ENABLED = true      # Actors spin and jump on victory if alive and movable
  VICTORY_DANCE_JUMP_HEIGHT = 1.3   # The number of tiles an actor moves upward
  VICTORY_DANCE_JUMP_HOVER = 4      # The number of frames to wait in the air
  VICTORY_DANCE_JUMP_WAIT = 70      # The number of frames before jumping again
  
  ACTOR_SHADOW_IMAGE = "Shadow"       # The name of the system image to use
  ACTOR_SHADOW_CUSTOM_PICTURE = nil   # The name of a resource picture to use instead; nil to use system image
  
  ENEMY_DEFAULT_ATTACK = 7    # AnimationId for enemy actions with no animation
  # Specify the ID of enemies who should have their image flipped in battle
  FLIP_ENEMY = [
                2, 3, 4, 5, 8, 10, 12, 13, 14, 16, 17,
                18, 19, 21, 22, 23, 25, 28, 29,
                
               ]
  DAMAGE_RED_TIME = 15        # Number of frames actor turns red when damaged
  
  FORCE_AUTOTILE_BACKGROUND = true # attempt to use tile-based background on all maps
end
###############################################################################
##  MAIN SCRIPT
###############################################################################
##  EDITS BEYOND THIS POINT ARE AT YOUR OWN RISK!!!
###############################################################################
module BattleManager
    #alias reedo_sbs_ssb_process_victory process_victory
    #how to alias static module method???
    def self.process_victory
      SceneManager.scene.reedo_victory_dance = true if REEDO_SBS::VICTORY_DANCE_ENABLED
      #copy-paste original method implementation:
      play_battle_end_me
      replay_bgm_and_bgs
      $game_message.add(sprintf(Vocab::Victory, $game_party.name))
      display_exp
      gain_gold
      gain_drop_items
      gain_exp
      SceneManager.return
      battle_end(0)
      return true
    end
end

class Game_Action
  def reedo_guard?
    return item == $data_skills[subject.guard_skill_id]
  end
end

class Game_Actor
  attr_accessor :reedo_sbs_gc
  attr_accessor :reedo_damage_time
  
  alias reedo_sbs_ga_initialize initialize
  def initialize(actor_id)
    reedo_sbs_ga_initialize(actor_id)
    @reedo_damage_time = 0
  end
  
  alias reedo_sbs_ga_perform_damage_effect perform_damage_effect
  def perform_damage_effect
    @reedo_damage_time = REEDO_SBS::DAMAGE_RED_TIME
    reedo_sbs_ga_perform_damage_effect
  end
end

class Game_Character
  attr_accessor :opacity
  attr_accessor :priority_type
  attr_accessor :reedo_start_top
  attr_accessor :reedo_jump_delta
  attr_accessor :reedo_shadow_sprite
  attr_accessor :reedo_is_dead
  
  def reedo_step_on
    cmd = RPG::MoveCommand.new(Game_Character::ROUTE_STEP_ANIME_ON)
    process_move_command(cmd)
  end
  
  def reedo_step_off
    cmd = RPG::MoveCommand.new(Game_Character::ROUTE_STEP_ANIME_OFF)
    process_move_command(cmd)
  end
  
  def reedo_create_shadow_sprite(view)
    @reedo_shadow_sprite = Sprite_Base.new(view)
    bmp = Cache.picture(REEDO_SBS::ACTOR_SHADOW_CUSTOM_PICTURE) if REEDO_SBS::ACTOR_SHADOW_CUSTOM_PICTURE != nil
    bmp = Cache.system(REEDO_SBS::ACTOR_SHADOW_IMAGE) if bmp == nil
    @reedo_shadow_sprite.bitmap = bmp
    @reedo_shadow_sprite.src_rect = Rect.new(0, 0, bmp.width, bmp.height)
    @reedo_shadow_sprite.x = (self.x * 32)
    @reedo_shadow_sprite.y = (self.y * 32)
    @reedo_shadow_sprite.z = (self.priority_type * 100) - 1
  end
  
  alias reedo_sbs_gc_update update
  def update
    reedo_sbs_gc_update
    @shadow_sprite.update if @shadow_sprite != nil
  end
end

class Spriteset_Battle
  alias reedo_sbs_ssb_initialize initialize
  def initialize
    @reedo_dance_wait = 0
    reedo_sbs_ssb_initialize
  end
  
  alias reedo_sbs_ssb_dispose dispose
  def dispose
    for actor in $game_party.battle_members
      actor.reedo_sbs_gc.reedo_shadow_sprite.dispose
      actor.reedo_sbs_gc = nil
    end
    @reedo_sprite_chars.each {|sprite| sprite.dispose }
    reedo_sbs_ssb_dispose
  end
  
  alias reedo_sbs_ssb_create_actors create_actors
  def create_actors
    dispose_actors if @actor_sprites != nil
    reedo_sbs_ssb_create_actors

    @reedo_game_chars = []
    @reedo_sprite_chars = []
    @actor_sprites = []
    
    i = 1
    for actor in $game_party.battle_members
      gc = Game_Character.new
      gc.set_graphic(actor.character_name, actor.character_index)
      gc.set_direction(4)
      gc.priority_type = i
      bc = Sprite_Character.new(@viewport1, gc)
      sb = Sprite_Battler.new(@viewport1, actor)
      top = REEDO_SBS::ACTOR_START_TOP + (i * REEDO_SBS::ACTOR_STAGGER_VERT)
      left = REEDO_SBS::ACTOR_START_LEFT
      left += REEDO_SBS::ACTOR_STAGGER_HORZ if i % 2 == 0
      gc.reedo_is_dead = false
      gc.reedo_start_top = top
      gc.reedo_jump_delta = -0.1
      gc.moveto(left, top)
      gc.reedo_create_shadow_sprite(@viewport1)
      bc.update
      @actor_sprites.push(sb)  
      @reedo_sprite_chars.push(bc)
      @reedo_game_chars.push(gc)
      actor.reedo_sbs_gc = gc
      i += 1
    end
  end
  
  alias reedo_sbs_ssb_create_enemies create_enemies
  def create_enemies
    reedo_sbs_ssb_create_enemies
    for sprite in @enemy_sprites
      sprite.mirror = true if REEDO_SBS::FLIP_ENEMY.include?(sprite.battler.enemy_id)
    end
  end
  
  alias reedo_sbs_ssb_create_blurry_background_bitmap create_blurry_background_bitmap
  def create_blurry_background_bitmap
    if REEDO_SBS::FORCE_AUTOTILE_BACKGROUND
      tryName1 = battleback1_name
      return reedo_sbs_ssb_create_blurry_background_bitmap if tryName1 == nil
      wall = Cache.battleback1(tryName1)
      tryName2 = battleback2_name
      bitmap = Bitmap.new(640, 480)
      bitmap.blt(0, 0, wall, wall.rect)
      if tryName2 != nil
        floor = Cache.battleback2(tryName2)
        bitmap.blt(0, 320, floor, floor.rect)
      end
      bitmap
    else
      reedo_sbs_ssb_create_blurry_background_bitmap
    end
  end
  
  def reedo_update_victory_dance
    if @reedo_dance_wait == 0
      @actor_sprites.each_with_index do |sprite, i|
        if sprite.battler.alive? && sprite.battler.movable?
          gc = @reedo_game_chars[i]
          gc.moveto(gc.x, gc.y + gc.reedo_jump_delta)
          if gc.y < gc.reedo_start_top - REEDO_SBS::VICTORY_DANCE_JUMP_HEIGHT
            gc.reedo_jump_delta = 0.1
            @reedo_dance_wait = REEDO_SBS::VICTORY_DANCE_JUMP_HOVER
          end
          if gc.y > gc.reedo_start_top
            gc.reedo_jump_delta = -0.1
            gc.set_direction(4)
            @reedo_dance_wait = REEDO_SBS::VICTORY_DANCE_JUMP_WAIT
          end
          if ((gc.y - REEDO_SBS::VICTORY_DANCE_JUMP_HEIGHT) * 10).to_int % (REEDO_SBS::VICTORY_DANCE_JUMP_HEIGHT / 4 * 10).to_int == 0
            if @reedo_dance_wait == 0
              case gc.direction
                when 4; gc.set_direction(2)
                when 2; gc.set_direction(6)
                when 6; gc.set_direction(8)
                when 8; gc.set_direction(4)
              end
            end
          end
        end
      end
    else
      @reedo_dance_wait -= 1
    end
  end
  
  def update_actors
    if SceneManager.scene != nil then
      if SceneManager.scene.is_a?(Scene_Battle)
        reedo_update_victory_dance if SceneManager.scene.reedo_victory_dance
      end
    end
    @actor_sprites.each_with_index do |sprite, i|
      gc = @reedo_game_chars[i]
      sc = @reedo_sprite_chars[i]
      if sprite.battler.movable?
        gc.reedo_step_on
      else
        gc.reedo_step_off
      end
      if sprite.battler.dead?
        if gc.reedo_is_dead == false
          gc.moveto(gc.x + REEDO_SBS::ACTOR_DEATH_OFFSET_X, gc.y + REEDO_SBS::ACTOR_DEATH_OFFSET_Y)
          gc.reedo_shadow_sprite.visible = false
          gc.opacity = REEDO_SBS::ACTOR_DEATH_OPACITY
          sc.angle = REEDO_SBS::ACTOR_DEATH_ANGLE
          sc.tone.set(REEDO_SBS::ACTOR_DEATH_TONE)
          gc.reedo_is_dead = true
        end
      else
        if gc.reedo_is_dead == true
          gc.moveto(gc.x - REEDO_SBS::ACTOR_DEATH_OFFSET_X, gc.y - REEDO_SBS::ACTOR_DEATH_OFFSET_Y)
          gc.reedo_shadow_sprite.visible = true
          gc.opacity = 255
          sc.angle = 0
          sc.tone.set(0,0,0)
          gc.reedo_is_dead = false
        end
        if sprite.battler.reedo_damage_time > 0
          sc.tone.set(255,0,0) if sc.tone.red == 0
          sprite.battler.reedo_damage_time -= 1
        else
          sc.tone.set(0,0,0) if sc.tone.red == 255
        end
      end
      sc.update
      gc.update
      sprite.update
    end
  end
end

class Scene_Battle
  attr_accessor :reedo_victory_dance
  attr_reader :subject
    
  alias reedo_sbs_sb_start start
  def start
    @reedo_victory_dance = false
    @reedo_map_x = $game_map.display_x
    @reedo_map_y = $game_map.display_y
    $game_map.set_display_pos(0, 0)
    reedo_sbs_sb_start
  end
  
  alias reedo_sbs_sb_terminate terminate
  def terminate
    $game_map.set_display_pos(@reedo_map_x, @reedo_map_y)
    reedo_sbs_sb_terminate
  end
  
  alias reedo_sbs_sb_execute_action execute_action
  def execute_action
    if @subject.is_a?(Game_Actor)
      reedo_move_inout(-REEDO_SBS::ACTOR_STEP_DISTANCE) if !@subject.current_action.reedo_guard?
    end
    reedo_sbs_sb_execute_action
    if @subject.is_a?(Game_Actor)
      reedo_move_inout(REEDO_SBS::ACTOR_STEP_DISTANCE) if !@subject.current_action.reedo_guard?
    end
  end
  
  alias reedo_sbs_sb_show_animation show_animation
  def show_animation(targets, animation_id)
    targets.each do |sprite|
      if sprite.is_a?(Game_Actor)
        if animation_id == -1
          sprite.reedo_sbs_gc.animation_id = REEDO_SBS::ENEMY_DEFAULT_ATTACK
        else
          sprite.reedo_sbs_gc.animation_id = animation_id
        end
      end
    end
    reedo_sbs_sb_show_animation(targets, animation_id)
  end
  
  def reedo_move_inout(dist)
    i = 0
    while i < REEDO_SBS::ACTOR_STEPS_IN_OUT
      gc = @subject.reedo_sbs_gc
      gc.moveto(gc.x + dist, gc.y)
      gc.reedo_shadow_sprite.x = (gc.x * 32)
      update_for_wait
      i += 1
    end    
  end
end



Summary
With this script, your game actors will appear on screen during battle. They will step forward to perform an action, and action animations will be provided for both actors and enemies.

If you have any problems with this script, please view the support post, post a question in the language support forum, or PM me and I will try to help if I can.

As always, comments and suggestions are welcome.

This post has been edited by Reedo: Sep 14 2013, 02:22 AM
Attached File(s)
Attached File  RSSBS_Demo.zip ( 253.04K ) Number of downloads: 969
Attached File  DemoYEZ_with_RSSBS.zip ( 1.18MB ) Number of downloads: 1670
 


--------------------
"Yes, I saw that. You were doing well, until everyone died."
"When you do things right, people won't be sure you've done anything at all."
The Satellite That Collided With God – Futurama

Spoiler:


Go to the top of the page
 
+Quote Post
   
YokoJR
post Jan 7 2010, 08:38 AM
Post #2


Head of Akito
Group Icon






Nice,but idea taken?
How long did it take you?


--------------------
Do,Do not try.
There is no try.
---------------------------------
Working for free.
Go to the top of the page
 
+Quote Post
   
Sofresh85
post Jan 7 2010, 12:16 PM
Post #3



Group Icon


Type: Designer




This is an awesome Script, you know what would be sweet is if you can make the actors have different poses rather than making them the default walking position, maybe grab a portion from tankentai to use multiple charsets or maybe even instead of having the default 3x4 actor graphic, use a 3x12 or something allowing to use a particular setup of those graphics. all in all this is an awesome script, keep up the great work reedo.


--------------------
Projects I highly recommend :-)



Art teaches nothing, except for the significance of life."

-- Henry Miller --


Check out my current project titled:
Lunatic Shards Book I: The Arrival



If you wish to support this game, copy and paste this into your sig.
CODE
[topic=22135][img]http://i830.photobucket.com/albums/zz228/sofresh8582/LS-TheatricalUserbar.png[/img][/topic]

CODE
[topic=22135][IMG]http://i830.photobucket.com/albums/zz228/sofresh8582/SupportLSSig.png[/IMG][/topic]


I support:
Spoiler:










Go to the top of the page
 
+Quote Post
   
ZeroManArmy
post Jan 7 2010, 01:03 PM
Post #4


Click the Pokémon Banner!
Group Icon


Type: Undisclosed
Alignment: Chaotic Neutral




This is great for people who dont understand the other SBS. How easy is it than the other one? On a scale of 1/10?


--------------------
Go to the top of the page
 
+Quote Post
   
eggrollninja
post Jan 7 2010, 01:37 PM
Post #5


You rang?
Group Icon


Type: Designer
Alignment: True Neutral




I'd say 10/10 since its literally plug and play (Reedo was aiming for this I think)

Great stuff Reedo xD

Can't wait for any add-ons that may come with this ^^


--------------------
<Leads to my resource page now

I support:
Spoiler:







Go to the top of the page
 
+Quote Post
   
mithos
post Jan 7 2010, 01:54 PM
Post #6


Meowthos the zombie cat!!
Group Icon


Type: Coder
Alignment: Lawful Good




This looks good. I'll have to try this later. now we just need to convince noobs to use this rather than tankentai tongue.gif


--------------------
I've been away for a while. Here's my really quite old stuff
Spoiler:


If it's in one of my threads you can use it so long as you read this, and give me a link to any derivatives (i.e. works based off mine). Credit Mithos.
Full legal bit
(Click image for human-readable version :P )
My Stuff:
My Games:
Spoiler:

Story <60%> Mapping<20%> Art<80%> Scripts<97%> Database<50%>
The Legend of Zelda: Restoration of Time Story<20%> Mapping<0%> Art<2%> Scripts<70%> Database<0%>
Absolute Power Story<21%> Mapping<0%> Art<2%> Scripts<0%> Database<0%>

My Sprites:
My Scripts:
I support:
Spoiler:





Go to the top of the page
 
+Quote Post
   
Shanghai
post Jan 7 2010, 02:22 PM
Post #7



Group Icon


Type: Undisclosed




QUOTE (mithos @ Jan 7 2010, 02:54 PM) *
This looks good. I'll have to try this later. now we just need to convince noobs to use this rather than tankentai tongue.gif

And it'll be better that they use this because it's way easier to set up. The problem is just whether or not they'll listen.

Great job, Reedo! Looking forward to those extra enhancements later along the road


--------------------
Go to the top of the page
 
+Quote Post
   
Reedo
post Jan 7 2010, 02:47 PM
Post #8



Group Icon


Type: Coder




Thanks for the comments so far everyone. smile.gif

@YokoJR:
I started this script on Dec 28th, and the last update was the 5th, so I guess about a week (though I did not work on it every day - I probably have about eight or ten hours in the actual coding, and probably another six to eight in testing).

@Sofresh85:
I do plan to do an enhancement script for advanced actor graphics, move routes, and victory dances. I'm not yet sure if this will just be a movement-enhancement script, or part of a larger "Lunatic Enhancement Script". Also, Yanfly has hinted that she has plans for advanced actor graphics as well, so I will likely wait to see what her script(s) do before I implement too much in the way of actor graphic enhancements (however, I will likely still start work on the movement enhancements as YEZ will not be supplying any of that functionality, AFAIK.).
Other planned expansions include: Enemy Size Scaling and Automatic Troop Positioning.

@ZeroManArmy:
Not sure which "other one" you're referring to - if you mean the beta RSSBS, then they are very similar (in fact, this is the same script as Beta 8 REV "B"), so yeah, I would say it has to be a 9/10 or 10/10 for ease of use. Really the only thing you have to do after dropping this script into a fresh project is reposition the enemies in the troops (and I'm working on eliminating that step as well! wink.gif)

@mithos, Shanghai:
I hope that with enough expansion options, this script will be the most enticing for newbies due to ease of setup and compatibility. We'll just have to see what happens... I suppose when questions about the other SBS arise, and they obviously don't make a lot of sense, the answer we see most may be "Just use RSSBS and you'll be fine". smile.gif

Again, thanks to everyone for the comments. smile.gif

In addition to the expansion scripts, I will also be doing a tutorial on how to create a SBS along the lines of this one. My hope is that people who really want a custom experience can use the tutorial, this "Default" SSBS, and any enhancement scripts as a basis for creating whatever custom SBS their game design requires. That way there can be a generic repository of basic expansions, but enough information for anyone familiar with basic RGSS2 to create their own specific SBS for each game as needed.

The SBS is probably one of the most critical upgrades for RPG Maker VX; and its seems obvious to me that Enterbrain didn't include their own implementation of the SBS because they simply included all the hooks you need to add that functionality just the way you want it. I think all that's really missing in the community, is a decent explaination of how to do that. biggrin.gif


--------------------
"Yes, I saw that. You were doing well, until everyone died."
"When you do things right, people won't be sure you've done anything at all."
The Satellite That Collided With God – Futurama

Spoiler:


Go to the top of the page
 
+Quote Post
   
piejamas
post Jan 7 2010, 04:12 PM
Post #9


Pump up the pie, yo!
Group Icon


Type: Coder
Alignment: Neutral Good




I think it's best to keep the script as it is instead of adding stuff, the main goal in the first place was to reduce the amount of config after all :/

If you want a feature-packed SBS, you can use Tankentai tongue.gif
Go to the top of the page
 
+Quote Post
   
Reedo
post Jan 7 2010, 04:20 PM
Post #10



Group Icon


Type: Coder




QUOTE (piejamas @ Jan 7 2010, 10:12 AM) *
I think it's best to keep the script as it is instead of adding stuff, the main goal in the first place was to reduce the amount of config after all :/

If you want a feature-packed SBS, you can use Tankentai tongue.gif


As I've mentioned, the core SBS code will stay as-is, barring any required fixes which may arise in the future (of course).

Any enchancements will be secondary, optional scripts. Enchancement scripts will have to be installed independantly of the RSSBS. I addition to my own enhancements, I encourage others to write enhancement expansions as well. Just PM me with a link to your expansion, I'll review it for compatibility, and then link to it in the main post if everything checks out ok. smile.gif

You are absolutely right piejamas, the whole purpose was to create a simple SBS, so the main script will stay as just that. smile.gif


--------------------
"Yes, I saw that. You were doing well, until everyone died."
"When you do things right, people won't be sure you've done anything at all."
The Satellite That Collided With God – Futurama

Spoiler:


Go to the top of the page
 
+Quote Post
   
NAT_Designer
post Jan 7 2010, 04:25 PM
Post #11


Do not expect me to be nice.
Group Icon


Type: Designer
Alignment: True Neutral




This Coupled together with Yanfly's YEZ Battle system is a great combination! The fact that this requires no work to be done in order for it to be used unlike Takentai really appeals to those who use scripts that interfere with Takentai. Two thumbs up. smile.gif


--------------------
Never think of yourself as entitled to know how the world works. Your job is to live in it, and follow it's rules. Nothing more.
Go to the top of the page
 
+Quote Post
   
OriginalWij
post Jan 7 2010, 06:18 PM
Post #12


I script my own reality ...
Group Icon


Type: Coder
Alignment: Chaotic Evil




Very nice! biggrin.gif
A good alternative for Tankentai ... cool.gif
Keep up the good work!

... and I agree this is perfect for the newcomer who wants sideview but doesn't need all the bells and whistles (and headaches) of Tankentai ...


--------------------




Go to the top of the page
 
+Quote Post
   
Mon Dez
post Jan 7 2010, 08:21 PM
Post #13


I'm in Despair!
Group Icon


Type: Designer
Alignment: Chaotic Neutral




This is a good battle system it's easy to use and practically plug n play, I might use this for a project redo I'm doing.


--------------------


Reality is just an illusion, the world is just a dream, but can you see that everything is chaos and it must be eradicated!
Spoiler:


Games that I am currently working on:
Go to the top of the page
 
+Quote Post
   
YokoJR
post Jan 8 2010, 12:28 AM
Post #14


Head of Akito
Group Icon






Lets Just hope this side veiw is compatable xP


--------------------
Do,Do not try.
There is no try.
---------------------------------
Working for free.
Go to the top of the page
 
+Quote Post
   
NAT_Designer
post Jan 8 2010, 12:45 AM
Post #15


Do not expect me to be nice.
Group Icon


Type: Designer
Alignment: True Neutral




@YokoJR: The battle script is especially easy to place with most other scripts. It doesn't rewrite most of the functions that Takentai does, so it can be used with much much more scripts than Takentai.


--------------------
Never think of yourself as entitled to know how the world works. Your job is to live in it, and follow it's rules. Nothing more.
Go to the top of the page
 
+Quote Post
   
Lost Wolf
post Jan 8 2010, 12:58 AM
Post #16


O.o
Group Icon


Type: Designer
Alignment: Chaotic Good




This looks really nice. Great job on this. Maybe I can convince my friend to use this instead of the pther side view battle systems scripts.
Go to the top of the page
 
+Quote Post
   
Riokogen
post Jan 8 2010, 01:08 AM
Post #17


継続は力なり。
Group Icon


Type: Designer
Alignment: Neutral Good




Awesome script Reedo!


--------------------
Go to the top of the page
 
+Quote Post
   
Minyel
post Jan 8 2010, 04:46 AM
Post #18



Group Icon


Type: Writer
Alignment: True Neutral




Wow, this battle system is great.
Just wondering but is there any plans for a animated enemies script for this?
The main reason I chose this script (not the only reason) was that it was compatible with YERD and was smooth.
So far its great!

This post has been edited by Minyel: Jan 8 2010, 04:47 AM


--------------------
I support:

Go to the top of the page
 
+Quote Post
   
Reedo
post Jan 8 2010, 04:59 AM
Post #19



Group Icon


Type: Coder




Wow, thanks everyone! I'm glad to see so many of you are as happy with this little script as I am. biggrin.gif

I hope to start working on announced expansions over the weekend.

As for the actor animations, yes, that is a planned expansion, however (see post #8) I won't be doing that script right away.
-EDIT-
Sorry, just re-read your post... animated enemies... well, chances are, whatever happens will affect Battlers in general, so my guess would be "yes", animated enemies will be supported as well as animated actors.

Keep in mind though that the RSSBS was intended to be scalable, so someone else could script the additional feature if you don't want to wait for the YEZ-Reedo solution.

smile.gif

This post has been edited by Reedo: Jan 8 2010, 05:01 AM


--------------------
"Yes, I saw that. You were doing well, until everyone died."
"When you do things right, people won't be sure you've done anything at all."
The Satellite That Collided With God – Futurama

Spoiler:


Go to the top of the page
 
+Quote Post
   
ZeroManArmy
post Jan 8 2010, 06:29 PM
Post #20


Click the Pokémon Banner!
Group Icon


Type: Undisclosed
Alignment: Chaotic Neutral




When I said the other one I meant TSBS. Translated by Mr. Bubble

Also congrats!

I do admit having made some of those script updates to add a bit more flexibility for a sideview battle script that Reedo-san from RPGMakerVX.net is making. Check it out and give him some support~ I’m not only interested in it because it’s compatible with YEZ, but rather, the fact that it’s nearly compatible with everything that doesn’t outright overwrite the battle scene. Good job there!

getting complimented by a genius!


--------------------
Go to the top of the page
 
+Quote Post
   

7 Pages V   1 2 3 > » 
Reply to this topicStart new topic
1 User(s) are reading this topic (1 Guests and 0 Anonymous Users)
0 Members:

 

Lo-Fi Version Time is now: 18th April 2014 - 07:10 AM

RPGMakerVX.net is an Privacy Policy, Legal.