查看: 1937|回复: 1

[已经解决] 似乎是调用了相同的alias而发生了冲突,求解决方法

[复制链接]
梦石
0
星屑
1191
在线时间
532 小时
注册时间
2011-10-3
回帖
2072
发表于 2014-8-19 19:25:56 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
本帖最后由 神秘影子 于 2014-8-19 19:28 编辑

QQ图片20140819192242.jpg
如果能够同时保留这两个脚本自然是最好的,不然我就得去寻找新的合成脚本了。。。

任务脚本[pre lang="ruby" line="1" file="任务脚本"]=begin

领取任务:$game_party.get_task(任意数字,任务名称,任务描述)

完成任务:$game_party.finish_task(领取任务时设定的数字)

对已有任务追加说明:$game_party.add_task(任务编号,任务追加描述)



如:

前面有事件$game_party.get_task(1,"测试","只是测试")



此时任务1的说明为



>只是测试



后面完成任务的脚本就是$game_party.finish_task(1)



追加说明$game_party.add_task(1,"真的只是测试哦")



此时任务1的说明为:

>只是测试

>真的只是测试哦



召唤任务界面:SceneManager.call(Scene_Task)



该脚本来自66rpg,发布者:韩云溪

改进:工藤由纪(论坛ID:zyyczp)

=end



#===========================================================

#●任务系统

#===========================================================

class Task

  attr_reader :desc

  attr_reader :finished

  def initialize(origin_name,desc)

    @origin_name = origin_name

    @desc = desc

    @finished = false

  end

  def name

    if @finished

      return @origin_name + "√"

    else

      return @origin_name

    end

  end

  def desc=(desc)

    @desc = desc

  end

  

  def finish

    @finished = true

  end

   

end



class Game_Party < Game_Unit

  alias old_init initialize

  def initialize

    old_init

    @tasks = {}

  end

  def add_task(i,desc)

    @tasks.desc = @tasks.desc + "\n" + desc

  end

  def get_task(i,name,desc)

    @tasks=Task.new(name,desc)

  end

  def have_task?(i)

    @tasks != nil

  end

  def finish_task(i)

    @tasks.finish if have_task?(i)

  end

  def unfinished_tasks

    n = []

    for i in @tasks.values

      next if i.finished

      n.push(i)

    end

    return n

  end

  def finished_tasks

    n = []

    for i in @tasks.values

      next unless i.finished

      n.push(i)

    end

    return n

  end

end



class Window_Task_Type < Window_HorzCommand

  #--------------------------------------------------------------------------

  # ● オブジェクト初期化

  #--------------------------------------------------------------------------

  def initialize

    super(0, 0)

    activate

  end

  def window_width

    return Graphics.width

  end

  def col_max

    return 3

  end

  #--------------------------------------------------------------------------

  # ● コマンドリストの作成

  #--------------------------------------------------------------------------

  def make_command_list

    add_command("正在进行",  :unfinished_task)

    add_command("完成的任务", :finished_task)

    add_command("关闭", :cancel)

  end

end



class Window_TaskLeft < Window_Selectable

  attr_reader :finished

  def initialize

    super(0,48,160,Graphics.height - 48)

    create_contents

    @finished = false

    @index = 0

    refresh

    deactivate

  end

  def set_finish(finish)

    @finished = finish

    set_item_max

  end

  def item_max

    return @item_max != nil ? @item_max : 0

  end

  def set_item_max

    if @finished

      @item_max = $game_party.finished_tasks.size

    else

      @item_max = $game_party.unfinished_tasks.size

    end

  end



  def refresh

    set_item_max

    super

  end

  #--------------------------------------------------------------------------

  # ● 項目の描画

  #--------------------------------------------------------------------------

  def draw_item(index)

    text = ""

    unless @finished

      if $game_party.unfinished_tasks[index] != nil

        text = $game_party.unfinished_tasks[index].name

      end

    else

      if $game_party.finished_tasks[index] != nil

        text = $game_party.finished_tasks[index].name  

      end

    end

    draw_text(item_rect_for_text(index), text)

  end



end



class Window_TaskRight < Window_Base

  attr_reader :left_index

  def initialize

    super(160,48,Graphics.width - 160,Graphics.height - 48)

    create_contents

    @left_index = 0

    @finished = false

    refresh

  end

  def set_index(i)

    @left_index = i

    refresh

  end

  def set_finish(i)

    @finished = i

  end

  

  def refresh

    contents.clear

    draw_desc

  end

  def draw_desc

    if @finished

      if $game_party.finished_tasks[@left_index] != nil

        draw_text_ex(0,0,$game_party.finished_tasks[@left_index].desc)

      end

    else

      if $game_party.unfinished_tasks[@left_index] != nil

        draw_text_ex(0,0,$game_party.unfinished_tasks[@left_index].desc)

      end

    end

  end

  

end



class Scene_Task < Scene_Base

  def start

    super

    create_task_type_window

    create_left_window

    create_right_window

  end

  def update

    super

    if @left_window.active

      if Input.trigger?(:B)

        @left_window.deactivate

        @task_type_window.activate

      end

      if Input.trigger?(:UP) || Input.trigger?(:DOWN)

        @right_window.set_finish(@left_window.finished)

        @right_window.set_index(@left_window.index)

      end

    end

  end

  

  def terminate

    super

  end

  def create_task_type_window

    @task_type_window = Window_Task_Type.new

    @task_type_window.set_handler(:unfinished_task,method(:view_unfinished_task))

    @task_type_window.set_handler(:finished_task,method(:view_finished_task))

    @task_type_window.set_handler(:cancel,method(:return_scene))

  end

  def create_left_window

    @left_window = Window_TaskLeft.new

    @left_window.set_finish(false)

    @left_window.refresh

  end

  def create_right_window

    @right_window = Window_TaskRight.new

    @right_window.refresh

  end

  def view_unfinished_task

    @left_window.set_finish(false)

    @left_window.refresh

    @left_window.activate

    @task_type_window.deactivate

    @right_window.set_finish(false)

    @right_window.set_index(@left_window.index)

  end

  def view_finished_task
    @left_window.set_finish(true)
    @left_window.refresh
    @left_window.activate
    @task_type_window.deactivate
    @right_window.set_finish(true)
    @right_window.set_index(@left_window.index)

  end
end[/pre]

物品制造脚本[pre lang="ruby" line="1"]#encoding:utf-8
#==============================================================================
#
#每添加一个制造的类型,最上面的类别菜单就会多一项。
#
#添加类型的方法是:
#$game_party.add_cook_type(类别名称,类别介绍, 类别状态-默认false)
#
#举例:
#$game_party.add_cook_type("制药","调配药品", true)
#
#添加配方的方法:
#$game_party.add_cookbook(配方名称, 配方介绍, 配方类别名称,材料的二维数组,产出物的二维数组,配方状态默认为true)
#
#举例:
#$game_party.add_cookbook("初级补血药水", "制作初级补血药水", "制药",[[18,2],[3,4],[2,5]],[[1,1],[44,5]],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.enable(en)
  end
  #--------------------------------------------------------------------------
  # ● 更改序号为i的食谱的使用状态
  #--------------------------------------------------------------------------
  def set_cookbook(i, en)
    @cookbooks.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
[/pre]

…あたしは天

梦石
0
星屑
2308
在线时间
4033 小时
注册时间
2010-10-4
回帖
10548

开拓者贵宾

发表于 2014-8-19 19:29:18 | 显示全部楼层
既然你知道是因为这个……把其中一个名字换掉不就好了……

点评

因为是新加了一个物品制作脚本后出的错 所以找了这个脚本里出现的alias,然后再全局查找这个alias  发表于 2014-8-20 20:35
一个一个alias找过去?  发表于 2014-8-20 18:15
我百度了 stack level too deep发现有一个6R的帖子进去看了于是知道的。。。然后再查找就发现了。。  发表于 2014-8-20 17:09
膜拜OX触触  发表于 2014-8-19 21:33
喵呜喵,见到 stack level too deep 的时候,善用 caller 调试  发表于 2014-8-19 21:03

评分

参与人数 2星屑 +233 收起 理由
VIPArcher + 188 真是不负责任的别名。
神秘影子 + 45 认可答案

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部