RPG maker VX


Unirse al foro, es rápido y fácil

RPG maker VX
RPG maker VX
¿Quieres reaccionar a este mensaje? Regístrate en el foro con unos pocos clics o inicia sesión para continuar.
Últimos temas
» Script de menu
por maxi Jue 04 Dic 2014, 1:44 pm

» Ayuda intro animado!!!
por maxi Miér 03 Dic 2014, 9:41 pm

» ayuda con este engin
por maxi Miér 03 Dic 2014, 8:42 am

» Hud de Vida 100% Personalizable - Engine Sencillo! Sin Scripts :)
por davidaikago Jue 20 Nov 2014, 10:58 am

» Ultimate parallax control by:GDS [ace]
por arellano Miér 08 Oct 2014, 8:28 pm

» Script Touhou (animated) Map name (v1.4)
por davidaikago Miér 08 Oct 2014, 2:09 pm

» tutorial puerta nueva
por davidaikago Miér 08 Oct 2014, 9:08 am

» cámara de fotos
por davidaikago Miér 08 Oct 2014, 9:05 am

» Imperial Action System II Demo
por davidaikago Miér 08 Oct 2014, 8:47 am

» VE Batalla animada [ACE]
por FhierusIV Jue 18 Sep 2014, 10:57 am

» Nuevo Reglamento del Foro [Vigente desde Septiembre 2014]
por maxi Miér 17 Sep 2014, 8:37 am

» MOG|Animated Title
por Souta21 Mar 09 Sep 2014, 7:24 pm

» Tutorial Engine - Cambiar Character al Equipar Objeto
por maxi Lun 21 Jul 2014, 10:19 am

» Script de climas
por gambasoxd Sáb 19 Jul 2014, 8:58 am

» Script de contraseña(codigo) para abrir un cofre
por rpgame Jue 03 Jul 2014, 6:03 pm

¿Quién está en línea?
En total hay 1 usuario en línea: 0 Registrados, 0 Ocultos y 1 Invitado

Ninguno

[ Ver toda la lista ]


El record de usuarios en línea fue de 117 durante el Mar 09 Ago 2011, 3:39 pm

Deriru's Simple Storage System v1.2

4 participantes

Ir abajo

Deriru's Simple Storage System v1.2 Empty Deriru's Simple Storage System v1.2

Mensaje por ClubIce Sáb 02 Oct 2010, 2:39 pm

Deriru's Simple Storage System v1.2

Introducción:
Este sistema de almacinamiendo, podrans almacenar diferentes objetos en un almacen.

Capturas de Pantalla:
[Tienes que estar registrado y conectado para ver esa imagen]

Instalación:
Copiar y Pegar sobre el Main.

Instrucciones:
Dentro del Script

Compatibilidad:
Debajo de las instrucciones dentro del Scripts

Script:
Código:
#===============================================================================
# ■ Deriru's Simple Storage System v1.2
#-------------------------------------------------------------------------------
#  Autor        : Deriru
#  Traducido por : Uroboros. > ClubIce
#-------------------------------------------------------------------------------
# ● ¿Qué hace esto?:
#  Esto es un sistema de almacinamiendo donde podrans almacenar diferentes
#    objetos en un almacen.
#
#-------------------------------------------------------------------------------
# ● Instrucciones.
#-------------------------------------------------------------------------------
#  ★ Para llamar al Script usando el siguiente codigo:
#
#      $scene = Scene_StorageSystem.new
#
#  ★ Para desbloquear más espacios para almacenar, usar el siguente codigo.
#
#      $game_system.unlock_storages(cantidad)
#
#      Donde cantidad, indica la cantidad de espacios a desbloquear
#
#  ★ Para hacer un objeto no almacenable, añadir el NonStorageTag
#      (ver Opciones de configuración)
#      debe ir ente [], por ejemplo: [NoStorage]
#
#-------------------------------------------------------------------------------
# ● Opciones de instalación.
#-------------------------------------------------------------------------------
# SlotsAmount  : La cantidad máxima de las ranuras de almacenamiento.
# InitialFree  : Cantidad inicial de ranuras de almacenamiento.
# NonStorageTag : Tag utilizado para los artículos que no se puede almacenar
#                en el depósito.
# DepositText  : Texto del menú para depositar objetos.
# WithdrawText  : Texto del menú para la retirada de productos.
# EmptyText    : Texto de espacios vacíos.
# LockedText    : Texto de ranuras cerradas.
# AmountText    : Texto de introducción al importe de los artículos.
#-------------------------------------------------------------------------------
# ● Las siguientes lineas son editables:
#-------------------------------------------------------------------------------
  $data_system        = load_data("Data/System.rvdata")# No tocar!!!
  gVocab              = Vocab::gold # No tocar tampoco!
  SlotsAmount        = 100# es el numero total de espacios par aalmacenar
  InitialFree        = 100# es el numero de espacios libres que quieres tener al principio
  NonStorageTag      = "No almacenable"
  DepositText        = "Depositar objeto"
  WithdrawText        = "Sacar objeto"
  GoldDepositText    = "Depositar #{gVocab}"
  GoldWithdrawText    = "Sacar #{gVocab}"
  GoldInParty        = "#{gVocab} en Monedero: "
  GoldInWarehouse    = "#{gVocab} en la caja: "
  EmptyText          = "Vacio"
  LockedText          = "Bloqueado"
  AmountText          = "Cantidad:"
  MenuDepositHelp    = "Depositar objetos."
  MenuWithdrawHelp    = "Sacar objetos depositados."
  StorageSelectHelp  = "Seleccionar hueco de almacenamiento."
  InventorySelectHelp = "Elige objeto para depositar."
  AmountSelectHelp    = "Izquierda(-1), Dercha(+1), Arriba(+10), Abajo(-10)"
  GoldDepositHelp    = "Depositar #{gVocab}."
  GoldWithdrawHelp    = "Sacar #{gVocab}."
  GoldAmountHelp      = "Insertar la cantidad de #{gVocab}."
  ExitHelp            = "Salir del almacen."
#===============================================================================
# ● Fin del area editable.
#===============================================================================
class ItemStorageSlot
  attr_reader :locked
  attr_reader :amount
  attr_reader :item
  def initialize
    @item = nil
    @amount = 0
    @locked = true
  end
  def storeItem(item, amount)
    $game_party.lose_item(item, amount)
    @item = item
    @amount = amount
  end
  def takeItem(amt)
    $game_party.gain_item(@item, amt)
    @amount -= amt
    if @amount <= 0
      @item = nil
    end
  end
  def lock
    @locked = true
  end
  def unlock
    @locked = false
  end
end
#===============================================================================
# Game_System Modification: Adds the storage variables.
#===============================================================================
class Game_System
  attr_accessor :storage
  attr_accessor :stored_gold
  alias :initialize_deriru initialize
  def initialize
    initialize_deriru
    @stored_gold = Integer(0)
    @storage = []
    for i in 0..SlotsAmount - 1
      @storage.push(ItemStorageSlot.new)
    end
    for i in 0..InitialFree - 1
      @storage[i].unlock
    end
  end
  def unlock_storages(max_amt)
    for i in 0..max_amt - 1
      $game_system.storage[i].unlock
    end
  end
  def withdraw_money(amt)
    $game_party.gain_gold(amt)
    @stored_gold -= amt
    @stored_gold = 9999999 if @stored_gold > 9999999
  end
  def store_money(amt)
    $game_party.lose_gold(amt)
    @stored_gold += amt
    @stored_gold = 0 if @stored_gold < 0
  end
end
#===============================================================================
# Window_Storage: For the Storage Window in the Storage Scene.
#===============================================================================
class Window_Storage < Window_Selectable
  def initialize
    super(0,56,544,360)
    @column_max = 2
    self.index = 0
    update
    refresh
  end
  def refresh
    @data = []
    @data = $game_system.storage
    @item_max = @data.size
    create_contents
    for i in 0..@item_max - 1
      draw_storage(i)
    end
  end
  def draw_storage(index)
    slot = @data[index]
    disabled = @data[index].locked
    rect = item_rect(index)
    self.contents.clear_rect(rect)
    unless disabled
      unless slot.item == nil
        draw_item(index)
      else
        self.contents.font.color.alpha = 255
        self.contents.draw_text(rect.x,rect.y,rect.width,WLH,EmptyText)
      end
    else
      self.contents.font.color.alpha = 128
      self.contents.draw_text(rect.x,rect.y,rect.width,WLH,LockedText)
    end
  end
  def draw_item(index)
    rect = item_rect(index)
    slot = @data[index]
    if slot != nil
      number = $game_system.storage[index].amount
      rect.width -= 4
      draw_item_name(slot.item, rect.x, rect.y, true)
      self.contents.font.size = 12
      self.contents.draw_text(rect.x + 12,rect.y + 12, 15, 15, number, 1)
      self.contents.font.size = 20
      rect.width += 4
    end
  end
end
#===============================================================================
# Window_ItemForStage: For the Item Window in the Storage Scene.
#===============================================================================
class Window_ItemForStorage < Window_Selectable
  def initialize(x, y, width, height)
    super(x, y, width, height)
    @column_max = 2
    self.index = 0
    refresh
  end
  def item
    return @data[self.index]
  end
  def include?(item)
    return false if item == nil
    return true
  end
  def enable?(item)
    return false if item.note.include?("[#{NonStorageTag}]")
    return true
  end
  def refresh
    @data = []
    for item in $game_party.items
      next unless include?(item)
      @data.push(item)
      if item.is_a?(RPG::Item) and item.id == $game_party.last_item_id
        self.index = @data.size - 1
      end
    end
    @data.push(nil) if include?(nil)
    @item_max = @data.size
    create_contents
    for i in 0...@item_max
      draw_item(i)
    end
  end
  def draw_item(index)
    rect = item_rect(index)
    self.contents.clear_rect(rect)
    item = @data[index]
    if item != nil
      number = $game_party.item_number(item)
      enabled = enable?(item)
      rect.width -= 4
      draw_item_name(item, rect.x, rect.y, enabled)
      self.contents.font.size = 12
      self.contents.draw_text(rect.x + 12,rect.y + 12, 15, 15, number, 1)
      self.contents.font.size = 20
    end
  end
  def update_help
    @help_window.set_text(item == nil ? "" : item.description)
  end
end
#===============================================================================
# Window_ItemNumInput: Item Number Input Window
#===============================================================================
class Window_ItemNumInput < Window_Base
  attr_reader :qn
  def initialize
    @maxQn = 99
    @qn = 1
    super(200,60,100,100)
    refresh
    self.x = (Graphics.width - 100) / 2
    self.y = (Graphics.height - 100) / 2
  end
  def refresh
    self.contents.clear
    self.contents.draw_text(0,0,self.width - 32,WLH,AmountText, 1)
    self.contents.draw_text(0,WLH, self.width - 32, WLH, @qn.to_s, 1)
  end
  def set_max(number)
    @maxQn = number
    @maxQn = 99 if @maxQn > 99
    @maxQn = 1 if @maxQn < 1
    @qn = 1
  end
  def update
    refresh
    if Input.repeat?(Input::UP)
      Sound.play_cursor
      @qn += 10
      @qn = @maxQn if @qn > @maxQn
    elsif Input.repeat?(Input::DOWN)
      Sound.play_cursor
      @qn -= 10
      @qn = 0 if @qn < 0
    elsif Input.repeat?(Input::LEFT)
      Sound.play_cursor
      @qn -= 1
      @qn = 0 if @qn < 0
    elsif Input.repeat?(Input::RIGHT)
      Sound.play_cursor
      @qn += 1
      @qn = @maxQn if @qn > @maxQn
    end
  end
end
#===============================================================================
# Window_HelpStorage: A modified version of Window_Help
#===============================================================================
class Window_HelpStorage < Window_Base
  def initialize
    super(0, 0, Graphics.width - 140, WLH + 32)
  end
  def set_text(text, align = 0)
    if text != @text or align != @align
      self.contents.clear
      self.contents.font.color = normal_color
      self.contents.draw_text(4, 0, self.width - 40, WLH, text, align)
      @text = text
      @align = align
    end
  end
end
#===============================================================================
# Window_GoldAmt: Inputs the amount of gold
#===============================================================================
class Window_GoldAmt < Window_Command
  attr_reader :value
  attr_reader :commands
  def initialize
    super(176, ["0", "0", "0", "0", "0", "0", "0"], 7, 0, 0)
    self.x = (Graphics.width / 2) - 88
    self.y = (Graphics.height / 2) - 60
    self.height = 60
    @index = 6
  end
  def reset
    for i in [Tienes que estar registrado y conectado para ver este vínculo]
      @commands[i] = "0"
    end
    refresh
  end
  def update
    super
    value = @commands[@index].to_i
    if Input.repeat?(Input::UP)
      Sound.play_cursor
      @commands[@index] = (value < 9 ? value+1 : 9).to_s
      refresh
    elsif Input.repeat?(Input::DOWN)
      Sound.play_cursor
      @commands[@index] = (value > 0 ? value-1 : 0).to_s
      refresh
    end
  end
end
class Window_GoldOpposite < Window_Base
  def initialize
    super((Graphics.width / 2) - 100,(Graphics.height / 2), 200,60)
  end
  def refresh(i)
    self.contents.clear
    self.contents.draw_text(0,0,self.width - 32, self.height - 32, i == 2 ? GoldInParty + $game_party.gold.to_s : GoldInWarehouse + $game_system.stored_gold.to_s, 1)
  end
end
#===============================================================================
# Scene_StorageSystem: The Storage System Scene itself! xD
#===============================================================================
class Scene_StorageSystem < Scene_Base
  def initialize
    @storage_slots = Window_Storage.new
    @storage_slots.active = false
    @current_inv = Window_ItemForStorage.new(0,56,544,360)
    @current_inv.update
    @current_inv.refresh
    @current_inv.visible = false
    @current_inv.active = false
    @num_input = Window_ItemNumInput.new
    @num_input.visible = false
    @storage_help = Window_HelpStorage.new
    @storage_menu = Window_Command.new(140,[DepositText,WithdrawText,GoldDepositText,GoldWithdrawText,"Salir"])
    @storage_menu.height = 56
    @storage_menu.x = @storage_help.width
    @gold_amt = Window_GoldAmt.new
    @gold_amt.visible = false
    @gold_opp = Window_GoldOpposite.new
    @gold_opp.visible = false
  end
  def start
    create_menu_background
  end
  def terminate
    @storage_slots.dispose
    @storage_menu.dispose
    @current_inv.dispose
    @num_input.dispose
    @storage_help.dispose
    @gold_amt.dispose
    @gold_opp.dispose
    dispose_menu_background
  end
  def update
    if @num_input.visible
      num_input_input
    elsif @gold_amt.visible
      gold_amt_update
    elsif @current_inv.active
      current_inv_input
    elsif @storage_slots.active
      storage_slots_input
    elsif @storage_menu.active
      storage_menu_input
    end
    help_update
    update_menu_background
  end
  def switch_store_inv(store_slots,inv_slots)
    @storage_slots.active = store_slots
    @storage_slots.visible = store_slots
    @current_inv.active = inv_slots
    @current_inv.visible = inv_slots
  end
  def storage_menu_input
    @storage_menu.update
    if Input.trigger?(Input::C)
      if @storage_menu.index == 0 or @storage_menu.index == 1
        Sound.play_decision
        @storage_menu.active = false
        @storage_slots.active = true
      elsif @storage_menu.index == 2 or @storage_menu.index == 3
        Sound.play_decision
        @gold_opp.refresh(@storage_menu.index)
        @gold_opp.visible = true
        @gold_amt.visible = true
      elsif @storage_menu.index == 4
        Sound.play_cancel
        $scene = Scene_Map.new
      else
        Sound.play_buzzer
      end
    elsif Input.trigger?(Input::B)
      Sound.play_cancel
      $scene = Scene_Map.new
    end
  end
  def storage_slots_input
    @storage_slots.update
    if Input.trigger?(Input::C)
      if $game_system.storage[@storage_slots.index].locked
        Sound.play_buzzer
      elsif @storage_menu.index == 1
        unless $game_system.storage[@storage_slots.index].item == nil
          # CRAPPY CALCULATION STARTZ! AAAAGH!
          in_stock = $game_party.item_number($game_system.storage[@storage_slots.index].item)
          item_possible = (in_stock + $game_system.storage[@storage_slots.index].amount)
          if item_possible > 99
            item_possible -= 99
          elsif item_possible = 99
            item_possible = $game_system.storage[@storage_slots.index].amount
          else
            item_possible = 99 - item_possible
          end
          # CRAPPY CALCULATION ENDZ! HURRAH!
          if in_stock < 99
            @num_input.set_max(item_possible)
            @num_input.visible = true
            @storage_slots.active = false
          else
            Sound.play_buzzer
          end
        else
          Sound.play_buzzer
        end
      elsif @storage_menu.index == 0
        if $game_system.storage[@storage_slots.index].item == nil
          Sound.play_decision
          switch_store_inv(false,true)
        else
          Sound.play_buzzer
        end
      end
    elsif Input.trigger?(Input::B)
      Sound.play_cancel
      @storage_slots.active = false
      @storage_menu.active = true
    end
  end
  def current_inv_input
    @current_inv.update
    if Input.trigger?(Input::C)
      if $game_system.storage[@storage_slots.index].item == nil && @current_inv.item != nil && !@current_inv.item.note.include?("[#{NonStorageTag}]")
        @current_inv.active = false
        @num_input.visible = true
        @num_input.set_max($game_party.item_number(@current_inv.item))
      else
        Sound.play_buzzer
      end
    elsif Input.trigger?(Input::B)
      Sound.play_cancel
      switch_store_inv(true,false)
    end
  end
  def num_input_input
    @num_input.update
    if Input.trigger?(Input::C)
      if @storage_menu.index == 0
        $game_system.storage[@storage_slots.index].storeItem(@current_inv.item,@num_input.qn)
      elsif @storage_menu.index == 1
        $game_system.storage[@storage_slots.index].takeItem(@num_input.qn)
      end
      switch_store_inv(true,false)
      @storage_slots.index = 0
      @storage_slots.refresh
      @current_inv.refresh
      @num_input.visible = false
    elsif Input.trigger?(Input::B)
      if @storage_menu.index == 0
        @current_inv.active = true
      elsif @storage_menu.index == 1
        @storage_slots.active = true
      end
      @num_input.visible = false
    end
  end
  def help_update
    if @gold_amt.visible
      @storage_help.set_text(GoldAmountHelp)
    elsif @num_input.visible
      @storage_help.set_text(AmountSelectHelp)
    elsif @current_inv.active
      @storage_help.set_text(InventorySelectHelp)
    elsif @storage_slots.active
      @storage_help.set_text(StorageSelectHelp)
    elsif @storage_menu.active
      case @storage_menu.index
        when 0
          @storage_help.set_text(MenuDepositHelp)
        when 1
          @storage_help.set_text(MenuWithdrawHelp)
        when 2
          @storage_help.set_text(GoldDepositHelp)
        when 3
          @storage_help.set_text(GoldWithdrawHelp)
        when 4
          @storage_help.set_text(ExitHelp)
      end
    end
  end
  def gold_amt_update
    @gold_amt.update
    @gold_opp.update
    if Input.trigger?(Input::C)
      money_inp = @gold_amt.commands.to_s.to_i
      if @storage_menu.index == 2
        unless money_inp + $game_system.stored_gold.to_i > 9999999 and money_inp < $game_party.gold
          if money_inp <= $game_party.gold
            Sound.play_decision
            $game_system.store_money(money_inp)
            @gold_amt.reset
            @gold_amt.visible = false
            @gold_opp.refresh(@storage_menu.index)
            @gold_opp.visible = false
            @storage_menu.active = true
          else
            Sound.play_buzzer
          end
        else
          Sound.play_buzzer
        end
      elsif @storage_menu.index == 3
        unless money_inp + $game_party.gold > 9999999
          if money_inp <= $game_system.stored_gold
            Sound.play_decision
            $game_system.withdraw_money(money_inp)
            @gold_amt.reset
            @gold_amt.visible = false
            @gold_opp.refresh(@storage_menu.index)
            @gold_opp.visible = false
            @storage_menu.active = true
          else
            Sound.play_buzzer
          end
        else
          Sound.play_buzzer
        end
      end
    elsif Input.trigger?(Input::B)
      Sound.play_decision
      @gold_amt.reset
      @gold_amt.visible = false
      @gold_opp.refresh(@storage_menu.index)
      @gold_opp.visible = false
      @storage_menu.active = true
    end
  end
end

Demo:
Demo by ClubIce

Créditos:
Autor: Deriru
Traduccion: Uroboros. > ClubIce
Porteado originalmente por: [Tienes que estar registrado y conectado para ver este vínculo]


Última edición por ClubIce el Sáb 02 Oct 2010, 5:01 pm, editado 1 vez
ClubIce
ClubIce
220
220

Masculino

Edad 27

Cantidad de envíos 253

Maker Cash 361

Reputación 38


Volver arriba Ir abajo

Deriru's Simple Storage System v1.2 Empty Re: Deriru's Simple Storage System v1.2

Mensaje por Invitado Sáb 02 Oct 2010, 2:45 pm

Se ve genial Club =D
Anonymous
Invitado
Invitado


Volver arriba Ir abajo

Deriru's Simple Storage System v1.2 Empty Re: Deriru's Simple Storage System v1.2

Mensaje por agamas Miér 13 Oct 2010, 11:14 am

Excelente Script
agamas
agamas
50
50

Masculino

Edad 31

Cantidad de envíos 60

Maker Cash 140

Reputación 7


Volver arriba Ir abajo

Deriru's Simple Storage System v1.2 Empty Re: Deriru's Simple Storage System v1.2

Mensaje por raik Miér 13 Oct 2010, 11:45 am

SSIIIIII LLEVABA SEMANAS BUSCANDO ESTO!!! +1
raik
raik
300
300

Masculino

Edad 38

Cantidad de envíos 431

Maker Cash 485

Reputación 20


Extras
Sobre mí::

Volver arriba Ir abajo

Deriru's Simple Storage System v1.2 Empty Re: Deriru's Simple Storage System v1.2

Mensaje por Clound Miér 13 Oct 2010, 1:09 pm

Se ve fantastico +1 ^^.
Clound
Clound
500
500

Masculino

Edad 27

Cantidad de envíos 512

Maker Cash 480

Reputación 39


Extras
Sobre mí::

Volver arriba Ir abajo

Deriru's Simple Storage System v1.2 Empty Re: Deriru's Simple Storage System v1.2

Mensaje por raik Miér 13 Oct 2010, 1:27 pm

esque en serio, yo estuve semanas preguntando en todos lados, incluso en el foro, sobre como acer como un almacen o un deposito de objetos, y nadie me ayudaba buaaaa y veo esto y yo "no puede ser, ahora k ya deje de buscarlo... SIIIIIIII" xDDD
raik
raik
300
300

Masculino

Edad 38

Cantidad de envíos 431

Maker Cash 485

Reputación 20


Extras
Sobre mí::

Volver arriba Ir abajo

Deriru's Simple Storage System v1.2 Empty Re: Deriru's Simple Storage System v1.2

Mensaje por Contenido patrocinado


Contenido patrocinado


Volver arriba Ir abajo

Volver arriba

- Temas similares

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