Mundo Maker
¡Bienvenid@ a Mundo Maker!

¿Quieres aprender todo sobre el RPG Maker?



Regístrate y forma parte de Mundo Maker.

[RMXP] Windows Fix [Herramientas Para Desarrolladores]

Ver el tema anterior Ver el tema siguiente Ir abajo

[RMXP] Windows Fix [Herramientas Para Desarrolladores]

Mensaje por MidnightMoon el 2011-09-14, 04:54

Bueno en este tema estare colgando algo que es sencillo pero que es algo funcional XD
Son modificaciones de algunos window, para que se puedan usar mas facilmente.
Yo cuando estaba haciendo el Item system me tome con el caso de crear ventanas de window item con varios anchos y diferente numero de columnas y por eso hize unos fix para nada mas al llamar la ventana con los parametros requeridos y me imprimera los datos y me ordenara por columnas como es debido.
Si los llamas sin parametros pondra sus valores por default si le mandas parametros cambiara estos.
Window Item Fix
Se llama con los siguientes parametros (x, y, width, height, columns)
Por ejemplo en Scene_Item se pueden cambiar los parametro en la parde donde poner.
Código:

$window_item = Window_Item.new(0, 0, 480, 480 - 64, 1)
Que creara una ventana con menos ancho y una sola columna.
Código:

#==============================================================================
# ** Window_Item
#------------------------------------------------------------------------------
#  This window displays items in possession on the item and battle screens.
#==============================================================================

class Window_Item < Window_Selectable
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize(x= 0, y = 64, width = 640, height = 416, columns = 2)
    super(x, y, width, height)
    @column_max = columns
    refresh
    self.index = 0
    # If in battle, move window to center of screen
    # and make it semi-transparent
    if $game_temp.in_battle
      self.y = 64
      self.height = 256
      self.back_opacity = 160
    end
  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 item
    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
    unless $game_temp.in_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
    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
    if item.is_a?(RPG::Item) and
      $game_party.item_can_use?(item.id)
      self.contents.font.color = normal_color
    else
      self.contents.font.color = disabled_color
    end
    tam = self.width / @column_max
    x = 4 + index % @column_max * tam
    y = index / @column_max * 32
    rect = Rect.new(x, y, tam - 32, 32)
    self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
    bitmap = RPG::Cache.icon(item.icon_name)
    opacity = self.contents.font.color == normal_color ? 255 : 128
    self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24), opacity)
    self.contents.draw_text(x + 28, y, tam - 84 - 32, 32, item.name, 0)
    self.contents.draw_text(x + tam - 56 - 32, y, 16, 32, ":", 1)
    self.contents.draw_text(x + tam - 40 - 32, y, 24, 32, number.to_s, 2)
  end
  #--------------------------------------------------------------------------
  # * Help Text Update
  #--------------------------------------------------------------------------
  def update_help
    @help_window.set_text(self.item == nil ? "" : self.item.description)
  end
end

Bueno espero les sea de utilidad... luego cuelgo otros fix n_n

SAYONARA
avatar
MidnightMoon
Soñador
Soñador

0/3

Créditos 135

Gracias : 3

Volver arriba Ir abajo

Re: [RMXP] Windows Fix [Herramientas Para Desarrolladores]

Mensaje por orochii el 2011-09-15, 03:44

Seeeh, ese es un fix bastante muy importante. Cada vez que uno quiere hacer un inventario o algo así de una o más de dos columnas hay que ir y arreglar la cochina tontería de forma en que monta la ventana. ¿Qué les cuesta incluir el número de columnas entre las consideraciones al mostrar comandos?

En fin, buen aporte, quizá sencillo, pero ahorra un buen y aburrido rato de estar arreglándolo por uno mismo xD,
Orochii Zouveleki

Edit: Y bueno, no sólo inventarios. Ventanitas de skills, etceterá... en fin, vocé comprende no?
avatar
orochii
Reportero

0/3

Créditos 7595

Gracias : 403

Volver arriba Ir abajo

Re: [RMXP] Windows Fix [Herramientas Para Desarrolladores]

Mensaje por MidnightMoon el 2011-09-15, 04:02

Sep de hecho quiero hacer fix de varios XD
Pero no scripteare por mas o menos una semana =P
Y por eso no he publicado las demas o.O

n_n
SAYONARA
avatar
MidnightMoon
Soñador
Soñador

0/3

Créditos 135

Gracias : 3

Volver arriba Ir abajo

Re: [RMXP] Windows Fix [Herramientas Para Desarrolladores]

Mensaje por Contenido patrocinado


Contenido patrocinado


Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba


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