Страница 133 из 190 ПерваяПервая ... 3383123131132133134135143183 ... ПоследняяПоследняя
Показано с 1,321 по 1,330 из 1899

Тема: Поиск скриптов

  1. #1321
    Администратор Аватар для Пётр
    Информация о пользователе
    Регистрация
    24.04.2014
    Адрес
    Краснодар
    Сообщений
    3,991
    Записей в дневнике
    6
    Репутация: 132 Добавить или отнять репутацию

    По умолчанию

    Лови Демку.
    https://yadi.sk/d/qW5NbKKncMswr

    И, вообще, смени подпись. Бесишь нецензурщиной. А еще очки надел.

    Админы, че не следите за чистотой форума?

  2. #1322
    Местный Аватар для Potato
    Информация о пользователе
    Регистрация
    12.04.2012
    Адрес
    Вторая палатка слева
    Сообщений
    243
    Записей в дневнике
    1
    Репутация: 5 Добавить или отнять репутацию

    По умолчанию

    Скорее вызови отряд инквизиции, пока родители не увидели нецензурщину и не наругали. А очки я не одевал, хотя бы потому что это не я, а герой игры SCP9000

    Да всё работает, но конечно лучше тоже самое, но через меню, хотя можно попробовать и этим.
    Последний раз редактировалось Potato; 29.10.2014 в 13:43.

  3. #1323
    Познающий Аватар для ZoWW
    Информация о пользователе
    Регистрация
    15.12.2013
    Сообщений
    487
    Репутация: 12 Добавить или отнять репутацию

    По умолчанию

    Здравствуйте форумчане! Нужен скрипт сундука\склада для VX Ace или адаптация скрипта Chest System под Ace. В VX данный скрипт работает, а вот в асе вылетает с ошибкой при запуске игры (Ошибка в 641 строчке кода.)

  4. #1324

  5. #1325
    Познающий Аватар для ZoWW
    Информация о пользователе
    Регистрация
    15.12.2013
    Сообщений
    487
    Репутация: 12 Добавить или отнять репутацию

    По умолчанию

    Спасибо за ссылки. Правда, ссылки в итоге приводят к одному и тому же скрипту ( в последнем варианте переработанному), который даже в собственном демо вылетает с ошибкой. Неужели авторы скриптов так плохо тестят свои творения?! К сожалению не подошло. Буду искать еще.

  6. #1326
    Супер-модератор Аватар для dirge
    Информация о пользователе
    Регистрация
    25.02.2013
    Сообщений
    924
    Репутация: 79 Добавить или отнять репутацию

    По умолчанию

    Ты уверен, что у тебя все порядке с мейкером? РТП стоит там и все дела, т.к. проблем со скриптами и уж темблее с демками нету.

  7. #1327
    Познающий Аватар для ZoWW
    Информация о пользователе
    Регистрация
    15.12.2013
    Сообщений
    487
    Репутация: 12 Добавить или отнять репутацию

    По умолчанию

    Насчет своего мейкера я уверен на 100%. Мейкер лиценз со стима. Скрипт делает ошибку во время выхода из сундука.

  8. #1328
    Познающий Аватар для ZoWW
    Информация о пользователе
    Регистрация
    15.12.2013
    Сообщений
    487
    Репутация: 12 Добавить или отнять репутацию

    По умолчанию

    Вот собственно сама ошибка.

  9. #1329
    Супер-модератор Аватар для dirge
    Информация о пользователе
    Регистрация
    25.02.2013
    Сообщений
    924
    Репутация: 79 Добавить или отнять репутацию

    По умолчанию

    А сразу говорить, что за ошибка и когда возникает, религия не позволяла? Ошибка в одной из не особо востребованных функций, для меня по крайней мере и остальных кто пользовался, и не заметил. Я ее поправил.

    Спойлер скрипт, оригинал:
    Код:
    #==============================================================================
    # Bravo Storage System
    #------------------------------------------------------------------------------
    # Author: Bravo2Kilo
    # Version: 2.0
    #
    # Version History:
    #   v1.0 = Initial Release
    #   v1.1 = Fixed a bug and added some commands.
    #   v2.0 = Added the ability to have multiple storage containers.
    #==============================================================================
    # Notes
    #   If category and gold are both set to false, you can only exchange items,
    #   if category is set to false and gold is set to true, you can only exchange
    #   gold.
    #==============================================================================
    # To open the storage scene use this command in a script call.
    #   open_storage(name, name_window, category, gold)
    #     name = the name of the storage
    #     name_window = (true or false)true to show the name window
    #     category = (true or false)true to show the category window
    #     gold = (true or false)true to show gold in the category window
    #
    # To add or remove items from a certain storage use this command in a script call
    #   storage_add_item(name, type, id, amount)
    #   storage_remove_item(name, type, id, amount)
    #     name = the name of the storage
    #     type = the type of item, can be(:item, :weapon, :armor)
    #     id = the database id of the item
    #     amount = the amount to add or remove
    #
    # To remove all items and gold in a certain storage use this command in a script call
    #   clear_storage(name)
    #     name = the name of the storage
    #
    # To check the amount of an item in a certain storage use this command in a script call
    #   storage_item_number(name, type, id)
    #     name = the name of the storage
    #     type = the type of item, can be(:item, :weapon, :armor)
    #     id = the database id of the item
    #
    # To add or remove gold from a certain storage use this command in a script call
    #   storage_add_gold(name, amount)
    #   storage_remove_gold(name, amount)
    #     name = the name of the storage
    #     amount = the amount to add or remove
    #
    # To check the amount of gold in a certain storage use this command in a script call
    #   storage_gold_number(name)
    #     name = the name of the storage
    #
    # If you want to set the max ammount of each item that can be in the storage,
    # use this notetag, if a notetage isn't used it will use the default max that
    # is defined below.
    #   <storagemax: X> were X = the max.
    #==============================================================================
    module BRAVO_STORAGE
      # The default max of an item that can be in storage.
      ITEM_MAX = 99
      # The max amount of gold that can be stored.
      GOLD_MAX = 99999999
      # The command name for removing items from storage.
      WITHDRAW_TEXT = "Take Out"
      # The command name for putting items into storage.
      STORE_TEXT = "Put In"
      # The command name for leaving the storage scene.
      CANCEL_TEXT = "Leave"
      # The storage name window width
      NAME_WIDTH = 160
    #==============================================================================
    # End of Configuration
    #==============================================================================
    end
    $imported ||= {}
    $imported[:Bravo_Storage] = true
    
    #==============================================================================
    # ** RPG::BaseItem
    #==============================================================================
    class RPG::BaseItem
      #--------------------------------------------------------------------------
      # * Item Storage Max
      #--------------------------------------------------------------------------
      def storage_max
        if @note =~ /<storagemax: (.*)>/i
          return $1.to_i
        else
          return BRAVO_STORAGE::ITEM_MAX
        end
      end
    end
    
    #==============================================================================
    # ** Game_Temp
    #==============================================================================
    
    class Game_Temp
      #--------------------------------------------------------------------------
      # * Public Instance Variables
      #--------------------------------------------------------------------------
      attr_accessor :storage_gold
      attr_accessor :storage_category
      attr_accessor :storage_name_window
      #--------------------------------------------------------------------------
      # * Object Initialization
      #--------------------------------------------------------------------------
      alias bravo_storage_initialize initialize
      def initialize
        bravo_storage_initialize
        @storage_gold = true
        @storage_category = true
        @storage_name_window = true
      end
    end
    
    #==============================================================================
    # ** Game_Party
    #==============================================================================
    
    class Game_Party < Game_Unit
      #--------------------------------------------------------------------------
      # * Public Instance Variables
      #--------------------------------------------------------------------------
      attr_reader   :storage_name
      #--------------------------------------------------------------------------
      # * Object Initialization
      #--------------------------------------------------------------------------
      alias bravo_storage_initialize initialize
      def initialize
        bravo_storage_initialize
        @storage_gold = {}
        @storage_items = {}
        @storage_weapons = {}
        @storage_armors = {}
        @storage_name = nil
      end
      #--------------------------------------------------------------------------
      # * Initialize Storage
      #--------------------------------------------------------------------------
      def init_storage(name)
        @storage_gold[name] ||= 0
        @storage_items[name] ||= {}
        @storage_weapons[name] ||= {}
        @storage_armors[name] ||= {}
      end
      #--------------------------------------------------------------------------
      # * Storage Name =
      #--------------------------------------------------------------------------
      def storage_name=(name)
        return if @storage_name == name
        @storage_name = name
        init_storage(name)
      end
      #--------------------------------------------------------------------------
      # * Clear Storage
      #--------------------------------------------------------------------------
      def clear_storage(name)
        @storage_gold[name] = 0
        @storage_items[name] = {}
        @storage_weapons[name] = {}
        @storage_armors[name] = {}
      end
      #--------------------------------------------------------------------------
      # * Get Item Object Array 
      #--------------------------------------------------------------------------
      def storage_items
        @storage_items[@storage_name].keys.sort.collect {|id| $data_items[id] }
      end
      #--------------------------------------------------------------------------
      # * Get Weapon Object Array 
      #--------------------------------------------------------------------------
      def storage_weapons
        @storage_weapons[@storage_name].keys.sort.collect {|id| $data_weapons[id] }
      end
      #--------------------------------------------------------------------------
      # * Get Armor Object Array 
      #--------------------------------------------------------------------------
      def storage_armors
        @storage_armors[@storage_name].keys.sort.collect {|id| $data_armors[id] }
      end
      #--------------------------------------------------------------------------
      # * Get Array of All Equipment Objects
      #--------------------------------------------------------------------------
      def storage_equip_items
        storage_weapons + storage_armors
      end
      #--------------------------------------------------------------------------
      # * Get Array of All Item Objects
      #--------------------------------------------------------------------------
      def storage_all_items
        storage_items + storage_equip_items
      end
      #--------------------------------------------------------------------------
      # * Get Container Object Corresponding to Item Class
      #--------------------------------------------------------------------------
      def storage_item_container(item_class)
        return @storage_items[@storage_name]   if item_class == RPG::Item
        return @storage_weapons[@storage_name] if item_class == RPG::Weapon
        return @storage_armors[@storage_name]  if item_class == RPG::Armor
        return nil
      end
      #--------------------------------------------------------------------------
      # * Storage Gold
      #--------------------------------------------------------------------------
      def storage_gold
        @storage_gold[@storage_name]
      end
      #--------------------------------------------------------------------------
      # * Increase Storage Gold
      #--------------------------------------------------------------------------
      def storage_gain_gold(amount)
        @storage_gold[@storage_name] = [[@storage_gold[@storage_name] + amount, 0].max, BRAVO_STORAGE::GOLD_MAX].min
      end
      #--------------------------------------------------------------------------
      # * Decrease Storage Gold
      #--------------------------------------------------------------------------
      def storage_lose_gold(amount)
        storage_gain_gold(-amount)
      end
      #--------------------------------------------------------------------------
      # * Get Maximum Number of Items in Storage
      #--------------------------------------------------------------------------
      def storage_max_item_number(item)
        return item.storage_max
      end
      #--------------------------------------------------------------------------
      # * Determine if Maximum Number of Items Are Possessed
      #--------------------------------------------------------------------------
      def storage_item_max?(item)
        storage_item_number(item) >= storage_max_item_number(item)
      end
      #--------------------------------------------------------------------------
      # * Get Number of Items Possessed
      #--------------------------------------------------------------------------
      def storage_item_number(item)
        container = storage_item_container(item.class)
        container ? container[item.id] || 0 : 0
      end
      #--------------------------------------------------------------------------
      # * Increase/Decrease Storage Items
      #--------------------------------------------------------------------------
      def storage_gain_item(item, amount)
        container = storage_item_container(item.class)
        return unless container
        last_number = storage_item_number(item)
        new_number = last_number + amount
        container[item.id] = [[new_number, 0].max, storage_max_item_number(item)].min
        container.delete(item.id) if container[item.id] == 0
      end
      #--------------------------------------------------------------------------
      # * Remove Storage Items
      #--------------------------------------------------------------------------
      def storage_lose_item(item, amount)
        storage_gain_item(item, -amount)
      end
    end
    
    #==============================================================================
    # ** Game_Interpreter
    #==============================================================================
    
    class Game_Interpreter
      #--------------------------------------------------------------------------
      # * Open Storage Scene
      #--------------------------------------------------------------------------
      def open_storage(name, name_window = true, category = true, gold = true)
        $game_party.storage_name = name
        $game_temp.storage_name_window = name_window
        $game_temp.storage_category = category
        $game_temp.storage_gold = gold
        SceneManager.call(Scene_Storage)
      end
      #--------------------------------------------------------------------------
      # * Clear Storage
      #--------------------------------------------------------------------------
      def clear_storage(name)
        $game_party.clear_storage(name)
      end
      #--------------------------------------------------------------------------
      # * Storage Add Item
      #--------------------------------------------------------------------------
      def storage_add_item(name, type, id, amount)
        $game_party.storage_name = name
        case type
        when :item
          item = $data_items[id]
        when :weapon
          item = $data_weapons[id]
        when :armor
          item = $data_armors[id]
        end
        $game_party.storage_gain_item(item, amount)
      end
      #--------------------------------------------------------------------------
      # * Storage Remove Item
      #--------------------------------------------------------------------------
      def storage_remove_item(name, type, id, amount)
        $game_party.storage_name = name
        case type
        when :item
          item = $data_items[id]
        when :weapon
          item = $data_weapons[id]
        when :armor
          item = $data_armors[id]
        end
        $game_party.storage_lose_item(item, amount)
      end
      #--------------------------------------------------------------------------
      # * Storage Item Number
      #--------------------------------------------------------------------------
      def storage_item_number(name, type, id)
        $game_party.storage_name = name
        case type
        when :item
          item = $data_items[id]
        when :weapon
          item = $data_weapons[id]
        when :armor
          item = $data_armors[id]
        end
        $game_party.storage_item_number(item)
      end
      #--------------------------------------------------------------------------
      # * Storage Add Gold
      #--------------------------------------------------------------------------
      def storage_add_gold(name, amount)
        $game_party.storage_name = name
        $game_party.storage_gain_gold(amount)
      end
      #--------------------------------------------------------------------------
      # * Storage Remove Gold
      #--------------------------------------------------------------------------
      def storage_remove_gold(name, amount)
        $game_party.storage_name = name
        $game_party.storage_lose_gold(amount)
      end
      #--------------------------------------------------------------------------
      # * Storage Gold Number
      #--------------------------------------------------------------------------
      def storage_gold_number(name)
        $game_party.storage_name = name
        $game_party.storage_gold
      end
    end
    
    #==============================================================================
    # ** Window_StorageCategory
    #==============================================================================
    
    class Window_StorageCategory < Window_ItemCategory
      #--------------------------------------------------------------------------
      # * Object Initialization
      #--------------------------------------------------------------------------
      def initialize(gold)
        @gold = gold
        super()
      end
      #--------------------------------------------------------------------------
      # * Get Digit Count
      #--------------------------------------------------------------------------
      def col_max
        if @gold == true
          return 4
        else
          return 3
        end
      end
      #--------------------------------------------------------------------------
      # * Create Command List
      #--------------------------------------------------------------------------
      def make_command_list
        add_command(Vocab::item, :item)
        add_command(Vocab::weapon, :weapon)
        add_command(Vocab::armor, :armor)
        add_command(Vocab::currency_unit, :gold) if @gold == true
      end
    end
    
    #==============================================================================
    # ** Window_ItemList
    #------------------------------------------------------------------------------
    #  This window displays a list of party items on the item screen.
    #==============================================================================
    
    class Window_StorageItemList < Window_ItemList
      #--------------------------------------------------------------------------
      # * Object Initialization
      #--------------------------------------------------------------------------
      def initialize(x, y, width, height)
        super(x, y, width, height)
        @storage = :none
      end
      #--------------------------------------------------------------------------
      # * Set Storage Flag
      #--------------------------------------------------------------------------
      def storage=(storage)
        return if @storage == storage
        @storage = storage
        refresh
        self.oy = 0
      end
      #--------------------------------------------------------------------------
      # * Include in Item List?
      #--------------------------------------------------------------------------
      def include?(item)
        case @category
        when :item
          item.is_a?(RPG::Item)
        when :weapon
          item.is_a?(RPG::Weapon)
        when :armor
          item.is_a?(RPG::Armor)
        when :all
          item
        else
          false
        end
      end
      #--------------------------------------------------------------------------
      # * Display in Enabled State?
      #--------------------------------------------------------------------------
      def enable?(item)
        if item.is_a?(RPG::Item)
          return true if !item.key_item?
        elsif item.is_a?(RPG::Weapon) || item.is_a?(RPG::Armor)
          return true
        else
          return false
        end
      end
      #--------------------------------------------------------------------------
      # * Create Item List
      #--------------------------------------------------------------------------
      def make_item_list
        case @storage
        when :store
          @data = $game_party.all_items.select {|item| include?(item) }
          @data.push(nil) if include?(nil)
        when :withdraw
          @data = $game_party.storage_all_items.select {|item| include?(item) }
          @data.push(nil) if include?(nil)
        end
      end
      #--------------------------------------------------------------------------
      # * Draw Number of Items
      #--------------------------------------------------------------------------
      def draw_item_number(rect, item)
        case @storage
        when :store
          draw_text(rect, sprintf(":%2d", $game_party.item_number(item)), 2)
        when :withdraw
          draw_text(rect, sprintf(":%2d", $game_party.storage_item_number(item)), 2)
        end
      end
    end
    
    #==============================================================================
    # ** Window_StorageCommand
    #==============================================================================
    
    class Window_StorageCommand < Window_HorzCommand
      #--------------------------------------------------------------------------
      # * Object Initialization
      #--------------------------------------------------------------------------
      def initialize
        super(0, 0)
      end
      #--------------------------------------------------------------------------
      # * Get Window Width
      #--------------------------------------------------------------------------
      def window_width
        if $game_temp.storage_name_window == false
          return 544
        else
          Graphics.width - BRAVO_STORAGE::NAME_WIDTH
        end
      end
      #--------------------------------------------------------------------------
      # * Get Digit Count
      #--------------------------------------------------------------------------
      def col_max
        return 3
      end
      #--------------------------------------------------------------------------
      # * Create Command List
      #--------------------------------------------------------------------------
      def make_command_list
        add_command(BRAVO_STORAGE::WITHDRAW_TEXT, :withdraw)
        add_command(BRAVO_STORAGE::STORE_TEXT, :store)
        add_command(BRAVO_STORAGE::CANCEL_TEXT, :cancel)
      end
    end
    
    #==============================================================================
    # ** Window_StorageName
    #==============================================================================
    class Window_StorageName < Window_Base
      #--------------------------------------------------------------------------
      # * Object Initialization
      #--------------------------------------------------------------------------
      def initialize
        super(0, 0, window_width, fitting_height(1))
        refresh
      end
      #--------------------------------------------------------------------------
      # * Get Window Width
      #--------------------------------------------------------------------------
      def window_width
        return BRAVO_STORAGE::NAME_WIDTH
      end
      #--------------------------------------------------------------------------
      # * Refresh
      #--------------------------------------------------------------------------
      def refresh
        contents.clear
        name = $game_party.storage_name
        draw_text(0, 0, window_width, line_height, name)
      end
      #--------------------------------------------------------------------------
      # * Open Window
      #--------------------------------------------------------------------------
      def open
        refresh
        super
      end
    end
    
    #==============================================================================
    # ** Window_StorageNumber
    #==============================================================================
    
    class Window_StorageNumber < Window_Selectable
      #--------------------------------------------------------------------------
      # * Public Instance Variables
      #--------------------------------------------------------------------------
      attr_reader   :number                   # quantity entered
      #--------------------------------------------------------------------------
      # * Object Initialization
      #--------------------------------------------------------------------------
      def initialize
        super(0, 0, window_width, window_height) 
        @item = nil
        @max = 1
        @number = 1
      end
      #--------------------------------------------------------------------------
      # * Get Window Width
      #--------------------------------------------------------------------------
      def window_width
        return 304
      end
      #--------------------------------------------------------------------------
      # * Get Window Height
      #--------------------------------------------------------------------------
      def window_height
        return 48
      end
      #--------------------------------------------------------------------------
      # * Set Item, Max Quantity
      #--------------------------------------------------------------------------
      def set(item, max)
        @item = item
        @max = max
        @number = 1
        refresh
      end
      #--------------------------------------------------------------------------
      # * Refresh
      #--------------------------------------------------------------------------
      def refresh
        contents.clear
        draw_item_name(@item, 0, 0)
        draw_number
      end
      #--------------------------------------------------------------------------
      # * Draw Quantity
      #--------------------------------------------------------------------------
      def draw_number
        change_color(normal_color)
        draw_text(cursor_x - 28, 0, 22, line_height, "×")
        draw_text(cursor_x, 0, cursor_width - 4, line_height, @number, 2)
      end
      #--------------------------------------------------------------------------
      # * Get Cursor Width
      #--------------------------------------------------------------------------
      def cursor_width
        figures * 10 + 12
      end
      #--------------------------------------------------------------------------
      # * Get X Coordinate of Cursor
      #--------------------------------------------------------------------------
      def cursor_x
        contents_width - cursor_width - 4
      end
      #--------------------------------------------------------------------------
      # * Get Maximum Number of Digits for Quantity Display
      #--------------------------------------------------------------------------
      def figures
        return 2
      end
      #--------------------------------------------------------------------------
      # * Frame Update
      #--------------------------------------------------------------------------
      def update
        super
        if active
          last_number = @number
          update_number
          if @number != last_number
            Sound.play_cursor
            refresh
          end
        end
      end
      #--------------------------------------------------------------------------
      # * Update Quantity
      #--------------------------------------------------------------------------
      def update_number
        change_number(1)   if Input.repeat?(:RIGHT)
        change_number(-1)  if Input.repeat?(:LEFT)
        change_number(10)  if Input.repeat?(:UP)
        change_number(-10) if Input.repeat?(:DOWN)
      end
      #--------------------------------------------------------------------------
      # * Change Quantity
      #--------------------------------------------------------------------------
      def change_number(amount)
        @number = [[@number + amount, @max].min, 1].max
      end
      #--------------------------------------------------------------------------
      # * Update Cursor
      #--------------------------------------------------------------------------
      def update_cursor
        cursor_rect.set(cursor_x, 0, cursor_width, line_height)
      end
    end
    
    #==============================================================================
    # ** Window_GoldTransfer
    #==============================================================================
    
    class Window_GoldTransfer < Window_Selectable
      #--------------------------------------------------------------------------
      # * Public Instance Variables
      #--------------------------------------------------------------------------
      attr_reader   :number                   # quantity entered
      #--------------------------------------------------------------------------
      # * Object Initialization
      #--------------------------------------------------------------------------
      def initialize
        super(0, 0, window_width, window_height) 
        @item = nil
        @max = 1
        @number = 1
        @cursor_y = 0
      end
      #--------------------------------------------------------------------------
      # * Get Window Width
      #--------------------------------------------------------------------------
      def window_width
        return 330
      end
      #--------------------------------------------------------------------------
      # * Get Window Height
      #--------------------------------------------------------------------------
      def window_height
        return 72
      end
      #--------------------------------------------------------------------------
      # * Set Item, Max Quantity
      #--------------------------------------------------------------------------
      def set(max, position)
        @max = max
        @number = 1
        @cursor_y = position
        refresh
      end
      #--------------------------------------------------------------------------
      # * Refresh
      #--------------------------------------------------------------------------
      def refresh
        contents.clear
        draw_gold_info
        draw_number
      end
      #--------------------------------------------------------------------------
      # * Display in Enabled State?
      #--------------------------------------------------------------------------
      def enabled?
        if @cursor_y == 0
          return true if $game_party.gold > 0
        else
          return true if $game_party.storage_gold > 0
        end
        return false
      end
      #--------------------------------------------------------------------------
      # * Processing When OK Button Is Pressed
      #--------------------------------------------------------------------------
      def process_ok
        if enabled?
          Sound.play_ok
          Input.update
          deactivate
          call_ok_handler
        else
          Sound.play_buzzer
        end
      end
      #--------------------------------------------------------------------------
      # * Draw Gold Info
      #--------------------------------------------------------------------------
      def draw_gold_info
        party = "Party " + Vocab::currency_unit + " :"
        storage = "Storage " + Vocab::currency_unit + " :"
        draw_text(0, 0, 280, line_height, party)
        draw_text(0, 24, 280, line_height, storage)
        draw_text(0, 0, 225, line_height, $game_party.gold, 2)
        draw_text(0, 24, 225, line_height, $game_party.storage_gold, 2)
      end
      #--------------------------------------------------------------------------
      # * Draw Quantity
      #--------------------------------------------------------------------------
      def draw_number
        change_color(normal_color)
        draw_text(cursor_x - 28, @cursor_y, 22, line_height, "×")
        draw_text(cursor_x, @cursor_y, cursor_width - 4, line_height, @number, 2)
      end
      #--------------------------------------------------------------------------
      # * Get Cursor Width
      #--------------------------------------------------------------------------
      def cursor_width
        figures * 10 + 12
      end
      #--------------------------------------------------------------------------
      # * Get X Coordinate of Cursor
      #--------------------------------------------------------------------------
      def cursor_x
        contents_width - cursor_width - 4
      end
      #--------------------------------------------------------------------------
      # * Get Maximum Number of Digits for Quantity Display
      #--------------------------------------------------------------------------
      def figures
        return 3
      end
      #--------------------------------------------------------------------------
      # * Frame Update
      #--------------------------------------------------------------------------
      def update
        super
        if active
          last_number = @number
          update_number
          if @number != last_number
            Sound.play_cursor
            refresh
          end
        end
      end
      #--------------------------------------------------------------------------
      # * Update Quantity
      #--------------------------------------------------------------------------
      def update_number
        change_number(1)   if Input.repeat?(:RIGHT)
        change_number(-1)  if Input.repeat?(:LEFT)
        change_number(10)  if Input.repeat?(:UP)
        change_number(-10) if Input.repeat?(:DOWN)
      end
      #--------------------------------------------------------------------------
      # * Change Quantity
      #--------------------------------------------------------------------------
      def change_number(amount)
        @number = [[@number + amount, @max].min, 1].max
      end
      #--------------------------------------------------------------------------
      # * Update Cursor
      #--------------------------------------------------------------------------
      def update_cursor
        @cursor_y ||= 0
        cursor_rect.set(cursor_x, @cursor_y, cursor_width, line_height)
      end
    end
    
    #==============================================================================
    # ** Scene_Storage
    #==============================================================================
    
    class Scene_Storage < Scene_MenuBase
      #--------------------------------------------------------------------------
      # * Start Processing
      #--------------------------------------------------------------------------
      def start
        super
        @storage_gold = $game_temp.storage_gold
        @storage_category = $game_temp.storage_category
        @storage_name_window = $game_temp.storage_name_window
        create_help_window
        create_command_window
        create_name_window
        create_dummy_window
        create_category_window
        create_item_window
        create_number_window
        create_gold_window
      end
      #--------------------------------------------------------------------------
      # * Create Command Window
      #--------------------------------------------------------------------------
      def create_command_window
        @command_window = Window_StorageCommand.new
        @command_window.viewport = @viewport
        @command_window.y = @help_window.height
        @command_window.set_handler(:withdraw, method(:command_withdraw))
        @command_window.set_handler(:store, method(:command_store))
        @command_window.set_handler(:cancel, method(:return_scene))
      end
      #--------------------------------------------------------------------------
      # * Create Storage Name Window
      #--------------------------------------------------------------------------
      def create_name_window
        @name_window = Window_StorageName.new
        @name_window.viewport = @viewport
        @name_window.x = @command_window.width
        @name_window.y = @help_window.height
        if @storage_name_window == true
          @name_window.show
        end
      end
      #--------------------------------------------------------------------------
      # * Create Dummy Window
      #--------------------------------------------------------------------------
      def create_dummy_window
        wy = @command_window.y + @command_window.height
        wh = Graphics.height - wy
        @dummy_window = Window_Base.new(0, wy, Graphics.width, wh)
        @dummy_window.viewport = @viewport
      end
      #--------------------------------------------------------------------------
      # * Create Quantity Input Window
      #--------------------------------------------------------------------------
      def create_number_window
        @number_window = Window_StorageNumber.new
        @number_window.viewport = @viewport
        @number_window.x = ((Graphics.width / 2) - (@number_window.width / 2)) 
        @number_window.y = ((Graphics.height / 2) - (@number_window.height / 2)) 
        @number_window.hide
        @number_window.set_handler(:ok,     method(:on_number_ok))
        @number_window.set_handler(:cancel, method(:on_number_cancel))
      end
      #--------------------------------------------------------------------------
      # * Create Category Window
      #--------------------------------------------------------------------------
      def create_category_window
        @category_window = Window_StorageCategory.new(@storage_gold)
        @category_window.viewport = @viewport
        @category_window.help_window = @help_window
        @category_window.y = @dummy_window.y
        @category_window.hide.deactivate
        @category_window.set_handler(:ok,     method(:on_category_ok))
        @category_window.set_handler(:cancel, method(:on_category_cancel))
      end
      #--------------------------------------------------------------------------
      # * Create Item Window
      #--------------------------------------------------------------------------
      def create_item_window
        if @storage_category == false
          wy = @command_window.y + @command_window.height
        else
          wy = @category_window.y + @category_window.height
        end
        wh = Graphics.height - wy
        @item_window = Window_StorageItemList.new(0, wy, Graphics.width, wh)
        @item_window.viewport = @viewport
        @item_window.help_window = @help_window
        @item_window.hide
        @item_window.set_handler(:ok,     method(:on_item_ok))
        @item_window.set_handler(:cancel, method(:on_item_cancel))
        if @storage_category == false
          @item_window.category = :all
        else
          @category_window.item_window = @item_window
        end
      end
      #--------------------------------------------------------------------------
      # * Create Item Window
      #--------------------------------------------------------------------------
      def create_gold_window
        @gold_window = Window_GoldTransfer.new
        @gold_window.viewport = @viewport
        @gold_window.x = ((Graphics.width / 2) - (@gold_window.width / 2)) 
        @gold_window.y = ((Graphics.height / 2) - (@gold_window.height / 2)) 
        @gold_window.hide
        @gold_window.set_handler(:ok,     method(:on_gold_ok))
        @gold_window.set_handler(:cancel, method(:on_gold_cancel))
      end
      #--------------------------------------------------------------------------
      # * Start Category Selection
      #--------------------------------------------------------------------------
      def start_category_selection
        @dummy_window.hide
        @item_window.show
        @item_window.unselect
        @item_window.refresh
        @item_window.storage = @command_window.current_symbol
        @category_window.show.activate
      end
      #--------------------------------------------------------------------------
      # * [Withdraw] Command
      #--------------------------------------------------------------------------
      def command_withdraw
        if @storage_category == false and @storage_gold == true
          case @command_window.current_symbol
          when :withdraw
            @gold_window.set(max_withdraw, 24)
          when :store
            @gold_window.set(max_store, 0)
          end
          @gold_window.show.activate
        elsif @storage_category == false
          @dummy_window.hide
          @item_window.show.activate
          @item_window.storage = @command_window.current_symbol
          @item_window.select_last
        else
          start_category_selection
        end
      end
      #--------------------------------------------------------------------------
      # * [Store] Command
      #--------------------------------------------------------------------------
      def command_store
        if @storage_category == false and @storage_gold == true
          case @command_window.current_symbol
          when :withdraw
            @gold_window.set(max_withdraw, 24)
          when :store
            @gold_window.set(max_store, 0)
          end
          @gold_window.show.activate
        elsif @storage_category == false
          @dummy_window.hide
          @item_window.show.activate
          @item_window.storage = @command_window.current_symbol
          @item_window.select_last
        else
          start_category_selection
        end
      end
      #--------------------------------------------------------------------------
      # * Category [OK]
      #--------------------------------------------------------------------------
      def on_category_ok
        case @category_window.current_symbol
        when :item, :weapon, :armor
          @item_window.activate
          @item_window.select_last
        when :gold
          case @command_window.current_symbol
          when :withdraw
            @gold_window.set(max_withdraw, 24)
          when :store
            @gold_window.set(max_store, 0)
          end
          @gold_window.show.activate
        end
      end
      #--------------------------------------------------------------------------
      # * Category [Cancel]
      #--------------------------------------------------------------------------
      def on_category_cancel
        @command_window.activate
        @dummy_window.show
        @item_window.hide
        @category_window.hide
      end
      #--------------------------------------------------------------------------
      # * Item [OK]
      #--------------------------------------------------------------------------
      def on_item_ok
        @item = @item_window.item
        case @command_window.current_symbol
        when :withdraw
          @number_window.set(@item, max_withdraw)
        when :store
          @number_window.set(@item, max_store)
        end
        @number_window.show.activate
      end
      #--------------------------------------------------------------------------
      # * Item [Cancel]
      #--------------------------------------------------------------------------
      def on_item_cancel
        @item_window.unselect
        if @storage_category == false
          @item_window.hide
          @dummy_window.show
          @command_window.activate
        else
          @category_window.activate
        end
      end
      #--------------------------------------------------------------------------
      # * Quantity Input [OK]
      #--------------------------------------------------------------------------
      def on_number_ok
        Sound.play_ok
        case @command_window.current_symbol
        when :withdraw
          do_withdraw(@number_window.number)
        when :store
          do_store(@number_window.number)
        end
        @number_window.hide
        @item_window.refresh
        @item_window.activate
        @item_window.select_last
      end
      #--------------------------------------------------------------------------
      # * Quantity Input [Cancel]
      #--------------------------------------------------------------------------
      def on_number_cancel
        Sound.play_cancel
        @number_window.hide
        @item_window.activate
      end
      #--------------------------------------------------------------------------
      # * Gold Quantity Input [OK]
      #--------------------------------------------------------------------------
      def on_gold_ok
        case @command_window.current_symbol
        when :withdraw
          gold_withdraw(@gold_window.number)
          @gold_window.set(max_withdraw, 24)
        when :store
          gold_store(@gold_window.number)
          @gold_window.set(max_store, 0)
        end
        @gold_window.show.activate
        @gold_window.refresh
        Sound.play_ok
      end
      #--------------------------------------------------------------------------
      # * Gold Quantity Input [Cancel]
      #--------------------------------------------------------------------------
      def on_gold_cancel
        Sound.play_cancel
        if @storage_category == false && @storage_gold == true
          @command_window.activate
        else
          start_category_selection
        end
        @gold_window.hide
      end
      #--------------------------------------------------------------------------
      # * Execute Withdraw
      #--------------------------------------------------------------------------
      def do_withdraw(number)
        $game_party.storage_lose_item(@item, number)
        $game_party.gain_item(@item, number)
      end
      #--------------------------------------------------------------------------
      # * Execute Store
      #--------------------------------------------------------------------------
      def do_store(number)
        $game_party.storage_gain_item(@item, number)
        $game_party.lose_item(@item, number)
      end
      #--------------------------------------------------------------------------
      # * Gold Withdraw
      #--------------------------------------------------------------------------
      def gold_withdraw(number)
        $game_party.storage_lose_gold(number)
        $game_party.gain_gold(number)
      end
      #--------------------------------------------------------------------------
      # * Gold Store
      #--------------------------------------------------------------------------
      def gold_store(number)
        $game_party.lose_gold(number)
        $game_party.storage_gain_gold(number)
      end
      #--------------------------------------------------------------------------
      # * Get Maximum Quantity Withdrawable
      #--------------------------------------------------------------------------
      def max_withdraw
        case @category_window.current_symbol
        when :item, :weapon, :armor
          if $game_party.storage_item_number(@item) > 99
            return 99
          else
            $game_party.storage_item_number(@item)
          end
        when :gold
          if $game_party.storage_gold > 999
            return 999
          else
            $game_party.storage_gold
          end
        end
      end
      #--------------------------------------------------------------------------
      # * Get Maximum Quantity Storable
      #--------------------------------------------------------------------------
      def max_store
        case @category_window.current_symbol
        when :item, :weapon, :armor
          if $game_party.item_number(@item) > 99
            return 99
          else
            $game_party.item_number(@item)
          end
        when :gold
          if $game_party.gold > 999
            return 999
          else
            $game_party.gold
          end
        end
      end
    end

    Вставь в демку правленую версию, и ничего вылетать не будет.

  10. #1330
    Познающий Аватар для ZoWW
    Информация о пользователе
    Регистрация
    15.12.2013
    Сообщений
    487
    Репутация: 12 Добавить или отнять репутацию

    По умолчанию

    Спасибо! С религией всё в порядке, просто не сразу сообразил, что от меня требуется скрин. Действительно, обновленный вариант работает на ура.

Страница 133 из 190 ПерваяПервая ... 3383123131132133134135143183 ... ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 5 (пользователей: 0 , гостей: 5)

Метки этой темы

Социальные закладки

Социальные закладки

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •  
Поиск скриптов