Jump to content
New account registrations are disabed. This website is now an archive. Read more here.
  • 0
Sign in to follow this  
jya1993

Sideview help

Question

Can anybody tell me a sideview script that DOES'NT use Animated battlers? :) I have a script but the sprites keep running in the same place when I attack. :'(

 

 

Share this post


Link to post
Share on other sites

8 answers to this question

Recommended Posts

  • 0

Here's one:

 

 

class Bitmap
if not method_defined?('original_draw_text')
alias original_draw_text draw_text
def draw_text(*arg)

  original_color = self.font.color.dup
  self.font.color = Color.new(0, 0, 0, 128)

  if arg[0].is_a?(Rect)
    arg[0].x += 2
    arg[0].y += 2
    self.original_draw_text(*arg)
    arg[0].x -= 2
    arg[0].y -= 2
  else
    arg[0] += 2
    arg[1] += 2
    self.original_draw_text(*arg)
    arg[0] -= 2
    arg[1] -= 2
  end

  self.font.color = original_color
  self.original_draw_text(*arg)

end
end
def gradation_rect(x, y, width, height, color1, color2, align = 0)
if align == 0
  for i in x...x + width
    red   = color1.red + (color2.red - color1.red) * (i - x) / (width - 1)
    green = color1.green +
            (color2.green - color1.green) * (i - x) / (width - 1)
    blue  = color1.blue +
            (color2.blue - color1.blue) * (i - x) / (width - 1)
    alpha = color1.alpha +
            (color2.alpha - color1.alpha) * (i - x) / (width - 1)
    color = Color.new(red, green, blue, alpha)
    fill_rect(i, y, 1, height, color)
  end
elsif align == 1
  for i in y...y + height
    red   = color1.red +
            (color2.red - color1.red) * (i - y) / (height - 1)
    green = color1.green +
            (color2.green - color1.green) * (i - y) / (height - 1)
    blue  = color1.blue +
            (color2.blue - color1.blue) * (i - y) / (height - 1)
    alpha = color1.alpha +
            (color2.alpha - color1.alpha) * (i - y) / (height - 1)
    color = Color.new(red, green, blue, alpha)
    fill_rect(x, i, width, 1, color)
  end
elsif align == 2
  for i in x...x + width
    for j in y...y + height
      red   = color1.red + (color2.red - color1.red) *
              ((i - x) / (width - 1.0) + (j - y) / (height - 1.0)) / 2
      green = color1.green + (color2.green - color1.green) *
              ((i - x) / (width - 1.0) + (j - y) / (height - 1.0)) / 2
      blue  = color1.blue + (color2.blue - color1.blue) *
              ((i - x) / (width - 1.0) + (j - y) / (height - 1.0)) / 2
      alpha = color1.alpha + (color2.alpha - color1.alpha) *
              ((i - x) / (width - 1.0) + (j - y) / (height - 1.0)) / 2
      color = Color.new(red, green, blue, alpha)
      set_pixel(i, j, color)
    end
  end
elsif align == 3
  for i in x...x + width
    for j in y...y + height
      red   = color1.red + (color2.red - color1.red) *
            ((x + width - i) / (width - 1.0) + (j - y) / (height - 1.0)) / 2
      green = color1.green + (color2.green - color1.green) *
            ((x + width - i) / (width - 1.0) + (j - y) / (height - 1.0)) / 2
      blue  = color1.blue + (color2.blue - color1.blue) *
            ((x + width - i) / (width - 1.0) + (j - y) / (height - 1.0)) / 2
      alpha = color1.alpha + (color2.alpha - color1.alpha) *
            ((x + width - i) / (width - 1.0) + (j - y) / (height - 1.0)) / 2
      color = Color.new(red, green, blue, alpha)
      set_pixel(i, j, color)
    end
  end
end
end
end

module RPG
class Sprite < ::Sprite
def damage(value, critical)
  dispose_damage
  if value.is_a?(Numeric)
    damage_string = value.abs.to_s
  else
    damage_string = value.to_s
  end
  bitmap = Bitmap.new(160, 48)
  bitmap.font.name = "Arial Black"
  bitmap.font.size = 32
  bitmap.font.color.set(0, 0, 0)
  bitmap.draw_text(-1, 12-1, 160, 36, damage_string, 1)
  bitmap.draw_text(+1, 12-1, 160, 36, damage_string, 1)
  bitmap.draw_text(-1, 12+1, 160, 36, damage_string, 1)
  bitmap.draw_text(+1, 12+1, 160, 36, damage_string, 1)
  if value.is_a?(Numeric) and value < 0
    bitmap.font.color.set(176, 255, 144)
  else
    bitmap.font.color.set(255, 255, 255)
  end
  bitmap.draw_text(0, 12, 160, 36, damage_string, 1)
  if critical
    bitmap.font.size = 20
    bitmap.font.color.set(0, 0, 0)
    bitmap.draw_text(-1, -1, 160, 20, "CRITICAL", 1)
    bitmap.draw_text(+1, -1, 160, 20, "CRITICAL", 1)
    bitmap.draw_text(-1, +1, 160, 20, "CRITICAL", 1)
    bitmap.draw_text(+1, +1, 160, 20, "CRITICAL", 1)
    bitmap.font.color.set(255, 255, 255)
    bitmap.draw_text(0, 0, 160, 20, "CRITICAL", 1)
  end
  @_damage_sprite = ::Sprite.new
  @_damage_sprite.bitmap = bitmap
  @_damage_sprite.ox = 80 + self.viewport.ox
  @_damage_sprite.oy = 20 + self.viewport.oy
  @_damage_sprite.x = self.x + self.viewport.rect.x
  @_damage_sprite.y = self.y - self.oy / 2 + self.viewport.rect.y
  @_damage_sprite.z = 3000
  @_damage_duration = 40
end
def animation(animation, hit)
  dispose_animation
  @_animation = animation
  return if @_animation == nil
  @_animation_hit = hit
  @_animation_duration = @_animation.frame_max
  animation_name = @_animation.animation_name
  animation_hue = @_animation.animation_hue
  bitmap = RPG::Cache.animation(animation_name, animation_hue)
  if @@_reference_count.include?(bitmap)
    @@_reference_count[bitmap] += 1
  else
    @@_reference_count[bitmap] = 1
  end
  @_animation_sprites = []
  if @_animation.position != 3 or not @@_animations.include?(animation)
    for i in 0..15
      sprite = ::Sprite.new
      sprite.bitmap = bitmap
      sprite.visible = false
      @_animation_sprites.push(sprite)
    end
    unless @@_animations.include?(animation)
      @@_animations.push(animation)
    end
  end
  update_animation
end
def loop_animation(animation)
  return if animation == @_loop_animation
  dispose_loop_animation
  @_loop_animation = animation
  return if @_loop_animation == nil
  @_loop_animation_index = 0
  animation_name = @_loop_animation.animation_name
  animation_hue = @_loop_animation.animation_hue
  bitmap = RPG::Cache.animation(animation_name, animation_hue)
  if @@_reference_count.include?(bitmap)
    @@_reference_count[bitmap] += 1
  else
    @@_reference_count[bitmap] = 1
  end
  @_loop_animation_sprites = []
  for i in 0..15
    sprite = ::Sprite.new
    sprite.bitmap = bitmap
    sprite.visible = false
    @_loop_animation_sprites.push(sprite)
  end
  update_loop_animation
end
def animation_set_sprites(sprites, cell_data, position)
  for i in 0..15
    sprite = sprites[i]
    pattern = cell_data[i, 0]
    if sprite == nil or pattern == nil or pattern == -1
      sprite.visible = false if sprite != nil
      next
    end
    sprite.visible = true
    sprite.src_rect.set(pattern % 5 * 192, pattern / 5 * 192, 192, 192)
    if position == 3
      if self.viewport != nil
        sprite.x = self.viewport.rect.width / 2
        sprite.y = self.viewport.rect.height - 160
      else
        sprite.x = 320
        sprite.y = 240
      end
    else
      sprite.x = self.x + self.viewport.rect.x -
                  self.ox + self.src_rect.width / 2
      sprite.y = self.y + self.viewport.rect.y -
                  self.oy + self.src_rect.height / 2
      sprite.y -= self.src_rect.height / 4 if position == 0
      sprite.y += self.src_rect.height / 4 if position == 2
    end
    sprite.x += cell_data[i, 1]
    sprite.y += cell_data[i, 2]
    sprite.z = 2000
    sprite.ox = 96
    sprite.oy = 96
    sprite.zoom_x = cell_data[i, 3] / 100.0
    sprite.zoom_y = cell_data[i, 3] / 100.0
    sprite.angle = cell_data[i, 4]
    sprite.mirror = (cell_data[i, 5] == 1)
    sprite.opacity = cell_data[i, 6] * self.opacity / 255.0
    sprite.blend_type = cell_data[i, 7]
  end
end
end
end

class Game_Actor < Game_Battler
def screen_x
  if self.index != nil
  n_split = [($game_party.actors.length * 0.5).ceil, 4].min
  case n_split
  when 1
    n_index = self.index * 2
  when 2
    if self.index < ($game_party.actors.length - 2)
      n_index = 0.5 + (2 * self.index)
    else
      if $game_party.actors.length == 3 then
        n_index = (self.index * 2) + 2
      elsif $game_party.actors.length == 4 then
        n_index = self.index * 2
      end
    end
  when 3
      n_index = self.index + (0.25 * (self.index + 1))
    if $game_party.actors.length == 5
    if self.index < 2
      n_index = self.index + (0.25 * (self.index + 1))
    else
      n_index = self.index + (0.25 * (self.index + 2)) + 1
    end
    end
  when 4
    n_index = self.index
    if $game_party.actors.length == 7
    if self.index < 3
      n_index = self.index
    else
      n_index = self.index + 1
    end
    end
  end
    return (n_index - ((n_index / 4).floor) * 4) * ((160 / (4)) / 5) + 480 + ((n_index / 4).floor * 60)
  else
    return 0
  end
end
#--------------------------------------------------------------------------
# ? ????? Y ?????
#--------------------------------------------------------------------------
def screen_y
  n_split = [($game_party.actors.length * 0.5).ceil, 4].min
  case n_split
  when 1
    n_index = self.index * 2
  when 2
    if self.index < ($game_party.actors.length - 2)
      n_index = 0.5 + (2 * self.index)
    else
      if $game_party.actors.length == 3 then
        n_index = (self.index * 2) + 2
      elsif $game_party.actors.length == 4 then
        n_index = self.index * 2
      end
    end
  when 3
      n_index = self.index + (0.25 * (self.index + 1))
    if $game_party.actors.length == 5
    if self.index < 2
      n_index = self.index + (0.25 * (self.index + 1))
    else
      n_index = self.index + (0.25 * (self.index + 2)) + 1
    end
    end
  when 4
    n_index = self.index
    if $game_party.actors.length == 7
    if self.index < 3
      n_index = self.index
    else
      n_index = self.index + 1
    end
    end
  end
  return (n_index - ((n_index / 4).floor) * 4) * ((160 / (4)) * 1.6) + 270 - ((n_index / 4).floor * (110 - (4 * 20)))
end
#--------------------------------------------------------------------------
# ? ????? Z ?????
#--------------------------------------------------------------------------
def screen_z
  # ??????????? Z ?????????
  if self.index != nil
    return self.index
  else
    return 0
  end
end
end

class Game_Enemy < Game_Battler
def screen_x
  n_split = [($game_troop.enemies.length * 0.5).ceil, 4].min
  case n_split
  when 1
    n_index = self.index * 2
  when 2
    if self.index < ($game_troop.enemies.length - 2)
      n_index = 0.5 + (2 * self.index)
    else
      if $game_troop.enemies.length == 3 then
        n_index = (self.index * 2) + 2
      elsif $game_troop.enemies.length == 4 then
        n_index = self.index * 2
      end
    end
  when 3
      n_index = self.index + (0.25 * (self.index + 1))
    if $game_troop.enemies.length == 5
    if self.index < 2
      n_index = self.index + (0.25 * (self.index + 1))
    else
      n_index = self.index + (0.25 * (self.index + 2)) + 2
    end
    end
  when 4
    n_index = self.index
    if $game_troop.enemies.length == 7
    if self.index < 3
      n_index = self.index
    else
      n_index = self.index + 1
    end
    end
  end
  return (n_index - ((n_index / 4).floor) * 4) * ((-160 / (4)) / 5) + 160 - ((n_index / 4).floor * 60)
end
#--------------------------------------------------------------------------
# ? ????? Y ?????
#--------------------------------------------------------------------------
def screen_y
  n_split = [($game_troop.enemies.length * 0.5).ceil, 4].min
  case n_split
  when 1
    n_index = self.index * 2
  when 2
    if self.index < ($game_troop.enemies.length - 2)
      n_index = 0.5 + (2 * self.index)
    else
      if $game_troop.enemies.length == 3 then
        n_index = (self.index * 2) + 2
      elsif $game_troop.enemies.length == 4 then
        n_index = self.index * 2
      end
    end
  when 3
      n_index = self.index + (0.25 * (self.index + 1))
    if $game_troop.enemies.length == 5
    if self.index < 2
      n_index = self.index + (0.25 * (self.index + 1))
    else
      n_index = self.index + (0.25 * (self.index + 2)) + 1
    end
    end
  when 4
    n_index = self.index
    if $game_troop.enemies.length == 7
    if self.index < 3
      n_index = self.index
    else
      n_index = self.index + 1
    end
    end
  end
  return (n_index - ((n_index / 4).floor) * 4) * ((160 / (4)) * 1.6) + 270 - ((n_index / 4).floor * (110 - (4 * 20)))
end
#--------------------------------------------------------------------------
# ? ????? Z ?????
#--------------------------------------------------------------------------
def screen_z
  return @member_index + 1
end
end

#==============================================================================
# ¦ Sprite_Battler
#------------------------------------------------------------------------------
#  ????????????????Game_Battler ???????????????
# ????????????????????
#==============================================================================

class Sprite_Battler < RPG::Sprite
#--------------------------------------------------------------------------
# ? ??????????
#--------------------------------------------------------------------------
attr_accessor :battler                  # ????
attr_accessor :moving        # Is the sprite moving?
attr_reader   :index
attr_accessor :target_index
attr_accessor :direction
attr_accessor :pattern
#--------------------------------------------------------------------------
# ? ?????????
#     viewport : ??????
#     battler  : ???? (Game_Battler)
#--------------------------------------------------------------------------
def initialize(viewport, battler = nil)
  super(viewport)
  change
  @old = Graphics.frame_count  # For the delay method
  @goingup = true    # Increasing animation? (if @rm2k_mode is true)
  @once = false      # Is the animation only played once?
  @animated = true   # Used to stop animation when @once is true
  self.opacity = 0
  @index = 0
  @pattern_b = 0
  @counter_b = 0
  @trans_sprite = Sprite.new
  @trans_sprite.opacity = 0
  @bar_hp_sprite = Sprite.new
  @bar_hp_sprite.bitmap = Bitmap.new(64, 10)
  @bar_sp_sprite = Sprite.new
  @bar_sp_sprite.bitmap = Bitmap.new(64, 10)
  @color1 = Color.new(0, 0, 0, 192)
  @color2 = Color.new(255, 255, 192, 192)
  @color3 = Color.new(0, 0, 0, 192)
  @color4 = Color.new(64, 0, 0, 192)
  @old_hp = -1
  @old_sp = -1
  @battler = battler
  @battler_visible = false
  @first = true
  @pattern = 0
  if $target_index == nil
    $target_index = 0
  end
  @battler.is_a?(Game_Enemy) ? enemy_pose(0, 1) : pose(0, 1)
end
#--------------------------------------------------------------------------
# ? ??
#--------------------------------------------------------------------------
def dispose
  if self.bitmap != nil
    self.bitmap.dispose
  end
  if @trans_sprite.bitmap != nil
    @trans_sprite.bitmap.dispose
  end
  @trans_sprite.dispose
  @bar_hp_sprite.bitmap.dispose
  @bar_hp_sprite.dispose
  @bar_sp_sprite.bitmap.dispose
  @bar_sp_sprite.dispose
  super
end

def change(frames = 0, delay = 0, offx = 0, offy = 0, startf = 0, once = false)
  @frames = frames
  @delay = delay
  @offset_x, @offset_y = offx, offy
  @current_frame = startf
  @once = once
  @goingup = true
  @animated = true
end
#--------------------------------------------------------------------------
# ? ??????
#--------------------------------------------------------------------------
def update
  bar_check = true if @_damage_duration == 1
  super
  @trans_sprite.blend_type = self.blend_type
  @trans_sprite.color = self.color
  if @_collapse_duration > 0
    @trans_sprite.opacity = self.opacity
  else
    @trans_sprite.opacity = [self.opacity, 160].min
  end
  if (@_damage_duration == 0 and bar_check == true) or @first == true
    @first = false if @first == true
    bar_check = false
    @bar_must_change = true
  end
  @bar_hp_sprite.opacity = self.opacity
  @bar_sp_sprite.opacity = self.opacity
  # ????? nil ???
  if @battler == nil
    self.bitmap = nil
    @trans_sprite.bitmap = nil
    loop_animation(nil)
    return
  end
  # ????????????????????
  if @battler.battler_name != @battler_name or
     @battler.battler_hue != @battler_hue
    # ????????????
    @battler_name = @battler.battler_name
    @battler_hue = @battler.battler_hue
    if @battler.is_a?(Game_Actor)
      @battler_name = @battler.character_name
      @battler_hue = @battler.character_hue
      @direction = 4
    else
      @direction = 6
    end
      self.bitmap = RPG::Cache.character(@battler_name, @battler_hue)
      @width = bitmap.width / 4
      @height = bitmap.height / 4
      @frame_width = @width
      @frame_height = @height
      self.ox = @width / 2
      self.oy = @height
      @pattern = @current_frame
      @direction = @offset_y
      sx = @pattern * @width
      sy = (@direction - 2) / 2 * @height
      self.src_rect.set(sx, sy, @width, @height)
      @current_frame = (@current_frame + 1) unless @frames == 0
      @animated = false if @current_frame == @frames and @once
      @current_frame %= @frames
      @trans_sprite.bitmap = self.bitmap
      @trans_sprite.ox = self.ox
      @trans_sprite.oy = self.oy
      @trans_sprite.src_rect.set(sx, sy, @width, @height)
    # ?????????????????? 0 ???
    if @battler.dead? or @battler.hidden
      self.opacity = 0
      @trans_sprite.opacity = 0
      @bar_hp_sprite.opacity = 0
      @bar_sp_sprite.opacity = 0
    end
  self.x = @battler.screen_x
  self.y = @battler.screen_y
  self.z = @battler.screen_z
end
change_sp_bar if @old_sp != @battler.sp
if delay(@delay) and @animated
    @pattern = @current_frame
    @direction = @offset_y
    sx = @pattern * @width
    sy = (@direction - 2) / 2 * @height
    self.src_rect.set(sx, sy, @width, @height)
    @current_frame = (@current_frame + 1) unless @frames == 0
    @animated = false if @current_frame == @frames and @once
    @current_frame %= @frames
    @trans_sprite.ox = self.ox
    @trans_sprite.oy = self.oy
    @trans_sprite.src_rect.set(sx, sy, @width, @height)
  end
  # ??????? ID ????????????
  if @battler.damage == nil and
     @battler.state_animation_id != @state_animation_id
    @state_animation_id = @battler.state_animation_id
    loop_animation($data_animations[@state_animation_id])
  end
  # ??????????????
  #if @battler.is_a?(Game_Actor) and @battler_visible
    # ???????????????????????
    #if $game_temp.battle_main_phase
      #self.opacity += 3 if self.opacity < 255
    #else
      #self.opacity -= 3 if self.opacity > 207
    #end
  #end
  # ??
  if @battler.blink
    blink_on
  else
    blink_off
  end
  # ??????
  unless @battler_visible
    # ??
    if not @battler.hidden and not @battler.dead? and
       (@battler.damage == nil or @battler.damage_pop)
      appear
      @battler_visible = true
    end
  end
  # ?????
  if @battler_visible
    # ??
    if @battler.hidden
      $game_system.se_play($data_system.escape_se)
      escape
      @trans_sprite.opacity = 0
      @battler_visible = false
    end
    # ??????
    if @battler.white_flash
      whiten
      @battler.white_flash = false
    end
    # ???????
    if @battler.animation_id != 0
      animation = $data_animations[@battler.animation_id]
      animation(animation, @battler.animation_hit)
      @battler.animation_id = 0
    end
    # ????
    if @battler.damage_pop
      damage(@battler.damage, @battler.critical)
      @battler.damage = nil
      @battler.critical = false
      @battler.damage_pop = false
    end
    if @bar_must_change == true
      @bar_must_change = false
      if @old_hp != @battler.hp
        change_hp_bar
      end
      if @battler.damage == nil and @battler.dead?
        if @battler.is_a?(Game_Enemy)
          $game_system.se_play($data_system.enemy_collapse_se)
        else
          $game_system.se_play($data_system.actor_collapse_se)
        end
        collapse
        @battler_visible = false
      end
    end
  end
  # ???????????
  @trans_sprite.x = self.x
  @trans_sprite.y = self.y
  @trans_sprite.z = self.z
  @bar_hp_sprite.x = @battler.screen_x - 32
  @bar_hp_sprite.y = @battler.screen_y - (@height +18) if @height != nil
  @bar_hp_sprite.z = 100
  @bar_sp_sprite.x = @battler.screen_x - 32
  @bar_sp_sprite.y = @battler.screen_y - (@height + 8) if @height != nil
  @bar_sp_sprite.z = 100
end

#--------------------------------------------------------------------------
# - Move the sprite
#   x : X coordinate of the destination point
#   y : Y coordinate of the destination point
#   speed : Speed of movement (0 = delayed, 1+ = faster)
#   delay : Movement delay if speed is at 0
#--------------------------------------------------------------------------
def move(x, y, speed = 1, delay = 0)
  @destx = x
  @desty = y
  @move_speed = speed
  @move_delay = delay
  @move_old = Graphics.frame_count
  @moving = true
end

#--------------------------------------------------------------------------
# - Move sprite to destx and desty
#--------------------------------------------------------------------------
def update_move
  return unless @moving
  movinc = @move_speed == 0 ? 1 : @move_speed
  if Graphics.frame_count - @move_old > @move_delay or @move_speed != 0
    self.x += movinc if self.x < @destx
    self.x -= movinc if self.x > @destx
    self.y += movinc if self.y < @desty
    self.y -= movinc if self.y > @desty
    @move_old = Graphics.frame_count
  end
  if @move_speed > 1  # Check if sprite can't reach that point
    self.x = @destx if (@destx - self.x).abs % @move_speed != 0 and
                       (@destx - self.x).abs <= @move_speed
    self.y = @desty if (@desty - self.y).abs % @move_speed != 0 and
                       (@desty - self.y).abs <= @move_speed
  end
  if self.x == @destx and self.y == @desty
    @moving = false
  end
end

#--------------------------------------------------------------------------
# - Pause animation, but still updates movement
#   frames : Number of frames
#--------------------------------------------------------------------------
def delay(frames)
  update_move
  if (Graphics.frame_count - @old >= frames)
    @old = Graphics.frame_count
    return true
  end
  return false
end

def change_hp_bar
  j = false
 @old_hp = @battler.hp if @old_hp == -1
  i = @old_hp
  loop do
    i -= 10
    if i < @battler.hp
      i = @battler.hp
      j = true
    end
    rate = i.to_f / @battler.maxhp
    @color5 = Color.new(80 - 24 * rate, 80 * rate, 14 * rate, 192)
    @color6 = Color.new(240 - 72 * rate, 240 * rate, 62 * rate, 192)
    @bar_hp_sprite.bitmap.clear
    @bar_hp_sprite.bitmap.fill_rect(0, 0, 64, 10, @color1)
    @bar_hp_sprite.bitmap.fill_rect(1, 1, 62, 8, @color2)
    @bar_hp_sprite.bitmap.gradation_rect(2, 2, 60, 6, @color3, @color4, 1)
    #@bar_hp_sprite.bitmap.fill_rect(2, 2, 60, 6, @color3)
    @bar_hp_sprite.bitmap.gradation_rect(2, 2, 64 * rate - 4, 6, @color5, @color6, 2)
    #@bar_hp_sprite.bitmap.fill_rect(2, 2, 64 * rate - 4, 6, @color5)
    @bar_hp_sprite.opacity = self.opacity
    Graphics.update
    if j == true
      j = false
      break
    end
  end
  @old_hp = @battler.hp
end

def change_sp_bar
  j = false
 @old_sp = @battler.sp if @old_sp == -1
  i = @old_sp
  loop do
    i -= 10
    if i < @battler.sp
      i = @battler.sp
      j = true
    end
    rate = i.to_f / @battler.maxsp
    @color7 = Color.new(14 * rate, 80 - 24 * rate, 80 * rate, 192)
    @color8 = Color.new(62 * rate, 240 - 72 * rate, 240 * rate, 192)
    @bar_sp_sprite.bitmap.clear
    @bar_sp_sprite.bitmap.fill_rect(0, 0, 64, 10, @color1)
    @bar_sp_sprite.bitmap.fill_rect(1, 1, 62, 8, @color2)
    @bar_sp_sprite.bitmap.gradation_rect(2, 2, 60, 6, @color3, @color4, 1)
    #@bar_hp_sprite.bitmap.fill_rect(2, 2, 60, 6, @color3)
    @bar_sp_sprite.bitmap.gradation_rect(2, 2, 64 * rate - 4, 6, @color7, @color8, 0)
    #@bar_hp_sprite.bitmap.fill_rect(2, 2, 64 * rate - 4, 6, @color5)
    @bar_sp_sprite.opacity = self.opacity
    Graphics.update
    if j == true
      j = false
      break
    end
  end
  @old_sp = @battler.sp
end

def enemy                                             #
  $target_index += $game_troop.enemies.size
  $target_index %= $game_troop.enemies.size
  return $game_troop.enemies[$target_index]           #
end                                                   #

def actor                                             #
  $target_index += $game_party.actors.size
  $target_index %= $game_party.actors.size
  return $game_party.actors[$target_index]            #
end

def index=(index)
  @index = index
  update
end

  def pose(number, frames = 4)
  case number
  when 0
    change(frames, 4, 0, 4, 0)
  when 1
    change(frames, 4, 0, 4)
  when 2
    change(frames, 4, 0, 6)
  else
    change(frames, 4, 0, 0, 0)
  end
end

  def enemy_pose(number ,enemy_frames = 4)
  case number
  when 0
    change(enemy_frames, 4, 0, 6, 0)
  when 1
    change(enemy_frames, 4, 0, 4)
  when 2
    change(enemy_frames, 4, 0, 6)
  else
    change(enemy_frames, 4, 0, 0, 0)
  end
end

def default_pose
  pose(0, 1)
end
end

#==============================================================================
# ¦ Spriteset_Battle
#------------------------------------------------------------------------------
#  ???????????????????????????? Scene_Battle ??
# ????????????
#==============================================================================

class Spriteset_Battle
#--------------------------------------------------------------------------
# ? ??????????
#--------------------------------------------------------------------------
attr_reader   :viewport1                # ????????????
attr_reader   :viewport2                # ????????????
attr_accessor :actor_sprites
attr_accessor :enemy_sprites
#--------------------------------------------------------------------------
# ? ?????????
#--------------------------------------------------------------------------
def initialize
  # ?????????
  @viewport1 = Viewport.new(0, 0, 640, 480)
  @viewport2 = Viewport.new(0, 0, 640, 480)
  @viewport3 = Viewport.new(0, 0, 640, 480)
  @viewport4 = Viewport.new(0, 0, 640, 480)
  @viewport2.z = 101
  @viewport3.z = 200
  @viewport4.z = 5000
  if $game_temp.battleback_name == ""
  @battleback_sprite = nil
  @tilemap = Tilemap.new(@viewport1)
  @tilemap.tileset = RPG::Cache.tileset($game_map.tileset_name)
  for i in 0..6
    autotile_name = $game_map.autotile_names[i]
    @tilemap.autotiles[i] = RPG::Cache.autotile(autotile_name)
  end
  @tilemap.map_data = $game_map.data
  @tilemap.priorities = $game_map.priorities
  else
  # ??????????????
  @tilemap = nil
  @battleback_sprite = Sprite.new(@viewport1)
  end
  # ????????????
  @enemy_sprites = []
  for enemy in $game_troop.enemies#.reverse
    @enemy_sprites.push(Sprite_Battler.new(@viewport1, enemy))
  end
  # ????????????
  @actor_sprites = []
  for j in 0..7
      # ƒAƒNƒ^[ƒXƒvƒ‰ƒCƒg‚ð’ljÁ
      @actor_sprites.push(Sprite_Battler.new(@viewport1, $game_party.actors[j]))
  end
  # ?????
  @weather = RPG::Weather.new(@viewport1)
  # ????????????
  @picture_sprites = []
  for i in 51..100
    @picture_sprites.push(Sprite_Picture.new(@viewport3,
      $game_screen.pictures[i]))
  end
  # ????????????
  @timer_sprite = Sprite_Timer.new
  # ??????
  update
end
#--------------------------------------------------------------------------
# ? ??
#--------------------------------------------------------------------------
def dispose
  if @tilemap != nil
  # ?????????
  @tilemap.tileset.dispose
  for i in 0..6
    @tilemap.autotiles[i].dispose
  end
  @tilemap.dispose
  end
  # ??????????????
  if @battleback_sprite != nil
  # ??????????????????????
  if @battleback_sprite.bitmap != nil
    @battleback_sprite.bitmap.dispose
  end
  @battleback_sprite.dispose
  end
  # ??????????????????????
  for sprite in @enemy_sprites + @actor_sprites
    sprite.dispose
  end
  # ?????
  @weather.dispose
  # ????????????
  for sprite in @picture_sprites
    sprite.dispose
  end
  # ????????????
  @timer_sprite.dispose
  # ?????????
  @viewport1.dispose
  @viewport2.dispose
  @viewport3.dispose
  @viewport4.dispose
end
#--------------------------------------------------------------------------
# ? ??????????
#--------------------------------------------------------------------------
def effect?
  # ??????????????? true ???
  for sprite in @enemy_sprites + @actor_sprites
    return true if sprite.effect?
  end
  return false
end
#--------------------------------------------------------------------------
# ? ??????
#--------------------------------------------------------------------------
def update
  # ???????????????????????
  if @battleback_sprite != nil
  if @battleback_name != $game_temp.battleback_name
    @battleback_name = $game_temp.battleback_name
    if @battleback_sprite.bitmap != nil
      @battleback_sprite.bitmap.dispose
    end
    bg_bitmap = RPG::Cache.battleback(@battleback_name)
    bg_bitmap_stretch = Bitmap.new(640, 480)
    bg_bitmap_stretch.stretch_blt(Rect.new(0, 0, 640, 480), bg_bitmap, bg_bitmap.rect)
    @battleback_sprite.bitmap = bg_bitmap_stretch
  end
  end
  if @tilemap != nil
  @tilemap.ox = $game_map.display_x / 4
  @tilemap.oy = $game_map.display_y / 4
  @tilemap.update
  end
  # ????????????
  for sprite in @enemy_sprites + @actor_sprites
    sprite.update
  end
  # ???????????
  @weather.type = $game_screen.weather_type
  @weather.max = $game_screen.weather_max
  @weather.update
  # ????????????
  for sprite in @picture_sprites
    sprite.update
  end
  # ????????????
  @timer_sprite.update
  # ???????????????
  @viewport1.tone = $game_screen.tone
  @viewport1.ox = $game_screen.shake
  # ????????????
  @viewport4.color = $game_screen.flash_color
  # ?????????
  @viewport1.update
  @viewport2.update
  @viewport4.update
end
end

#==============================================================================
# ¦ Window_Command
#------------------------------------------------------------------------------
#  ?????????????????????
#==============================================================================

class Window_Command < Window_Selectable
#--------------------------------------------------------------------------
# ? ?????????
#     width    : ???????
#     commands : ??????????
#--------------------------------------------------------------------------
def initialize(width, commands, column_max = 1, style = 0, inf_scroll = 1)
  # ????????????????????
  super(0, 0, width, (commands.size * 1.0 / column_max).ceil * 32 + 32)
  @inf_scroll = inf_scroll
  @item_max = commands.size
  @commands = commands
  @column_max = column_max
  @style = style
  self.contents = Bitmap.new(width - 32, (@item_max * 1.0 / @column_max).ceil * 32)
  self.contents.font.name = "Tahoma"
  self.contents.font.size = 22
  refresh
  self.index = 0
end
#--------------------------------------------------------------------------
# ? ??????
#--------------------------------------------------------------------------
def refresh
  self.contents.clear
  for i in 0...@item_max
    draw_item(i, normal_color)
  end
end
#--------------------------------------------------------------------------
# ? ?????
#     index : ????
#     color : ???
#--------------------------------------------------------------------------
def draw_item(index, color)
  self.contents.font.color = color
  rect = Rect.new(index%@column_max * (self.width / @column_max) + 4, 32 * (index/@column_max), self.width / @column_max - 40, 32)
  self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
  self.contents.draw_text(rect, @commands[index], @style)
end
#--------------------------------------------------------------------------
# ? ??????
#     index : ????
#--------------------------------------------------------------------------
def disable_item(index)
  draw_item(index, disabled_color)
end

def update_help
  @help_window.set_actor($game_party.actors[$scene.actor_index])
end
end

#==============================================================================
# ¦ Arrow_Enemy
#------------------------------------------------------------------------------
#  ????????????????????????????? Arrow_Base ??
# ????????
#==============================================================================

class Arrow_Enemy < Arrow_Base
#--------------------------------------------------------------------------
# ? ?????????????????
#--------------------------------------------------------------------------
def enemy
  return $game_troop.enemies[@index]
end
#--------------------------------------------------------------------------
# ? ??????
#--------------------------------------------------------------------------
def update
  super
  # ???????????????????
  $game_troop.enemies.size.times do
    break if self.enemy.exist?
    @index += 1
    @index %= $game_troop.enemies.size
  end
  # ?????
  if Input.repeat?(Input::DOWN)
    $game_system.se_play($data_system.cursor_se)
    $game_troop.enemies.size.times do
      @index += 1
      @index %= $game_troop.enemies.size
      break if self.enemy.exist?
    end
  end
  # ?????
  if Input.repeat?(Input::UP)
    $game_system.se_play($data_system.cursor_se)
    $game_troop.enemies.size.times do
      @index += $game_troop.enemies.size - 1
      @index %= $game_troop.enemies.size
      break if self.enemy.exist?
    end
  end
  if Input.repeat?(Input::RIGHT)
    $game_system.se_play($data_system.cursor_se)
    $game_troop.enemies.size.times do
      @index += ((($game_troop.enemies.length) * 0.5).ceil)
      @index %= $game_troop.enemies.size
      break if self.enemy.exist?
    end
  end
  if Input.repeat?(Input::LEFT)
    $game_system.se_play($data_system.cursor_se)
    $game_troop.enemies.size.times do
      @index += $game_troop.enemies.size - ((($game_troop.enemies.length) * 0.5).ceil)
      @index %= $game_troop.enemies.size
      break if self.enemy.exist?
    end
  end
  # ???????????
  if self.enemy != nil
    self.x = self.enemy.screen_x + 4
    self.y = self.enemy.screen_y + 36
    self.z = self.enemy.screen_z + 1
  end
end
#--------------------------------------------------------------------------
# ? ?????????
#--------------------------------------------------------------------------
def update_help
  # ????????????????????????
  @help_window.set_enemy(self.enemy)
end
end

#==============================================================================
# ¦ Arrow_Actor
#------------------------------------------------------------------------------
#  ????????????????????????????? Arrow_Base ??
# ????????
#==============================================================================

class Arrow_Actor < Arrow_Base
#--------------------------------------------------------------------------
# ? ?????????????????
#--------------------------------------------------------------------------
def actor
  return $game_party.actors[@index]
end
#--------------------------------------------------------------------------
# ? ??????
#--------------------------------------------------------------------------
def update
  super
  # ?????
  if Input.repeat?(Input::DOWN)
    $game_system.se_play($data_system.cursor_se)
    @index += 1
    @index %= $game_party.actors.size
  end
  # ?????
  if Input.repeat?(Input::UP)
    $game_system.se_play($data_system.cursor_se)
    @index += $game_party.actors.size - 1
    @index %= $game_party.actors.size
  end
  if Input.repeat?(Input::RIGHT)
    $game_system.se_play($data_system.cursor_se)
    @index += ($game_party.actors.length * 0.5).ceil
    @index %= $game_party.actors.size
  end
  # ?????
  if Input.repeat?(Input::LEFT)
    $game_system.se_play($data_system.cursor_se)
    @index += $game_party.actors.size - (($game_party.actors.length * 0.5).ceil)
    @index %= $game_party.actors.size
  end
  # ???????????
  if self.actor != nil
    self.x = self.actor.screen_x
    self.y = self.actor.screen_y + 36
    self.z = self.actor.screen_z + 1
  end
end
#--------------------------------------------------------------------------
# ? ?????????
#--------------------------------------------------------------------------
def update_help
  # ??????????????????????
  @help_window.set_actor(self.actor)
end
end

class Scene_Battle
attr_accessor :actor_index
def main
  # ???????????????
  $game_temp.in_battle = true
  $game_temp.battle_turn = 0
  $game_temp.battle_event_flags.clear
  $game_temp.battle_abort = false
  $game_temp.battle_main_phase = false
  $game_temp.battleback_name = $game_map.battleback_name
  $game_temp.forcing_battler = nil
  # ??????????????????
  $game_system.battle_interpreter.setup(nil, 0)
  # ???????
  @troop_id = $game_temp.battle_troop_id
  $game_troop.setup(@troop_id)
  # ????????????????
  s1 = $data_system.words.attack
  s1 = $data_system.words.attack
  s2 = $data_system.words.skill
  s3 = $data_system.words.guard
  s4 = $data_system.words.item
  @actor_command_window = Window_Command.new(640, [s1, s2, s3, s4], 4)
  @actor_command_window.y = 64
  @actor_command_window.back_opacity = 160
  @actor_command_window.active = false
  @actor_command_window.visible = false
  # ????????????
  @party_command_window = Window_PartyCommand.new
  @help_window = Window_Help.new
  @help_window.back_opacity = 160
  @help_window.visible = false
  #@status_window = Window_BattleStatus.new
  @message_window = Window_Message.new
  # ???????????
  @spriteset = Spriteset_Battle.new
  # ????????????
  @wait_count = 0
  # ?????????
  if $data_system.battle_transition == ""
    Graphics.transition(20)
  else
    Graphics.transition(40, "Graphics/Transitions/" +
      $data_system.battle_transition)
  end
  # ???????????
  start_phase1
  # ??????
  loop do
    # ????????
    Graphics.update
    # ???????
    Input.update
    # ??????
    update
    # ????????????????
    if $scene != self
      break
    end
  end
  # ??????????
$game_map.refresh
  # ?????????
  Graphics.freeze
  # ????????
  @actor_command_window.dispose
  @party_command_window.dispose
  @help_window.dispose
  #@status_window.dispose
  @message_window.dispose
  if @skill_window != nil
    @skill_window.dispose
  end
  if @item_window != nil
    @item_window.dispose
  end
  if @result_window != nil
    @result_window.dispose
  end
  # ???????????
  @spriteset.dispose
  # ???????????????
  if $scene.is_a?(Scene_Title)
    # ??????????
    Graphics.transition
    Graphics.freeze
  end
  # ???????????????????????????
  if $BTEST and not $scene.is_a?(Scene_Gameover)
    $scene = nil
  end
end

def update
  # ?????????????
  if $game_system.battle_interpreter.running?
    # ?????????
    $game_system.battle_interpreter.update
    # ?????????????????????????
    if $game_temp.forcing_battler == nil
      # ?????????????????
      unless $game_system.battle_interpreter.running?
        # ??????????????????????????
        unless judge
          setup_battle_event
        end
      end
      # ????????????????
      if @phase != 5
        # ?????????????????
        #@status_window.refresh
      end
    end
  end
  # ???? (????)??????
  $game_system.update
  $game_screen.update
  # ????? 0 ??????
  if $game_system.timer_working and $game_system.timer == 0
    # ?????
    $game_temp.battle_abort = true
  end
  # ????????
  @help_window.update
  @party_command_window.update
  @actor_command_window.update
  #@status_window.update
  @message_window.update
  # ???????????
  @spriteset.update
  # ?????????????
  if $game_temp.transition_processing
    # ?????????????????
    $game_temp.transition_processing = false
    # ?????????
    if $game_temp.transition_name == ""
      Graphics.transition(20)
    else
      Graphics.transition(40, "Graphics/Transitions/" +
        $game_temp.transition_name)
    end
  end
  # ????????????????
  if $game_temp.message_window_showing
    return
  end
  # ???????????
  if @spriteset.effect?
    return
  end
  # ??????????
  if $game_temp.gameover
    # ??????????????
    $scene = Scene_Gameover.new
    return
  end
  # ???????????
  if $game_temp.to_title
    # ???????????
    $scene = Scene_Title.new
    return
  end
  # ????????
  if $game_temp.battle_abort
    # ??????? BGM ???
    $game_system.bgm_play($game_temp.map_bgm)
    # ?????
    battle_end(1)
    return
  end
  # ????????
  if @wait_count > 0
    # ????????????
    @wait_count -= 1
    return
  end

  # this one holds the battle while the player moves
  for actor in @spriteset.actor_sprites
    if actor.moving
      return
    end
  end
  # and this one is for the enemy... 
  for enemy in @spriteset.enemy_sprites
    if enemy.moving# and $game_system.animated_enemy
      return
    end
  end
  # ???????????????????????
  # ????????????????
  if $game_temp.forcing_battler == nil and
     $game_system.battle_interpreter.running?
    return
  end
  # ??????????
  case @phase
  when 1  # ?????????
    update_phase1
  when 2  # ????????????
    update_phase2
  when 3  # ????????????
    update_phase3
  when 4  # ???????
    update_phase4
  when 5  # ???????????
    update_phase5
  end
end

def start_phase2
  # ???? 2 ???
  @phase = 2
  # ?????????????
  @actor_index = -1
  @active_battler = nil
  # ?????????????????
  @party_command_window.active = true
  @party_command_window.visible = true
  # ?????????????????
  @actor_command_window.active = false
  @actor_command_window.visible = false
  @help_window.visible = false
  # ??????????????
  $game_temp.battle_main_phase = false
  # ????????????????
  $game_party.clear_actions
  # ????????????
  unless $game_party.inputable?
    # ?????????
    start_phase4
  end
end

def update_phase2_escape
  # ??????????????
  enemies_agi = 0
  enemies_number = 0
  for enemy in $game_troop.enemies
    if enemy.exist?
      enemies_agi += enemy.agi
      enemies_number += 1
    end
  end
  if enemies_number > 0
    enemies_agi /= enemies_number
  end
  # ??????????????
  actors_agi = 0
  actors_number = 0
  for actor in $game_party.actors
    if actor.exist?
      actors_agi += actor.agi
      actors_number += 1
    end
  end
  if actors_number > 0
    actors_agi /= actors_number
  end
  # ??????
  success = rand(100) < 50 * actors_agi / enemies_agi
  # ???????
  if success
    # ?? SE ???
    $game_system.se_play($data_system.escape_se)
      for actor in $game_party.actors
        @spriteset.actor_sprites[actor.index].pose(2)
        @spriteset.actor_sprites[actor.index].move(660, actor.screen_y, 10)
      end
      check = escape_move
    until check == false
      @spriteset.update
      Graphics.update
      check = escape_move
    end
    # ??????? BGM ???
    $game_system.bgm_play($game_temp.map_bgm)
    # ?????
    battle_end(1)
  # ???????
  else
    # ????????????????
    $game_party.clear_actions
    # ?????????
    start_phase4
  end
end

def escape_move
  for actor in @spriteset.actor_sprites
    if actor.moving
      return true
    end
  end
  return false
end

def start_phase5
  # ???? 5 ???
  @phase = 5
  # ????? ME ???
  $game_system.me_play($game_system.battle_end_me)
  # ??????? BGM ???
  $game_system.bgm_play($game_temp.map_bgm)
  # EXP???????????????
  exp = 0
  gold = 0
  treasures = []
  # ???
  for enemy in $game_troop.enemies
    # ??????????????
    unless enemy.hidden
      # ?? EXP????????
      exp += enemy.exp
      gold += enemy.gold
      # ?????????
      if rand(100) < enemy.treasure_prob
        if enemy.item_id > 0
          treasures.push($data_items[enemy.item_id])
        end
        if enemy.weapon_id > 0
          treasures.push($data_weapons[enemy.weapon_id])
        end
        if enemy.armor_id > 0
          treasures.push($data_armors[enemy.armor_id])
        end
      end
    end
  end
  # ???????? 6 ??????
  treasures = treasures[0..5]
  # EXP ??
  for i in 0...$game_party.actors.size
    actor = $game_party.actors[i]
    if actor.cant_get_exp? == false
      last_level = actor.level
      actor.exp += exp
      if actor.level > last_level
        #@status_window.level_up(i)
      end
    end
  end
  # ??????
  $game_party.gain_gold(gold)
  # ???????
  for item in treasures
    case item
    when RPG::Item
      $game_party.gain_item(item.id, 1)
    when RPG::Weapon
      $game_party.gain_weapon(item.id, 1)
    when RPG::Armor
      $game_party.gain_armor(item.id, 1)
    end
  end
  # ???????????????
  @result_window = Window_BattleResult.new(exp, gold, treasures)
  # ???????????
  @phase5_wait_count = 100
end

#--------------------------------------------------------------------------
# ? ?????? (???????????)
#--------------------------------------------------------------------------
def update_phase5
  # ????????? 0 ???????
  if @phase5_wait_count > 0
    # ????????????
    @phase5_wait_count -= 1
    # ????????? 0 ??????
    if @phase5_wait_count == 0
      # ????????????
      @result_window.visible = true
      # ??????????????
      $game_temp.battle_main_phase = false
      # ?????????????????
      #@status_window.refresh
    end
    return
  end
  # C ??????????
  if Input.trigger?(Input::C)
    # ?????
    battle_end(0)
  end
end

def phase3_setup_command_window
  # ?????????????????
  @party_command_window.active = false
  @party_command_window.visible = false
  # ?????????????????
  @actor_command_window.active = true
  @actor_command_window.visible = true
  @help_window.visible = true
  # ???????????????????
  if @actor_command_window.help_window == nil
    @actor_command_window.help_window = @help_window
  end
  @actor_command_window.update_help    
  #@actor_command_window.x = @actor_index * 160
  # ??????? 0 ???
  @actor_command_window.index = 0
end
def start_enemy_select
  # ??????????
  @enemy_arrow = Arrow_Enemy.new(@spriteset.viewport2)
  # ?????????????
  @enemy_arrow.help_window = @help_window
  # ?????????????????
  @actor_command_window.active = false
  @actor_command_window.visible = false
end

def update_phase4
  case @phase4_step
  when 1
    update_phase4_step1
  when 2
    update_phase4_step2
  when 3
    update_phase4_step3
  when 4
    update_phase4_step4
  when 5
    update_phase4_step5
  when 6
    update_phase4_step6
  when 7
    update_phase4_step7
  end    
end

def update_phase4_step1

  # Change actor poses to default
  #if @active_battler.is_a?(Game_Actor)
  #  @spriteset.actor_sprites[@active_battler.index].default_pose
  #end
  for i in 0...$game_party.actors.size
    actor = $game_party.actors[i]
    @spriteset.actor_sprites[i].default_pose
  end

  @help_window.visible = false
  if judge
    return
  end
  if $game_temp.forcing_battler == nil
    setup_battle_event
    if $game_system.battle_interpreter.running?
      return
    end
  end
  if $game_temp.forcing_battler != nil
    @action_battlers.delete($game_temp.forcing_battler)
    @action_battlers.unshift($game_temp.forcing_battler)
  end
  if @action_battlers.size == 0
    start_phase2
    return
  end
  @animation1_id = 0
  @animation2_id = 0
  @common_event_id = 0
  @active_battler = @action_battlers.shift
  if @active_battler.index == nil
    return
  end
  if @active_battler.hp > 0 and @active_battler.slip_damage?
    @active_battler.slip_damage_effect
    @active_battler.damage_pop = true
  end
  @active_battler.remove_states_auto
  #@status_window.refresh
  @phase4_step = 2
end

def make_basic_action_result

  if @active_battler.is_a?(Game_Actor)
    $actor_on_top = true
  elsif @active_battler.is_a?(Game_Enemy)
    $actor_on_top = false
  end
  if @active_battler.current_action.basic == 0
    @animation1_id = @active_battler.animation1_id
    @animation2_id = @active_battler.animation2_id
    if @active_battler.is_a?(Game_Enemy)
      if @active_battler.restriction == 3
        target = $game_troop.random_target_enemy
      elsif @active_battler.restriction == 2
        target = $game_party.random_target_actor
      else
        index = @active_battler.current_action.target_index
        target = $game_party.smooth_target_actor(index)
      end
#======== here is the setting for the movement & animation...
        x = target.screen_x - 32
        @spriteset.enemy_sprites[@active_battler.index].enemy_pose(2)
        @spriteset.enemy_sprites[@active_battler.index].move(x, target.screen_y, 10)
#========= here if you look at the RPG's movement settings you'll see
#========= that he takes the number 40 for the speed of the animation... 
#========= i thing thats too fast so i settet it down to 10 so looks smoother...
    end
    if @active_battler.is_a?(Game_Actor)
      weapon = $data_weapons[@active_battler.weapon_id]
      range = false
      if weapon != nil
        for id in weapon.element_set
          if $data_system.elements[23] == "Range"
            range = true
            break
          end
        end
      end
      if @active_battler.restriction == 3
        target = $game_party.random_target_actor
      elsif @active_battler.restriction == 2
        target = $game_troop.random_target_enemy
      else
        index = @active_battler.current_action.target_index
        target = $game_troop.smooth_target_enemy(index)
      end
#======= the same thing for the player... ^-^
      x = target.screen_x + 32
      @spriteset.actor_sprites[@active_battler.index].pose(1)
      @spriteset.actor_sprites[@active_battler.index].move(x * (range ? 2 : 1), target.screen_y, 10)
      range = false
    end
    @target_battlers = [target]
    for target in @target_battlers
      target.attack_effect(@active_battler)
    end
    return
  end
  if @active_battler.current_action.basic == 1
    if @active_battler.is_a?(Game_Actor)
      @spriteset.actor_sprites[@active_battler.index].pose(0, 1) #defence
    else
      @spriteset.enemy_sprites[@active_battler.index].enemy_pose(0, 1) #defence
    end
    @help_window.set_text($data_system.words.guard, 1)
    return
  end
  if @active_battler.is_a?(Game_Enemy) and
     @active_battler.current_action.basic == 2
    @help_window.set_text("Escape", 1)
    @active_battler.escape
    return
  end
  if @active_battler.current_action.basic == 3
    $game_temp.forcing_battler = nil
    @phase4_step = 1
    return
  end

  if @active_battler.current_action.basic == 4
    if $game_temp.battle_can_escape == false
      $game_system.se_play($data_system.buzzer_se)
      return
    end
    $game_system.se_play($data_system.decision_se)
    update_phase2_escape
    return
  end
end

def make_skill_action_result

  @skill = $data_skills[@active_battler.current_action.skill_id]
  unless @active_battler.current_action.forcing
    unless @active_battler.skill_can_use?(@skill.id)
      $game_temp.forcing_battler = nil
      @phase4_step = 1
      return
    end
  end
  @active_battler.sp -= @skill.sp_cost
  #@status_window.refresh
  @help_window.set_text(@skill.name, 1)
  @animation1_id = @skill.animation1_id
  @animation2_id = @skill.animation2_id
    if @active_battler.is_a?(Game_Enemy)
        #@spriteset.enemy_sprites[@active_battler.index].change_sp_bar
         x = @active_battler.screen_x + 48
        @spriteset.enemy_sprites[@active_battler.index].enemy_pose(2)
        @spriteset.enemy_sprites[@active_battler.index].move(x, @active_battler.screen_y, 5)
        @spriteset.enemy_sprites[@active_battler.index].enemy_pose(0, 1)
    end
    if @active_battler.is_a?(Game_Actor)
      #@spriteset.actor_sprites[@active_battler.index].change_sp_bar
      x = @active_battler.screen_x - 48
      @spriteset.actor_sprites[@active_battler.index].pose(1)
      @spriteset.actor_sprites[@active_battler.index].move(x, @active_battler.screen_y, 5)
      @spriteset.actor_sprites[@active_battler.index].pose(0, 1)
    end
  @common_event_id = @skill.common_event_id
  set_target_battlers(@skill.scope)
  for target in @target_battlers
    target.skill_effect(@active_battler, @skill)
  end
end

  def make_item_action_result

  # sorry i didnt work on this...
  # couse i dont have a sprite that uses items....
  # so i just added the standby sprite here...
  # when i get more time for this i'll try what i can do for this one... ^-^
  # its the same as the ones above...
  if @active_battler.is_a?(Game_Actor)
    @spriteset.actor_sprites[@active_battler.index].pose(0, 1)
  else
    @spriteset.enemy_sprites[@active_battler.index].enemy_pose(0, 1)
  end

  @item = $data_items[@active_battler.current_action.item_id]
  unless $game_party.item_can_use?(@item.id)
    @phase4_step = 1
    return
  end
  if @item.consumable
    $game_party.lose_item(@item.id, 1)
  end
  @help_window.set_text(@item.name, 1)
  @animation1_id = @item.animation1_id
  @animation2_id = @item.animation2_id
  @common_event_id = @item.common_event_id
  index = @active_battler.current_action.target_index
  target = $game_party.smooth_target_actor(index)
  set_target_battlers(@item.scope)
  for target in @target_battlers
    target.item_effect(@item)
  end
end

def update_phase4_step3
  if @active_battler.current_action.kind == 0 and
     @active_battler.current_action.basic == 0
     # in this one... we have our weapon animations... for player and monster
    if @active_battler.is_a?(Game_Actor)
      @spriteset.actor_sprites[@active_battler.index].pose(0,1)
    elsif @active_battler.is_a?(Game_Enemy)
      @spriteset.enemy_sprites[@active_battler.index].enemy_pose(0,1)
    end
  end
  if @animation1_id == 1
    @active_battler.white_flash = true
  else
    @active_battler.animation_id = @animation1_id
    @active_battler.animation_hit = true
  end
  @phase4_step = 4
end

def update_phase4_step4
  # this here is for the hit animation...
  for target in @target_battlers
    target.animation_id = @animation2_id
    target.animation_hit = (target.damage != "Miss")
  end
  @wait_count = 8
  @phase4_step = 5
end

def update_phase4_step5
  if @active_battler.hp > 0 and @active_battler.slip_damage?
    @active_battler.slip_damage_effect
    @active_battler.damage_pop = true
  end
  # ???????????
  @help_window.visible = false
  # ?????????????????
  #@status_window.refresh
  # ??????

  if @active_battler.is_a?(Game_Actor)
    @spriteset.actor_sprites[@active_battler.index].pose(0, 1)
  else
    @spriteset.enemy_sprites[@active_battler.index].enemy_pose(0, 1)
  end
  for target in @target_battlers
    if target.damage != nil
      target.damage_pop = true
      if @active_battler.is_a?(Game_Actor)
        @spriteset.actor_sprites[@active_battler.index].pose(0, 1)
      else
        @spriteset.enemy_sprites[@active_battler.index].enemy_pose(0, 1)
      end
    end
  end
  # ???? 6 ???
  @phase4_step = 6
end

def update_phase4_step6

  # here we are asking if the player is dead and is a player or an enemy...
  # these lines are for the running back and standby animation....
  if @active_battler.is_a?(Game_Actor)
    if @active_battler.current_action.basic == 1
      @spriteset.actor_sprites[@active_battler.index].pose(0, 1)
    else
      @spriteset.actor_sprites[@active_battler.index].move(@active_battler.screen_x, @active_battler.screen_y, 20)
      @spriteset.actor_sprites[@active_battler.index].pose(2)
    end
  else
    if @active_battler.current_action.basic == 1
      @spriteset.enemy_sprites[@active_battler.index].enemy_pose(0, 1)
    else
      @spriteset.enemy_sprites[@active_battler.index].move(@active_battler.screen_x, @active_battler.screen_y, 20)
      @spriteset.enemy_sprites[@active_battler.index].enemy_pose(1)
    end
  end
  for target in @target_battlers
    if target.is_a?(Game_Actor)
        @spriteset.actor_sprites[target.index].pose(0, 1)
      else
        @spriteset.enemy_sprites[target.index].enemy_pose(0, 1)
    end
  end
  $game_temp.forcing_battler = nil
  if @common_event_id > 0
    common_event = $data_common_events[@common_event_id]
    $game_system.battle_interpreter.setup(common_event.list, 0)
  end
  @phase4_step = 7
end

def update_phase4_step7

  # here we are asking if the player is dead and is a player or an enemy...
  # these lines are for the running back and standby animation....
  if @active_battler.is_a?(Game_Actor)
    @spriteset.actor_sprites[@active_battler.index].pose(0, 1)
  else
    @spriteset.enemy_sprites[@active_battler.index].enemy_pose(0, 1)
  end

  $game_temp.forcing_battler = nil
  if @common_event_id > 0
    common_event = $data_common_events[@common_event_id]
    $game_system.battle_interpreter.setup(common_event.list, 0)
  end
  @phase4_step = 1
end
end

 

 

I don't know who made it. You'll have to find out yourself.

Share this post


Link to post
Share on other sites
  • 0

nice, i might use it some time (when ever I get round to finishsing a tileset <_< )

Share this post


Link to post
Share on other sites
  • 0

AWESOME!!! :) IT WORKED clap.gif !!! BUT it worked only once....sweatdrop.gif Then it displayed and error! Line 30:Bad range value! :( PLEASE Tell me how can I get rid of it!!IT WORKED ONCE WITHOUT THE MARATHON RACES!!! I'M SURE IT'LL WORK AGAIN!! :D YOU GUYS ARE AWESOME!!(Dont mind me shouting...I can't

control my happiness XD XD )

Share this post


Link to post
Share on other sites
  • 0
Then it displayed and error! Line 30:Bad range value

 

Thats the error....It works fine when I "Battle test" it..... :) But when I do an actual battle in the game........This error comes up: Line 30:Bad range value.... The non-animated battlers is really necessary!!I don't have facesets so I can't use the default battle system(it won't look nice :D .I hope you guys find a way to fix this thing :)

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...