¡Bienvenid@ a Mundo Maker!

¿Quieres aprender todo sobre el RPG Maker?



Regístrate y forma parte de Mundo Maker.
Conectarse

Recuperar mi contraseña

Temas importantes
----------------------------------------
Páginas con recursos RPG Maker
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
Afiliados
Estadísticas
Tenemos 3862 miembros registrados.
El último usuario registrado es agupal12.

Nuestros miembros han publicado un total de 83063 mensajes en 11793 argumentos.
Navega con Google Chrome
[DESCARGA]

[RGPXP]Enciclopedia de Items

 :: RPG Maker :: Scripts

Ver el tema anterior Ver el tema siguiente Ir abajo

[RGPXP]Enciclopedia de Items

Mensaje por znl el Sáb 12 Dic 2009 - 14:32

INTRODUCCIÓN
Este script te permitirá llamar a una scene con un muestrario de ítemes. Es decir, accederás a una scene con la lista de los ítemes que posee el jugador, y si pasas por encima se muestra su información en una window de ayuda rediseñada.

Además, si tienes una picture con el mismo nombre que el icono del objeto de la base de datos, se va a mostrar esta en el help.

CARACTERÍSTICAS
  • Muestrario de ítemes
    Ventana de ayuda rediseñada
    Se muestra una picture si se tiene
    Necesita SDK (2.4+) y MACL (2.3)
    1.1 Picture bug fixed.


SCREENS:



DEMO:
Demo

SCRIPT:
Spoiler:
Código:
#==============================================================================
# ** Item_enciclopedy
#------------------------------------------------------------------------------
# Rolpege
# Version 1.1
# 04/08/1996 (dd/mm/yyyy)
# SDK : Version 2.4+
#------------------------------------------------------------------------------
# * Version History :
#
#  Version 1 ----------------------------------------- 04/08/2009 (dd/mm/yyyy)
#    - Log : First version released
#  Version 1 ----------------------------------------- 05/08/2009 (dd/mm/yyyy)
#    - Log : Picture bug fixed
#------------------------------------------------------------------------------
# * Requirements :
#
#  Method & Class Library (2.3 +)
#------------------------------------------------------------------------------
# * Description :
#
#  This scripts allow you to show a scene with the items you have, but not
#  use them.
#------------------------------------------------------------------------------
# * Instructions :
#
#  Place the script below the SDK and the MACL and above Main.
#  Refer to Syntax to call the Item Enciclopedy scene.
#------------------------------------------------------------------------------
# * Syntax :
#
#  Calling Scene :
#    - Script : $scene = Scene_ItemEnciclopedy.new
#==============================================================================

#------------------------------------------------------------------------------
# * SDK Log Script
#------------------------------------------------------------------------------
SDK.log('Item_Enciclopedy', 'Rolpege', 1.1, '05/08/2009')
SDK.check_requirements(2.4, [], {'Method & Class Library' => 2.3})

#------------------------------------------------------------------------------
# * Begin SDK Enable Test
#------------------------------------------------------------------------------
if SDK.enabled?('Item_Enciclopedy')

#==============================================================================
# ** Scene_ItemEnciclopedy
#------------------------------------------------------------------------------
#  This class performs Item Enciclopedy Processing.
#==============================================================================
 
class Scene_ItemEnciclopedy < SDK::Scene_Base
 #--------------------------------------------------------------------------
 # * Main Sprite_Set
 #--------------------------------------------------------------------------
 def main_spriteset
  # Sets Up Spriteset
  @spriteset = Spriteset_Map.new
 end
 #--------------------------------------------------------------------------
 # * Main Processing : Window Initialization
 #--------------------------------------------------------------------------
 def main_window
  super
  #Make items list window and selected item propierties window
  @item_window = Window_ItemEnciclopedyItems.new  #Items list
  @help_window = Window_ItemEnciclopedyHelp.new  #Selected item propierties
  #Associate help window
  @item_window.help_window = @help_window
 end
 #--------------------------------------------------------------------------
 # * Frame Update
 #--------------------------------------------------------------------------
 def update
  super
  # 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_Map.new
    return
  end
  # If C button was pressed
  if Input.trigger?(Input::C)
    # Play decision SE
    $game_system.se_play($data_system.decision_se)
    # Switch to menu screen
    $scene = Scene_Map.new
    return
  end
 end
end


#==============================================================================
# ** Window_ItemEnciclopedyItems
#------------------------------------------------------------------------------
#  This window displays a list of items player has.
#==============================================================================

class Window_ItemEnciclopedyItems < Window_Selectable
 #--------------------------------------------------------------------------
 # * Object Initialization
 #--------------------------------------------------------------------------
 def initialize
  super(0, 0, 600, 300)
  #Set index to 0
  self.index = 0
  #Make window semi-transparent
  self.back_opacity = 160
  #Center the window horizontally
  self.x = 320 - self.width/2
  #Put the window at bottom
  self.y = 480 - height - 20
  #Set column max
  @column_max = 2
  #Refresh the window
  refresh
 end
 #--------------------------------------------------------------------------
 # * Get Item
 #--------------------------------------------------------------------------
 def item
  return @data[self.index]
 end
 #--------------------------------------------------------------------------
 # * Refresh
 #--------------------------------------------------------------------------
 def refresh
  if self.contents != nil
    self.contents.dispose
    self.contents = nil
  end
  @data = []
  # Add items, weapons and armors
  for i in 1...$data_items.size
    if $game_party.item_number(i) > 0
      @data.push($data_items[i])
    end
  end
  # Also add weapons and items if outside of battle
  for i in 1...$data_weapons.size
    if $game_party.weapon_number(i) > 0
      @data.push($data_weapons[i])
    end
  end
  for i in 1...$data_armors.size
    if $game_party.armor_number(i) > 0
      @data.push($data_armors[i])
    end
  end
  # If item count is not 0, make a bit map and draw all items
  @item_max = @data.size
  if @item_max > 0
    self.contents = Bitmap.new(width - 32, row_max * 32)
    for i in 0...@item_max
      draw_item(i)
    end
  end
 end
 #--------------------------------------------------------------------------
 # * Draw Item
 #    index : item number
 #--------------------------------------------------------------------------
 def draw_item(index)
  item = @data[index]
  case item
  when RPG::Item
    number = $game_party.item_number(item.id)
  when RPG::Weapon
    number = $game_party.weapon_number(item.id)
  when RPG::Armor
    number = $game_party.armor_number(item.id)
  end
  self.contents.font.color = normal_color
  x = 10 + index % 2 * (258+42)
  y = index / 2 * 32
  rect = Rect.new(x, y, self.width / @column_max - 20, 32)
  self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
  bitmap = RPG::Cache.icon(item.icon_name)
  self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24), 255)
  self.contents.draw_text(x + 28, y, 200, 32, item.name, 0)
  self.contents.draw_text(x + 200, y, 16, 32, ":", 1)
  self.contents.draw_text(x + 216, y, 24, 32, number.to_s, 2)
 end
 #--------------------------------------------------------------------------
 # * Help Text Update
 #--------------------------------------------------------------------------
 def update_help
  if self.item != nil
    @help_window.set_item(self.item.icon_name, self.item.name,
                          self.item.description, self.item.price.to_s)
  end
 end
end

#==============================================================================
# ** Window_Help
#------------------------------------------------------------------------------
#  This window shows skill and item explanations along with actor status.
#==============================================================================

class Window_ItemEnciclopedyHelp < Window_Base
 #--------------------------------------------------------------------------
 # * Object Initialization
 #--------------------------------------------------------------------------
 def initialize
  super(0, 20, 600, 120)
  #Center the window horizontally
  self.x = 320 - self.width/2
  #Make window semi-transparent
  self.back_opacity = 160
  self.contents = Bitmap.new(width - 32, height - 32)
 end
 #--------------------------------------------------------------------------
 # * Set item
 #  icon_name  : item's icon
 #  name      : item's name
 #  description: item's description
 #  price      : price of item
 #--------------------------------------------------------------------------
 def set_item(icon_name, name, description, price)
  # If name is different from the last time 
  if name != @name
    # Redraw info
    self.contents.clear
    self.contents.font.color = normal_color
    if File.exist?("Graphics/Pictures/" + icon_name + ".png")
      bitmap = RPG::Cache.picture(icon_name)
    else
      bitmap = RPG::Cache.icon(icon_name)
    end
    self.contents.blt(45 - bitmap.width/2,
                      45 - bitmap.height/2,
                      bitmap, Rect.new(0, 0, 100, 100))
    self.contents.draw_text(120, 16, 200, 32, name)
    self.contents.draw_text(320, 16, 280, 32, description)
    self.contents.draw_text(120, 48, 200, 32, "Price: " + price)
    @name = name
  end
  self.visible = true
 end
end

#--------------------------------------------------------------------------
# * End SDK Enable Test
#--------------------------------------------------------------------------
end

INSTRUCCIONES:
Descargar la demo y copiar el script, el SDK y el MACL. Pegar en tu proyecto. Opcionalmente puedes copiar el script de la sección de script de este tema e instalar el SDK y el MACL por tu cuenta.

Para llamar al script inserta esto en un comando de llamar script:
Código:
$scene = Scene_ItemEnciclopedy.new

Para mostrar una picture personalizada como imagen de ítem en la pantalla de help, crea una imagen con el mismo nombre que el icono del ítem en la base de datos, e importala como picture.

Tamaño recomendado de la picture: 80x80 px.

CRÉDITOS
Rolpege por el script
SDK y MACL

Fuente: vz4.net
avatar
znl
Aventurero
Aventurero

0/3

Créditos 1589

Gracias : 58

http://www.mundo-maker.forumn.org

Volver arriba Ir abajo

Re: [RGPXP]Enciclopedia de Items

Mensaje por orochii el Dom 13 Dic 2009 - 0:31

Ummm interesante (he vistos varias cosas curiosas hoy dentro de los aportes de scripts), además de que el mostrar imagen me ha dado la idea de plagiarme eso xDD para mi inventario ;D.

Excelente aporte de nuevo znl, y felicitaciones al creador del script por el mismo ;D,
Orochii Zouveleki
avatar
orochii
Caballero Shiro
Caballero Shiro

0/3

Créditos 6335

Gracias : 318

http://ragnarokrproject.com/

Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba


 :: RPG Maker :: Scripts

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