Project1

标题: 如何让物品栏不分类 [打印本页]

作者: 黑舞嗜    时间: 2012-3-22 16:36
标题: 如何让物品栏不分类

就是不出现分类,选择物品进去后直接只显示上面的说明和下面的物品列表,中间不出现分类的切换(就和VX一样)
作者: iisnow    时间: 2012-3-24 14:47
本帖最后由 iisnow 于 2012-3-24 14:50 编辑

分为步解决:
1.消除分类窗口
   只需要注释掉create_category_window和@category_window.item_window = @item_window即可
2.物品窗口的调整,坐标的调整,handler的重新设置
   包括,初始的激活,初始的光标;
3.显示全部物品
   需要增加分类标记,详见脚本,并设置物品窗口的标记
4.其他(窗口的设置、语句的排布)
   这样深入研究一下,物品窗口的start方法并没有refresh的内容,即开始的时候并不会描绘
   但是category=方法中有描绘的内容,即@category设置时会描绘,不需要考虑(因为上面调用 category=方法)
   最后注意,由于Window_ItemList继承的是Window_Selectable,只有在index改变时(调用index=方法时)才会更新帮助
   于是要先描绘item_window的项目(设置@category)以及激活(激活才会更新帮助),于是设置index必须在最后面,
   而前两句顺序无所谓(当然你可以加强制刷新帮助的语句,即update_help)

最后的脚本:
RUBY 代码复制
  1. class Scene_Item
  2.  
  3.   def start
  4.     super
  5.     create_help_window
  6.     #create_category_window  #
  7.     create_item_window
  8.     force_thing(@item_window)
  9.   end
  10.  
  11.   def force_thing(window)
  12.     window.active = true  # 激活
  13.     window.category = :all  # 自定义显示全部物品的符号
  14.     window.index = 0  # 显示选框
  15.   end
  16.  
  17.   def create_item_window
  18.     wy = @help_window.height    # 位置修改
  19.     wh = Graphics.height - wy
  20.     @item_window = Window_ItemList.new(0, wy, Graphics.width, wh)
  21.     @item_window.viewport = @viewport
  22.     @item_window.help_window = @help_window
  23.     @item_window.set_handler(:ok,     method(:on_item_ok))
  24.     @item_window.set_handler(:cancel, method(:return_scene))  # 取消回主菜单
  25.     #@category_window.item_window = @item_window
  26.   end
  27.  
  28. end
  29.  
  30. class Window_ItemList
  31.  
  32.   alias :iisnow_include? :include?
  33.   def include?(item)
  34.     if @category == :all  # 添加全体判定
  35.       return true
  36.     else
  37.       return iisnow_include?(item)
  38.     end
  39.   end
  40.  
  41. end

作者: 殇殃    时间: 2012-3-25 10:57
楼主,还是分类比较好。
物品少的话,看不出什么。
物品很多的话,在一堆东西中找一个道具是很蛋疼的,要考虑玩家的感受。
个人建议,可以无视。
作者: huangzc1234    时间: 2014-2-28 06:37
为什么我把 alias :iisnow_include? :include?
  def include?(item)
    if @category == :all  # 添加全体判定
      return true
    else
      return iisnow_include?(item)
    end
  end 放在Window_ItemList 物品不显示呢?





欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1