¡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 Ordenar el inventario en el juego. el Sáb Nov 19, 2016 2:01 am

Ledai

avatar
¡¡¡Hola a todos!!!
Pues como hace mucho que no pregunto nada, voy a hacer una pregunta que no se si tendrá respuesta o no.
No sé si os habrá pasado que por ahorrar en espacios en la Base de datos, en especial en la sección de objetos, dejáis hueco para algunos objetos del mismo tipo, pero con el tiempo, esos objetos aumentan su catálogo y terminas teniendo que continuar poniéndolos debajo de otros que han sido creados posteriormente, lo que genera un desorden tipológico en el propio menú de Juego pues se quedan colocados por orden de ID de objeto en la lista de objetos de la BD

Y yo me pregunto si hay algún modo de colocar el orden de los objetos en el menú sin tener que editar la BD pues tendría que desmontarse medio juego a expensas de que con el tiempo pase lo mismo de nuevo.

Resumen: ¿Se puede colocar el orden de aparición de los item en el inventario sin cargarte la Base de datos?
En fin, esa es mi duda existencial de hoy XDD
Nos leemos!!!




Entérate de todas las novedades

#2 Re: Ordenar el inventario en el juego. el Sáb Nov 19, 2016 3:51 am

Faye Valentine

avatar
Hola Leda,
He estado buscando por la red utilidades que cumplan ese propósito y de hecho sí que encontré uno. El "pequeño" problema es que es un script, y es para el RMVX Ace =( Hace exactamente lo que quieres y no se limita a ítems, sino que también incluye... bueno, básicamente todo del juego. 
Este es el script del que hablo:





Encontré otras dos herramientas similares pero no hacen lo que tú buscas, solo es para organizar el proyecto en líneas generales, otro para organizar las notas, y otro para organizar proyectos, o sea proyectos como tal, en lista y eso.
Si te interesa alguno de los que mencioné hazme saber y con gusto te los paso. Seguiré buscando a ver si doy con algo de todas maneras, pero lo dudo, ya el RMXP tiene demasiado tiempo rondando lo que dificulta las búsquedas x__x
¡Saludos!

#3 Re: Ordenar el inventario en el juego. el Sáb Nov 19, 2016 3:47 pm

Sagirettos

avatar
Saludos @Ledai Opalo Hola

Por lo que entiendo de tu pedido, quizás este script te sirva:

Script:

Es para XP y sirve para ordenar los items por tipos. Me hubiera gustado probarlo antes de recomendarlo, pero mi pc tuvo problemas y tuve que purificarla con fuego... de modo que todos mis archivos se perdieron (incluido mi proyecto) y ahora ni siquiera tengo el Rpg Maker instalado...

De cualquier modo, espero que te sirva.

Opalo Hola

#4 Re: Ordenar el inventario en el juego. el Dom Nov 20, 2016 11:20 am

Ledai

avatar
¡Parece ser que ya tenemos un recién horneado Script para poder ordenar los items a mano gracias a un usuario de MM!
Post MM:
http://www.mundo-maker.com/t13336-xp-organizar-items-como-el-creador-quiera#100050
@Wecoc escribió:A raíz de un post que leí en Universo Maker, he decidido hacer éste script.

El script permite solucionar éste problema típico:

@Ledai escribió:No sé si os habrá pasado que por ahorrar en espacios en la Base de datos, en especial en la sección de objetos, dejáis hueco para algunos objetos del mismo tipo, pero con el tiempo, esos objetos aumentan su catálogo y terminas teniendo que continuar poniéndolos debajo de otros que han sido creados posteriormente, lo que genera un desorden tipológico en el propio menú de Juego pues se quedan colocados por orden de ID de objeto en la lista de objetos de la BD

Aunque no los "catalogues" en sí, es típico ir añadiendo items a lo largo del proceso del juego y que luego no te convenza el órden en el que aparecen en el juego. Intentar reordenarlos en la Base de Datos es inviable porque tendrías que cambiar cada evento donde se usen y quizá incluso scripts. Por eso hice éste script que lo único que cambia es el órden en el que se muestran en las ventanas.

Las instrucciones vienen en el script, ya veréis, es fácil de usar.

Código:
#==============================================================================
# ** [XP] Custom Item Sorting
#------------------------------------------------------------------------------
#  Autor: Wecoc - No requiere créditos
#------------------------------------------------------------------------------
#  Éste script sirve para ordenar los items con el órden que se quiera
#  en vez de por ID como es habitual. Eso sí, siguen ordenándose así:
#     Items - Weapons - Armors
#  Solo se ordenan las ID dentro de cada tipo por separado.
#
#  Para hacerlo buscad al principio del script las constantes:
#     SORTED_ITEMS, SORTED_WEAPONS, SORTED_ARMORS
#  y ahí definís el órden que queráis. Las que no se incluyan se añadirán al
#  final por órden de ID.
#------------------------------------------------------------------------------
# * Para testearlo usad en una llamada de script lo siguiente:
#     $game_party.add_everything
#
#  Ésto añade al grupo un item/weapon/armor de cada
#------------------------------------------------------------------------------
#  ATENCIÓN! No es compatible con el sistema IGOS
#
#  El script ordena los items en:
#     Scene_Item, Scene_Battle (Items), Scene_Equip, Scene_Shop
#  Si usáis otros sistemas que muestren los items se tendrán que adaptar
#
#  Métodos modificados:
#     Window_Item       :refresh
#     Window_EquipItem  :refresh
#     Window_ShopBuy    :refresh
#     Window_ShopSell   :refresh
#==============================================================================

module Custom_Sort
  
  # Ordenar objetos
  SORTED_ITEMS = [1, 3, 2, 5, 7, 9, 11, 16, 15, 13, 19]
  
  # Ordenar armas
  SORTED_WEAPONS = [1, 4, 3, 2]
  
  # Ordenar protectores
  SORTED_ARMORS = [4, 5, 6, 1, 3, 2]
  
end

#==============================================================================

class Array
  def sort_ids(array)
    return self if self.size == 0 or array.size == 0
    name = self[0].class.name
    r = self.map { |item| item.id }
    result = []
    for i in 0...array.size
      result[i] = nil
    end
    for i in 0...r.size
      id = r[i] ; result[array.index(id)] = id if array.include?(id)
    end
    result.compact!
    for i in 0...r.size
      id = r[i] ; result.push(id) if !result.include?(id)
    end
    case name
    when "RPG::Item"
      result.map! { |id| $data_items[id] }
    when "RPG::Weapon"
      result.map! { |id| $data_weapons[id] }
    when "RPG::Armor"
      result.map! { |id| $data_armors[id] }
    end
    return result
  end

  def sort_ids!(array)
    self.replace(self.sort_ids(array))
  end
end

#==============================================================================

class Game_Party
  def add_everything(n=1)
    for i in 1...$data_items.size
      gain_item(i, n)   if $data_items[i].name != ""
    end
    for i in 1...$data_weapons.size
      gain_weapon(i, n) if $data_weapons[i].name != ""
    end
    for i in 1...$data_armors.size
      gain_armor(i, n)  if $data_armors[i].name != ""
    end
  end
end

#==============================================================================
# ** Window_Item
#==============================================================================

class Window_Item < Window_Selectable
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  def refresh
    if self.contents != nil
      self.contents.dispose
      self.contents = nil
    end
    @data = []
    data_items   = []
    data_weapons = []
    data_armors  = []
    # Add item
    for i in 1...$data_items.size
      if $game_party.item_number(i) > 0
        data_items.push($data_items[i])
      end
    end
    data_items.sort_ids!(Custom_Sort::SORTED_ITEMS)
    # 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_weapons.push($data_weapons[i])
        end
      end
      for i in 1...$data_armors.size
        if $game_party.armor_number(i) > 0
          data_armors.push($data_armors[i])
        end
      end
      data_weapons.sort_ids!(Custom_Sort::SORTED_WEAPONS)
      data_armors.sort_ids!(Custom_Sort::SORTED_ARMORS)
    end
    @data.concat(data_items)
    @data.concat(data_weapons)
    @data.concat(data_armors)
    # 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
end

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

class Window_EquipItem < Window_Selectable
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  def refresh
    if self.contents != nil
      self.contents.dispose
      self.contents = nil
    end
    @data = []
    data_weapons = []
    data_armors  = []
    # Add equippable weapons
    if @equip_type == 0
      weapon_set = $data_classes[@actor.class_id].weapon_set
      for i in 1...$data_weapons.size
        if $game_party.weapon_number(i) > 0 and weapon_set.include?(i)
          data_weapons.push($data_weapons[i])
        end
      end
    end
    # Add equippable armor
    if @equip_type != 0
      armor_set = $data_classes[@actor.class_id].armor_set
      for i in 1...$data_armors.size
        if $game_party.armor_number(i) > 0 and armor_set.include?(i)
          if $data_armors[i].kind == @equip_type-1
            data_armors.push($data_armors[i])
          end
        end
      end
    end
    data_weapons.sort_ids!(Custom_Sort::SORTED_WEAPONS)
    data_armors.sort_ids!(Custom_Sort::SORTED_ARMORS)
    @data.concat(data_weapons)
    @data.concat(data_armors)
    # Add blank page
    @data.push(nil)
    # Make a bit map and draw all items
    @item_max = @data.size
    self.contents = Bitmap.new(width - 32, row_max * 32)
    for i in 0...@item_max-1
      draw_item(i)
    end
  end
  #--------------------------------------------------------------------------
  # * Draw Item
  #     index : item number
  #--------------------------------------------------------------------------
  def draw_item(index)
    item = @data[index]
    x = 4 + index % 2 * (288 + 32)
    y = index / 2 * 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
  #--------------------------------------------------------------------------
  # * Help Text Update
  #--------------------------------------------------------------------------
  def update_help
    @help_window.set_text(self.item == nil ? "" : self.item.description)
  end
end

#==============================================================================
# ** Window_ShopBuy
#==============================================================================

class Window_ShopBuy < Window_Selectable
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  def refresh
    if self.contents != nil
      self.contents.dispose
      self.contents = nil
    end
    @data = []
    data_items   = []
    data_weapons = []
    data_armors  = []
    for goods_item in @shop_goods
      case goods_item[0]
      when 0 # Item
        item = $data_items[goods_item[1]]
        data_items.push(item) if item != nil
      when 1 # Weapon
        item = $data_weapons[goods_item[1]]
        data_weapons.push(item) if item != nil
      when 2 # Armor
        item = $data_armors[goods_item[1]]
        data_armors.push(item) if item != nil
      end
    end
    data_items.sort_ids!(Custom_Sort::SORTED_ITEMS)
    data_weapons.sort_ids!(Custom_Sort::SORTED_WEAPONS)
    data_armors.sort_ids!(Custom_Sort::SORTED_ARMORS)
    @data.concat(data_items)
    @data.concat(data_weapons)
    @data.concat(data_armors)
    # 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
end

#==============================================================================
# ** Window_ShopSell
#==============================================================================

class Window_ShopSell < Window_Selectable
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  def refresh
    if self.contents != nil
      self.contents.dispose
      self.contents = nil
    end
    @data = []
    data_items   = []
    data_weapons = []
    data_armors  = []
    for i in 1...$data_items.size
      if $game_party.item_number(i) > 0
        data_items.push($data_items[i])
      end
    end
    for i in 1...$data_weapons.size
      if $game_party.weapon_number(i) > 0
        data_weapons.push($data_weapons[i])
      end
    end
    for i in 1...$data_armors.size
      if $game_party.armor_number(i) > 0
        data_armors.push($data_armors[i])
      end
    end
    data_items.sort_ids!(Custom_Sort::SORTED_ITEMS)
    data_weapons.sort_ids!(Custom_Sort::SORTED_WEAPONS)
    data_armors.sort_ids!(Custom_Sort::SORTED_ARMORS)
    @data.concat(data_items)
    @data.concat(data_weapons)
    @data.concat(data_armors)
    # If item count is not 0, make a bitmap 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
end

ATENCIÓN! No lo confundáis con éste: Organizar items como el jugador quiera
En ese el órden lo escoje el jugador a su gusto, mientras que en éste lo define el creador del proyecto.




Entérate de todas las novedades

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.