¡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 3397 miembros registrados.
El último usuario registrado es LucasGF.

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

Scripts de inventario con más información

 :: RPG Maker :: Scripts

Ver el tema anterior Ver el tema siguiente Ir abajo

RPG Maker XP Scripts de inventario con más información

Mensaje por silvanash el 2012-12-11, 20:38

Estos scripts los hice hace algún tiempo para probar un SBP nuevo (SBP que al final no llegó a ninguna parte).

Los scripts (edité los originales; lo siento mucho), modifican el comportamiento de la tienda y de la ventana de equipamiento.

Spoiler:

Ventana de compra de equipamiento. Modificaciones en caso de equiparlo. Si no es posible equiparlo, el personaje no tendrá datos debajo.


Ventana de compra de items. No he hecho la parte que cura o añade estados, pero es posible que lo haga en un futuro.


Ventana de equipamiento. Ahora con información sobre las modificaciones de los stats del personaje.


Enlace. -> La versión correcta está en la parte editada de este post.

Hice los edits sobre los scripts originales, así que habría que copiarlos y reemplazarlos. El edit fue hace tanto tiempo que ya ni recuerdo los scripts que toqué. Esto sería más útil como proyecto en blanco para el Maker que como script en sí, pero bueno... Uno hace lo que puede.

Edita silva mucho después de subir el script:

¡Muchas gracias a todas las personas que estuvieron dispuestas a sufrir mi script! La versión más actualizada del script está aquí (es decir, unos cuantos posts más abajo). Esa versión es de copiar y pegar encima de Main. Para usar la funcionalidad de la tienda mejorada, usad éste script.


Última edición por silvanash el 2015-01-14, 19:18, editado 3 veces

silvanash
Aventurero
Aventurero

0/3

Créditos 1417

Gracias : 176

Volver arriba Ir abajo

RPG Maker XP Re: Scripts de inventario con más información

Mensaje por zapdos1 el 2012-12-16, 17:44

la verdad es que me gusta mucho, se ve bastante util, lo más probable es que lo use, gracias :)

zapdos1
Soñador
Soñador

0/3

Créditos 118

Gracias : 4

Volver arriba Ir abajo

RPG Maker XP Re: Scripts de inventario con más información

Mensaje por bluend el 2012-12-16, 20:40

Bastante util! Es increible y me encanta! Si lo quiero agregar a mi juego debo agregar creditos no?

Pues se ve bastante bien, gracias por el aporte

bluend
Iniciado
Iniciado

0/3

Créditos 32

Gracias : 2

Volver arriba Ir abajo

RPG Maker XP Re: Scripts de inventario con más información

Mensaje por silvanash el 2012-12-16, 20:42

Vaya, no me esperaba tantas respuestas para estos scripts xD. Sobre todo teniendo en cuenta lo poco que aportan al juego, comparados con otros scripts.

Preferiría que me dierais créditos, pero eso es decisión personal. Tampoco quiero que se me conozca como scripter, porque eso son sólo apaños del RTP xD

silvanash
Aventurero
Aventurero

0/3

Créditos 1417

Gracias : 176

Volver arriba Ir abajo

RPG Maker XP Re: Scripts de inventario con más información

Mensaje por bluend el 2012-12-17, 03:19

silvanash escribió:Vaya, no me esperaba tantas respuestas para estos scripts xD. Sobre todo teniendo en cuenta lo poco que aportan al juego, comparados con otros scripts.

mira, pues la verdad en lo personal adoro cosas sencillas y a su vez complejas (?) esto da un toque de personalizacion sin salirse mucho de la raya xD o asi opino yo xD

Silvanash escribió:Preferiría que me dierais créditos, pero eso es decisión personal. Tampoco quiero que se me conozca como scripter, porque eso son sólo apaños del RTP xD

vale, unos creditos que digan "script de menu: created by Silvanash, founded in Mundo Maker" o algo asi? XD

De nuevo gracias por el aporte silvanash :)

Tengo miedo de mandar mas msj.... XD debi decir esto por MP?

bluend
Iniciado
Iniciado

0/3

Créditos 32

Gracias : 2

Volver arriba Ir abajo

RPG Maker XP Re: Scripts de inventario con más información

Mensaje por orochii el 2012-12-17, 05:45

silvanash escribió:Preferiría que me dierais créditos, pero eso es decisión personal. Tampoco quiero que se me conozca como scripter, porque eso son sólo apaños del RTP xD
Pero si todos empezamos así xD. Bueno, aunque yo tampoco me considero scripter porque scripteo por necesidad nada más y ayudo porque algo se hacer x'D... creo.

Asdf asdf sasdfg,
Orochii Zouveleki

orochii
Caballero Shiro
Caballero Shiro

0/3

Créditos 6045

Gracias : 266

http://drekirokr.weebly.com/

Volver arriba Ir abajo

RPG Maker XP Re: Scripts de inventario con más información

Mensaje por UmbriaChronicles el 2015-01-07, 22:16

Disculpad por revivir el post, pero exactamente ¿qué scripts se deben sustituir? Veo que Silvanash no lo recuerda, y yo he probado con Scene_Equip y Scene_Shop pero parece que no es suficiente porque siguen ocurriendo errores.

UmbriaChronicles
Novato
Novato

0/3

Créditos 76

Gracias : 2

Volver arriba Ir abajo

RPG Maker XP Re: Scripts de inventario con más información

Mensaje por Metalero el 2015-01-07, 23:11


Disculpad por revivir el post, pero exactamente ¿qué scripts se deben sustituir? Veo que Silvanash no lo recuerda, y yo he probado con Scene_Equip y Scene_Shop pero parece que no es suficiente porque siguen ocurriendo errores.


Probablemente tambien tengas que reemplazar:
* Window_ShopStatus
* Window_EquipRight

(Aunque bueno, es suposicion)

Respecto al script, esta muy bueno silvanash (aunque lo tendrias que haber puesto por separado, y no pisando los originales).
Siempre me molesto que por defecto solo muestre el cambio de algunos parametros y no de todos.

_________________

Metalero
Administrador
Administrador



Créditos 1715

Gracias : 98

Volver arriba Ir abajo

RPG Maker XP Re: Scripts de inventario con más información

Mensaje por Lithering-Games el 2015-01-07, 23:16

Metalero escribió:

Disculpad por revivir el post, pero exactamente ¿qué scripts se deben sustituir? Veo que Silvanash no lo recuerda, y yo he probado con Scene_Equip y Scene_Shop pero parece que no es suficiente porque siguen ocurriendo errores.




Probablemente tambien tengas que reemplazar:
* Window_ShopStatus
* Window_EquipRight

(Aunque bueno, es suposicion)

Respecto al script, esta muy bueno silvanash (aunque lo tendrias que haber puesto por separado, y no pisando los originales).
Siempre me molesto que por defecto solo muestre el cambio de algunos parametros y no de todos.


Nope, no es suficiente.
Hay que copiar el window equip item y el window equip left también.

Lithering-Games
Soñador
Soñador

0/3

Créditos 411

Gracias : 20

http://lithering.es.tl/

Volver arriba Ir abajo

RPG Maker XP Re: Scripts de inventario con más información

Mensaje por silvanash el 2015-01-08, 00:27

Ok, vengo a auto-necroarme.

El script, sólo para el inventario, debería ser éste:
Edito: el script corregido está unos posts más abajo.

Para usar además la tienda, es mejor usar el script que hay aquí: http://www.mundo-maker.com/t7742-rmxp-scene_shop-mejorado. No es mejor: es obligatorio. La parte que modificaba la tienda de este script está bugeada, y esos bugs los corregí en el script que hay en el enlace.

Voy a editar el primer post para corregir todo este lío. Este script data de cuando todavía no sabía scriptear (y ahora tampoco sé), así que ruego que perdonen mi falta de organización.


Última edición por silvanash el 2015-04-23, 13:08, editado 1 vez

silvanash
Aventurero
Aventurero

0/3

Créditos 1417

Gracias : 176

Volver arriba Ir abajo

RPG Maker XP Re: Scripts de inventario con más información

Mensaje por UmbriaChronicles el 2015-01-14, 19:07

silvanash escribió:Ok, vengo a auto-necroarme.

El script, sólo para el inventario, debería ser éste:

Código:
#==============================================================================
# ** Window_EquipLeft
#------------------------------------------------------------------------------
#  This window displays actor parameter changes on the equipment screen.
#==============================================================================

class Window_EquipLeft < Window_Base
  #--------------------------------------------------------------------------
  # * Object Initialization
  #    actor : actor
  #--------------------------------------------------------------------------
  def initialize(actor)
    super(0, 64, 272, 480)
    self.contents = Bitmap.new(width - 32, height - 32)
    @actor = actor
    refresh
  end
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    draw_actor_name(@actor, 48, 32)
    draw_actor_graphic(@actor, 16, 64)
    draw_actor_level(@actor, 4, 32)
    draw_actor_parameter(@actor, 4, 64, 0)
    draw_actor_parameter(@actor, 4, 96, 1)
    draw_actor_parameter(@actor, 4, 128, 2)
    draw_actor_parameter(@actor, 4, 170, 3)
    draw_actor_parameter(@actor, 4, 202, 4)
    draw_actor_parameter(@actor, 4, 234, 5)
    draw_actor_parameter(@actor, 4, 266, 6)
    if @new_atk != nil
      self.contents.font.color = system_color
      self.contents.draw_text(160, 64, 40, 32, ">>", 1)
      if @new_atk > @actor.atk
        self.contents.font.color = text_color(4)
      elsif @new_atk < @actor.atk
        self.contents.font.color = text_color(2)
      else
        self.contents.font.color = normal_color
      end
      self.contents.draw_text(200, 64, 36, 32, @new_atk.to_s, 2)
    end
    if @new_pdef != nil
      self.contents.font.color = system_color
      self.contents.draw_text(160, 96, 40, 32, ">>", 1)
      if @new_pdef > @actor.pdef
        self.contents.font.color = text_color(4)
      elsif @new_pdef < @actor.pdef
        self.contents.font.color = text_color(2)
      else
        self.contents.font.color = normal_color
      end
      self.contents.draw_text(200, 96, 36, 32, @new_pdef.to_s, 2)
    end
    if @new_mdef != nil
      self.contents.font.color = system_color
      self.contents.draw_text(160, 128, 40, 32, ">>", 1)
      if @new_mdef > @actor.mdef
        self.contents.font.color = text_color(4)
      elsif @new_mdef < @actor.mdef
        self.contents.font.color = text_color(2)
      else
        self.contents.font.color = normal_color
      end
      self.contents.draw_text(200, 128, 36, 32, @new_mdef.to_s, 2)
    end
    if @new_str != nil
      self.contents.font.color = system_color
      self.contents.draw_text(160, 170, 40, 32, ">>", 1)
      if @new_str > @actor.str
        self.contents.font.color = text_color(4)
      elsif @new_str < @actor.str
        self.contents.font.color = text_color(2)
      else
        self.contents.font.color = normal_color
      end
      self.contents.draw_text(200, 170, 36, 32, @new_str.to_s, 2)
    end
    if @new_dex != nil
      self.contents.font.color = system_color
      self.contents.draw_text(160, 202, 40, 32, ">>", 1)
      if @new_dex > @actor.dex
        self.contents.font.color = text_color(4)
      elsif @new_dex < @actor.dex
        self.contents.font.color = text_color(2)
      else
        self.contents.font.color = normal_color
      end
      self.contents.draw_text(200, 202, 36, 32, @new_dex.to_s, 2)
    end
    if @new_agi != nil
      self.contents.font.color = system_color
      self.contents.draw_text(160, 234, 40, 32, ">>", 1)
      if @new_agi > @actor.agi
        self.contents.font.color = text_color(4)
      elsif @new_agi < @actor.agi
        self.contents.font.color = text_color(2)
      else
        self.contents.font.color = normal_color
      end
      self.contents.draw_text(200, 234, 36, 32, @new_agi.to_s, 2)
    end
    if @new_int != nil
      self.contents.font.color = system_color
      self.contents.draw_text(160, 266, 40, 32, ">>", 1)
      if @new_int > @actor.int
        self.contents.font.color = text_color(4)
      elsif @new_int < @actor.int
        self.contents.font.color = text_color(2)
      else
        self.contents.font.color = normal_color
      end
      self.contents.draw_text(200, 266, 36, 32, @new_int.to_s, 2)
    end
  end
  #--------------------------------------------------------------------------
  # * Set parameters after changing equipment
  #    new_atk  : attack power after changing equipment
  #    new_pdef : physical defense after changing equipment
  #    new_mdef : magic defense after changing equipment
  #--------------------------------------------------------------------------
  def set_new_parameters(new_atk, new_pdef, new_mdef, new_str, new_dex, new_agi, new_int)
    if @new_atk != new_atk or @new_pdef != new_pdef or @new_mdef != new_mdef or @new_str != new_str or @new_dex != new_dex or @new_agi != new_agi or @new_int != new_int
      @new_atk = new_atk
      @new_pdef = new_pdef
      @new_mdef = new_mdef
      @new_str = new_str
      @new_dex = new_dex
      @new_agi = new_agi
      @new_int = new_int
      refresh
    end
  end
end

#==============================================================================
# ** Window_EquipItem
#------------------------------------------------------------------------------
#  This window displays choices when opting to change equipment on the
#  equipment screen.
#==============================================================================

class Window_EquipItem < Window_Selectable
  #--------------------------------------------------------------------------
  # * Object Initialization
  #    actor      : actor
  #    equip_type : equip region (0-3)
  #--------------------------------------------------------------------------
  def initialize(actor, equip_type)
    super(272, 256, 368, 224)
    @actor = actor
    @equip_type = equip_type
    @column_max = 1
    refresh
    self.active = false
    self.index = -1
  end
end

class Scene_Equip
  def refresh
    # Set item window to visible
    @item_window1.visible = (@right_window.index == 0)
    @item_window2.visible = (@right_window.index == 1)
    @item_window3.visible = (@right_window.index == 2)
    @item_window4.visible = (@right_window.index == 3)
    @item_window5.visible = (@right_window.index == 4)
    # Get currently equipped item
    item1 = @right_window.item
    # Set current item window to @item_window
    case @right_window.index
    when 0
      @item_window = @item_window1
    when 1
      @item_window = @item_window2
    when 2
      @item_window = @item_window3
    when 3
      @item_window = @item_window4
    when 4
      @item_window = @item_window5
    end
    # If right window is active
    if @right_window.active
      # Erase parameters for after equipment change
      @left_window.set_new_parameters(nil, nil, nil, nil, nil, nil, nil)
    end
    # If item window is active
    if @item_window.active
      # Get currently selected item
      item2 = @item_window.item
      # Change equipment
      last_hp = @actor.hp
      last_sp = @actor.sp
      @actor.equip(@right_window.index, item2 == nil ? 0 : item2.id)
      # Get parameters for after equipment change
      new_atk = @actor.atk
      new_pdef = @actor.pdef
      new_mdef = @actor.mdef
      new_str = @actor.str
      new_dex = @actor.dex
      new_agi = @actor.agi
      new_int = @actor.int
      # Return equipment
      @actor.equip(@right_window.index, item1 == nil ? 0 : item1.id)
      @actor.hp = last_hp
      @actor.sp = last_sp
      # Draw in left window
      @left_window.set_new_parameters(new_atk, new_pdef, new_mdef, new_str,
      new_dex, new_agi, new_int)
    end
  end
end



Para usar además la tienda, es mejor usar el script que hay aquí: http://www.mundo-maker.com/t7742-rmxp-scene_shop-mejorado. No es mejor: es obligatorio. La parte que modificaba la tienda de este script está bugeada, y esos bugs los corregí en el script que hay en el enlace.

Voy a editar el primer post para corregir todo este lío. Este script data de cuando todavía no sabía scriptear (y ahora tampoco sé), así que ruego que perdonen mi falta de organización.


Qué extraño, las estadísticas de los objetos se muestran correctamente, sin embargo, cuando estoy en la ventana para equipármelos, se muestran uno al lado de otro y no uno debajo de otro como ocurre normalmente. ¿Alguna idea?

UmbriaChronicles
Novato
Novato

0/3

Créditos 76

Gracias : 2

Volver arriba Ir abajo

RPG Maker XP Re: Scripts de inventario con más información

Mensaje por silvanash el 2015-01-14, 19:16

Ok, mea culpa. Se me olvidó copiar el trozo editado que dibuja los objetos en su sitio.

Script corregido otra vez:

Código:
#==============================================================================
# ** Window_EquipLeft
#------------------------------------------------------------------------------
#  This window displays actor parameter changes on the equipment screen.
#==============================================================================

class Window_EquipLeft < Window_Base
  #--------------------------------------------------------------------------
  # * Object Initialization
  #    actor : actor
  #--------------------------------------------------------------------------
  def initialize(actor)
    super(0, 64, 272, 480)
    self.contents = Bitmap.new(width - 32, height - 32)
    @actor = actor
    refresh
  end
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    draw_actor_name(@actor, 48, 32)
    draw_actor_graphic(@actor, 16, 64)
    draw_actor_parameter(@actor, 4, 64, 0)
    draw_actor_parameter(@actor, 4, 96, 1)
    draw_actor_parameter(@actor, 4, 128, 2)
    draw_actor_parameter(@actor, 4, 170, 3)
    draw_actor_parameter(@actor, 4, 202, 4)
    draw_actor_parameter(@actor, 4, 234, 5)
    draw_actor_parameter(@actor, 4, 266, 6)
    if @new_atk != nil
      self.contents.font.color = system_color
      self.contents.draw_text(160, 64, 40, 32, ">>", 1)
      if @new_atk > @actor.atk
        self.contents.font.color = text_color(4)
      elsif @new_atk < @actor.atk
        self.contents.font.color = text_color(2)
      else
        self.contents.font.color = normal_color
      end
      self.contents.draw_text(200, 64, 36, 32, @new_atk.to_s, 2)
    end
    if @new_pdef != nil
      self.contents.font.color = system_color
      self.contents.draw_text(160, 96, 40, 32, ">>", 1)
      if @new_pdef > @actor.pdef
        self.contents.font.color = text_color(4)
      elsif @new_pdef < @actor.pdef
        self.contents.font.color = text_color(2)
      else
        self.contents.font.color = normal_color
      end
      self.contents.draw_text(200, 96, 36, 32, @new_pdef.to_s, 2)
    end
    if @new_mdef != nil
      self.contents.font.color = system_color
      self.contents.draw_text(160, 128, 40, 32, ">>", 1)
      if @new_mdef > @actor.mdef
        self.contents.font.color = text_color(4)
      elsif @new_mdef < @actor.mdef
        self.contents.font.color = text_color(2)
      else
        self.contents.font.color = normal_color
      end
      self.contents.draw_text(200, 128, 36, 32, @new_mdef.to_s, 2)
    end
    if @new_str != nil
      self.contents.font.color = system_color
      self.contents.draw_text(160, 170, 40, 32, ">>", 1)
      if @new_str > @actor.str
        self.contents.font.color = text_color(4)
      elsif @new_str < @actor.str
        self.contents.font.color = text_color(2)
      else
        self.contents.font.color = normal_color
      end
      self.contents.draw_text(200, 170, 36, 32, @new_str.to_s, 2)
    end
    if @new_dex != nil
      self.contents.font.color = system_color
      self.contents.draw_text(160, 202, 40, 32, ">>", 1)
      if @new_dex > @actor.dex
        self.contents.font.color = text_color(4)
      elsif @new_dex < @actor.dex
        self.contents.font.color = text_color(2)
      else
        self.contents.font.color = normal_color
      end
      self.contents.draw_text(200, 202, 36, 32, @new_dex.to_s, 2)
    end
    if @new_agi != nil
      self.contents.font.color = system_color
      self.contents.draw_text(160, 234, 40, 32, ">>", 1)
      if @new_agi > @actor.agi
        self.contents.font.color = text_color(4)
      elsif @new_agi < @actor.agi
        self.contents.font.color = text_color(2)
      else
        self.contents.font.color = normal_color
      end
      self.contents.draw_text(200, 234, 36, 32, @new_agi.to_s, 2)
    end
    if @new_int != nil
      self.contents.font.color = system_color
      self.contents.draw_text(160, 266, 40, 32, ">>", 1)
      if @new_int > @actor.int
        self.contents.font.color = text_color(4)
      elsif @new_int < @actor.int
        self.contents.font.color = text_color(2)
      else
        self.contents.font.color = normal_color
      end
      self.contents.draw_text(200, 266, 36, 32, @new_int.to_s, 2)
    end
  end
  #--------------------------------------------------------------------------
  # * Set parameters after changing equipment
  #    new_atk  : attack power after changing equipment
  #    new_pdef : physical defense after changing equipment
  #    new_mdef : magic defense after changing equipment
  #--------------------------------------------------------------------------
  def set_new_parameters(new_atk, new_pdef, new_mdef, new_str, new_dex, new_agi, new_int)
    if @new_atk != new_atk or @new_pdef != new_pdef or @new_mdef != new_mdef or @new_str != new_str or @new_dex != new_dex or @new_agi != new_agi or @new_int != new_int
      @new_atk = new_atk
      @new_pdef = new_pdef
      @new_mdef = new_mdef
      @new_str = new_str
      @new_dex = new_dex
      @new_agi = new_agi
      @new_int = new_int
      refresh
    end
  end
end

#==============================================================================
# ** Window_EquipItem
#------------------------------------------------------------------------------
#  This window displays choices when opting to change equipment on the
#  equipment screen.
#==============================================================================

class Window_EquipItem < Window_Selectable
  #--------------------------------------------------------------------------
  # * Object Initialization
  #    actor      : actor
  #    equip_type : equip region (0-3)
  #--------------------------------------------------------------------------
  def initialize(actor, equip_type)
    super(272, 256, 368, 224)
    @actor = actor
    @equip_type = equip_type
    @column_max = 1
    refresh
    self.active = false
    self.index = -1
  end
 
  def draw_item(index)
    item = @data[index]
    x = 4
    y = index * 32
    case item
    when RPG::Weapon
      number = $game_party.weapon_number(item.id)
    when RPG::Armor
      number = $game_party.armor_number(item.id)
    end
    bitmap = RPG::Cache.icon(item.icon_name)
    self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24))
    self.contents.font.color = normal_color
    self.contents.draw_text(x + 28, y, 212, 32, item.name, 0)
    self.contents.draw_text(x + 240, y, 16, 32, ":", 1)
    self.contents.draw_text(x + 256, y, 24, 32, number.to_s, 2)
  end

end

class Scene_Equip
  def refresh
    # Set item window to visible
    @item_window1.visible = (@right_window.index == 0)
    @item_window2.visible = (@right_window.index == 1)
    @item_window3.visible = (@right_window.index == 2)
    @item_window4.visible = (@right_window.index == 3)
    @item_window5.visible = (@right_window.index == 4)
    # Get currently equipped item
    item1 = @right_window.item
    # Set current item window to @item_window
    case @right_window.index
    when 0
      @item_window = @item_window1
    when 1
      @item_window = @item_window2
    when 2
      @item_window = @item_window3
    when 3
      @item_window = @item_window4
    when 4
      @item_window = @item_window5
    end
    # If right window is active
    if @right_window.active
      # Erase parameters for after equipment change
      @left_window.set_new_parameters(nil, nil, nil, nil, nil, nil, nil)
    end
    # If item window is active
    if @item_window.active
      # Get currently selected item
      item2 = @item_window.item
      # Change equipment
      last_hp = @actor.hp
      last_sp = @actor.sp
      @actor.equip(@right_window.index, item2 == nil ? 0 : item2.id)
      # Get parameters for after equipment change
      new_atk = @actor.atk
      new_pdef = @actor.pdef
      new_mdef = @actor.mdef
      new_str = @actor.str
      new_dex = @actor.dex
      new_agi = @actor.agi
      new_int = @actor.int
      # Return equipment
      @actor.equip(@right_window.index, item1 == nil ? 0 : item1.id)
      @actor.hp = last_hp
      @actor.sp = last_sp
      # Draw in left window
      @left_window.set_new_parameters(new_atk, new_pdef, new_mdef, new_str,
      new_dex, new_agi, new_int)
    end
  end
end

silvanash
Aventurero
Aventurero

0/3

Créditos 1417

Gracias : 176

Volver arriba Ir abajo

RPG Maker XP Re: Scripts de inventario con más información

Mensaje por UmbriaChronicles el 2015-01-15, 17:40

silvanash escribió:Ok, mea culpa. Se me olvidó copiar el trozo editado que dibuja los objetos en su sitio.

Script corregido otra vez:

Código:
#==============================================================================
# ** Window_EquipLeft
#------------------------------------------------------------------------------
#  This window displays actor parameter changes on the equipment screen.
#==============================================================================

class Window_EquipLeft < Window_Base
  #--------------------------------------------------------------------------
  # * Object Initialization
  #    actor : actor
  #--------------------------------------------------------------------------
  def initialize(actor)
    super(0, 64, 272, 480)
    self.contents = Bitmap.new(width - 32, height - 32)
    @actor = actor
    refresh
  end
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    draw_actor_name(@actor, 48, 32)
    draw_actor_graphic(@actor, 16, 64)
    draw_actor_parameter(@actor, 4, 64, 0)
    draw_actor_parameter(@actor, 4, 96, 1)
    draw_actor_parameter(@actor, 4, 128, 2)
    draw_actor_parameter(@actor, 4, 170, 3)
    draw_actor_parameter(@actor, 4, 202, 4)
    draw_actor_parameter(@actor, 4, 234, 5)
    draw_actor_parameter(@actor, 4, 266, 6)
    if @new_atk != nil
      self.contents.font.color = system_color
      self.contents.draw_text(160, 64, 40, 32, ">>", 1)
      if @new_atk > @actor.atk
        self.contents.font.color = text_color(4)
      elsif @new_atk < @actor.atk
        self.contents.font.color = text_color(2)
      else
        self.contents.font.color = normal_color
      end
      self.contents.draw_text(200, 64, 36, 32, @new_atk.to_s, 2)
    end
    if @new_pdef != nil
      self.contents.font.color = system_color
      self.contents.draw_text(160, 96, 40, 32, ">>", 1)
      if @new_pdef > @actor.pdef
        self.contents.font.color = text_color(4)
      elsif @new_pdef < @actor.pdef
        self.contents.font.color = text_color(2)
      else
        self.contents.font.color = normal_color
      end
      self.contents.draw_text(200, 96, 36, 32, @new_pdef.to_s, 2)
    end
    if @new_mdef != nil
      self.contents.font.color = system_color
      self.contents.draw_text(160, 128, 40, 32, ">>", 1)
      if @new_mdef > @actor.mdef
        self.contents.font.color = text_color(4)
      elsif @new_mdef < @actor.mdef
        self.contents.font.color = text_color(2)
      else
        self.contents.font.color = normal_color
      end
      self.contents.draw_text(200, 128, 36, 32, @new_mdef.to_s, 2)
    end
    if @new_str != nil
      self.contents.font.color = system_color
      self.contents.draw_text(160, 170, 40, 32, ">>", 1)
      if @new_str > @actor.str
        self.contents.font.color = text_color(4)
      elsif @new_str < @actor.str
        self.contents.font.color = text_color(2)
      else
        self.contents.font.color = normal_color
      end
      self.contents.draw_text(200, 170, 36, 32, @new_str.to_s, 2)
    end
    if @new_dex != nil
      self.contents.font.color = system_color
      self.contents.draw_text(160, 202, 40, 32, ">>", 1)
      if @new_dex > @actor.dex
        self.contents.font.color = text_color(4)
      elsif @new_dex < @actor.dex
        self.contents.font.color = text_color(2)
      else
        self.contents.font.color = normal_color
      end
      self.contents.draw_text(200, 202, 36, 32, @new_dex.to_s, 2)
    end
    if @new_agi != nil
      self.contents.font.color = system_color
      self.contents.draw_text(160, 234, 40, 32, ">>", 1)
      if @new_agi > @actor.agi
        self.contents.font.color = text_color(4)
      elsif @new_agi < @actor.agi
        self.contents.font.color = text_color(2)
      else
        self.contents.font.color = normal_color
      end
      self.contents.draw_text(200, 234, 36, 32, @new_agi.to_s, 2)
    end
    if @new_int != nil
      self.contents.font.color = system_color
      self.contents.draw_text(160, 266, 40, 32, ">>", 1)
      if @new_int > @actor.int
        self.contents.font.color = text_color(4)
      elsif @new_int < @actor.int
        self.contents.font.color = text_color(2)
      else
        self.contents.font.color = normal_color
      end
      self.contents.draw_text(200, 266, 36, 32, @new_int.to_s, 2)
    end
  end
  #--------------------------------------------------------------------------
  # * Set parameters after changing equipment
  #    new_atk  : attack power after changing equipment
  #    new_pdef : physical defense after changing equipment
  #    new_mdef : magic defense after changing equipment
  #--------------------------------------------------------------------------
  def set_new_parameters(new_atk, new_pdef, new_mdef, new_str, new_dex, new_agi, new_int)
    if @new_atk != new_atk or @new_pdef != new_pdef or @new_mdef != new_mdef or @new_str != new_str or @new_dex != new_dex or @new_agi != new_agi or @new_int != new_int
      @new_atk = new_atk
      @new_pdef = new_pdef
      @new_mdef = new_mdef
      @new_str = new_str
      @new_dex = new_dex
      @new_agi = new_agi
      @new_int = new_int
      refresh
    end
  end
end

#==============================================================================
# ** Window_EquipItem
#------------------------------------------------------------------------------
#  This window displays choices when opting to change equipment on the
#  equipment screen.
#==============================================================================

class Window_EquipItem < Window_Selectable
  #--------------------------------------------------------------------------
  # * Object Initialization
  #    actor      : actor
  #    equip_type : equip region (0-3)
  #--------------------------------------------------------------------------
  def initialize(actor, equip_type)
    super(272, 256, 368, 224)
    @actor = actor
    @equip_type = equip_type
    @column_max = 1
    refresh
    self.active = false
    self.index = -1
  end
 
  def draw_item(index)
    item = @data[index]
    x = 4
    y = index * 32
    case item
    when RPG::Weapon
      number = $game_party.weapon_number(item.id)
    when RPG::Armor
      number = $game_party.armor_number(item.id)
    end
    bitmap = RPG::Cache.icon(item.icon_name)
    self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24))
    self.contents.font.color = normal_color
    self.contents.draw_text(x + 28, y, 212, 32, item.name, 0)
    self.contents.draw_text(x + 240, y, 16, 32, ":", 1)
    self.contents.draw_text(x + 256, y, 24, 32, number.to_s, 2)
  end

end

class Scene_Equip
  def refresh
    # Set item window to visible
    @item_window1.visible = (@right_window.index == 0)
    @item_window2.visible = (@right_window.index == 1)
    @item_window3.visible = (@right_window.index == 2)
    @item_window4.visible = (@right_window.index == 3)
    @item_window5.visible = (@right_window.index == 4)
    # Get currently equipped item
    item1 = @right_window.item
    # Set current item window to @item_window
    case @right_window.index
    when 0
      @item_window = @item_window1
    when 1
      @item_window = @item_window2
    when 2
      @item_window = @item_window3
    when 3
      @item_window = @item_window4
    when 4
      @item_window = @item_window5
    end
    # If right window is active
    if @right_window.active
      # Erase parameters for after equipment change
      @left_window.set_new_parameters(nil, nil, nil, nil, nil, nil, nil)
    end
    # If item window is active
    if @item_window.active
      # Get currently selected item
      item2 = @item_window.item
      # Change equipment
      last_hp = @actor.hp
      last_sp = @actor.sp
      @actor.equip(@right_window.index, item2 == nil ? 0 : item2.id)
      # Get parameters for after equipment change
      new_atk = @actor.atk
      new_pdef = @actor.pdef
      new_mdef = @actor.mdef
      new_str = @actor.str
      new_dex = @actor.dex
      new_agi = @actor.agi
      new_int = @actor.int
      # Return equipment
      @actor.equip(@right_window.index, item1 == nil ? 0 : item1.id)
      @actor.hp = last_hp
      @actor.sp = last_sp
      # Draw in left window
      @left_window.set_new_parameters(new_atk, new_pdef, new_mdef, new_str,
      new_dex, new_agi, new_int)
    end
  end
end



¡Perfecto Silvanash! Ahora ya sí :) Gracias.

UmbriaChronicles
Novato
Novato

0/3

Créditos 76

Gracias : 2

Volver arriba Ir abajo

RPG Maker XP Re: Scripts de inventario con más información

Mensaje por Contenido patrocinado Hoy a las 12:43


Contenido patrocinado


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.