¡Bienvenido a Universo Maker!
¿Es esta la primera vez que visitas el foro? Si es así te recomendamos que te registres para tener completo acceso a todas las áreas y secciones del foro, así también podrás participar activamente en la comunidad. Si ya tienes una cuenta, conectate cuanto antes.
Iniciar Sesión Registrarme

No estás conectado. Conéctate o registrate

Ver el tema anterior Ver el tema siguiente Ir abajo Mensaje [Página 1 de 1.]

#1 [RPG Maker XP] Interfaz 'estado' avanzado el Jue Jul 14, 2011 12:31 am

~Doku


Nombre: Interfaz 'estado' avanzado
Autor: Selkie
Descripción: La finalidad de este script es sustituir la sosa ventana de 'Estado' que viene por defecto en RMXP por una con varias ventanas, una organización más bonita, gráfico para las caras (faces) y un perfil personal para cada personaje.

Instrucciones:
  1. Pegar script encima de '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 llamará Face2 y así consecutivamente.
  3. Personalizar el script modificando las líneas del perfil de cada personaje.


Imágenes:

Spoiler:

Script:
Código:
#========================================================================
# Advanced Status Display por Selkie 
# 17/01/2010 (DD/MM/YYYY)         
# planetarpg.com.ar             
#========================================================================
#  Agradecimientos:                                                           
#  · Silentwalker por su método para dibujar faces.                           
#  · Abbet por la idea.                                                       
#========================================================================
#  ** Método para dibujar las faces  **                         
#========================================================================
class Window_Base < Window
  def draw_actor_face      (actor, x, y)#############  Aquí se edita el nombre
#========================================================================
    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, se 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 Estado
#========================================================================
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-

#2 Re: [RPG Maker XP] Interfaz 'estado' avanzado el Jue Jul 14, 2011 12:42 am

Kululu

avatar
¡Muy buen aporte!

Es un muy buen menú de status, con mucha información además.

Salut! [+30 Makedas]



     

¡Visita mis galerías de Tumblr y DeviantArt!

D.A.C.

avatar
He probado este script y es realmente maravilloso. A mi personalmente no me gusta que en la ventana de estado aparezca una imagen de las caras (faces) de los personajes, con lo que he editado un par de líneas y he podido eliminarlo. Lo añado al Índice de scripts corregido correctamente. ¡Muchas gracias!

Wasaby

avatar
Muy bueno!
Me tiro errores en un par de Lineas, pero lo solucione. GRACIAS!

Contenido patrocinado


Ver el tema anterior Ver el tema siguiente Volver arriba  Mensaje [Página 1 de 1.]

Permisos de este foro:
No puedes responder a temas en este foro.