O TEMA DO FÓRUM ESTÁ EM MANUTENÇÃO. FEEDBACKS AQUI: ACESSAR

Yanfly Engine RD - Scene Status ReDux

Iniciado por LoboShow, 25/01/2013 às 14:10

Yanfly Engine RD - Scene Status ReDux

Compativel com: RMVX
Compatibilidade: ?
Facilidade de uso: ?
Lag gerado: ?

[box class=titlebg]
Para que serve o script
[/box]
Cria um nova tela de status com atributos representados por ícones (do iconset).  E também uma opção para adicionar uma biografia do personagem onde podem ser colocados dados pessoais como aniversário, data de nascimento, etc..
Copie e cole o script acima do main. A área configurável do script inicia na linha 88.

[box class=titlebg]
Imagens
[/box]
Spoiler
[close]

[box class=titlebg]
Script
[/box]
#===============================================================================
#
# Yanfly Engine RD - Scene Status ReDux
# Last Date Updated: 2009.05.26
# Level: Normal, Hard, Lunatic
#
# There's not a whole lot of reason for the player to visit the status menu.
# Not too much to see aside from things you can already view in other menus
# such as the equipment menu for stats. This script will provide additional
# functionality to the scene in addition to allowing the game maker to free
# up additional space in the main menu for the not actor-oriented stuff.
#
#===============================================================================
# Updates:
# ----------------------------------------------------------------------------
# o 2009.05.26 - Started script and finished.
#===============================================================================
# Instructions
#===============================================================================
#
# This script is plug and play for the most part, but there's bound to be a lot
# things you may want to modify so scroll down and reach each of the individual
# instructions carefully for all sections and modify the constants properly.
#
#===============================================================================
#
# Compatibility
# - Works With: KGC scripts and others!
# - Alias: Scene_Equip: return_scene
# - Alias: Scene_Skill: return_scene
# - Alias: Scene_Title: create_game_objects
# - Alias: Game_Temp: initialize
# - Overwrites: Scene_Status: all
#
#===============================================================================

$imported = {} if $imported == nil
$imported["SceneStatusReDux"] = true

module YE
  module REDUX
    module STATUS
     
      #------------------------------------------------------------------------
      # Instructions on how to set up the STATUS_COMMANDS order.
      #------------------------------------------------------------------------
      # This array will let you determine how you want your status window
      # commands to be ordered. They will appear in the number you order them.
      # Each command is assigned a number and these are the following numbers.
      #
      #     0..Statistics    1..Biography    2..Skills    3..Equips
      #
      # The next couple are Yanfly Engine ReDux commands and require you to
      # have the respective scripts before they will appear in the menu. Be
      # sure to add them to STATUS_COMMANDS if you wish to display them.
      #
      #     4..Change Class .......... Requires Subclass Selection System
      #     5..Learn Skills .......... Requires Subclass Selection System
      #     6..Skill Slots ........... Requires Equip Skill Slots
      #
      # There are some pre-made imported functions for this script. Of them are
      # the popular and powerful KGC scripts and others which I've also found
      # to be rather interesting.
      #
      #   101..Distribute Parameter .. Requires KGC Distribute Parameter
      #   102..Equip Learn Skill ..... Requires KGC Equip Learn Skill
      #   103..Skill CP System ....... Requires KGC Skill CP System
      #   201..Skill Growth .......... Requires Garlyle's Skill Growth System
      #   301..Attributes ............ Requires 332211's Attribute System
      #   302..Soul Pieces ........... Requires 332211's Soul Pieces System
      #   303..Weapon by Ranks ....... Requires 332211's Weapon by Ranks System
      #
      # If you wish to add your own commands, you'll need to register them
      # under the lunatic mode portion of the script.
      #------------------------------------------------------------------------
      STATUS_COMMANDS =[ # Make sure you've read the instructions above.
         0, # Statistics
         1, # Biography
         2, # Skills
         6, # Skill Slots
         3, # Equips
         4, # Change Class
         5, # Learn Skills
      ] # Do not remove this.
     
      # The constants below will determine the unique sound and strings made
      # specificly for the Scene Status ReDux script.
      SOUND    = RPG::SE.new("Book", 80, 100)
      STATUS   = "Status"
      BIO      = "Biography"
     
      # The following determines determines profile categories for various
      # profile information.
      BIRTHDAY = "Birthday: "
      AGE      = "Age: "
      ORIGIN   = "Origin: "
      GENDER   = "Gender: "
      HEIGHT   = "Height: "
      WEIGHT   = "Weight: "
      UNKNOWN  = "Unknown"
     
      # This hash will let you determine what full names to give your
      # individual actors. Use %s to indicate where the RPG name appears.
      ACTOR_PROFILES1 ={
      # Actor => [       Full Name,   Origin,   Gender, Height,   Weight]
            1 => [ "%s von Xiguel", "Pallia",   "Male", "177.8 cm",  "72.7 kg"],
            2 => [   "Michelle %s", "Retvin", "Female", "170.2 cm", "Unknown"],
            3 => [    "%s Manfred",  "Namek",   "Male", "182.9 cm",  "68.2 kg"],
            4 => [   "%s Fernaeus",   "Yerd", "Female", "162.6 cm", "Secret~"],
      } # Do not remove this.
     
      # The following hash will determine the birthday information about the
      # actor. The VarID is what stores the birthday. Change the variable to
      # change the actor's age in the actual menu. The start age is what the
      # variable initially sets the actor's age to. The birthday is just the
      # date that the actor is born. Nothing else special about it.
      ACTOR_PROFILES2 ={
      # Actor => [ VarID, StartAge, Birthday]
            1 => [    21,       18, "May 26"],
            2 => [    22,       17, "Jan 14"],
            3 => [    23,       18, "Oct 31"],
            4 => [    24,       19, "June 3"],
      } # Do not remove this.
     
      # This will determine the size of the font used for the biography window.
      BIO_FONT_SIZE = 20
     
      # This section will allow you to type out the actor biographies. To
      # cause a line break, use a | in the middle of the string. If the actors
      # do not have a biography here, it will show actor 0 instead. For that
      # reason, do NOT remove actor 0.
      ACTOR_BIOGRAPHIES ={
      # Actor => Biography
            0 => "UNKNOWN    UNKNOWN    UNKNOWN|UNKNOWN    UNKNOWN    UNKNOWN|UNKNOWN    UNKNOWN    UNKNOWN|UNKNOWN    UNKNOWN    UNKNOWN|UNKNOWN    UNKNOWN    UNKNOWN|UNKNOWN    UNKNOWN    UNKNOWN|UNKNOWN    UNKNOWN    UNKNOWN|UNKNOWN    UNKNOWN    UNKNOWN",
            1 => "Ralph has set off on a quest to save|Don Miguel from the clutches of the evil|witch Margaret. Accompanied by Ulrika,|Bennett, and Ylva, Ralph adventures|the world to find Don Miguel.||\"Let's hurry! Don Miguel cannot wait|much longer!\"",
            2 => "Ulrika trained with Ralph before Don|Miguel was kidnapped. She always sees|Ralph as a rival, but also a source of|inspiration. Ulrika firmly believes that|training will let her get rid of her many|weaknesses.||\"Strength comes from a trained heart.\"",
            3 => "Bennett choose the wrong profession|given his bursting personality. He and|his best friend Ralph give each other|motivation to strengthen themselves|and to become the ultimate tagteam|ever known to the world.||\"Their priest is a sissy! You heard me,|a sissy!\"",
            4 => "Ylva studies in her free time about|various magic and locations. This is|why it seems like she knows a lot,|but the truth is that she only knows|what she has read in books.||\"Why risk your life to experience|something when you can read about|it in a book?\"",
      } # Do not remove this.
     
      # The following sets the statistical information for your actors.
      # These are all of the information you'll see in the statistics window.
      ICON_LVL  = 62           # Icon for level
      TEXT_LVL  = "Level"      # Text for level
      ICON_EXP  = 63           # Icon for experience
      TEXT_EXP  = "EXP"        # Text for experience
      ICON_NEXT = 142          # Icon for next level
      TEXT_NEXT = "Next"       # Text for next level
     
      ICON_HP   = 99           # Icon for HP
      ICON_MP   = 100          # Icon for MP
     
      ICON_ATK  = 2            # Icon for ATK
      TEXT_ATK  = "ATK"        # Text for ATK
      ICON_DEF  = 52           # Icon for DEF
      TEXT_DEF  = "DEF"        # Text for DEF
      ICON_SPI  = 21           # Icon for SPI
      TEXT_SPI  = "SPI"        # Text for SPI
      ICON_AGI  = 48           # Icon for AGI
      TEXT_AGI  = "AGI"        # Text for AGI
     
      ICON_HIT  = 135          # Icon for HIT
      TEXT_HIT  = "HIT"        # Text for HIT
      SHOW_HIT  = true         # Display HIT?
      ICON_EVA  = 158          # Icon for EVA
      TEXT_EVA  = "EVA"        # Text for EVA
      SHOW_EVA  = true         # Display EVA?
      ICON_CRI  = 119          # Icon for CRI
      TEXT_CRI  = "CRI"        # Text for CRI
      SHOW_CRI  = true         # Display CRI?
      ICON_ODDS = 137          # Icon for ODDS
      TEXT_ODDS = "LUK"        # Text for ODDS
      SHOW_ODDS = true         # Display ODDS?
   
    end # STATUS
  end # REDUX
end # YE

#===============================================================================
# How to Use: Lunatic Mode
#===============================================================================
#
# If you do not understand hashes, I -STRONGLY- recommend that you stay away
# from this portion of the script as it affects the rest of the script if you
# make a slight mistake.
#
# - First, under IMPORTED_COMMANDS, fill out the hash properly. You will have
# to fill them out correctly given the categories.
#
#    Swch? - Does this command require a switch to be on in order to be shown?
#     SwID - If the previous was true, this is the Switch ID needed to be on.
#    Title - This is the text that appears on the status command window.
#    Scene - This is the name of the scene you wish to load.
#
# - Given that you've done everything correctly, return to the top and adjust
# the STATUS_COMMANDS array. Input number 101 or whatever number you've used
# to determine the scene you wish to launch from the status menu.
#
# Note that if you exit the imported scenes, they will return to the main menu
# rather than the status menu. It will remain that way until you edit those
# scripts's respective return_scene definitions.
#
#===============================================================================

module YE
module REDUX
module STATUS
     
  # The following hash will govern the way the status menu will treat
  # imported commands. If you do not follow the setup properly, do not
  # expect the script to function correctly.
  IMPORTED_COMMANDS ={
  # -ID => [Swch?, SwID, ----Title----, -----------Scene-----------]
    101 => [false,    0, "Level Up",    "Scene_DistributeParameter"],
    102 => [false,    0, "View AP",     "Scene_APViewer"],
    103 => [false,    0, "Skill CP",    "Scene_SetBattleSkill"],
    201 => [false,    0, "Grow Skill",  "Scene_SkillGrowth"],
    301 => [false,    0, "Attributes",  "Scene_Attributes"],
    302 => [false,    0, "Soul Pieces", "Scene_soulpieces"],
    303 => [false,    0, "Weapon Rank", "Scene_weapon_by_ranks"],
  } # Do not remove this.
     
end # STATUS
end # REDUX
end # YE

#===============================================================================
# Editting anything past this point may potentially result in causing computer
# damage, incontinence, explosion of user's head, coma, death, and/or halitosis.
# Therefore, edit at your own risk.
#===============================================================================

#===============================================================================
# Scene Status
#===============================================================================

class Scene_Status < Scene_Base
 
  #--------------------------------------------------------------------------
  # create command list
  # --- This portion creates the commands for the status window.
  #--------------------------------------------------------------------------
  def create_command_list
    commands = []
    index_list = {}
    YE::REDUX::STATUS::STATUS_COMMANDS.each_with_index { |c, i|
      case c
      when 0 # View Statistics
        index_list[:stats] = commands.size
        commands.push(YE::REDUX::STATUS::STATUS)
       
      when 1 # View Biography
        index_list[:bio] = commands.size
        commands.push(YE::REDUX::STATUS::BIO)
       
      when 2 # Skill Menu
        index_list[:skill] = commands.size
        commands.push(Vocab.skill)
       
      when 3 # Equipment
        index_list[:equip] = commands.size
        commands.push(Vocab.equip)
     
      when 4 # Change Class
        next unless $imported["SubclassSelectionSystem"]
        next unless $game_switches[YE::SUBCLASS::ENABLE_CLASS_CHANGE_SWITCH]
        index_list[:classchange] = commands.size
        commands.push(YE::SUBCLASS::MENU_CLASS_CHANGE_TITLE)
       
      when 5 # Learn Skill
        next unless $imported["SubclassSelectionSystem"]
        next unless $game_switches[YE::SUBCLASS::ENABLE_LEARN_SKILLS_SWITCH]
        index_list[:learnskill] = commands.size
        commands.push(YE::SUBCLASS::LEARN_SKILL_TITLE)
       
      when 6 # Skill Slots
        next unless $imported["EquipSkillSlots"]
        next unless $game_switches[YE::EQUIPSKILL::ENABLE_SLOTS_SWITCH]
        index_list[:equipskill] = commands.size
        commands.push(YE::EQUIPSKILL::MENU_TITLE)
       
      else
        command_array = YE::REDUX::STATUS::IMPORTED_COMMANDS
        next unless command_array.include?(c)
        command_array = command_array[c]
        next if command_array[0] and !$game_switches[command_array[1]]
        index_list[c] = commands.size
        commands.push(command_array[2])
       
      end
    } # Do not remove this.
    $game_temp.status_command_index = index_list
    return commands
  end # create_command_list
 
  #--------------------------------------------------------------------------
  # case_command_selection
  #--------------------------------------------------------------------------
  def case_command_selection(index)
    case index
    when $game_temp.status_command_index[:stats]
      YE::REDUX::STATUS::SOUND.play
      $game_temp.status_bio_flag = 0
      start_visible_windows
     
    when $game_temp.status_command_index[:bio]
      YE::REDUX::STATUS::SOUND.play
      $game_temp.status_bio_flag = 1
      start_visible_windows
   
    when $game_temp.status_command_index[:skill]
      Sound.play_decision
      $scene = Scene_Skill.new(@actor_index)
     
    when $game_temp.status_command_index[:equip]
      Sound.play_decision
      $scene = Scene_Equip.new(@actor_index)
     
    when $game_temp.status_command_index[:classchange]
      Sound.play_decision
      $scene = Scene_Class_Change.new(@actor_index)
     
    when $game_temp.status_command_index[:learnskill]
      Sound.play_decision
      $scene = Scene_Learn_Skill.new(@actor_index)
     
    when $game_temp.status_command_index[:equipskill]
      Sound.play_decision
      $scene = Scene_Equip_Skill.new(@actor_index)
     
    else
      return_check = true
      for key in $game_temp.status_command_index
        if $game_temp.status_command_index[key[0]] == index
          return_check = false
          found_key = key[0]
          break
        end
      end
      return if return_check
      Sound.play_decision
      command_array = YE::REDUX::STATUS::IMPORTED_COMMANDS[found_key]
      $scene = eval(command_array[3] + ".new(@actor_index)")
     
    end
  end # case_command_selection
 
  #--------------------------------------------------------------------------
  # overwrite initialize
  #--------------------------------------------------------------------------
  def initialize(actor_index = 0, menu_index = 0)
    @menu_index = menu_index
    $game_temp.status_menu_flag = true
    @actor_index = actor_index
    @actor = $game_party.members[@actor_index]
  end
 
  #--------------------------------------------------------------------------
  # overwrite start
  #--------------------------------------------------------------------------
  def start
    super
    create_menu_background
    @status_window = Window_Status.new(@actor)
    @status_mini_window = Window_Status_Mini.new(@actor)
    @status_bio_window = Window_Status_Bio.new(@actor)
    start_visible_windows
    create_command_window
  end
 
  #--------------------------------------------------------------------------
  # overwrite terminate
  #--------------------------------------------------------------------------
  def terminate
    super
    dispose_menu_background
    @command_window.dispose if @command_window != nil
    @status_window.dispose if @status_window != nil
    @status_mini_window.dispose if @status_mini_window != nil
    @status_bio_window.dispose if @status_bio_window != nil
  end
 
  #--------------------------------------------------------------------------
  # overwrite return scene
  #--------------------------------------------------------------------------
  def return_scene
    if $imported["CustomMenuCommand"] and
    $game_temp.menu_command_index.has_key?(:status)
      $scene = Scene_Menu.new($game_temp.menu_command_index[:status])
    elsif $imported["CustomMenuCommand"]
      $scene = Scene_Map.new
    else
      $scene = Scene_Menu.new(3)
    end
    $game_temp.status_menu_flag = false
  end
 
  #--------------------------------------------------------------------------
  # overwrite next actor
  #--------------------------------------------------------------------------
  def next_actor
    @actor_index += 1
    @actor_index %= $game_party.members.size
    $scene = Scene_Status.new(@actor_index, @command_window.index)
  end
 
  #--------------------------------------------------------------------------
  # overwrite prev actor
  #--------------------------------------------------------------------------
  def prev_actor
    @actor_index += $game_party.members.size - 1
    @actor_index %= $game_party.members.size
    $scene = Scene_Status.new(@actor_index, @command_window.index)
  end
 
  #--------------------------------------------------------------------------
  # overwrite update
  #--------------------------------------------------------------------------
  def update
    super
    update_menu_background
    @command_window.update
    if Input.trigger?(Input::B)
      Sound.play_cancel
      return_scene
    elsif Input.trigger?(Input::C)
      $game_temp.status_menu_index = @command_window.index
      case_command_selection(@command_window.index)
    elsif Input.trigger?(Input::R)
      Sound.play_cursor
      next_actor
    elsif Input.trigger?(Input::L)
      Sound.play_cursor
      prev_actor
    end
  end
 
  #--------------------------------------------------------------------------
  # create command window
  #--------------------------------------------------------------------------
  def create_command_window
    commands = create_command_list
    @command_window = Window_Command.new(160, commands)
    @command_window.y = 128
    @command_window.height = 288
    @command_window.opacity = 0
    @command_window.index = @menu_index
  end
 
  #--------------------------------------------------------------------------
  # start visible windows
  #--------------------------------------------------------------------------
  def start_visible_windows
    @status_mini_window.visible = false
    @status_bio_window.visible = false
    case $game_temp.status_bio_flag
    when 0
      @status_mini_window.visible = true
    when 1
      @status_bio_window.visible = true
    end
  end
 
end

#==============================================================================
# Game_Temp
#==============================================================================

class Game_Temp
 
  #--------------------------------------------------------------------------
  # Public Instance Variables
  #--------------------------------------------------------------------------
  attr_accessor :status_command_index
  attr_accessor :status_menu_flag
  attr_accessor :status_menu_index
  attr_accessor :status_bio_flag
 
  #--------------------------------------------------------------------------
  # alias initialize
  #--------------------------------------------------------------------------
  alias initialize_statusrd initialize unless $@
  def initialize
    initialize_statusrd
    @status_command_index = {}
    @status_menu_flag = false
    @status_menu_index = 0
    @status_bio_flag = 0
  end
end

#===============================================================================
# Scene Title
#===============================================================================

class Scene_Title < Scene_Base
 
  #--------------------------------------------------------------------------
  # alias create game objects
  #--------------------------------------------------------------------------
  alias create_game_objects_statusrd create_game_objects unless $@
  def create_game_objects
    create_game_objects_statusrd
    for key in YE::REDUX::STATUS::ACTOR_PROFILES2
      narray = key[1]
      $game_variables[narray[0]] = narray[1]
    end
  end
 
end # Scene_Title

#===============================================================================
# return scene alias
#===============================================================================
unless $imported["SceneSkillReDux"]
class Scene_Skill < Scene_Base
 
  #--------------------------------------------------------------------------
  # alias return scene
  #--------------------------------------------------------------------------
  alias skill_return_scene_statusrd return_scene unless $@
  def return_scene
    if $game_temp.status_menu_flag
      $scene = Scene_Status.new(@actor_index, $game_temp.status_menu_index)
    else
      skill_return_scene_statusrd
    end
  end
 
end
end
unless $imported["SceneEquipReDux"]
class Scene_Equip < Scene_Base
 
  #--------------------------------------------------------------------------
  # alias return scene
  #--------------------------------------------------------------------------
  alias equip_return_scene_statusrd return_scene unless $@
  def return_scene
    if $game_temp.status_menu_flag
      $scene = Scene_Status.new(@actor_index, $game_temp.status_menu_index)
    else
      equip_return_scene_statusrd
    end
  end
 
end
end

#===============================================================================
# Window_Status
#===============================================================================

class Window_Status < Window_Base
 
  #--------------------------------------------------------------------------
  # initialize
  #--------------------------------------------------------------------------
  def initialize(actor)
    super(0, 0, 544, 416)
    @actor = actor
    refresh
  end
 
  #--------------------------------------------------------------------------
  # refresh
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    draw_actor_face(@actor, 0, 0)
    profile1 = YE::REDUX::STATUS::ACTOR_PROFILES1
    profile2 = YE::REDUX::STATUS::ACTOR_PROFILES2
    if profile1.include?(@actor.id)
      text = sprintf(profile1[@actor.id][0], @actor.name)
    else
      text = @actor.name
    end
    self.contents.draw_text(112, 0, 180, WLH, text, 0)
    #----
    dx = 112
    if $imported["SubclassSelectionSystem"]
      if YE::SUBCLASS::CLASS_ICONS.include?(@actor.class.id)
        icon = YE::SUBCLASS::CLASS_ICONS[@actor.class.id]
      else
        icon = YE::SUBCLASS::CLASS_ICONS[0]
      end
      draw_icon(icon, dx, 24)
      dx += 24
      if @actor.subclass != nil
        if YE::SUBCLASS::CLASS_ICONS.include?(@actor.subclass.id)
          icon = YE::SUBCLASS::CLASS_ICONS[@actor.subclass.id]
        else
          icon = YE::SUBCLASS::CLASS_ICONS[0]
        end
        draw_icon(icon, dx, 24)
        dx += 24
      end
    end
    draw_actor_class(@actor, dx, 24)
    #----
    self.contents.font.color = system_color
    text1 = YE::REDUX::STATUS::BIRTHDAY
    text2 = YE::REDUX::STATUS::AGE
    self.contents.draw_text(112, 48, 90, WLH, text1, 2)
    self.contents.draw_text(112, 72, 90, WLH, text2, 2)
    if profile2.include?(@actor.id)
      text1 = profile2[@actor.id][2]
      text2 = $game_variables[profile2[@actor.id][0]]
    else
      text1 = YE::REDUX::STATUS::UNKNOWN
      text2 = YE::REDUX::STATUS::UNKNOWN
    end
    self.contents.font.color = normal_color
    self.contents.draw_text(202, 48, 90, WLH, text1, 0)
    self.contents.draw_text(202, 72, 90, WLH, text2, 0)
    #----
    self.contents.font.color = system_color
    text1 = YE::REDUX::STATUS::ORIGIN
    text2 = YE::REDUX::STATUS::GENDER
    text3 = YE::REDUX::STATUS::HEIGHT
    text4 = YE::REDUX::STATUS::WEIGHT
    self.contents.draw_text(292,  0, 90, WLH, text1, 2)
    self.contents.draw_text(292, 24, 90, WLH, text2, 2)
    self.contents.draw_text(292, 48, 90, WLH, text3, 2)
    self.contents.draw_text(292, 72, 90, WLH, text4, 2)
    if profile1.include?(@actor.id)
      text1 = profile1[@actor.id][1]
      text2 = profile1[@actor.id][2]
      text3 = profile1[@actor.id][3]
      text4 = profile1[@actor.id][4]
    else
      text1 = YE::REDUX::STATUS::UNKNOWN
      text2 = YE::REDUX::STATUS::UNKNOWN
      text3 = YE::REDUX::STATUS::UNKNOWN
      text4 = YE::REDUX::STATUS::UNKNOWN
    end
    self.contents.font.color = normal_color
    self.contents.draw_text(382,  0, 90, WLH, text1, 0)
    self.contents.draw_text(382, 24, 90, WLH, text2, 0)
    self.contents.draw_text(382, 48, 90, WLH, text3, 0)
    self.contents.draw_text(382, 72, 90, WLH, text4, 0)
    #----
  end
 
end # Window_Status

#==============================================================================
# Window_Status_Mini
#==============================================================================

class Window_Status_Mini < Window_Base
 
  #--------------------------------------------------------------------------
  # initialize
  #--------------------------------------------------------------------------
  def initialize(actor)
    super(160, 128, 384, 288)
    @actor = actor
    self.opacity = 0
    self.visible = false
    refresh
  end
 
  #--------------------------------------------------------------------------
  # refresh
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    self.contents.font.color = system_color
    #---
    sw = self.width - 32
    dx = 0
    dy = 0
    draw_icon(YE::REDUX::STATUS::ICON_LVL, dx, dy)
    self.contents.draw_text(dx+24, dy, 60, WLH, YE::REDUX::STATUS::TEXT_LVL)
   
    dy += WLH
    draw_icon(YE::REDUX::STATUS::ICON_NEXT, dx, dy)
    self.contents.draw_text(dx+24, dy, 60, WLH, YE::REDUX::STATUS::TEXT_NEXT)
    dy += WLH
    draw_icon(YE::REDUX::STATUS::ICON_EXP, dx, dy)
    self.contents.draw_text(dx+24, dy, 60, WLH, YE::REDUX::STATUS::TEXT_EXP)
   
    dy = WLH * 3
    draw_icon(YE::REDUX::STATUS::ICON_HP, dx, dy)
    draw_actor_hp(@actor, dx+24, dy, 128)
    dy += WLH
    self.contents.font.color = system_color
    draw_icon(YE::REDUX::STATUS::ICON_ATK, dx, dy)
    self.contents.draw_text(dx+24, dy, 60, WLH, YE::REDUX::STATUS::TEXT_ATK)
    dy += WLH
    draw_icon(YE::REDUX::STATUS::ICON_DEF, dx, dy)
    self.contents.draw_text(dx+24, dy, 60, WLH, YE::REDUX::STATUS::TEXT_DEF)
    dy += WLH
    draw_icon(YE::REDUX::STATUS::ICON_SPI, dx, dy)
    self.contents.draw_text(dx+24, dy, 60, WLH, YE::REDUX::STATUS::TEXT_SPI)
    dy += WLH
    draw_icon(YE::REDUX::STATUS::ICON_AGI, dx, dy)
    self.contents.draw_text(dx+24, dy, 60, WLH, YE::REDUX::STATUS::TEXT_AGI)
    #---
    dx = sw/2
    dy = WLH * 3
    draw_icon(YE::REDUX::STATUS::ICON_MP, dx, dy)
    draw_actor_mp(@actor, dx+24, dy, 128)
    dy += WLH
    self.contents.font.color = system_color
    if YE::REDUX::STATUS::SHOW_HIT
      draw_icon(YE::REDUX::STATUS::ICON_HIT, dx, dy)
      self.contents.draw_text(dx+24, dy, 60, WLH, YE::REDUX::STATUS::TEXT_HIT)
    end
    dy += WLH
    if YE::REDUX::STATUS::SHOW_EVA
      draw_icon(YE::REDUX::STATUS::ICON_EVA, dx, dy)
      self.contents.draw_text(dx+24, dy, 60, WLH, YE::REDUX::STATUS::TEXT_EVA)
    end
    dy += WLH
    if YE::REDUX::STATUS::SHOW_CRI
      draw_icon(YE::REDUX::STATUS::ICON_CRI, dx, dy)
      self.contents.draw_text(dx+24, dy, 60, WLH, YE::REDUX::STATUS::TEXT_CRI)
    end
    dy += WLH
    if YE::REDUX::STATUS::SHOW_ODDS
      draw_icon(YE::REDUX::STATUS::ICON_ODDS, dx, dy)
      self.contents.draw_text(dx+24, dy, 60, WLH, YE::REDUX::STATUS::TEXT_ODDS)
    end
    #---
    self.contents.font.color = normal_color
    dw = sw - 84
    dx = 84
    dy = 0
    self.contents.draw_text(dx, dy, 68, WLH, @actor.level); dy += WLH
    self.contents.draw_text(dx, dy, dw, WLH, @actor.next_rest_exp_s); dy += WLH
    self.contents.draw_text(dx, dy, dw, WLH, @actor.exp_s); dy += WLH
   
    dy = WLH * 4
    self.contents.draw_text(dx, dy, 68, WLH, @actor.atk, 0); dy += WLH
    self.contents.draw_text(dx, dy, 68, WLH, @actor.def, 0); dy += WLH
    self.contents.draw_text(dx, dy, 68, WLH, @actor.spi, 0); dy += WLH
    self.contents.draw_text(dx, dy, 68, WLH, @actor.agi, 0); dy += WLH
    dy = WLH * 4
    dx = sw/2 + 84
    if YE::REDUX::STATUS::SHOW_HIT
      text = sprintf("%d%%", @actor.hit)
      self.contents.draw_text(dx, dy, 68, WLH, text, 0)
    end; dy += WLH
    if YE::REDUX::STATUS::SHOW_EVA
      text = sprintf("%d%%", @actor.eva)
      self.contents.draw_text(dx, dy, 68, WLH, text, 0)
    end; dy += WLH
    if YE::REDUX::STATUS::SHOW_CRI
      text = sprintf("%d%%", @actor.cri)
      self.contents.draw_text(dx, dy, 68, WLH, text, 0)
    end; dy += WLH
    if YE::REDUX::STATUS::SHOW_ODDS
      self.contents.draw_text(dx, dy, 68, WLH, @actor.odds, 0)
    end; dy += WLH
  end
 
end # Window_Status_Mini

#==============================================================================
# Window_Status_Bio
#==============================================================================

class Window_Status_Bio < Window_Base
 
  #--------------------------------------------------------------------------
  # initialize
  #--------------------------------------------------------------------------
  def initialize(actor)
    super(160, 128, 384, 288)
    @actor = actor
    self.opacity = 0
    refresh
  end
 
  #--------------------------------------------------------------------------
  # refresh
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    self.contents.font.color = normal_color
    self.contents.font.size = YE::REDUX::STATUS::BIO_FONT_SIZE
    if YE::REDUX::STATUS::ACTOR_BIOGRAPHIES.include?(@actor.id)
      text = YE::REDUX::STATUS::ACTOR_BIOGRAPHIES[@actor.id]
    else
      text = YE::REDUX::STATUS::ACTOR_BIOGRAPHIES[0]
    end
    y = 0
    txsize = YE::REDUX::STATUS::BIO_FONT_SIZE + 4
    nwidth = 544
    buf = text.gsub(/\\N(\[\d+\])/i) { "\\__#{$1}" }
    lines = buf.split(/(?:[|]|\\n)/i)
    lines.each_with_index { |l, i|
      l.gsub!(/\\__(\[\d+\])/i) { "\\N#{$1}" }
      self.contents.draw_text(0, i * txsize + y, nwidth, WLH, l, 0)
    }
  end
 
end # Window_Status_Bio

#===============================================================================
#
# END OF FILE
#
#===============================================================================


[box class=titlebg]
Créditos e Avisos
[/box]
Yanfly, por criar o script