[XP]Status mejorado con informacion del personaje :D[Aporte]

OP

~Doku

Banneado
Mensajes
1.024
Reacciones
0
Puntos
0
Ubicación
Mafia
Aquí aporto un script que estoy usando en mi juego, creo que no esta aportado (me da hueva ver el indice antes de aportar :T)

-Nombre: Status mejorado

-Autor: Selkie

-Descripción:

-La finalidad de este script es sustituir la sosa ventana de Estado que viene
-por defecto en RPG Maker XP por una escena con varias ventanas, organización
-más bonita, añadiendo gráficos de face y un perfil personal para cada personaje.

-Instrucciones:

1 - Pegar script encima del main.

2 - Poner las face de los personajes en la carpeta pictures, por ejemplo la face del personaje 1 deberá llamarse Face1, la del pj 2 se llamara Face2 y así consecutivamente.

3 - Personalizar el script a su gusto.

-Aquí dejo una sacada de mi game:

36934351.png


Script:

Código:
###··· |######################################| ···###
##···· | Advanced Status Display, by Selkie   | ····##
#····· | 17/01/2010 (DD/MM/YYYY)              | ·····#
##···· |     planetarpg.com.ar                | ····##
###··· |######################################| ···###
 
################################################################################
# La finalidad de este script es sustituir la sosa ventana de Estado que viene #
# por defecto en RPG Maker XP por una escena con varias ventanas, organización #
# más bonita, añadiendo gráficos de face y un perfil personal para cada perso- #
# naje.                                                                        #
# -Autor: Selkie                                                               #
# -Agradecimientos:                                                            #
#  · Silentwalker por su método para dibujar faces                             #
#  · Abbet por la idea                                                         #
################################################################################
# Instrucciones:                                                               #
#  1.- Pegar el script en una página superior a Main.                          #
#  2.- En Graphics/Pictures, meter gráficos de Face para cada personaje,       #
#       preferiblemente de 96x96px.                                            #
#  3.- Personalizar los datos de los personajes                                #
#  3.- ¡Disfrutar!                                                             #
################################################################################
 
#==============================================================================
# ** Método para dibujar las faces **                           
#==============================================================================
class Window_Base < Window
  def draw_actor_face       (actor, x, y)#############  Aquí se edita el nombre
###############################(Edición de nombre   )#  que ha de tener cada
    bitmap = RPG::Cache.picture('Face'+actor.id.to_s)#<-face.
######################################################
    src_rect = Rect.new(0, 0, bitmap.width, bitmap.height)
    self.contents.blt(x - bitmap.width / 2, y - bitmap.height, bitmap, src_rect)
  end
end
 
#==============================================================================
# ** Ventana superior **
#==============================================================================
class Window_Status0 < Window_Base
  #--------------------------------------------------------------------------
  # * Object Initialization
  #     actor : actor
  #--------------------------------------------------------------------------
  def initialize(actor)
    super(0, 0, 640, 64)
    self.contents = Bitmap.new(width - 32, height - 32)
    @actor = actor
    refresh
  end
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    self.contents.font.color = system_color
    self.contents.draw_text(0, 0, 96, 32, "Nombre:")
    self.contents.draw_text(230, 0, 96, 32, "Profesión:")
    self.contents.font.color = normal_color
    draw_actor_name(@actor, 80, 0)
    draw_actor_class(@actor, 320, 0)
    draw_actor_state(@actor, 480, 0)
  end
end
 
#==============================================================================
# ** Ventana de información del personaje **
#==============================================================================
class Window_Status1 < Window_Base
  #--------------------------------------------------------------------------
  # * Object Initialization
  #     actor : actor
  #--------------------------------------------------------------------------
  def initialize(actor)
    super(0, 0, 320, 480-64)
    self.contents = Bitmap.new(width - 32, height - 32)
    @actor = actor
    refresh
  end
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    draw_actor_face       (@actor, 48, 96)      #Face
    draw_actor_graphic    (@actor, 96, 104)     #Chara
    draw_actor_level      (@actor, 108, -4)     #Nivel
    draw_actor_exp        (@actor, 108, 20)     #Experiencia
    draw_actor_hp         (@actor, 118, 50)     #Vida
    draw_actor_sp         (@actor, 118, 70)     #Magia
    self.contents.font.color = system_color
    self.contents.draw_text(4, 120+00, 300, 32, 'Género:')
    self.contents.draw_text(4, 120+24, 300, 32, 'Edad:')
    self.contents.draw_text(4, 120+48, 300, 32, 'Rango:')
    self.contents.draw_text(4, 120+72, 300, 32, 'Region:')
    self.contents.draw_text(4, 120+96, 300, 32, 'Raza:')
    self.contents.font.color = normal_color
 
    ######################################
    ##  Comienzo de la personalización  ##
    ######################################
    case @actor.id
      when 1  #Personaje 1
        self.contents.draw_text(108, 120+00, 300, 32, 'Masculino')       #Género                                                      
        self.contents.draw_text(108, 120+24, 300, 32, '17')           #Edad                                                      
        self.contents.draw_text(108, 120+48, 300, 32, 'Elite blanca')#Altura                                                      
        self.contents.draw_text(108, 120+72, 300, 32, 'Kornan')              #Peso                                                      
        self.contents.draw_text(108, 120+96, 300, 32, 'Humano')      #Carácter
        #-------------------------------------------#Más datos(Múltiples líneas)
        self.contents.draw_text(16, 120+96+48, 300, 32, 'Un chico que vive solo, no se sabe')
        self.contents.draw_text(16, 120+96+72, 300, 32, 'nada sobre sus padres, gana la vida')
        self.contents.draw_text(16, 120+96+96, 300, 32, 'haciendo misiones y es muy valiente')
      when 2  #Personaje 2
        self.contents.draw_text(108, 120+00, 300, 32, 'Femenino')   #Género                                                      
        self.contents.draw_text(108, 120+24, 300, 32, '16')       #Edad                                                      
        self.contents.draw_text(108, 120+48, 300, 32, 'Elite blanca')                                                   
        self.contents.draw_text(108, 120+72, 300, 32, 'Kornan')             
        self.contents.draw_text(108, 120+96, 300, 32, 'Humana')#Carácter
        #-------------------------------------------#Más datos(Múltiples líneas)
        self.contents.draw_text(16, 120+96+ 48, 300, 32, 'Es la mejor amiga de Cain, siempre')
        self.contents.draw_text(16, 120+96+ 72, 300, 32, 'Se preocupa por el y su bienestar')
        self.contents.draw_text(16, 120+96+ 96, 300, 32, 'Es una gran maga')
 
 
      when 3  #Personaje 3                                                                                             
        self.contents.draw_text(108, 120+00, 300, 32, 'Masculino')                     
        self.contents.draw_text(108, 120+24, 300, 32, '17')                   
        self.contents.draw_text(108, 120+48, 300, 32, 'Elite blanca')                                                   
        self.contents.draw_text(108, 120+72, 300, 32, 'Kornan')                                                      
        self.contents.draw_text(108, 120+96, 300, 32, 'Humano')
        #-------------------------------------------#Más datos(Múltiples líneas)
        self.contents.draw_text(16, 120+96+48, 300, 32, 'Es el mejor amigo de Cain desde la')
        self.contents.draw_text(16, 120+96+72, 300, 32, 'infancia, siempre lo apoya en las')
       self.contents.draw_text(16, 120+96+96, 300, 32, 'buenas o en las malas')
 
 
      when 4  #Personaje 4                           
        self.contents.draw_text(108, 120+00, 300, 32, 'Masculino')                                                     
        self.contents.draw_text(108, 120+24, 300, 32, '19')                                                      
        self.contents.draw_text(108, 120+48, 300, 32, 'Elite blanca lider')                                             
        self.contents.draw_text(108, 120+72, 300, 32, 'Kornan')                                          
        self.contents.draw_text(108, 120+96, 300, 32, 'Humano')
        #-------------------------------------------#Más datos(Múltiples líneas)
        self.contents.draw_text(16, 120+96+48, 300, 32, 'Es el prinsipe de Kornan, el hijo')        
        self.contents.draw_text(16, 120+96+72, 300, 32, 'del rey, suele ser siempre serio')
        self.contents.draw_text(16, 120+96+96, 300, 32, 'y es un excelente lider')
    end
    #### Fin de la personalización  
  end
end
 
#==============================================================================
# ** Ventana de Equipo y stats
#==============================================================================
class Window_Status2 < Window_Base
  #--------------------------------------------------------------------------
  # * Object Initialization
  #     actor : actor
  #--------------------------------------------------------------------------
  def initialize(actor)
    super(0, 0, 320, 480-64)
    self.contents = Bitmap.new(width - 32, height - 32)
    @actor = actor
    refresh
  end
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    self.contents.font.color = system_color
    self.contents.draw_text(4, 0, 96, 32, "Arma:")
    self.contents.draw_text(4, 30, 96, 32, "Escudo:")
    self.contents.draw_text(4, 60, 96, 32, "Cabeza:")
    self.contents.draw_text(4, 90, 96, 32, "Cuerpo:")
    self.contents.draw_text(4, 120, 96, 32, "Accesorio:")
    draw_item_name($data_weapons[@actor.weapon_id], 100, 0)
    draw_item_name($data_armors[@actor.armor1_id], 100, 30)
    draw_item_name($data_armors[@actor.armor2_id], 100, 60)
    draw_item_name($data_armors[@actor.armor3_id], 100, 90)
    draw_item_name($data_armors[@actor.armor4_id], 100, 120)
    draw_actor_parameter(@actor, 4, 0  +240-64, 0)
    draw_actor_parameter(@actor, 4, 30 +240-64, 1)
    draw_actor_parameter(@actor, 4, 60 +240-64, 2)
    draw_actor_parameter(@actor, 4, 90 +240-64, 3)
    draw_actor_parameter(@actor, 4, 120+240-64, 4)
    draw_actor_parameter(@actor, 4, 150+240-64, 5)
    draw_actor_parameter(@actor, 4, 180+240-64, 6)
  end
end
 
#==============================================================================
# ** Scene_Status
#------------------------------------------------------------------------------
#  Aquí está la escena, con las llamadas a las diferentes ventanas
#==============================================================================
 
class Scene_Status
  #--------------------------------------------------------------------------
  # * Object Initialization
  #     actor_index : actor index
  #--------------------------------------------------------------------------
  def initialize(actor_index = 0, equip_index = 0)
    @actor_index = actor_index
  end
  #--------------------------------------------------------------------------
  # * Main Processing
  #--------------------------------------------------------------------------
  def main
    # Get actor
    @actor = $game_party.actors[@actor_index]
    # Make status window
    @status_window0 = Window_Status0.new(@actor)
    @status_window1 = Window_Status1.new(@actor)
    @status_window1.y = 64
    @status_window2 = Window_Status2.new(@actor)
    @status_window2.x = 320
    @status_window2.y = 64
    # Execute transition
    Graphics.transition
    # Main loop
    loop do
      # Update game screen
      Graphics.update
      # Update input information
      Input.update
      # Frame update
      update
      # Abort loop if screen is changed
      if $scene != self
        break
      end
    end
    # Prepare for transition
    Graphics.freeze
    # Dispose of windows
    @status_window0.dispose
    @status_window1.dispose
    @status_window2.dispose
  end
  #--------------------------------------------------------------------------
  # * Frame Update
  #--------------------------------------------------------------------------
  def update
    # If B button was pressed
    if Input.trigger?(Input::B)
      # Play cancel SE
      $game_system.se_play($data_system.cancel_se)
      # Switch to menu screen
      $scene = Scene_Menu.new(3)
      return
    end
    # If R button was pressed
    if Input.trigger?(Input::R)
      # Play cursor SE
      $game_system.se_play($data_system.cursor_se)
      # To next actor
      @actor_index += 1
      @actor_index %= $game_party.actors.size
      # Switch to different status screen
      $scene = Scene_Status.new(@actor_index)
      return
    end
    # If L button was pressed
    if Input.trigger?(Input::L)
      # Play cursor SE
      $game_system.se_play($data_system.cursor_se)
      # To previous actor
      @actor_index += $game_party.actors.size - 1
      @actor_index %= $game_party.actors.size
      # Switch to different status screen
      $scene = Scene_Status.new(@actor_index)
      return
    end
  end
end

Espero que les guste.

-Salu2-
 
Última edición:

~J

Mensajes
605
Reacciones
2
Puntos
0
¡Buen aporte!

Añade mucha información extra al aburrido menú de status default que trae el XP. Muchas gracias por compartirlo :D

Salut!
 
Arriba Pie