| 赞 | 0  | 
 
| VIP | 0 | 
 
| 好人卡 | 0 | 
 
| 积分 | 1 | 
 
| 经验 | 17573 | 
 
| 最后登录 | 2020-3-13 | 
 
| 在线时间 | 304 小时 | 
 
 
 
 
 
Lv1.梦旅人 
	- 梦石
 - 0 
 
        - 星屑
 - 138 
 
        - 在线时间
 - 304 小时
 
        - 注册时间
 - 2014-4-11
 
        - 帖子
 - 419
 
 
 
 | 
	
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员  
 
x
 
我用了物品制造这个脚本- #encoding:utf-8
 
 - #==============================================================================
 
 - # 本腳本來自www.66RPG.com,使用和轉載請保留此信息
 
 - #============================================================================== 
 
 - #==============================================================================
 
 - #
 
 - #每添加一个制造的类型,最上面的类别菜单就会多一项。
 
 - #
 
 - #添加类型的方法是:
 
 - #$game_party.add_cook_type(类别名称,类别介绍, 类别状态-默认false)
 
 - #
 
 - #举例:
 
 - #$game_party.add_cook_type("制药","调配药品", true)
 
 - #
 
 - #添加配方的方法:
 
 - #$game_party.add_cookbook(配方名称, 配方介绍, 配方类别名称,材料的二维数组,产出物的二维数组,配方状态)
 
 - #
 
 - #举例:
 
 - #$game_party.add_cookbook("初级补血药水", "制作初级补血药水", "制药",[[18,2]],[[1,1]],true)
 
 - #
 
 - #调用窗口的方法:SceneManager.call(Scene_Cook)
 
 - #
 
 - #
 
 - #==============================================================================
 
  
- #==============================================================================
 
 - # ■ Cookbook_Type
 
 - #------------------------------------------------------------------------------
 
 - #  食谱类型类。
 
 - #==============================================================================
 
  
- class Cookbook_Type
 
 -   attr_reader :index
 
 -   attr_reader :name
 
 -   attr_reader :description
 
 -   attr_reader :enabled
 
 -   #--------------------------------------------------------------------------
 
 -   # ● 初始化对象
 
 -   #--------------------------------------------------------------------------
 
 -   def initialize(index, name, description, enabled = false)
 
 -     @index = index
 
 -     @name = name
 
 -     @description = description
 
 -     @enabled = enabled
 
 -   end
 
 -   
 
 -   def enable(en)
 
 -     @enabled = en
 
 -   end
 
 - end
 
  
- #==============================================================================
 
 - # ■ Cookbook
 
 - #------------------------------------------------------------------------------
 
 - #  食谱类。本类在 Game_Task 类的内部使用。
 
 - #   食谱属性:食谱序号,食谱名称,食谱类型,食谱介绍,原料,成品
 
 - #==============================================================================
 
  
- class Cookbook
 
 -   attr_reader :index
 
 -   attr_reader :name
 
 -   attr_reader :description
 
 -   attr_reader :type
 
 -   attr_reader :input
 
 -   attr_reader :output
 
 -   attr_reader :enabled
 
 -   #--------------------------------------------------------------------------
 
 -   # ● 初始化对象
 
 -   #--------------------------------------------------------------------------
 
 -   def initialize(index, name, description, type, input, output, enabled = true)
 
 -     @index = index
 
 -     @name = name
 
 -     @description = description
 
 -     @type = type
 
 -     @input = input
 
 -     @output = output
 
 -     @enabled = enabled
 
 -   end
 
 -   
 
 -   def enable(en)
 
 -     @enabled = en
 
 -   end
 
 -   
 
 -   #--------------------------------------------------------------------------
 
 -   # ● 查询列表中的物品
 
 -   #--------------------------------------------------------------------------
 
 -   def in_list?(item, list)
 
 -     list.each do |arr|
 
 -       return true if arr[0] == item.id
 
 -     end
 
 -     return false
 
 -   end
 
 -   #--------------------------------------------------------------------------
 
 -   # ● 查询是否是材料列表中的物品
 
 -   #--------------------------------------------------------------------------
 
 -   def resource?(item)
 
 -     in_list?(item, @input)
 
 -   end
 
 -   #--------------------------------------------------------------------------
 
 -   # ● 查询是否是产出列表中的物品
 
 -   #--------------------------------------------------------------------------
 
 -   def output?(item)
 
 -     in_list?(item, @output)
 
 -   end
 
 -   #--------------------------------------------------------------------------
 
 -   # ● 查询材料需求量
 
 -   #--------------------------------------------------------------------------
 
 -   def amount(item, i)
 
 -     if i == 0
 
 -       @input.each do |arr|
 
 -         return arr[1] if arr[0] == item.id
 
 -       end
 
 -     else
 
 -       @output.each do |arr|
 
 -         return arr[1] if arr[0] == item.id
 
 -       end
 
 -     end
 
 -     return 0
 
 -   end
 
 -   #--------------------------------------------------------------------------
 
 -   # ● 查询材料是否足够
 
 -   #--------------------------------------------------------------------------
 
 -   def enough?
 
 -     input.each do |arr|
 
 -       return false if $data_items[arr[0]] && arr[1] > $game_party.item_number($data_items[arr[0]])
 
 -     end
 
 -     return true
 
 -   end
 
 -   #--------------------------------------------------------------------------
 
 -   # ● 查询某件材料是否足够
 
 -   #--------------------------------------------------------------------------
 
 -   def item_enough?(item)
 
 -     input.each do |arr|
 
 -       return false if arr[0] == item.id && arr[1] > $game_party.item_number(item)
 
 -     end
 
 -     return true
 
 -   end
 
 - end
 
  
- #==============================================================================
 
 - # ■ Game_Party
 
 - #==============================================================================
 
  
- class Game_Party < Game_Unit
 
 -   #--------------------------------------------------------------------------
 
 -   # ● 初始化对象
 
 -   #--------------------------------------------------------------------------
 
 -   alias old_init initialize
 
 -   def initialize
 
 -     old_init
 
 -     @cook_types = []
 
 -     @cookbooks = []
 
 -   end
 
 -   #--------------------------------------------------------------------------
 
 -   # ● 添加新的制造类型
 
 -   #--------------------------------------------------------------------------
 
 -   def add_cook_type(n, d, en)
 
 -     @cook_types.push(Cookbook_Type.new(@cook_types.size, n, d, en)) if !have_cook_type?(n)
 
 -   end
 
 -   #--------------------------------------------------------------------------
 
 -   # ● 添加新的食谱
 
 -   #--------------------------------------------------------------------------
 
 -   def add_cookbook(n, d, type, input, output, en)
 
 -     if !have_cookbook?(n) && have_cook_type?(type)
 
 -       @cookbooks.push(Cookbook.new(@cookbooks.size, n, d, type, input, output, en)) 
 
 -     end
 
 -   end
 
 -   #--------------------------------------------------------------------------
 
 -   # ● 判断名称为n的制造类型是否存在
 
 -   #--------------------------------------------------------------------------
 
 -   def have_cook_type?(n)
 
 -     @cook_types.each do |x|
 
 -       return true if x.name == n
 
 -     end
 
 -     return false
 
 -   end
 
 -   #--------------------------------------------------------------------------
 
 -   # ● 判断名称为n的食谱是否存在
 
 -   #--------------------------------------------------------------------------
 
 -   def have_cookbook?(n)
 
 -     @cookbooks.each do |x|
 
 -       return true if x.name == n
 
 -     end
 
 -     return false
 
 -   end
 
 -   #--------------------------------------------------------------------------
 
 -   # ● 返回制造类型列表
 
 -   #--------------------------------------------------------------------------
 
 -   def cook_types
 
 -     return @cook_types
 
 -   end
 
 -   #--------------------------------------------------------------------------
 
 -   # ● 返回食谱列表
 
 -   #--------------------------------------------------------------------------
 
 -   def cookbooks(type = nil)
 
 -     return @cookbooks if type == nil 
 
 -     arr = []
 
 -     @cookbooks.each do |x|
 
 -       arr.push(x) if x.type == type
 
 -     end
 
 -     return arr
 
 -   end
 
 -   #--------------------------------------------------------------------------
 
 -   # ● 更改序号为i的制造类型的使用状态
 
 -   #--------------------------------------------------------------------------
 
 -   def set_cook_type(i, en)
 
 -     @cook_types[i].enable(en)
 
 -   end
 
 -   #--------------------------------------------------------------------------
 
 -   # ● 更改序号为i的食谱的使用状态
 
 -   #--------------------------------------------------------------------------
 
 -   def set_cookbook(i, en)
 
 -     @cookbooks[i].enable(en)
 
 -   end
 
 -   #--------------------------------------------------------------------------
 
 -   # ● 返回制造类型数目
 
 -   #--------------------------------------------------------------------------
 
 -   def cook_types_size
 
 -     return @cook_types.size
 
 -   end
 
 -   #--------------------------------------------------------------------------
 
 -   # ● 查询名称为n的制造类型的描述
 
 -   #--------------------------------------------------------------------------
 
 -   def cook_type_description(n)
 
 -     @cook_types.each do |x|
 
 -       return x.description if x.name == n
 
 -     end
 
 -     return ""
 
 -   end
 
 - end
 
  
- #==============================================================================
 
 - # ■ Scene_Cook
 
 - #------------------------------------------------------------------------------
 
 - #  制造画面
 
 - #==============================================================================
 
  
- class Scene_Cook < Scene_ItemBase
 
 -   #--------------------------------------------------------------------------
 
 -   # ● 开始处理
 
 -   #--------------------------------------------------------------------------
 
 -   def start
 
 -     super
 
 -     create_category_window
 
 -     create_cookbook_window
 
 -     create_description_window
 
 -     create_needs_window
 
 -   end
 
 -   #--------------------------------------------------------------------------
 
 -   # ● 生成分类窗口
 
 -   #--------------------------------------------------------------------------
 
 -   def create_category_window
 
 -     @category_window = Window_CookCategory.new
 
 -     @category_window.viewport = @viewport
 
 -     @category_window.y = 0
 
 -     @category_window.set_handler(:ok,     method(:on_category_ok))
 
 -     @category_window.set_handler(:cancel, method(:return_scene))
 
 -   end
 
 -   #--------------------------------------------------------------------------
 
 -   # ● 生成食谱窗口
 
 -   #--------------------------------------------------------------------------
 
 -   def create_cookbook_window
 
 -     wy = @category_window.height
 
 -     wh = Graphics.height - wy
 
 -     @item_window = Window_CookList.new(0, wy, Graphics.width*0.5 , wh)
 
 -     @item_window.viewport = @viewport
 
 -     @item_window.set_handler(:ok,     method(:on_item_ok))
 
 -     @item_window.set_handler(:cancel, method(:on_item_cancel))
 
 -     @category_window.item_window = @item_window
 
 -   end
 
 -   #--------------------------------------------------------------------------
 
 -   # ● 生成描述窗口
 
 -   #--------------------------------------------------------------------------
 
 -   def create_description_window
 
 -     wy = @category_window.height
 
 -     @help_window = Window_Description.new(Graphics.width*0.5, wy)
 
 -     @help_window.viewport = @viewport
 
 -     @item_window.help_window = @help_window
 
 -     @category_window.help_window = @help_window
 
 -   end
 
 -     #--------------------------------------------------------------------------
 
 -   # ● 生成材料窗口
 
 -   #--------------------------------------------------------------------------
 
 -   def create_needs_window
 
 -     wy = @category_window.height + @help_window.height
 
 -     wh = Graphics.height - wy
 
 -     @needs_window = Window_NeedsList.new(Graphics.width*0.5, wy, Graphics.width*0.5 , wh)
 
 -     #@item_window.viewport = @viewport
 
 -     @item_window.needs_window = @needs_window
 
 -     
 
 -   end
 
 -   #--------------------------------------------------------------------------
 
 -   # ● 分类“确定”
 
 -   #--------------------------------------------------------------------------
 
 -   def on_category_ok
 
 -     @item_window.activate
 
 -     @item_window.select_last
 
 -   end
 
 -   #--------------------------------------------------------------------------
 
 -   # ● 食谱“确定”
 
 -   #--------------------------------------------------------------------------
 
 -   def on_item_ok
 
 -     #$game_party.last_item.object = item
 
 -     cook
 
 -   end
 
 -   #--------------------------------------------------------------------------
 
 -   # ● 食谱“取消”
 
 -   #--------------------------------------------------------------------------
 
 -   def on_item_cancel
 
 -     @item_window.unselect
 
 -     @category_window.activate
 
 -   end
 
 -   #--------------------------------------------------------------------------
 
 -   # ● 制造
 
 -   #--------------------------------------------------------------------------
 
 -   def cook
 
 -     if item.enough?
 
 -       play_se_for_item
 
 -       use_item
 
 -       @needs_window.refresh
 
 -       @item_window.refresh
 
 -       activate_item_window
 
 -     end
 
 -   end
 
 -   #--------------------------------------------------------------------------
 
 -   # ● 播放制作声效
 
 -   #--------------------------------------------------------------------------
 
 -   def play_se_for_item
 
 -     Sound.play_recovery
 
 -   end
 
 -   #--------------------------------------------------------------------------
 
 -   # ● 使用食谱
 
 -   #--------------------------------------------------------------------------
 
 -   def use_item
 
 -     #super
 
 -     #@item_window.redraw_current_item
 
 -     $data_items.each do |it|
 
 -       if it && !it.name.empty?
 
 -         $game_party.gain_item(it,-item.amount(it,0)) if item.resource?(it)
 
 -         $game_party.gain_item(it,item.amount(it,1)) if item.output?(it)
 
 -       end
 
 -     end
 
 -   end
 
 - end
 
  
 
- #==============================================================================
 
 - # ■ Window_CookCategory
 
 - #------------------------------------------------------------------------------
 
 - #  制造画面中,显示制造类型的窗口。
 
 - #==============================================================================
 
  
- class Window_CookCategory < Window_HorzCommand
 
 -   #--------------------------------------------------------------------------
 
 -   # ● 定义实例变量
 
 -   #--------------------------------------------------------------------------
 
 -   attr_reader   :item_window
 
 -   #--------------------------------------------------------------------------
 
 -   # ● 初始化对象
 
 -   #--------------------------------------------------------------------------
 
 -   def initialize
 
 -     super(0, 0)
 
 -   end
 
 -   #--------------------------------------------------------------------------
 
 -   # ● 获取窗口的宽度
 
 -   #--------------------------------------------------------------------------
 
 -   def window_width
 
 -     Graphics.width
 
 -   end
 
 -   #--------------------------------------------------------------------------
 
 -   # ● 获取列数
 
 -   #--------------------------------------------------------------------------
 
 -   def col_max
 
 -     return $game_party.cook_types_size
 
 -   end
 
 -   #--------------------------------------------------------------------------
 
 -   # ● 更新画面
 
 -   #--------------------------------------------------------------------------
 
 -   def update
 
 -     super
 
 -     #@item_window.category = current_symbol if @item_window
 
 -     @item_window.category = current_data[:name] if @item_window
 
 -   end
 
 -   #--------------------------------------------------------------------------
 
 -   # ● 生成制造列表
 
 -   #--------------------------------------------------------------------------
 
 -   def make_command_list
 
 -     $game_party.cook_types.each do |t|
 
 -       add_command(t.name, t.index, t.enabled)
 
 -     end
 
 -   end
 
 -   #--------------------------------------------------------------------------
 
 -   # ● 设置制造列表窗口
 
 -   #--------------------------------------------------------------------------
 
 -   def item_window=(item_window)
 
 -     @item_window = item_window
 
 -     update
 
 -   end
 
 -   #--------------------------------------------------------------------------
 
 -   # ● 更新帮助内容
 
 -   #--------------------------------------------------------------------------
 
 -   def update_help
 
 -     @help_window.set_text($game_party.cook_type_description(current_data[:name]))
 
 -   end
 
 - end
 
  
- #==============================================================================
 
 - # ■ Window_CookList
 
 - #------------------------------------------------------------------------------
 
 - #  任务画面中,显示已获得任务的窗口。
 
 - #==============================================================================
 
  
- class Window_CookList < Window_Selectable
 
 -   #--------------------------------------------------------------------------
 
 -   # ● 定义实例变量
 
 -   #--------------------------------------------------------------------------
 
 -   attr_reader   :needs_window
 
 -   #--------------------------------------------------------------------------
 
 -   # ● 初始化对象
 
 -   #--------------------------------------------------------------------------
 
 -   def initialize(x, y, width, height)
 
 -     super
 
 -     @data = []
 
 -     @category = $game_party.cook_types_size > 0 ? $game_party.cook_types[0].name : nil
 
 -     refresh
 
 -   end
 
 -   #--------------------------------------------------------------------------
 
 -   # ● 设置分类
 
 -   #--------------------------------------------------------------------------
 
 -   def category=(category)
 
 -     return if @category == category
 
 -     @category = category
 
 -     refresh
 
 -     self.oy = 0
 
 -   end
 
 -   #--------------------------------------------------------------------------
 
 -   # ● 设置材料窗口
 
 -   #--------------------------------------------------------------------------
 
 -   def needs_window=(needs_window)
 
 -     @needs_window = needs_window
 
 -     update
 
 -   end
 
 -   #--------------------------------------------------------------------------
 
 -   # ● 获取列数
 
 -   #--------------------------------------------------------------------------
 
 -   def col_max
 
 -     return 1
 
 -   end
 
 -   #--------------------------------------------------------------------------
 
 -   # ● 获取项目数
 
 -   #--------------------------------------------------------------------------
 
 -   def item_max
 
 -     @data ? @data.size : 1
 
 -   end
 
 -   #--------------------------------------------------------------------------
 
 -   # ● 获取食谱
 
 -   #--------------------------------------------------------------------------
 
 -   def item
 
 -     @data && index >= 0 ? @data[index] : nil
 
 -   end
 
 -   #--------------------------------------------------------------------------
 
 -   # ● 获取选择食谱的有效状态
 
 -   #--------------------------------------------------------------------------
 
 -   def current_item_enabled?
 
 -     enable?(@data[index])
 
 -   end
 
 -   #--------------------------------------------------------------------------
 
 -   # ● 查询此食谱是否可用
 
 -   #--------------------------------------------------------------------------
 
 -   def enable?(item)
 
 -     item.enabled && item.enough?
 
 -   end
 
 -   #--------------------------------------------------------------------------
 
 -   # ● 生成食谱列表
 
 -   #--------------------------------------------------------------------------
 
 -   def make_item_list
 
 -     @data = $game_party.cookbooks(@category)
 
 -   end
 
 -   #--------------------------------------------------------------------------
 
 -   # ● 返回上一个选择的位置
 
 -   #--------------------------------------------------------------------------
 
 -   def select_last
 
 -     select(0)
 
 -   end
 
 -   #--------------------------------------------------------------------------
 
 -   # ● 绘制项目
 
 -   #--------------------------------------------------------------------------
 
 -   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))
 
 -     end
 
 -   end
 
 -   #--------------------------------------------------------------------------
 
 -   # ● 绘制名称
 
 -   #     enabled : 有效的标志。false 的时候使用半透明效果绘制
 
 -   #--------------------------------------------------------------------------
 
 -   def draw_item_name(item, x, y, enabled = true, width = 300)
 
 -     return unless item
 
 -     text = item.name
 
 -     text += "[材料不足]" if !item.enough?
 
 -     change_color(normal_color, enabled)
 
 -     draw_text(x, y, width, line_height, text)
 
 -   end
 
 -   #--------------------------------------------------------------------------
 
 -   # ● 更新帮助内容
 
 -   #--------------------------------------------------------------------------
 
 -   def update_help
 
 -     @help_window.set_item(item)
 
 -   end
 
 -    #--------------------------------------------------------------------------
 
 -   # ● 更新食谱清单
 
 -   #--------------------------------------------------------------------------
 
 -   def update_needslist
 
 -     @needs_window.set_item(item)
 
 -   end
 
 -   #--------------------------------------------------------------------------
 
 -   # ● 调用帮助窗口的更新方法
 
 -   #--------------------------------------------------------------------------
 
 -   def call_update_help
 
 -     update_help if @help_window
 
 -     update_needslist if @needs_window
 
 -   end
 
 -   #--------------------------------------------------------------------------
 
 -   # ● 刷新
 
 -   #--------------------------------------------------------------------------
 
 -   def refresh
 
 -     make_item_list
 
 -     create_contents
 
 -     draw_all_items
 
 -   end
 
 - end
 
 - #==============================================================================
 
 - # ■ Window_Description
 
 - #------------------------------------------------------------------------------
 
 - #  显示食谱的说明的窗口
 
 - #==============================================================================
 
  
- class Window_Description < Window_Base
 
 -   #--------------------------------------------------------------------------
 
 -   # ● 初始化对象
 
 -   #--------------------------------------------------------------------------
 
 -   def initialize(x, y)
 
 -     super(x, y, Graphics.width*0.5, fitting_height(4))
 
 -   end
 
 -   #--------------------------------------------------------------------------
 
 -   # ● 设置内容
 
 -   #--------------------------------------------------------------------------
 
 -   def set_text(text)
 
 -     if text != @text
 
 -       @text = text
 
 -       refresh
 
 -     end
 
 -   end
 
 -   #--------------------------------------------------------------------------
 
 -   # ● 清除
 
 -   #--------------------------------------------------------------------------
 
 -   def clear
 
 -     set_text("")
 
 -   end
 
 -   #--------------------------------------------------------------------------
 
 -   # ● 设置食谱的介绍
 
 -   #--------------------------------------------------------------------------
 
 -   def set_item(item)
 
 -     set_text(item ? item.description : "")
 
 -   end
 
 -   #--------------------------------------------------------------------------
 
 -   # ● 刷新
 
 -   #--------------------------------------------------------------------------
 
 -   def refresh
 
 -     contents.clear
 
 -     draw_text_ex(4, 0, @text)
 
 -   end
 
 - end
 
  
- #==============================================================================
 
 - # ■ Window_NeedsList
 
 - #------------------------------------------------------------------------------
 
 - #  制造画面中,显示食谱所需材料的窗口。
 
 - #==============================================================================
 
  
- class Window_NeedsList < Window_Selectable
 
 -   #--------------------------------------------------------------------------
 
 -   # ● 初始化对象
 
 -   #--------------------------------------------------------------------------
 
 -   def initialize(x, y, width, height)
 
 -     super
 
 -     @category = :item
 
 -     @cookbook = nil
 
 -     @data = []
 
 -     refresh
 
 -   end
 
 -   #--------------------------------------------------------------------------
 
 -   # ● 获取列数
 
 -   #--------------------------------------------------------------------------
 
 -   def col_max
 
 -     return 1
 
 -   end
 
 -   #--------------------------------------------------------------------------
 
 -   # ● 获取项目数
 
 -   #--------------------------------------------------------------------------
 
 -   def item_max
 
 -     @data ? @data.size : 1
 
 -   end
 
 -   #--------------------------------------------------------------------------
 
 -   # ● 获取物品
 
 -   #--------------------------------------------------------------------------
 
 -   def item
 
 -     @data && index >= 0 ? @data[index] : nil
 
 -   end
 
 -   #--------------------------------------------------------------------------
 
 -   # ● 查询列表中是否含有此物品
 
 -   #--------------------------------------------------------------------------
 
 -   def include?(item)
 
 -     item.is_a?(RPG::Item) && !item.key_item?
 
 -   end
 
 -   #--------------------------------------------------------------------------
 
 -   # ● 获取选择食谱的有效状态
 
 -   #--------------------------------------------------------------------------
 
 -   def current_item_enabled?
 
 -     enable?(@data[index])
 
 -   end
 
 -   #--------------------------------------------------------------------------
 
 -   # ● 查询此食谱是否可用
 
 -   #--------------------------------------------------------------------------
 
 -   def enable?(item)
 
 -     $game_party.usable?(item) && @cookbook.item_enough?(item)
 
 -   end
 
 -   #--------------------------------------------------------------------------
 
 -   # ● 生成物品列表
 
 -   #--------------------------------------------------------------------------
 
 -   def make_item_list
 
 -     @data = []
 
 -     return if @cookbook== nil
 
 -     tmp1 = []
 
 -     tmp2 = []
 
 -     $data_items.each do |item|
 
 -       tmp1.push([item, 0]) if item && !item.name.empty? && @cookbook.resource?(item)
 
 -       tmp2.push([item, 1]) if item && !item.name.empty? && @cookbook.output?(item)
 
 -     end
 
 -     if tmp1.size > 0 && tmp2.size > 0
 
 -       @data.push(["需要材料:",0])
 
 -       @data += tmp1
 
 -       @data.push(["可以获得:",1])
 
 -       @data += tmp2
 
 -     end
 
 -   end
 
 -   #--------------------------------------------------------------------------
 
 -   # ● 返回上一个选择的位置
 
 -   #--------------------------------------------------------------------------
 
 -   def select_last
 
 -     select(0)
 
 -   end
 
 -   #--------------------------------------------------------------------------
 
 -   # ● 绘制项目
 
 -   #--------------------------------------------------------------------------
 
 -   def draw_item(index)
 
 -     item = @data[index]
 
 -     if item
 
 -       rect = item_rect(index)
 
 -       rect.width -= 4
 
 -       if item[0].is_a?(RPG::Item)
 
 -         draw_item_name(item, rect.x, rect.y, enable?(item[0]))
 
 -         draw_item_number(rect, item[0])
 
 -       else
 
 -         draw_input_output(item, rect.x, rect.y)
 
 -       end
 
 -     end
 
 -   end
 
 -   #--------------------------------------------------------------------------
 
 -   # ● 绘制物品名称
 
 -   #     enabled : 有效的标志。false 的时候使用半透明效果绘制
 
 -   #--------------------------------------------------------------------------
 
 -   def draw_item_name(item, x, y, enabled = true, width = 172)
 
 -     return unless item
 
 -     text = item[0].name + "*" + String(@cookbook.amount(item[0], item[1]))
 
 -     draw_icon(item[0].icon_index, x, y, enabled)
 
 -     change_color(normal_color, enable?(item[0]))
 
 -     draw_text(x + 24, y, width, line_height, text)
 
 -   end
 
 -   #--------------------------------------------------------------------------
 
 -   # ● 绘制输入和产出
 
 -   #--------------------------------------------------------------------------
 
 -   def draw_input_output(item, x, y, enabled = false, width = 172)
 
 -     return unless item
 
 -     if item[1] == 0
 
 -       text = "[需要]"
 
 -     else
 
 -       text = "[可以获得]"
 
 -     end
 
 -     change_color(normal_color, @cookbook.enough?)
 
 -     draw_text(x , y, width, line_height, text)
 
 -   end
 
 -   #--------------------------------------------------------------------------
 
 -   # ● 绘制物品个数
 
 -   #--------------------------------------------------------------------------
 
 -   def draw_item_number(rect, item)
 
 -     draw_text(rect, sprintf("现有%2d", $game_party.item_number(item)), 2)
 
 -   end
 
 -   #--------------------------------------------------------------------------
 
 -   # ● 刷新
 
 -   #--------------------------------------------------------------------------
 
 -   def refresh
 
 -     make_item_list
 
 -     create_contents
 
 -     draw_all_items
 
 -   end
 
 -   #--------------------------------------------------------------------------
 
 -   # ● 设置食谱的材料
 
 -   #--------------------------------------------------------------------------
 
 -   def set_item(item)
 
 -     @cookbook = item
 
 -     refresh
 
 -   end
 
 - end
 
 - #==============================================================================
 
 - # 本腳本來自www.66RPG.com,使用和轉載請保留此信息
 
 - #============================================================================== 
 
  复制代码 在window menucommond中做了这样的修改-   #--------------------------------------------------------------------------
 
 -   # ● 向指令列表添加主要的指令
 
 -   #--------------------------------------------------------------------------
 
 -   def add_main_commands
 
 -     add_command(Vocab::item,   :item,   main_commands_enabled)
 
 -     add_command(Vocab::skill,  :skill,  main_commands_enabled)
 
 -     add_command(Vocab::equip,  :equip,  main_commands_enabled)
 
 -     add_command(Vocab::status, :status, main_commands_enabled)
 
 -     add_command("制造",   :cook,   main_commands_enabled)
 
 -   end
 
 
  复制代码 在scene mune中做了如下修改-   #--------------------------------------------------------------------------
 
 -   # ● 生成指令窗口
 
 -   #--------------------------------------------------------------------------
 
 -   def create_command_window
 
 -     @command_window = Window_MenuCommand.new
 
 -     @command_window.set_handler(:item,      method(:command_item))
 
 -     @command_window.set_handler(:skill,     method(:command_personal))
 
 -     @command_window.set_handler(:equip,     method(:command_personal))
 
 - #~     @command_window.set_handler(:status,    method(:command_personal))
 
 -     @command_window.set_handler(:cook,      method(:command_cook))
 
 - #~     @command_window.set_handler(:formation, method(:command_formation))
 
 -     @command_window.set_handler(:save,      method(:command_save))
 
 -     @command_window.set_handler(:game_end,  method(:command_game_end))
 
 -     @command_window.set_handler(:cancel,    method(:return_scene))
 
 -     @command_window.x = - 24 + @dx + 26
 
 -     @command_window.y = 72
 
 -     @command_window.opacity = 0
 
  
-   end
 
 
  复制代码 然后报错ZeroDivisionError  
当除数为 0 时抛出此异常。  
报错的地方是window selectable50行-   #--------------------------------------------------------------------------
 
 -   # ● 获取项目的宽度
 
 -   #--------------------------------------------------------------------------
 
 -   def item_width
 
 -     (width - standard_padding * 2 + spacing) / col_max - spacing
 
 -   end
 
 
  复制代码 这是肿么了 
 |   
 
 
 
 |