Últimos temas
» [VXACE] LAS ESFERAS DE CAPRICORNIA - JUEGO COMPLETO -
por Pocari Ayer a las 5:53 pm

» Ayuda para hacer algo con combate real
por baltasore Ayer a las 8:38 am

» Problema con variables
por Muzgar Sáb Feb 24, 2018 1:39 pm

» The Conquester
por Simone044 Sáb Feb 24, 2018 11:47 am

» [Tutorial] Errores comunes - Te has equivocado de barrio
por Simone044 Vie Feb 23, 2018 1:24 pm

» The Legend of Celestia: Treasure Hunter
por Simone044 Vie Feb 23, 2018 12:53 pm

» Buscando equipo de trabajo
por Simone044 Vie Feb 23, 2018 12:49 pm

» Tutoriales stream
por Chaskarron Vie Feb 23, 2018 9:09 am

» RMV: Ayuda con un sistema de batalla
por thedi88 Jue Feb 22, 2018 6:35 pm

» Problema al cargar proyecto
por Ledai Jue Feb 22, 2018 4:55 pm

» Aumentar el tamaño del texto RPGMXP
por Ledai Jue Feb 22, 2018 4:54 pm

» Proyecto Ahura: Algunas Muestras
por KRiZaLiD Miér Feb 21, 2018 11:09 pm


Editar el escript de Lune Item Vault

Ir abajo

Editar el escript de Lune Item Vault

Mensaje por NicholayHernandez el Miér Dic 16, 2015 6:34 pm

Uso el Script de Lune Item Vault
Para tener un inventario adicional (Como un Baul "Resident evil")
Este es el Código

Script Lune Item Vault:

#=======================================================
#         Lune Item Vault
# Author : Raizen
# Comunity: www.centrorpg.com
# Scripts' Function: The scripts adds a screen like a bank system,
# where the player can deposit items and money, and can withdraw them
# latter throughout the game.
#=======================================================

# To call the script
# Call Script: SceneManager.call(Scene_Vault)

#==============================================================#
#============== MANAGING ITEMS FROM THE BANK ==================#
#==============================================================#

# To change a certain item from the bank, removing or adding,
# just use the Call script as the following.

# Call Script: Lune_Vlt.change_item(n, item, type)au
             

# n is the quantity of items, positive means adding,
# negative means removing.
# item goes the id of the item on the database.
# type is the type of item that you are adding/removing.
#     Following this. 1 = items, 2= weapons, 3 = armors
# Exemple: Removing 5 weapons of ID 3 from database, 
# Call Script: Lune_Vault.change_item(-5, 3, 2)

#==============================================================#
#=============== MANAGING MONEY FROM THE BANK =================#
#==============================================================#

# To change the quantity of money that is inside the bank
# use the Call Script with the following.

# Call Script: Lune_Vault.gold(n)

# Where n is the quantity of gold you will add or remove from the bank.
# Exemple, adding 500 gold to the bank.

# Call Script: Lune_Vault.gold(500)

# Ideal to use with systems that change the bank script with a %, you can
# use the global variable $game_party.hold


#==============================================================#
#===================== Configuration ==========================#
#==============================================================#
module Lune_Vault
# Sound that will play after depositing an item.
Sound_Item = "Decision2"
# Sound that will play if the player tries to deposit items or money more than they are carrying.
Sound_Item2 = "Buzzer2"

#==========================================================================
#====================== Configure the vocabulary =========================#
#==========================================================================
# Phrase that will apear below the window while withdrawing items.
Vault_text = "En esta ventana puedes sacar items"
# Phrase that appears on the window below, to help with depositing items.
Vault_text2 = "En esta ventana puedes depositar items"

# Phrase that appears with the held gold.
Gold_text = "Dinero:"
# Phrase that will appear to help the player with the quantity of gold in the bank/vault.
Gold_text2 = "Dinero Guardado:"
#==================
# Command names
#==================
# Gold Withdraw
Com1 = "Sacar Dinero"
# Gold Deposit
Com2 = "Dejar Dinero"
# Item Withdraw
Com3 = "Sacar Item"
# Item Deposit
Com4 = "Dejar Item"
# Sair
Com5 = "Salir"
#==============================================================================#
#==============================================================================#
#========================  FROM HERE THE SCRIPT STARTS  =======================#
#==============================================================================#
#==============================================================================#



  def self.change_item(n, item, type)
    case type
    when 1  # Item
      $game_party.gain_item_vault($data_items[item], n)
    when 2  # Arma
      $game_party.gain_item_vault($data_weapons[item], n)
    when 3  # Armadura
     $game_party.gain_item_vault($data_armors[item], n)
    end
  end
  def self.gold(n)
    $game_party.hold_money(n)
  end
end



#==============================================================================
# ** Scene_Menu
#------------------------------------------------------------------------------
#  Esta classe executa o processamento da tela de menu.
#==============================================================================

class Scene_Vault < Scene_MenuBase
  #--------------------------------------------------------------------------
  # * Inicialização do processo
  #--------------------------------------------------------------------------
  def start
    Window_MenuCommand::init_command_position
    super
    create_help_window
    create_category_window
    create_item_window
    create_command_window
    @command_window.activate
    @category_window.deactivate
  end
  #--------------------------------------------------------------------------
  # * Criação da janela de ajuda.
  #--------------------------------------------------------------------------
  def create_help_window
    unless $lune_weight_script
      super
    else
      @help_window = Window_Weight_Help.new
      @help_window.viewport = @viewport
    end
  end
  def create_command_window
    @command_window = Window_Create_Vault.new
    @command_window.set_handler(:deposit, method(:deposit))
    @command_window.set_handler(:draw, method(:draw))
    @command_window.set_handler(:depoitem, method(:depoitem))
    @command_window.set_handler(:drawitem, method(:drawitem))
    @command_window.set_handler(:exit, method(:exit))
    @command_window.viewport = @viewport
    @command_window.open
    @money_window = Window_NumberInput_Deposit.new(Window_Base.new(0,0,0,0))
    @money_window.viewport = @viewport
    @item_get_window = Window_Item_Deposit.new(Window_Base.new(0,0,0,0))
    @item_get_window.viewport = @viewport
  end
  def update
    super
    if @item_window.active || @category_window.active || @item_get_window.active
      @item_window.change_view ? @bank_window.refresh(1) : @bank_window.refresh(2)
    else
      @bank_window.refresh(0)
    end
    if Input.trigger?(:B)
      SceneManager.goto(Scene_Map) if @command_window.active
      if @money_window.open?
        @command_window.activate 
        @money_window.close
      end
      if @item_get_window.open?
        @item_window.activate 
        @item_get_window.close
      end
    end
    change_itens(@item_get_window.nitens) if @item_get_window.nitens
    @command_window.activate unless all_windows_down?
  end
  def all_windows_down?
    @command_window.active || @category_window.active || @item_window.active || !@money_window.close? || !@item_get_window.close?
  end
  #--------------------------------------------------------------------------
  # * Criação da janela de categorias
  #--------------------------------------------------------------------------
  def create_category_window
    @bank_window = Window_Bank_System.new
    @bank_window.viewport = @viewport
    @category_window = Window_ItemCategory.new
    @category_window.viewport = @viewport
    @category_window.help_window = @help_window
    @category_window.y = @help_window.height
    @category_window.set_handler(:ok,     method(:on_category_ok))
    @category_window.set_handler(:cancel, method(:on_select_choice))
  end
  #--------------------------------------------------------------------------
  # * Criação da janela de itens
  #--------------------------------------------------------------------------
  def create_item_window
    wy = @category_window.y + @category_window.height
    wh = Graphics.height - wy - @bank_window.height
    @item_window = Window_ItemList_Vault.new(0, wy, Graphics.width, wh)
    @item_window.viewport = @viewport
    @item_window.help_window = @help_window
    @item_window.set_handler(:ok,     method(:on_item_ok))
    @item_window.set_handler(:cancel, method(:on_item_cancel))
    @item_window.get_pos(true)
    @category_window.item_window = @item_window
  end
  def change_itens(n)
    $game_party.gain_item(@item_window.item, n)
    $game_party.gain_item_vault(@item_window.item, -n)
    @item_get_window.nitens = nil
    on_item_cancel
    @item_window.refresh
  end
  #--------------------------------------------------------------------------
  # * Categoria [Confirmação]
  #--------------------------------------------------------------------------
  def on_category_ok
    @item_window.activate
    @item_window.select_last
  end
  #--------------------------------------------------------------------------
  # * Item [Confirmação]
  #--------------------------------------------------------------------------
  def on_item_ok
    @item_get_window.start(false, @item_window.item)
  end
  #--------------------------------------------------------------------------
  # * Item [Cancelamento]
  #--------------------------------------------------------------------------
  def on_item_cancel(t = nil)
    @item_window.unselect
    @item_window.get_pos(t)
    @item_get_window.get_pos(t)
    @category_window.activate
    @command_window.close
  end
  def on_select_choice
    @category_window.deactivate
    @command_window.open
    @command_window.activate
  end
  #--------------------------------------------------------------------------
  # * Comando [Gerenciar GPs]
  #--------------------------------------------------------------------------
  def draw
    on_money_get
  end
  def deposit
    on_money_dep
  end
  def on_money_dep
    @money_window.start(false)
  end
  def on_money_get
    @money_window.start(true)
  end
  #--------------------------------------------------------------------------
  # * Comando [Deposito de itens]
  #--------------------------------------------------------------------------
  def depoitem
    @help_window.on_bau(true) if $lune_weight_script
    on_item_cancel(false)
  end
  #--------------------------------------------------------------------------
  # * Comando [Sacar Itens]
  #--------------------------------------------------------------------------
  def drawitem
    @help_window.on_bau if $lune_weight_script
    on_item_cancel(true)
  end
  #--------------------------------------------------------------------------
  # * Comando [Fechar]
  #--------------------------------------------------------------------------
  def exit
    return_scene
  end
end


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

class Window_Create_Vault < Window_Command
include Lune_Vault
  #--------------------------------------------------------------------------
  # * 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 - 80
    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(Com2,   :deposit,   true)
    add_command(Com1,  :draw,  true)
    add_command(Com4,  :depoitem,  true)
    add_command(Com3,  :drawitem,  true)
    add_command(Com5,  :exit,  true)
  end
end

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

class Window_NumberInput_Deposit < Window_NumberInput
attr_accessor :nitens
def initialize(message_window)
  @get_lost_itens = 0
  super(message_window)
end
  #--------------------------------------------------------------------------
  # * Inicialização do processo
  #--------------------------------------------------------------------------
  def start(cond)
    @cond = cond
    @digits_max = 8
    @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 + 20
    self.z = 150
  end

  #--------------------------------------------------------------------------
  # * Definição de resultado ao pressionar o botão de confirmação
  #--------------------------------------------------------------------------
  def process_ok
    if @cond
      number = $game_party.hold_money
      if @number <= number
        Sound.play_shop
        make_draw
      else
        RPG::SE.new(Lune_Vault::Sound_Item2).play
      end
    else
      number = $game_party.gold
      if @number <= number
        Sound.play_shop
        make_deposit
      else
        RPG::SE.new(Lune_Vault::Sound_Item2).play
      end
    end
    deactivate
    close
  end
  def make_deposit
    $game_party.hold_money(@number)
    $game_party.gold -= @number
  end
  def make_draw
    $game_party.hold_money(-@number)
    $game_party.gold += @number
  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_vault_initialize :initialize
attr_accessor :gold
attr_accessor :hold_itens
  def initialize
    @hold_money = 0
    @items_vault = {}
    @weapons_vault = {}
    @armors_vault = {}
    lune_vault_initialize
  end
  #--------------------------------------------------------------------------
  # * Acrescentar item (redução)
  #     item          : item
  #     amount        : quantia alterada
  #     include_equip : incluir itens equipados
  #--------------------------------------------------------------------------
  def gain_item_vault(item, amount, include_equip = false)
    container = item_container_vault(item.class)
    return unless container
    last_number = item_number_vault(item)
    new_number = last_number + amount
    container[item.id] = [[new_number, 0].max, max_item_number(item)].min
    container.delete(item.id) if container[item.id] == 0
    if include_equip && new_number < 0
      discard_members_equip(item, -new_number)
    end
    $game_map.need_refresh = true
  end
  def hold_money(g = nil)
    g == nil ? (return @hold_money) : (@hold_money += g)
  end
  def all_items_vault
    items_vault + equip_items_vault
  end
  #--------------------------------------------------------------------------
  # * Lista de itens do grupo
  #--------------------------------------------------------------------------
  def items_vault
    @items_vault.keys.sort.collect {|id| $data_items[id] }
  end
  #--------------------------------------------------------------------------
  # * Lista de armas do grupo
  #--------------------------------------------------------------------------
  def weapons_vault
    @weapons_vault.keys.sort.collect {|id| $data_weapons[id] }
  end
  #--------------------------------------------------------------------------
  # * Lista de armadures do grupo
  #--------------------------------------------------------------------------
  def armors_vault
    @armors_vault.keys.sort.collect {|id| $data_armors[id] }
  end
  #--------------------------------------------------------------------------
  # * Lista de equipamentos do grupo
  #--------------------------------------------------------------------------
  def equip_items_vault
    weapons_vault + armors_vault
  end
  def item_number_vault(item)
    container = item_container_vault(item.class)
    container ? container[item.id] || 0 : 0
  end
  #--------------------------------------------------------------------------
  # * Aquisição das informações da classe de determinado item
  #     item_class : classe do item
  #--------------------------------------------------------------------------
  def item_container_vault(item_class)
    return @items_vault   if item_class == RPG::Item
    return @weapons_vault if item_class == RPG::Weapon
    return @armors_vault  if item_class == RPG::Armor
    return nil
  end
  def items_on_vault
    @all_vault_items = 0
    all_items_vault.each {|item| get_vault_weight(item)}
    @all_vault_items
  end
  #--------------------------------------------------------------------------
  # * Calculo do peso de um item no inventário
  #--------------------------------------------------------------------------
  def get_vault_weight(item)
    if item.note =~ //i
      @all_vault_items += $1.to_i * item_number_vault(item)
    else
      @all_vault_items += Lune_Weight::Default * item_number_vault(item)
    end
  end
end


#==============================================================================
# ** Window_Bank_System
#------------------------------------------------------------------------------
#  Esta janela exibe a quantia de dinheiro.
#==============================================================================

class Window_Bank_System < Window_Base
include Lune_Vault
  #--------------------------------------------------------------------------
  # * Inicialização do objeto
  #--------------------------------------------------------------------------
  def initialize
    super(0, Graphics.height - fitting_height(2), window_width, fitting_height(2))
    refresh(0)
  end
  #--------------------------------------------------------------------------
  # * Aquisição da largura da janela
  #--------------------------------------------------------------------------
  def window_width
    return Graphics.width
  end
  #--------------------------------------------------------------------------
  # * Renovação
  #--------------------------------------------------------------------------
  def refresh(n)
    contents.clear
    case n
    when 0
      draw_text(window_width/10, 0, window_width / 2, line_height, Gold_text, 2 )
      draw_currency_value(value, currency_unit, 4, 0, contents.width - Cool
      draw_text(window_width/10, line_height, window_width / 2, line_height, Gold_text2, 2 )
      draw_currency_value($game_party.hold_money, currency_unit, 4, line_height, contents.width - Cool
    when 1
      draw_text(0, 0, window_width, line_height*2, Vault_text, 0)
    when 2
      draw_text(0, 0, window_width, line_height*2, Vault_text2, 0)
    end
  end
  #--------------------------------------------------------------------------
  # * Aquisição do valor em dinheiro
  #--------------------------------------------------------------------------
  def value
    $game_party.gold
  end
  #--------------------------------------------------------------------------
  # * Aquisição da unidade monetária
  #--------------------------------------------------------------------------
  def currency_unit
    Vocab::currency_unit
  end
  #--------------------------------------------------------------------------
  # * Abertura da janela
  #--------------------------------------------------------------------------
end

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

class Window_Item_Deposit < Window_NumberInput
attr_accessor :nitens
def initialize(message_window)
  @get_lost_itens = 0
  @nitens = nil
  super(message_window)
end
  #--------------------------------------------------------------------------
  # * Inicialização do processo
  #--------------------------------------------------------------------------
  def start(cond, item)
    @digits_max = 2
    @item = item
    @number = @get_lost_itens
    @number = [[@number, 0].max, 10 ** @digits_max - 1].min
    @index = 0
    update_placement
    create_contents
    refresh
    open
    activate
  end
  def get_pos(t)
    @cond = t unless t == nil
  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 + 20
    self.z = 150
  end

  #--------------------------------------------------------------------------
  # * Definição de resultado ao pressionar o botão de confirmação
  #--------------------------------------------------------------------------
  def process_ok
    @nitens = 0
    if @cond
      make_draw 
    else
      make_deposit 
    end
    deactivate
    close
  end
  def make_deposit
    if @number <= $game_party.item_number(@item)
      if $lune_weight_script
        if Lune_Weight::LimiteB.is_a?(Integer)
          if $game_party.carried_items + $game_party.calc_weight(@item, @number) > Lune_Weight::LimiteB
            RPG::SE.new(Lune_Vault::Sound_Item2).play
          else
            @nitens = -@number 
            RPG::SE.new(Lune_Vault::Sound_Item).play
          end
        else
          @nitens = -@number 
          RPG::SE.new(Lune_Vault::Sound_Item).play 
        end
      else
          @nitens = -@number 
          RPG::SE.new(Lune_Vault::Sound_Item).play
      end
    else
      RPG::SE.new(Lune_Vault::Sound_Item2).play
    end  
  end
  def make_draw
    if @number <= $game_party.item_number_vault(@item)
      if $lune_weight_script
        if $game_party.carried_items + $game_party.calc_weight(@item, @number) > Lune_Weight.weight_limit
          RPG::SE.new(Lune_Vault::Sound_Item2).play
        else
          @nitens = @number 
          RPG::SE.new(Lune_Vault::Sound_Item).play
        end
      else
          @nitens = @number 
          RPG::SE.new(Lune_Vault::Sound_Item).play
      end
    else
      RPG::SE.new(Lune_Vault::Sound_Item2).play
    end
  end
end


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

class Window_ItemList_Vault < Window_Selectable
attr_reader :change_view
  #--------------------------------------------------------------------------
  # * Inicialização do objeto
  #     x      : coordenada X
  #     y      : coordenada Y
  #     width  : largura
  #     height : altura
  #--------------------------------------------------------------------------
  def initialize(x, y, width, height)
    @change_view = false
    super
    @category = :none
    @data = []
  end
  #--------------------------------------------------------------------------
  # * Definição de categoria
  #--------------------------------------------------------------------------
  def category=(category)
    return if @category == category
    @category = category
    refresh
    self.oy = 0
  end
  #--------------------------------------------------------------------------
  # * Aquisição do número de colunas
  #--------------------------------------------------------------------------
  def col_max
    return 2
  end
  #--------------------------------------------------------------------------
  # * Aquisição do número máximo de itens
  #--------------------------------------------------------------------------
  def item_max
    @data ? @data.size : 1
  end
  #--------------------------------------------------------------------------
  # * Aquisição das informações do item
  #--------------------------------------------------------------------------
  def item
    @data && index >= 0 ? @data[index] : nil
  end
  #--------------------------------------------------------------------------
  # * Definição de habilitação de seleção
  #--------------------------------------------------------------------------
  def current_item_enabled?
    enable?(@data[index])
  end
  #--------------------------------------------------------------------------
  # * Inclusão do item na lista
  #     item : item
  #--------------------------------------------------------------------------
  def include?(item)
    case @category
    when :item
      item.is_a?(RPG::Item) && !item.key_item?
    when :weapon
      item.is_a?(RPG::Weapon)
    when :armor
      item.is_a?(RPG::Armor)
    when :key_item
      item.is_a?(RPG::Item) && item.key_item?
    else
      false
    end
  end
  #--------------------------------------------------------------------------
  # * Definição de habilitação do item
  #     item : item
  #--------------------------------------------------------------------------
  def enable?(item)
    true
  end
  #--------------------------------------------------------------------------
  # * Criação da lista de itens
  #--------------------------------------------------------------------------
  def make_item_list
    if @change_view
      @data = $game_party.all_items_vault.select {|item| include?(item) }
    else
      @data = $game_party.all_items.select {|item| include?(item) }
    end
    @data.push(nil) if include?(nil)
  end
  #--------------------------------------------------------------------------
  # * Retorno à seleção anterior
  #--------------------------------------------------------------------------
  def select_last
    select(@data.index($game_party.last_item.object) || 0)
  end
  #--------------------------------------------------------------------------
  # * Desenho de um item
  #     index : índice do item
  #--------------------------------------------------------------------------
  def draw_item(index)
    item = @data[index]
    if item
      rect = item_rect(index)
      rect.width -= 4
      draw_item_name(item, rect.x, rect.y, enable?(item))
      draw_item_number(rect, item)
    end
  end
  def get_pos(t)
    @change_view = t unless t == nil
    refresh
  end
  #--------------------------------------------------------------------------
  # * Desenho do número de itens possuido
  #     rect : retângulo
  #     item : item
  #--------------------------------------------------------------------------
  def draw_item_number(rect, item)
    if @change_view
      draw_text(rect, sprintf(":%2d", $game_party.item_number_vault(item)), 2)
    else
      draw_text(rect, sprintf(":%2d", $game_party.item_number(item)), 2)
    end
  end
  #--------------------------------------------------------------------------
  # * Atualização da janela de ajuda
  #--------------------------------------------------------------------------
  def update_help
    @help_window.set_item(item)
  end
  #--------------------------------------------------------------------------
  # * Renovação
  #--------------------------------------------------------------------------
  def refresh
    make_item_list
    create_contents
    draw_all_items
  end
end


Quiero modificarlo....

1- QUITAR ALGUNAS OPCIONES
Al iniciar a el extra inventario puedes interactuar con las siguientes opciones..

Yo quisiera que la visualización fuera así:

Solamente que se puedan guardar o sacar objetos(No dinero), y quitar accesorios
Gracias por todo...

NicholayHernandez
PJ de Quest
PJ de Quest

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

Volver arriba Ir abajo

Volver arriba

- Temas similares

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