Vorwort
Ich lerne das Scripten gerade und habe mir ein kleines Menüscript geschrieben. Mit der Zeit werde ich es erweitern.
Ich habe nun auch die Addons veröffentlicht. Ich habe von allen Scripten schon neuere Versionen, diese haben aber noch ein paar Bugs. Da ich heute noch meine Koffer packen muss, habe ich leider keine Zeit diese Versionen fertigzustellen. Ich werde das erledigen, wenn ich wieder aus dem Urlaub komme.
Benutzung
Ladet euch die Demo herunter und kopiert die Scripte und die Grafik aus dem Ordner Pictures in euer Projekt.
Im Module AcIn könnt ihr die Grundeinstellungen vornehmen. Per Call Script könnt ihr eure Einstellungen ändern.
Mit den Pfeiltasten Links und Rechts könnt ihr zur nächsten Scene wechseln. Durch die Bestätigungstaste könnt ihr bei Scene_AcIn auf die Scene_Status zugreifen, wo ihr wieder durch die Scene Skill und Scene Equip schalten könnt. 
Call Script
$scene = Scene_AcInÖffnet das Script.
AcIn::MENU_SCENE = Scene_AcInÄndert die Einstellung, das Script wird als Menü verwendet
AcIn::DRAW_MORE = trueStati und Spielzeit werden angezeigt.
usw.
Module Version 1.0:
###############################################################################
#----------------------------------------------------PDM's Actor Infos Module---------------------------------------------------#
# Version:                1.0                                                                                                                                        #
# Letzes Update:    24.08.2010                                                                                                                          #
# Gescriptet von PDM                                                                                                                                         #
# Bemerkung: Alle Actor Info Scripte benötigen dieses Script                                                                       #
###############################################################################
module AcIn
 WINDOWSKIN = "Window"      #Welcher Windowskin soll verwendet werden?
 MENU_SCENE = Scene_Menu            #Menüscene
 ITEM_SCENE = Scene_Item      #Itemscene
 ITEM_OPACITY = 20                             #Backopacity des Itemwindows (200=normal)
 ITEM_TEXT = "Hier findest du deine Items."  #Text der bei der Item-Zwischenscene angezeigt wird.
 R_SCENE_ST = Scene_Skill                      
 L_SCENE_ST = Scene_Equip      
 STATUS_SCENE = Scene_Status           #Statusscene
 STATUS_OPACITY = 20                           #Backopacity des Statuswindows
 DRAW_MORE = false                         #Sollen "Actor Infos More" verwendet werden? (Anzeigen der Stati und der Spielzeit)
 USE = true                           #Soll die Anpassung genutzt werden? 
 END_R = Scene_Menu    
 END_L = Scene_Item
 ITEM_R = Scene_End
 ITEM_L = Scene_Menu
 ACIN_R = Scene_Item
 ACIN_L = Scene_End
end
Script Version 1.3:
###############################################################################
#----------------------------------------------------PDM's Actor Infos--------------------------------------------------------------#
# Version:                1.3                                                                                                                                        #
# Letzes Update:    24.08.2010                                                                                                                          #
# Gescriptet von PDM                                                                                                                                         #
###############################################################################
#==============================================================================
#  Scene_ActorInfos
#------------------------------------------------------------------------------
#  Scene zu den Infos
#==============================================================================
class Scene_AcIn < Scene_Base
  def initialize(menu_index = 0)
    @menu_index = menu_index
  end
  def start
    super
    create_menu_background 
    @gold_window = Window_AcInGold.new(0, 360)
    @status_window = Window_AcIn.new(62, 0)
    if AcIn::DRAW_MORE == true
    @status_more_window = Window_AcInMore.new(0, 0)
    @playtime_window = Window_Playtime.new(160, 360)
    end
  end
 
  def terminate
    super
    dispose_menu_background    
    @gold_window.dispose
    @status_window.dispose
       if AcIn::DRAW_MORE == true
    @status_more_window.dispose
    @playtime_window.dispose 
    end
  end
 
  def update
    super
    update_menu_background    
    @gold_window.update
    @status_window.update
    if AcIn::DRAW_MORE == true
    @status_more_window.update
    @playtime_window.update
    end
    update_command_selection
  end
  def update_command_selection
    if Input.trigger?(Input::B)
      Sound.play_cancel
      $scene = Scene_Map.new
    elsif Input.trigger?(Input::C)
      Sound.play_decision
      $scene = AcIn::STATUS_SCENE.new
    elsif Input.trigger?(Input::RIGHT)
      Sound.play_cursor
      $scene = AcIn::ACIN_R.new
      elsif Input.trigger?(Input::LEFT)
      Sound.play_cursor
      $scene = AcIn::ACIN_L.new
    end
  end  
#--------------------------------------------------------------------------
 end
#--------------------------------------------------------------------------
#==============================================================================
#  Window_ActorInfos
#------------------------------------------------------------------------------
#  Window zu den Infos
#==============================================================================
class Window_AcIn < Window_Selectable  
    def initialize(x, y)
    super(x, y, 452, 352)      
    @bg_image = Cache.picture('FF9_MenuBar')  
    @sprite_last_draw_x = 0
    @sprite_inc_x = 1
    @intern_frame_count = 0    
    self.opacity = 0    
    self.z = 99        
    self.active = false
    self.index = -1
    refresh
  end 
 
  def refresh
    self.contents.clear
    @item_max = $game_party.members.size
    draw_background_windows 
    for actor in $game_party.members
      x = 104
      y = actor.index * 80      
      y_offset = 6      
      draw_background_window(0, y) 
      draw_actor_face(actor, 19, y + 2, 73)
      draw_actor_name(actor, x, y + y_offset)
      draw_actor_class(actor, x + 125, y + y_offset)
      draw_actor_level(actor, x, y + WLH * 1)           
      draw_actor_hp(actor, x, ((y) + (WLH * 2) - 5))
      draw_actor_mp(actor, x + 125, ((y) + (WLH * 2) - 5))
    end  
  end 
  #--------------------------------------------------------------------------
  #  Draw background windows
  #--------------------------------------------------------------------------
  def draw_background_windows  
    self.contents.blt(0, 0, @bg_image, @bg_image.rect)    
    self.contents.blt(0, 80, @bg_image, @bg_image.rect)    
    self.contents.blt(0, 160, @bg_image, @bg_image.rect)    
    self.contents.blt(0, 240, @bg_image, @bg_image.rect)    
  end  
  #--------------------------------------------------------------------------
  #  Draw background window (single)
  #--------------------------------------------------------------------------
  def draw_background_window(x, y)
    self.contents.blt(x, y, @bg_image, @bg_image.rect)    
  end
#--------------------------------------------------------------------------
 end
#--------------------------------------------------------------------------
#==============================================================================
#  Window_ActorInfosGold
#------------------------------------------------------------------------------
#  Goldwindow (eigentlich nicht nötig)
#==============================================================================
  
class Window_Base
  #--------------------------------------------------------------------------
  #  Get Gold Color (zu verwenden mit "gold_color")
  #--------------------------------------------------------------------------
  def gold_color
    return text_color(21)
  end
#--------------------------------------------------------------------------
 end
#--------------------------------------------------------------------------
class Window_AcInGold < Window_Base
  def initialize(x, y)  
    super(x, y, 160, WLH + 32)     
    self.back_opacity = 0  
    refresh
  end
     
  def refresh
    self.contents.clear
    draw_icon(205, 4, 0)    
    draw_currency_value($game_party.gold, 4, 0, 120)
  end
  def draw_currency_value(value, x, y, width)
    cx = contents.text_size(Vocab::gold).width
    self.contents.font.color = normal_color
    self.contents.draw_text(x, y, width-cx-2, WLH, value, 2)
    self.contents.font.color = gold_color
    self.contents.draw_text(x, y, width, WLH, Vocab::gold, 2)
  end
#--------------------------------------------------------------------------
 end
#--------------------------------------------------------------------------
#==============================================================================
#  Window_ActorInfosMore
#------------------------------------------------------------------------------
#  Window für mehr Infos
#==============================================================================
class Window_AcInMore < Window_Selectable  
    def initialize(x, y)
    super(x, y, 544, 416)    
    self.opacity = 0    
    self.z = 99        
    self.active = false
    self.index = -1
    refresh
  end 
 
  def refresh
    self.contents.clear   
    @item_max = $game_party.members.size
    for actor in $game_party.members
      x = 380
      y = actor.index * 80      
      y_offset = 6            
      draw_actor_state(actor, x , y + y_offset)
    end  
  end 
#--------------------------------------------------------------------------
 end
#--------------------------------------------------------------------------
#==============================================================================
#  Window_ActorInfosMore Playtime
#------------------------------------------------------------------------------
#  Window für mehr die Spielzeit
#==============================================================================
class Window_Playtime < Window_Base
  
  def initialize(x, y)
    super(x, y, 230, WLH + 32)
    self.back_opacity = 0 
    refresh
  end
  def refresh
    self.contents.clear
    @total_sec = Graphics.frame_count / Graphics.frame_rate
    hour = @total_sec / 60 / 60
    min = @total_sec / 60 % 60
    sec = @total_sec % 60
    text = sprintf("%02d:%02d:%02d", hour, min, sec)
    draw_icon(188, 0, 0)
    self.contents.draw_text(6, -4, 192, 32, "Spielzeit: " + text, 2)
  end
  def update
    super
    if Graphics.frame_count / Graphics.frame_rate != @total_sec
      refresh
    end
  end
#--------------------------------------------------------------------------
 end
#--------------------------------------------------------------------------
#==============================================================================
#  Actor Infos als Menü
#------------------------------------------------------------------------------
#==============================================================================
class Scene_Map < Scene_Base
  
  def call_menu
    if $game_temp.menu_beep
      Sound.play_decision
      $game_temp.menu_beep = false
    end
    $game_temp.next_scene = nil    
    $scene = AcIn::MENU_SCENE.new
  end
#--------------------------------------------------------------------------
 end
#--------------------------------------------------------------------------
Item Addon V1.0:
###############################################################################
#----------------------------------------------------PDM's Actor Infos: Items----------------------------------------------------#
# Version:                1.0                                                                                                                                        #
# Letzes Update:    24.08.2010                                                                                                                          #
# Gescriptet von PDM                                                                                                                                         #
###############################################################################
#==============================================================================
#  Scene_ActorInfosItems
#------------------------------------------------------------------------------
#  Scene zu den Items
#==============================================================================
class Scene_AcInItems < Scene_Base
  
   def start
    super
    create_menu_background
    @viewport = Viewport.new(0, 0, 544, 416)
    @help_window = Window_Help.new
    @help_window.viewport = @viewport
    @item_window = Window_AcInItem.new(0, 56, 544, 360)
    @item_window.viewport = @viewport
    @item_window.help_window = @help_window
    @item_window.active = false
    @target_window = Window_MenuStatus.new(0, 0)
    hide_target_window
  end
  def terminate
    super
    dispose_menu_background
    @viewport.dispose
    @help_window.dispose
    @item_window.dispose
    @target_window.dispose
  end
 
  def return_scene
    $scene = Scene_Zwischen.new
  end
  def update
    super
    update_menu_background
    @help_window.update
    @item_window.update
    @target_window.update
    if @item_window.active
      update_item_selection
    elsif @target_window.active
      update_target_selection
    end
  end
 
  def update_item_selection
    if Input.trigger?(Input::B)
      Sound.play_cancel
      return_scene
    elsif Input.trigger?(Input::C)
      @item = @item_window.item
      if @item != nil
        $game_party.last_item_id = @item.id
      end
      if $game_party.item_can_use?(@item)
        Sound.play_decision
        determine_item
      else
        Sound.play_buzzer
      end 
    end
  end
  def determine_item
    if @item.for_friend?
      show_target_window(@item_window.index % 2 == 0)
      if @item.for_all?
        @target_window.index = 99
      else
        if $game_party.last_target_index < @target_window.item_max
          @target_window.index = $game_party.last_target_index
        else
          @target_window.index = 0
        end
      end
    else
      use_item_nontarget
    end
  end
  def update_target_selection
    if Input.trigger?(Input::B)
      Sound.play_cancel
      if $game_party.item_number(@item) == 0    
        @item_window.refresh                    
      end
      hide_target_window
    elsif Input.trigger?(Input::C)
      if not $game_party.item_can_use?(@item)
        Sound.play_buzzer
      else
        determine_target
      end
    end
  end
  def determine_target
    used = false
    if @item.for_all?
      for target in $game_party.members
        target.item_effect(target, @item)
        used = true unless target.skipped
      end
    else
      $game_party.last_target_index = @target_window.index
      target = $game_party.members[@target_window.index]
      target.item_effect(target, @item)
      used = true unless target.skipped
    end
    if used
      use_item_nontarget
    else
      Sound.play_buzzer
    end
  end
  def show_target_window(right)
    @item_window.active = false
    width_remain = 544 - @target_window.width
    @target_window.x = right ? width_remain : 0
    @target_window.visible = true
    @target_window.active = true
    if right
      @viewport.rect.set(0, 0, width_remain, 416)
      @viewport.ox = 0
    else
      @viewport.rect.set(@target_window.width, 0, width_remain, 416)
      @viewport.ox = @target_window.width
    end
  end
  def hide_target_window
    @item_window.active = true
    @target_window.visible = false
    @target_window.active = false
    @viewport.rect.set(0, 0, 544, 416)
    @viewport.ox = 0
  end
  def use_item_nontarget
    Sound.play_use_item
    $game_party.consume_item(@item)
    @item_window.draw_item(@item_window.index)
    @target_window.refresh
    if $game_party.all_dead?
      $scene = Scene_Gameover.new
    elsif @item.common_event_id > 0
      $game_temp.common_event_id = @item.common_event_id
      $scene = Scene_Map.new
    end
  end
#--------------------------------------------------------------------------
 end
#--------------------------------------------------------------------------
#==============================================================================
#  Window_ActorInfosItems
#------------------------------------------------------------------------------
#  Window zu Items
#==============================================================================
class Window_AcInItem < Window_Selectable
  def initialize(x, y, width, height)
    super(x, y, width, height)
    @column_max = 8
    self.windowskin = Cache.system(AcIn::WINDOWSKIN)
    self.back_opacity = AcIn::ITEM_OPACITY
    self.index = 0
    refresh
  end
  def item
    return @data[self.index]
  end
  
  def include?(item)
    return false if item == nil
    if $game_temp.in_battle
      return false unless item.is_a?(RPG::Item)
    end
    return true
  end
  def enable?(item)
    return $game_party.item_can_use?(item)
  end
  def refresh
    @data = []
    for item in $game_party.items
      next unless include?(item)
      @data.push(item)
      if item.is_a?(RPG::Item) and item.id == $game_party.last_item_id
        self.index = @data.size - 1
      end
    end
    @data.push(nil) if include?(nil)
    @item_max = @data.size
    create_contents
    for i in 0...@item_max
      draw_item(i)
    end
  end
  def draw_item(index)
    rect = item_rect(index)
    self.contents.clear_rect(rect)
    item = @data[index]
    if item != nil
      number = $game_party.item_number(item)
      enabled = enable?(item)
      rect.width -= 2
      draw_item_name2(item, rect.x, rect.y, enabled)
      #self.contents.draw_text(rect, sprintf("%2d", number), 2)
    end
  end
  def update_help
    @help_window.set_text(item == nil ? "" : item.name + ":" + item.description)
  end
#--------------------------------------------------------------------------
 end
#--------------------------------------------------------------------------
#==============================================================================
#  Scene_Zwischen
#------------------------------------------------------------------------------
#  Zwischenscene
#==============================================================================
class Scene_Zwischen < Scene_Base
  
   def start
    super
    create_menu_background   
    @help_window = Window_Help.new
    @help_window.set_text("                                   " + Vocab::item)
    @item_window = Window_Zwischen.new(0, 56, 544, 360)
  end
  def terminate
    super
    dispose_menu_background 
    @help_window.dispose
    @item_window.dispose   
  end
  
  def return_scene
    $scene = Scene_Map.new
  end
  
  def update
    super
    update_menu_background
    @help_window.update
    @item_window.update    
    update_item_selection
  end 
  
  def update_item_selection
    if Input.trigger?(Input::B)
      Sound.play_cancel
      return_scene
    elsif Input.trigger?(Input::C)
       Sound.play_decision
        $scene = AcIn::ITEM_SCENE.new
       elsif Input.trigger?(Input::RIGHT)
      Sound.play_cursor
      $scene = AcIn::ITEM_R.new
      elsif Input.trigger?(Input::LEFT)
      Sound.play_cursor
      $scene = AcIn::ITEM_L.new
    end
  end
#--------------------------------------------------------------------------
 end
#--------------------------------------------------------------------------
#==============================================================================
#  Window_Zwischen
#------------------------------------------------------------------------------
#  Zwischenwindow
#==============================================================================
class Window_Zwischen < Window_Base
  
    def initialize(x, y, width, height)
    super(x, y, width, height)    
    self.windowskin = Cache.system(AcIn::WINDOWSKIN)
    self.back_opacity = AcIn::ITEM_OPACITY   
    self.contents.draw_text(0, 0, 300, WLH, AcIn::ITEM_TEXT)
  end
#--------------------------------------------------------------------------
 end
#--------------------------------------------------------------------------
#==============================================================================
#  Window_Base Add
#------------------------------------------------------------------------------
#  Add 
#==============================================================================
class Window_Base < Window
  
    def draw_item_name2(item, x, y, enabled = true)
    if item != nil
      draw_icon(item.icon_index, x, y, enabled)
    end
  end
#--------------------------------------------------------------------------
 end
#--------------------------------------------------------------------------
Status Addon V1.0:
###############################################################################
#----------------------------------------------------PDM's Actor Infos: Items----------------------------------------------------#
# Version:                1.0                                                                                                                                        #
# Letzes Update:    24.08.2010                                                                                                                          #
# Gescriptet von PDM                                                                                                                                         #
###############################################################################
if AcIn::USE == true  
#==============================================================================
#  Scene_Actor Infos Status
#------------------------------------------------------------------------------
#  Addon zum durchschalten in der Status scene (hoch runter, statt Tasten R und L)
#==============================================================================
class Scene_Status < Scene_Base
  
    def return_scene
    $scene = AcIn::MENU_SCENE.new
  end
 
   def update
    update_menu_background
    @status_window.update
    if Input.trigger?(Input::B)
      Sound.play_cancel
      return_scene
    elsif Input.trigger?(Input::RIGHT)
      Sound.play_cursor
      $scene = AcIn::R_SCENE_ST.new
    elsif Input.trigger?(Input::LEFT)
      Sound.play_cursor
      $scene = AcIn::L_SCENE_ST.new
    elsif Input.trigger?(Input::DOWN)
      Sound.play_cursor
      next_actor
    elsif Input.trigger?(Input::UP)
      Sound.play_cursor
      prev_actor
    end
    super
  end  
#--------------------------------------------------------------------------
 end
#--------------------------------------------------------------------------
##########################################
 end
##########################################
Skill Addon V0.9:
###############################################################################
#----------------------------------------------------PDM's Actor Infos: Items----------------------------------------------------#
# Version:                0.9                                                                                                                                        #
# Letzes Update:    24.08.2010                                                                                                                          #
# Gescriptet von PDM                                                                                                                                         #
###############################################################################
if AcIn::USE == true  
#==============================================================================
#  Scene_Actor Infos Skill
#------------------------------------------------------------------------------
#  Addon zum durchschalten in der Skill scene (hoch runter, statt Tasten R und L)
#==============================================================================
class Scene_Skill < Scene_Base
  
    def return_scene
    $scene = AcIn::MENU_SCENE.new
  end
 
   def update_skill_selection
    if Input.trigger?(Input::B)
      Sound.play_cancel
      return_scene
    elsif Input.trigger?(Input::DOWN)
      Sound.play_cursor
      next_actor
    elsif Input.trigger?(Input::UP)
      Sound.play_cursor
      prev_actor
    elsif Input.trigger?(Input::C)
      @skill = @skill_window.skill
      if @skill != nil
        @actor.last_skill_id = @skill.id
      end
      if @actor.skill_can_use?(@skill)
        Sound.play_decision
        determine_skill
      else
        Sound.play_buzzer
      end
    end
  end
#--------------------------------------------------------------------------
 end
#--------------------------------------------------------------------------
##########################################
 end
##########################################
Equip Addon V1.0:
###############################################################################
#----------------------------------------------------PDM's Actor Infos: Items----------------------------------------------------#
# Version:                1.0                                                                                                                                        #
# Letzes Update:    24.08.2010                                                                                                                          #
# Gescriptet von PDM                                                                                                                                         #
###############################################################################
if AcIn::USE == true  
#==============================================================================
#  Scene_Actor Infos Skill
#------------------------------------------------------------------------------
#  Addon zum durchschalten in der Skill scene (hoch runter, statt Tasten R und L)
#==============================================================================
class Scene_Equip < Scene_Base
  
    def return_scene
    $scene = AcIn::MENU_SCENE.new
  end
 
  def update_equip_selection
    if Input.trigger?(Input::B)
      Sound.play_cancel
      return_scene
    elsif Input.trigger?(Input::RIGHT)
      Sound.play_cursor
      $scene = AcIn::STATUS_SCENE.new
    elsif Input.trigger?(Input::LEFT)
      Sound.play_cursor
      $scene = AcIn::R_SCENE_ST.new
    elsif Input.trigger?(Input::DOWN)
      Sound.play_cursor
      next_actor
    elsif Input.trigger?(Input::UP)
      Sound.play_cursor
      prev_actor
    elsif Input.trigger?(Input::C)
      if @actor.fix_equipment
        Sound.play_buzzer
      else
        Sound.play_decision
        @equip_window.active = false
        @item_window.active = true
        @item_window.index = 0
      end
    end
  end
#--------------------------------------------------------------------------
 end
#--------------------------------------------------------------------------
##########################################
 end
##########################################
End Addon V1.0:
###############################################################################
#----------------------------------------------------PDM's Actor Infos--------------------------------------------------------------#
# Version:                1.0                                                                                                                                        #
# Letzes Update:    24.08.2010                                                                                                                          #
# Gescriptet von PDM                                                                                                                                         #
###############################################################################
#==============================================================================
#  Anpassen der Scripts
#==============================================================================
if AcIn::USE == true  
#..............................................................................
class Scene_End < Scene_Base  
    def update
    super
    update_menu_background
    @command_window.update
    if Input.trigger?(Input::B)
      Sound.play_cancel
      return_scene
    elsif Input.trigger?(Input::RIGHT)
      Sound.play_cursor
      $scene = AcIn::END_R.new
    elsif Input.trigger?(Input::LEFT)
      Sound.play_cursor
      $scene = AcIn::END_L.new
    elsif Input.trigger?(Input::C)
      case @command_window.index
      when 0  
        command_to_title
      when 1  
        command_shutdown
      when 2  
        command_cancel
      end
    end
  end
  def return_scene
    $scene = Scene_Map.new
  end
#..............................................................................
 end
#..............................................................................  
#--------------------------------------------------------------------------
 end
#--------------------------------------------------------------------------
Demo
Downloadlink (http://www.file-upload.net/download-2776196/PDM-s-Actor-Infos.exe.html)
Nachwort
Meinungen erwünscht!
Bugs bitte melden!