Últimos temas
» Complecsua
por MoonSoldierMx Hoy a las 12:20 am

» Readvin 1 y 2
por Muzgar Ayer a las 7:42 pm

» Busco ayuda para mi juego, no importa la edad
por Muzgar Ayer a las 3:16 pm

» [VXACE] Las Esferas de Capricornia. Actualizado 17.11.17
por Pocari Ayer a las 12:31 am

» [Vx/Ace] Pack Bioma de Miel
por YggdrasilHerald Vie Nov 17, 2017 4:00 am

» La Historia Infinita (DEMO)
por Chaskarron Miér Nov 15, 2017 12:36 am

» [MV+Completo]Al Ataque - Derrotemos a nuestros enemigos
por hikarukurenai Mar Nov 14, 2017 8:07 pm

» Dekar Chronicles
por KRiZaLiD Mar Nov 14, 2017 7:43 pm

» [Sugerencia] Buenas practicas
por Alojzy Lun Nov 13, 2017 9:56 pm

» [Ace]Script día/noche + reloj
por JAMSDream Dom Nov 12, 2017 1:52 am

» "La tribu" demo
por Chaskarron Vie Nov 10, 2017 10:57 pm

» ABS Supervivencia Zombie VXACE dudas varias
por Journam Vie Nov 10, 2017 3:28 am


Maximo de Items

Ver el tema anterior Ver el tema siguiente Ir abajo

Maximo de Items

Mensaje por YoSoyChaos69 el Vie Ene 08, 2016 7:11 pm

Hola amigos, vengo a pedirles un poco de ayuda. Quiero que en mi juego de MV el personaje solo pueda llevar digamos solo
20 items y si quiere llevar más tendra que eliminar algunos.

Necesito que me ayuden en eso, de que solo lleve 20 items y que pueda botar los innecesarios.

Gracias y hasta pronto.
avatar
YoSoyChaos69
PJ de Relleno
PJ de Relleno

Masculino
Venezuela
RPG Maker : Ace
Mensajes : 11
Monedas : 22
Reputación : 0
Localización : Una casita

Volver arriba Ir abajo

Re: Maximo de Items

Mensaje por drack_669 el Sáb Ene 09, 2016 12:56 am

Botar no se puede, no hay plugin disponible aun, pero limite de objetos si hay, el plugin de yanfly core engine te limita la cantidad de items, mas el item core, con el cual puedes personalizar los items.

Fuera de eso, posiblemente el plugin de warehouse (almacen) e inventorie character, que este ultimo crea un inventario por personaje, lo cual permite intercambiar administrar cada personaje su inventario, sin que se mezcle el de todo el grupo.
avatar
drack_669
PJ Secundario
PJ Secundario

Masculino
México
RPG Maker : MV
Mensajes : 152
Monedas : 1346
Reputación : 56
Edad : 27
Localización : En las sombras...

Volver arriba Ir abajo

Re: Maximo de Items

Mensaje por NicholayHernandez el Sáb Ene 09, 2016 6:21 am

Bueno para hacer lo que quieres creo que puedes ayudarte con una triada de script

El primero es Lune Item Weight de Raizen

Este es el escript
Spoiler:


#=======================================================
# Lune Item Weight
# Autor : Raizen
#=======================================================

module Lune_Weight
#=============================================================================#
#========================= Configuraciones Generales ==============================#
#=============================================================================#

# Para configurar el peso de un objeto, basta con ir a la base de datos, 
# en el espacio de notas y poner:
# , donde n es el valor del peso.

# Para que un objeto sea imposible de tirar basta con colocar
# en las notas:
#
#
# En caso de que no haya notas 
# el script pondra el valor por defecto:
Default = 1

# Coloque el peso para cada moneda que tenga:
Gold = 0

# Recibir objetos cuando esta sobrecargado?
# Para evitar perdidas de objetos importantes puede habilitar esta opcion que permitira
# que el personaje siga recibiendo objetos aun cuando anda sobre el limite de peso total.
# true = recibe, false = no recibe
Receive = false
# En caso de que quede como true puedes hacer que el heroe se trabe estando encima del peso
# hasta que aliviane la carga: true=si, false=no
Travar = false

# Escoja una variable que recibira el peso cargado.
Var_C = 45
# Escoja una variable que recibira el peso maximo.
Var_M = 46
# A partir de esas 2 variables puedes crear varios engines

LimiteB = 8000 # Configure solo si esta usando el script Lune_vault
#=============================================================================#
#===================== Configuraciones del limite de peso =======================#
#=============================================================================#

# Para indicar que el valor a ser cargado es solo la fuerza del actor principal
# coloque :for1
# Para indicar que el valor a ser cargado es la sumatoria de todas las fuerzas, coloque
# :all_for
# Para indicar que el valor a ser cargado es solo  el nivel del actor principal
#, coloque :lvl1
# Para indicar que el valor a ser cargado es la sumatoria de todos los niveles, coloque
# :all_lvl
# Para indicar que es una variable coloque :var
# Para indicar que es un número fijo coloque :fix

# Ejemplo: Carry_Limit = lvl1 
Carry_Limit = :var

# EN caso de que lo haga de acuerdo a la fuerza o nivel encima, indique 
# aqui la formula a ser usada en relación a esto
# donde "at" significa el atributo (nivel o fuerza) que será colocado
# en la formula, por ejemplo.
# Si quiero que el peso sea 2 veces el valor de la fuerza de un personaje colocaria:
# def self.weight_formula(at)
#  at * 2
# end

# Si es una variable coloque la id de la variable o numero fijo

# Ejemplo:

# def self.weight_formula(at)
#  20
# end

# En el caso de arriba, representa que sera la variable 20 y 
# el limite del peso sera 20, dependiendo de que fue escogido en 
# Carry_Limit


def self.weight_formula(at)
  41
 end

#===================== Configuraciones del Vocabulario ==========================#
# Siempre escribe entre comillas las configuraciones.
# Unidad de peso
PS = ' Unit'

# Vocabulario en el menú principal y la tienda:
Peso = 'Peso: '
Carregando = 'Cargando: '
Bau = 'Baul: ' # Deja en blanco.

# Vocabulario de la ventana de Objetos.
Usar = 'Usar'
Descartar = 'Descartar'

#=============================================================================#
#========================== Aqui começa o script =============================#
#=============================================================================#

  #--------------------------------------------------------------------------
  # * Calculo do limite de peso
  #--------------------------------------------------------------------------
  def self.weight_limit
    return unless $game_party.members[0]
    case Carry_Limit
    when :for1
      weight = weight_formula($game_party.members[0].param(2))
    when :all_for
      weight = 0
      for members in 0...$game_party.members.size - 1
        weight += weight_formula($game_party.members[members].param(2))
      end
    when :lvl1
      weight = weight_formula($game_party.members[0].level)
    when :all_lvl
      weight = 0
      for members in 0...$game_party.members.size - 1
        weight += weight_formula($game_party.members[members].level)
      end
    when :fix
      weight = weight_formula(0)
    when :var
      weight = $game_variables[weight_formula(0)]
    end
    $game_variables[Var_M] = weight
    weight
  end
end



#==============================================================================
# ** Game_Party
#------------------------------------------------------------------------------
#  Esta classe gerencia o grupo. Contém informações sobre dinheiro, itens.
# A instância desta classe é referenciada por $game_party.
#==============================================================================

class Game_Party < Game_Unit
alias :lune_weight_gain :gain_item
  #--------------------------------------------------------------------------
  # * Quantidade de itens carregados mais os itens equipados
  #--------------------------------------------------------------------------
  def carried_items
    @all_carried_items = 0
    all_items.each {|item| get_weight(item)}
    for i in 0...4
      members.each {|actor| @all_carried_items += calc_weight(actor.equips[i], 1)}
    end
    @all_carried_items += Lune_Weight::Gold * gold/100
    $game_variables[Lune_Weight::Var_C] = @all_carried_items
    @all_carried_items
  end
  #--------------------------------------------------------------------------
  # * Calculo do peso de um item no inventário
  #--------------------------------------------------------------------------
  def get_weight(item)
    if item.note =~ //i
      @all_carried_items += $1.to_i * item_number(item)
    else
      @all_carried_items += Lune_Weight::Default * item_number(item)
    end
  end
  #--------------------------------------------------------------------------
  # * Calculo do peso de um item relativo a quantidade
  #--------------------------------------------------------------------------
  def calc_weight(item, amount)
    return 0 unless item
    if item.note =~ //i
      carried_itens = $1.to_i * amount
    else
      carried_itens = Lune_Weight::Default * amount
    end
    carried_itens
  end
  #--------------------------------------------------------------------------
  # * Acrescentar item (redução)
  #    item          : item
  #    amount        : quantia alterada
  #    include_equip : incluir itens equipados
  #--------------------------------------------------------------------------
  def gain_item(item, amount, include_equip = false)
    if Lune_Weight::Receive
      lune_weight_gain(item, amount, include_equip = false)
      return
    end
    return if item == nil
    weight = calc_weight(item, amount) + carried_items
    while weight > Lune_Weight.weight_limit
      amount -= 1
      weight = calc_weight(item, amount) + carried_items
      return if amount == 0
    end
    lune_weight_gain(item, amount, include_equip = false)
  end
end

#==============================================================================
# ** Scene_Shop
#------------------------------------------------------------------------------
#  Esta classe executa o processamento da tela de loja.
#==============================================================================

class Scene_Shop < Scene_MenuBase
alias :lune_max_buy :max_buy
  #--------------------------------------------------------------------------
  # * Aquisição do número máximo disponível para compra
  #--------------------------------------------------------------------------
  def max_buy
    max = lune_max_buy
    weight = $game_party.calc_weight(@item, max) + $game_party.carried_items
    while weight > Lune_Weight.weight_limit && max > 0
      max -= 1
      weight = $game_party.calc_weight(@item, max) + $game_party.carried_items
    end
    max
  end
  #--------------------------------------------------------------------------
  # * Criação da janela de ajuda.
  #--------------------------------------------------------------------------
  def create_help_window
    @help_window = Window_Weight_Help.new
    @help_window.viewport = @viewport
    @get_item_num = $game_party.carried_items
  end
  #--------------------------------------------------------------------------
  # * Atualização da janela de peso
  #--------------------------------------------------------------------------
  def update
    super
    if @get_item_num != $game_party.carried_items
      @help_window.refresh 
      @get_item_num = $game_party.carried_items
      #
      #
       
      #
      #
      #
      #
    end
  end
end

#==============================================================================
# ** Window_ShopBuy
#------------------------------------------------------------------------------
#  Esta janela exibe bens compráveis na tela de loja.
#==============================================================================

class Window_ShopBuy < Window_Selectable
alias :lune_enable_item :enable?
  #--------------------------------------------------------------------------
  # * Definição de habilitação do item
  #    item : item
  #--------------------------------------------------------------------------
  def enable?(item)
    return false if $game_party.calc_weight(item, 1) + $game_party.carried_items > Lune_Weight.weight_limit
    lune_enable_item(item)
  end
end


#==============================================================================
# ** Window_Help
#------------------------------------------------------------------------------
#  Esta janela exibe explicação de habilidades e itens e outras informações.
#==============================================================================

class Window_Weight_Help < Window_Base
include Lune_Weight
  #--------------------------------------------------------------------------
  # * Inicialização do objeto
  #    line_number : número de linhas
  #--------------------------------------------------------------------------
  def initialize(line_number = 2, bau = false)
    @bau = bau
    super(0, 0, Graphics.width, fitting_height(line_number))
  end
  #--------------------------------------------------------------------------
  # * Configuração de texto
  #    text : texto
  #--------------------------------------------------------------------------
  def set_text(text)
    if text != @text
      @text = text
      refresh
    end
  end
  def on_bau(bau = false)
    @bau = bau
  end
  #--------------------------------------------------------------------------
  # * Limpeza
  #--------------------------------------------------------------------------
  def clear
    set_text("")
  end
  #--------------------------------------------------------------------------
  # * Definição de item
  #    item : habilidades, itens, etc.
  #--------------------------------------------------------------------------
  def set_item(item)
    @item = item
    set_text(item ? item.description : "")
  end
  #--------------------------------------------------------------------------
  # * Renovação
  #--------------------------------------------------------------------------
  def refresh
    contents.clear
    draw_text_ex(4, 0, @text)
    if @item
      text = Peso + $game_party.calc_weight(@item,1).to_s + PS
      draw_text(4, line_height, 200, line_height, text, 0)
      if @bau == true
        LimiteB == "" ? text_lim = "????" : text_lim = LimiteB
        text = Bau + $game_party.items_on_vault.to_s + "/" + text_lim.to_s + PS
      else
        text = Carregando + $game_party.carried_items.to_s + "/" + Lune_Weight.weight_limit.to_s + PS
      end
      draw_text(- 20, line_height, Graphics.width, line_height, text, 2) 
    end
  end
end


#==============================================================================
# ** Game_Player
#------------------------------------------------------------------------------
#  Esta classe gerencia o jogador. 
# A instância desta classe é referenciada por $game_player.
#==============================================================================

class Game_Player < Game_Character
alias :lune_move_by :move_by_input
  #--------------------------------------------------------------------------
  # * Processamento de movimento através de pressionar tecla
  #--------------------------------------------------------------------------
  def move_by_input
    return if Lune_Weight::Travar && $game_party.carried_items > Lune_Weight.weight_limit
    lune_move_by
  end
end


#==============================================================================
# ** Scene_Item
#------------------------------------------------------------------------------
#  Esta classe executa o processamento da tela de item.
#==============================================================================
class Scene_Item < Scene_ItemBase
alias raizen_combine_start start
  def start
    raizen_combine_start
    @combine_item = Window_Item_Combine.new
    @combine_item.viewport = @viewport
    @combine_item.set_handler(:new_game, method(:command_use))
    @combine_item.set_handler(:continue, method(:command_combine))
  end
  def on_item_ok
    if item == nil
      @item_window.activate
      return 
    end
    if @combine_item.close?
      @combine_item.open
      @combine_item.activate
    else
      determine_item    
    end
  end

  def update
    super
    if @number_window and @number_window.nitens == true
        @number_window.nitens = false
        @combine_item.close
        @item_window.refresh
        @help_window.refresh
        @item_window.activate
    end
    if Input.trigger?(:B) and !@combine_item.close?
      Sound.play_cancel
      if @number_window and !@number_window.close?
        @number_window.close
        @combine_item.activate
      else
        @combine_item.close
        @item_window.activate
      end
    end
  end
  def command_use
    determine_item
  end

  def command_combine
    if @number_window and !@number_window.close?
      @combine_item.activate
      return
    end
    @number_window = Window_NumberInputInner.new(Window_Base.new(0,0,0,0), item, @item_window.index)
    @number_window.viewport = @viewport
    @number_window.start
  end
  def create_help_window
    @help_window = Window_Weight_Help.new
    @help_window.viewport = @viewport
  end
end

#==============================================================================
# ** Window_MenuStatus
#------------------------------------------------------------------------------
#  Esta janela exibe os parâmetros dos membros do grupo na tela de menu.
#==============================================================================

class Window_Item_Combine < Window_Command
include Lune_Weight
  #--------------------------------------------------------------------------
  # * Inicialização do objeto
  #--------------------------------------------------------------------------
  def initialize
    super(0, 0)
    self.z = 9999
    self.x = (Graphics.width / 2) - (window_width / 2)
    self.y = Graphics.height / 2
    self.openness = 0
  end
  #--------------------------------------------------------------------------
  # * Aquisição da largura da janela
  #--------------------------------------------------------------------------
  def window_width
    return 160
  end
  #--------------------------------------------------------------------------
  # * Criação da lista de comandos
  #--------------------------------------------------------------------------
  def make_command_list
    add_main_commands

  end
  #--------------------------------------------------------------------------
  # * Adição dos comandos principais
  #--------------------------------------------------------------------------
  def add_main_commands
    add_command(Usar,  :new_game,  true)
    add_command(Descartar,  :continue,  true)
  end
end




#==============================================================================
# ** Scene_ItemBase
#------------------------------------------------------------------------------
#  Esta é a superclasse das classes que executam as telas de itens e 
# habilidades.
#==============================================================================

class Scene_ItemBase < Scene_MenuBase
  def determine_item
    @combine_item.close
    if item.is_a?(RPG::Item) and item.for_friend?
      show_sub_window(@actor_window)
      @actor_window.select_for_item(item)
    else
      item.is_a?(RPG::Item) ? use_item : Sound.play_buzzer 
      activate_item_window
    end
  end
end

#==============================================================================
# ** Window_NumberInputInner
#------------------------------------------------------------------------------
#  Esta janela é utilizada para o comando de eventos [Armazenar Número]
#==============================================================================

class Window_NumberInputInner < Window_NumberInput
attr_accessor :nitens
def initialize(message_window, item, index_2)
  @index_2 = index_2
  @item = item
  @get_lost_itens = 0
  super(message_window)
end
  #--------------------------------------------------------------------------
  # * Inicialização do processo
  #--------------------------------------------------------------------------
  def start
    @digits_max = 2
    @number = @get_lost_itens
    @number = [[@number, 0].max, 10 ** @digits_max - 1].min
    @index = 0
    update_placement
    create_contents
    refresh
    open
    activate
  end
  #--------------------------------------------------------------------------
  # * Atualização da posição da janela
  #--------------------------------------------------------------------------
  def update_placement
    self.width = @digits_max * 20 + padding * 2
    self.height = fitting_height(1)
    self.x = (Graphics.width - width) / 2
    self.y = Graphics.height/2 - height
    self.z = 150
  end

  #--------------------------------------------------------------------------
  # * Definição de resultado ao pressionar o botão de confirmação
  #--------------------------------------------------------------------------
  def process_ok
    number = $game_party.item_number(@item)
    if @number <= number
      make_icon 
    else
      Sound.play_cancel
    end
    deactivate
    @nitens = true
    close
  end
  def make_icon
    @nitens = true
    if @item.note =~ //
      Sound.play_cancel
    else
      Sound.play_ok
      $game_party.lose_item(@item, @number)
    end
  end
end

#==============================================================================
# ** Window_ItemList
#------------------------------------------------------------------------------
#  Esta janela exibe a lista de itens possuidos na tela de itens.
#==============================================================================

class Window_ItemList < Window_Selectable
  #--------------------------------------------------------------------------
  # * Definição de habilitação do item
  #    item : item
  #--------------------------------------------------------------------------
  def enable?(item)
    true
  end
end

$lune_weight_script = true  


Te explico. Buscas dentro del Script En Var_C = Pones el numero de la variable del juego que se le va a asignar el PESO que llevas cargando y en Var_M = Pones el numero de la variable del juego que se le va a asignar el peso máximo que debes cargar (Tu quieres 20 cierto) 

Debes crear un evento paralelo en el primer mapa del juego (Al iniciar juego), para asignar en Var_M el peso máximo(20) cada item tendrá un peso de 1, y si tienes 20 items ya no recibirás mas items en tu inventario... Pero el script tiene un inconveniente con ayuda de Var_C y  Var_M al crear un evento de ganar item debes poner algún condicional porque si no lo haces el item se perderá. Te explico..

Creas un evento, comienzas con un condicional..

Si Var_C > Var_M entonces

Mostrar mensaje: "No tienes mas espacio"

De lo contrario (else)

Objeto [x] +1

end

Cada vez que cojas algún item la Var_C se actualizara y te mostrara el numero de items que tienes en tu inventario. 

Dentro de la base de datos del juego, puedes irte a los objetos, hay una parte que se llama "comentario" conocido en ingles como TAG alli puedes poner:



ese "n" es el peso que tendrá el item en tu inventario, (Si quieres que un objeto tenga mas de 1 en peso)

El Segundo Script es  Item Stack Size de Hime

El Script es:
Spoiler:


=begin
#===============================================================================
 Title: Item Stack Size
 Author: Hime
 Date: May 4, 2014
--------------------------------------------------------------------------------
 ** Change log
 May 4, 2014
   - refactored max item number
 Nov 1, 2013
   - compatibility with Core: Inventory
 Nov 25, 2012
   - initial release
--------------------------------------------------------------------------------   
 ** Terms of Use
 * Free to use in non-commercial projects
 * Contact me for commercial use
 * No real support. The script is provided as-is
 * Will do bug fixes, but no compatibility patches
 * Features may be requested but no guarantees, especially if it is non-trivial
 * Preserve this header
--------------------------------------------------------------------------------
  ** Description
  
 This script allows you to set the "stack" size for an item. By default,
 you can only have 99 instances of an item per stack. You can now set the
 stack size higher or lower than 99. For example, maybe you can only carry
 10 potions at a time.

--------------------------------------------------------------------------------
  ** Installation
  
  In the script editor, place this script below Materials and above Main
 
--------------------------------------------------------------------------------
  ** Usage
  
 Tag items, weapons, armors with

   
   
 Where n is some integer
--------------------------------------------------------------------------------
  ** Compatibility
  
  This script replaces one method
    Game_Party#max_item_number
#===============================================================================
=end
$imported = {} if $imported.nil?
$imported["Tsuki_StackSize"] = true
#==============================================================================
# ** Configuration
#==============================================================================
module Tsuki
  module Stack_Size
    
    # Default stack sizes for each type of item
    Item_Stack_Size   = 99
    Weapon_Stack_Size = 99
    Armor_Stack_Size  = 99
    
    Regex = /  end
end
#==============================================================================
# ** Rest of the script
#==============================================================================

module RPG
  
  # Stack size for items
  class Item < UsableItem
    def stack_size
      return @stack_limit unless @stack_limit.nil?
      res = self.note.match(Tsuki::Stack_Size::Regex)
      return @stack_limit = res ? res[1].to_i : Tsuki::Stack_Size::Item_Stack_Size
    end
  end
  
  # Stack size for equips
  class EquipItem < BaseItem
    def stack_size
      return @stack_limit unless @stack_limit.nil?
      res = self.note.match(Tsuki::Stack_Size::Regex)
      return @stack_limit = res ? res[1].to_i : default_stack_size
    end
  end
  
  class Weapon < EquipItem
    
    # Weapon default stack size
    def default_stack_size
      Tsuki::Stack_Size::Weapon_Stack_Size
    end
  end
  
  class Armor < EquipItem
    
    # Armor default stack size
    def default_stack_size
      Tsuki::Stack_Size::Armor_Stack_Size
    end
  end
end

class Game_Actor < Game_Battler
  
  # Can't remove if stack size exceeded
  alias :th_stack_size_trade_with_party :trade_item_with_party
  def trade_item_with_party(new_item, old_item)
    return false if old_item && $game_party.item_number(old_item) >= old_item.stack_size
    return th_stack_size_trade_with_party(new_item, old_item)
  end
end

class Game_Party < Game_Unit
  
  # Replaced. Change the stack limit based on the item's individual limits.
  def max_item_number(item)
    return item_stack_size(item)
  end
  
  def item_stack_size(item)
    item.stack_size
  end
end

#===============================================================================
# Compatibility with Core Inventory
#===============================================================================
if $imported["TH_CoreInventory"]
  class Game_Inventory
    def max_item_number(item)
      return item.stack_size
    end
  end
end


Este sirve para tener un limite de items en tu mochila, recuerdas los TAGS? pues allí pones esto en el item q tu quieras:



ese n te indica la cantidad de items q puedes tener en tu inventario, si pones 
 como comentario en el item "Balas de pistolas"(Por ejemplo)Solo podrás tener 20 balas (Espero que halla quedado claro)

El tercer Script es un complemento del segundo! sirve para cambiar los limites de los items por script calls, (Imaginate zelda, las bolsas de bombas, comienzas con un tope de 10 bombas y al conseguir una bolsa de bombas mas grandes te incrementa la cantidad que puedes tener)

este es el Script:

Spoiler:


=begin
#===============================================================================
 Title: Dynamic Stack Sizes
 Author: Hime
 Date: Feb 4, 2014
--------------------------------------------------------------------------------
 ** Change log
  May 4, 2014
   - Fixed bug where increasing stack size failed
 Feb 16, 2014
   - fixed saving issue
 Nov 1, 2013
   - initial release
--------------------------------------------------------------------------------   
 ** Terms of Use
 * Free to use in non-commercial projects
 * Contact me for commercial use
 * No real support. The script is provided as-is
 * Will do bug fixes, but no compatibility patches
 * Features may be requested but no guarantees, especially if it is non-trivial
 * Preserve this header
--------------------------------------------------------------------------------
 ** Description
  
 This script allows you to adjust an item's stack size during the game.
 If you decrease the party's stack size below the current number of items for
 that stack, the items are not deleted. Instead, you won't be able to obtain
 more.
 
 For example, maybe initially you can't carry any hi-potions, which means
 you can't buy any either. Then at some point, you can carry hi-potions.
 
--------------------------------------------------------------------------------
 ** Required
  
 Item Stack Size
 (http://himeworks.com/2013/10/27/item-stack-sizes/)

--------------------------------------------------------------------------------
 ** Installation
  
 In the script editor, place this script below Item Stack Size and above Main
 
--------------------------------------------------------------------------------
 ** Usage
  
 Make the following script calls to change an item's stack size:
 
   increase_item_stack(item_id, count)
   increase_weapon_stack(weapon_id, count)
   increase_armor_stack(armor_id, count)
   
   decrease_item_stack(item_id, count)
   decrease_weapon_stack(weapon_id, count)
   decrease_armor_stack(armor_id, count)
   
 Where you pass in the appropriate database ID and the amount you want to
 increase or decrease it by.

#===============================================================================
=end
$imported = {} if $imported.nil?
$imported["TH_DynamicStackSize"] = true
#==============================================================================
# ** Configuration
#==============================================================================
module TH
  module Dynamic_Stack_Size

    def initialize_item_stacks
      @item_stacks = {}
      @weapon_stacks = {}
      @armor_stacks = {}
    end
    
    def increase_stack_size(item, count)
      container = get_stack_container(item)
      container[item.id] ||= item.stack_size
      container[item.id] = container[item.id] + count
    end
    
    def decrease_stack_size(item, count)
      container = get_stack_container(item)
      container[item.id] ||= item.stack_size
      container[item.id] = [container[item.id] - count, 0].max
    end
    
    def get_stack_container(item)
      return @item_stacks if item.is_a?(RPG::Item)
      return @weapon_stacks if item.is_a?(RPG::Weapon)
      return @armor_stacks if item.is_a?(RPG::Armor)
      return nil
    end
  end
end
#==============================================================================
# ** Rest of the script
#==============================================================================

class Game_Interpreter
  
  def get_party(party_id)
    return $game_party
  end
  
  def increase_item_stack(id, count, party_id=0)
    get_party(party_id).increase_stack_size($data_items[id], count)
  end
  
  def increase_weapon_stack(id, count, party_id=0)
    get_party(party_id).increase_stack_size($data_weapons[id], count)
  end
  
  def increase_armor_stack(id, count, party_id=0)
    get_party(party_id).increase_stack_size($data_armors[id], count)
  end
   
  def decrease_item_stack(id, count, party_id=0)
    get_party(party_id).decrease_stack_size($data_items[id], count)
  end
   
  def decrease_weapon_stack(id, count, party_id=0)
    get_party(party_id).decrease_stack_size($data_weapons[id], count)
  end
   
  def decrease_armor_stack(id, count, party_id=0)
    get_party(party_id).decrease_stack_size($data_armors[id], count)
  end
end

class Game_Party < Game_Unit
  include TH::Dynamic_Stack_Size
  
  alias :th_dynamic_stack_size_initialize :initialize
  def initialize
    initialize_item_stacks
    th_dynamic_stack_size_initialize
  end
  
  #-----------------------------------------------------------------------------
  # Replaced.
  #-----------------------------------------------------------------------------
  def item_stack_size(item)
    return get_stack_container(item)[item.id] ||= item.stack_size
  end
end

if $imported["TH_CoreInventory"]
  class Game_Inventory
    include TH::Dynamic_Stack_Size
    
    alias :th_dynamic_stack_size_initialize :initialize
    def initialize
      initialize_item_stacks
      th_dynamic_stack_size_initialize
    end
    
    def item_stack_size(item)
      return get_stack_container(item)[item.id]
    end
  end
  
  class Game_Party
    def increase_stack_size(item, count)
      @inventory.increase_stack_size(item, count)
    end
    
    def decrease_stack_size(item, count)
      @inventory.decrease_stack_size(item, count)
    end
  end
end

Recuerda debes ayudarte con eventos para que no tengas problemas!

Espero que te haya servido amigo!

NicholayHernandez
PJ de Quest
PJ de Quest

Colombia
RPG Maker : Ace
Mensajes : 51
Monedas : 117
Reputación : 7

Volver arriba Ir abajo

Re: Maximo de Items

Mensaje por drack_669 el Sáb Ene 09, 2016 7:11 am

Chaos... no intentes lo que te puso Nicholay... lo mas seguro es que ni leyo bien, esos son scripts que el usa en su proyecto de RPG Maker VX Ace, no sirven los scripts en el MV, por si lo intentas poner y solo te tira errores al no reconocer la sintaxis de lenguaje usado.

Por el momento no hay ningun plugin que te permita tirar objetos al limitar la cantidad de items disponibles, lo maximo que puedes hacer es usar el Warehouse (almacen) plugin, para administrar dichas acciones de items, guardar el exceso o una cantidad adecuada.

Si te quieres aventurar, puedes hacer un sistema pero en base a engines y no sera una tarea facil porque requeriras administrar cada item en una variable independiente y ejercer un nuevo menu a través de comandos.
avatar
drack_669
PJ Secundario
PJ Secundario

Masculino
México
RPG Maker : MV
Mensajes : 152
Monedas : 1346
Reputación : 56
Edad : 27
Localización : En las sombras...

Volver arriba Ir abajo

Re: Maximo de Items

Mensaje por Contenido patrocinado


Contenido patrocinado


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.