Drupogame


Si quieres formar parte del staff tienes que enviar un MP al administrador o al Co-Administrador
Conectarse

Recuperar mi contraseña

Buscar
 
 

Resultados por:
 


Rechercher Búsqueda avanzada

Los posteadores más activos del mes

Estadísticas
Tenemos 97 miembros registrados.
El último usuario registrado es Sondorax.

Nuestros miembros han publicado un total de 6208 mensajes en 777 argumentos.
Compañeros
Crear foro
Crear foro
Crear foro
Crear foro
PFC
Crear foro
Crear foro
Otakus Activos
Diviértete acá
Crear foro
Foro de anime y RM2k3/XP/VX
contador.
contador de visitas
Diciembre 2017
LunMarMiérJueVieSábDom
    123
45678910
11121314151617
18192021222324
25262728293031

Calendario Calendario


[RMXP]Advanced Status Display

Ver el tema anterior Ver el tema siguiente Ir abajo

[RMXP]Advanced Status Display

Mensaje por Akeo el Vie Abr 22, 2011 12:01 am

INTRODUCCIÓN
Sí. La pantalla de status que viene con el RPG Maker XP es aburrida. No era ningún secreto... Así que, ya que estaba aprendiendo RGSS, me dije: "¿Por qué no hago una pantalla de status yo mismo? ¿Por qué Windows XP se llama XP, les gustaba ese smiley? ¿Por qué en los botones de los ascensores pone el número en braille, si cuando tocas ya se ha pulsado?"... Ya sabéis, cosas profundas.

CARACTERÍSTICAS
Muestra nombre, profesión, estado, vida, magia, armamento y estadísticas.
Muestra información adicional como peso, altura, etcétera.
Muestra una pequeña "historia" del personaje.
Para terminar, muestra un gráfico de face y el chara.


SCRIPT
Spoiler:
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, 'Altura:')
    self.contents.draw_text(4, 120+72, 300, 32, 'Peso:')
    self.contents.draw_text(4, 120+96, 300, 32, 'Carácter:')
    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, '3 meses')          #Edad                                                     
        self.contents.draw_text(108, 120+48, 300, 32, '64 píxeles')      #Altura                                                     
        self.contents.draw_text(108, 120+72, 300, 32, '2 KB')              #Peso                                                     
        self.contents.draw_text(108, 120+96, 300, 32, 'Genérico')      #Carácter
        #-------------------------------------------#Más datos(Múltiples líneas)
        self.contents.draw_text(16, 120+96+48, 300, 32, 'Este pelirrojo individuo se gana la')
        self.contents.draw_text(16, 120+96+72, 300, 32, 'vida como protagonista de los juegos')
        self.contents.draw_text(16, 120+96+96, 300, 32, 'que usan el RTP del RPG Maker XP.')
 
 
      when 2  #Personaje 2
        self.contents.draw_text(108, 120+00, 300, 32, 'Terror (?)')      #Género                                                     
        self.contents.draw_text(108, 120+24, 300, 32, '78 milenios')      #Edad                                                     
        self.contents.draw_text(108, 120+48, 300, 32, '3 pulgadas')      #Altura                                                     
        self.contents.draw_text(108, 120+72, 300, 32, '50 gramos')        #Peso                                                     
        self.contents.draw_text(108, 120+96, 300, 32, 'Inexistente')  #Carácter
        #-------------------------------------------#Más datos(Múltiples líneas)
        self.contents.draw_text(16, 120+96+ 48, 300, 32, 'El mejor amigo de Alexis. Aunque')
        self.contents.draw_text(16, 120+96+ 72, 300, 32, 'parezca un lancero de verdad, tan')
        self.contents.draw_text(16, 120+96+ 96, 300, 32, 'sólo es un disfraz poco conseguido.')
 
 
      when 3  #Personaje 3                                                                                           
        self.contents.draw_text(108, 120+00, 300, 32, '')#Género                                                     
        self.contents.draw_text(108, 120+24, 300, 32, '')#Edad                                                     
        self.contents.draw_text(108, 120+48, 300, 32, '')#Altura                                                     
        self.contents.draw_text(108, 120+72, 300, 32, '')#Peso                                                     
        self.contents.draw_text(108, 120+96, 300, 32, '')#Carácter
        #-------------------------------------------#Más datos(Múltiples líneas)
        self.contents.draw_text(16, 120+96+48, 300, 32, '')
        self.contents.draw_text(16, 120+96+72, 300, 32, '')
        self.contents.draw_text(16, 120+96+96, 300, 32, '')
 
 
      when 4  #Personaje 4                         
        self.contents.draw_text(108, 120+00, 300, 32, '')#Género                                                     
        self.contents.draw_text(108, 120+24, 300, 32, '')#Edad                                                     
        self.contents.draw_text(108, 120+48, 300, 32, '')#Altura                                                     
        self.contents.draw_text(108, 120+72, 300, 32, '')#Peso                                                     
        self.contents.draw_text(108, 120+96, 300, 32, '')#Carácter
        #-------------------------------------------#Más datos(Múltiples líneas)
        self.contents.draw_text(16, 120+96+48, 300, 32, '')
        self.contents.draw_text(16, 120+96+72, 300, 32, '')
        self.contents.draw_text(16, 120+96+96, 300, 32, '')
    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

SCREEN


DEMO
Pincha aqui

INSTRUCCIONES
En el script y la demo están bien detalladas

CRÉDITOS
Selkie

_______________________________



avatar
Akeo
Administrador
Administrador

Mensajes : 1876
Fecha de inscripción : 02/01/2011
Edad : 23

Ver perfil de usuario http://drupogame.superforo.net

Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba

- Temas similares

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