RMRK is retiring.
Registration is disabled. The site will remain online, but eventually become a read-only archive. More information.

RMRK.net has nothing to do with Blockchains, Cryptocurrency or NFTs. We have been around since the early 2000s, but there is a new group using the RMRK name that deals with those things. We have nothing to do with them.
NFTs are a scam, and if somebody is trying to persuade you to buy or invest in crypto/blockchain/NFT content, please turn them down and save your money. See this video for more information.
YEZ to YEM Status Biography

0 Members and 1 Guest are viewing this topic.

***
Rep:
Level 75
YEZ to YEM Status Biography
Version: 1.0
Author: Yanfly for the original scripts, heisenman
Date: 4 22, 2011




Description


This is a patch that brings back the YEZ Biography command in YEM Status Menu Melody. The Biography window displays actors biographies or classes descriptions.

Features

  • Actor biographies
  • Class descriptions in case actors biographies are missing

Screenshots

Actor biography.




Class description.



Instructions

Place this script below ? Materials and YEM Status Menu Melody but above ? Main in the Script Editor.
Note that the COMMANDS array and the COMMAND_VOCAB hash are rewritten from YEM Status Menu Melody, so update them if needed.
It requires YEM Status Menu Melody to work.

Script


Code: [Select]
#===============================================================================
# ** YEZ to YEM Status Biography
#------------------------------------------------------------------------------
#  This script brings back the YEZ Biography command in the Scene_Status
# command window that displays actors biographies or classes descriptions.
#===============================================================================
# Instructions
#------------------------------------------------------------------------------
#  Place this script below ? Materials and YEM Status Menu Melody but above
# ? Main in the Script Editor.
#  Note that the COMMANDS array and the COMMAND_VOCAB hash are rewritten, so
# update them if needed.
#  It requires YEM Status Menu Melody to work.
#===============================================================================
# Disclaimers
#------------------------------------------------------------------------------
#  This script is entirely based on the YEZ Biography command, present in the
# original YEZ Status Command Menu, and YEM Status Menu Melody. Both scripts are
# property of Yanfly (pockethouse.com).
#===============================================================================

module YEM
  module STATUS
   
#===============================================================================
# Configuration starts here.
#===============================================================================
   
    # This array determines what items will appear in the status scene and
    # what order they appear in. Remove them if you wish for them to not appear.
    COMMANDS =[
      :general,    # Displays general actor information.
      :boosters,   # Displays the actor's parameters and item boosts.
      :elements,   # Displays the actor's elemental affinities.
      :states,     # Displays the actor's status effect resistances.
      :biography,  # A biography of the actor.
    ] # Do not remove this.
   
    # This hash determines how the vocabulary appears in your game. Modify them
    # as you see fit if you wish to rename certain aspects.
    COMMAND_VOCAB ={
      :general    => "General",
      :boosters   => "Boosters",
      :elements   => "Elements",
      :states     => "Ailments",
      :biography  => "Biography",
    } # Do not remove this.
   
    # Biography Mini Window. The following will allow you to adjust biographies
    # for actors and classes. If an actor does not have a personal biography,
    # then the description of the character's class will be displayed instead.
    BIOGRAPHY ={
      :actor_bio => "%s's Biography",
      :class_des => "%s Description",
    } # Do not remove this.
   
    # When typing out biographies and descriptions, use \\N[x] to write out
    # the actor's name if the game allows renaming. For line splits, use |
    # at the each position you would want the description to start a new line.
    ACTOR_BIOS ={ # If an actor ID is not listed here, then refer to class bio.
    # ID => Bio
       1 => '\\N[1] is a very hot blooded young male whom|' +
            'embarked on a journey to save Don Miguel.|' +
            'But given his reckless behaviour and actions,|' +
            '\\N[1] is known to give his team lots of trouble.',
       2 => '\\N[2] trained as a warrior since she was|' +
            'quite young. Due to her militant past, she has|' +
            'developed a rather tomboy-ish personality.|' +
            '\\N[2] loves training and is also a health nut.',
       3 => '\\N[3] is the overzealous priest of \\N[1]\'s|' +
            'party. His actions speak louder than his words|' +
            'and his words are already loud enough. \\N[3]|' +
            'is definitely one who choose the wrong class.',
       4 => '\\N[4] is the team\'s walking encyclopedia.|' +
            'She just about knows everything for each and|' +
            'every situation. But aside from that, \\N[4]|' +
            'just doesn\'t have the actual life experience.',
    } # Do not remove this.
   
    # Just like the actor biographies, use \\N[x] to write out a changeable
    # actor's name and \\V[x] to write out variables. Use | to enforce a
    # line break.
    CLASS_BIOS ={
    # ID => Bio
       1 => 'Knights are quick and powerful characters|' +
            'that excel in both melee and magic.',
       2 => 'Warriors are very dedicated to close ranged|' +
            'physical combat.',
       3 => 'Priests focus on healing and aiding their|' +
            "party members. Don't let \\N[3] fool you.",
       4 => 'Magicians excel in the magical arts and also|' +
            'excel at blasting their enemies to bits.',
    } # Do not remove this.
 
#===============================================================================
# Configuration ends here.
#===============================================================================
   
  end # STATUS
end # YEM

#===============================================================================
# Window_Status_Biography
#===============================================================================

class Window_Status_Biography < Window_Base
 
  #--------------------------------------------------------------------------
  # initialize
  #--------------------------------------------------------------------------
  def initialize(actor)
    super(0, 128, Graphics.width, Graphics.height - 128)
    @actor = actor
    refresh
  end
 
  #--------------------------------------------------------------------------
  # actor=
  #--------------------------------------------------------------------------
  def actor=(new_actor)
    @actor = new_actor
    refresh
  end
 
  #--------------------------------------------------------------------------
  # refresh
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    if YEM::STATUS::ACTOR_BIOS.include?(@actor.id)
      draw_actor_bio
    elsif YEM::STATUS::CLASS_BIOS.include?(@actor.class_id)
      draw_class_bio
    end
  end
 
  #--------------------------------------------------------------------------
  # draw_actor_bio
  #--------------------------------------------------------------------------
  def draw_actor_bio
    self.contents.font.color = normal_color; dy = 0
    text = sprintf(YEM::STATUS::BIOGRAPHY[:actor_bio], @actor.name)
    self.contents.draw_text(0, dy, self.width-32, WLH*2, text, 1)
    text = YEM::STATUS::ACTOR_BIOS[@actor.id]
    nwidth = 544
    dx = 18; dy = WLH*2
    text.gsub!(/\\V\[([0-9]+)\]/i) { $game_variables[$1.to_i] }
    text.gsub!(/\\V\[([0-9]+)\]/i) { $game_variables[$1.to_i] }
    text.gsub!(/\\N\[([0-9]+)\]/i) { $game_actors[$1.to_i].name }
    lines = text.split(/(?:[|]|\\n)/i)
    lines.each_with_index { |l, i|
      l.gsub!(/\\__(\[\d+\])/i) { "\\N#{$1}" }
      self.contents.draw_text(dx, i * 24 + dy, nwidth, WLH, l, 0)}
  end
 
  #--------------------------------------------------------------------------
  # draw_class_bio
  #--------------------------------------------------------------------------
  def draw_class_bio
    self.contents.font.color = normal_color; dy = 0
    text = sprintf(YEM::STATUS::BIOGRAPHY[:class_des], @actor.class.name)
    self.contents.draw_text(0, dy, self.width-32, WLH*2, text, 1)
    text = YEM::STATUS::CLASS_BIOS[@actor.class.id]
    nwidth = 544
    dx = 18; dy = WLH*2
    text.gsub!(/\\V\[([0-9]+)\]/i) { $game_variables[$1.to_i] }
    text.gsub!(/\\V\[([0-9]+)\]/i) { $game_variables[$1.to_i] }
    text.gsub!(/\\N\[([0-9]+)\]/i) { $game_actors[$1.to_i].name }
    lines = text.split(/(?:[|]|\\n)/i)
    lines.each_with_index { |l, i|
      l.gsub!(/\\__(\[\d+\])/i) { "\\N#{$1}" }
      self.contents.draw_text(dx, i * 24 + dy, nwidth, WLH, l, 0)}
  end
 
end # Window_Status_Biography

#===============================================================================
# Scene_Status
#===============================================================================

class Scene_Status < Scene_Base
 
  #--------------------------------------------------------------------------
  # new method: create_command_window
  #--------------------------------------------------------------------------
  def create_command_window
    @data = []
    commands = []
    @windows = []
    for command in YEM::STATUS::COMMANDS
      case command
      when :general
        @general_window = Window_Status_General.new(@actor)
        @windows.push(@general_window)
      when :boosters
        @boosters_window = Window_Status_Booster.new(@actor, @help_window)
        @boosters_stats = Window_Booster_Stats.new(@actor, @boosters_window)
        @windows.push(@boosters_window)
        @windows.push(@boosters_stats)
      when :elements
        next unless $imported["BattleEngineMelody"]
        @elements_window = Window_Status_Elements.new(@actor, @help_window)
        @elements_stats = Window_Elements_Stats.new(@actor, @elements_window)
        @windows.push(@elements_window)
        @windows.push(@elements_stats)
      when :states
        next unless $imported["BattleEngineMelody"]
        @states_window = Window_Status_States.new(@actor, @help_window)
        @states_stats = Window_States_Stats.new(@actor, @states_window)
        @windows.push(@states_window)
        @windows.push(@states_stats)
      when :biography
        @biography_window = Window_Status_Biography.new(@actor)
        @windows.push(@biography_window)
      else; next
      end
      @data.push(command)
      commands.push(YEM::STATUS::COMMAND_VOCAB[command])
    end
    @command_window = Window_Command_Centered.new(160, commands)
    @command_window.height = 128
    @command_window.active = true
    #---
    if $game_temp.last_status_index != nil
      @command_window.oy = $game_temp.status_oy
      @command_window.index = $game_temp.last_status_index
    end
    #---
    update_visible_windows
  end
 
  #--------------------------------------------------------------------------
  # new method: update_visible_windows
  #--------------------------------------------------------------------------
  def update_visible_windows
    @help_window.y = Graphics.height * 8
    for window in @windows; window.y = Graphics.height * 8; end
    case @data[@command_window.index]
    when :general
      @general_window.y = @command_window.height
    when :boosters
      @help_window.y = @command_window.height
      @boosters_window.y = @help_window.y + @help_window.height
      @boosters_stats.y = @help_window.y + @help_window.height
      @boosters_window.update_help
    when :elements
      @help_window.y = @command_window.height
      @elements_window.y = @help_window.y + @help_window.height
      @elements_stats.y = @help_window.y + @help_window.height
      @elements_window.update_help
    when :states
      @help_window.y = @command_window.height
      @states_window.y = @help_window.y + @help_window.height
      @states_stats.y = @help_window.y + @help_window.height
      @states_window.update_help
    when :biography
      @biography_window.y = @command_window.height
    end
  end
 
end # Scene_Status

Credit


  • Yanfly for writing the original YEZ Status Command Menu and YEM Status Menu Melody
  • heisenman for piecing them together (optional)

Support


Post here or PM me if you have troubles.

Author's Notes


It really needs to be said that I basically made nothing of this script, except piecing it together. Credits could as well go 100% to Yanfly, because he has a really clean scripting style even a noob like me can understand how they work. Well, almost.

*
Rep:
Level 97
2014 Most Unsung Member2014 Best RPG Maker User - Engine2013 Best RPG Maker User (Scripting)2012 Most Mature Member2012 Favorite Staff Member2012 Best RPG Maker User (Scripting)2012 Best MemberSecret Santa 2012 ParticipantProject of the Month winner for July 20092011 Best Use of Avatar and Signature Space2011 Best RPG Maker User (Scripting)2011 Most Mature Member2011 Favourite Staff Member2011 Best Veteran2010 Most Mature Member2010 Favourite Staff Member
Cool. Nice work heisenman and thanks for sharing.

***
Rep:
Level 69
RMRK Junior
Does this only work for actors or can you have a choice like if I wanted to use this for all the characters and important npcs as well? Like the Brave Story menu from FFT.