设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 2689|回复: 4
打印 上一主题 下一主题

[RMVA发布] 物品自定义分类

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
256 小时
注册时间
2013-5-27
帖子
196
跳转到指定楼层
1
发表于 2013-8-11 10:13:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 scottyfan 于 2013-8-13 19:42 编辑

修改自图书馆后知后觉装备分类
想要分类竖列的朋友,请到4L
  1. #==============================================================================
  2. #  功能:[RMVA]增加物品栏类别
  3. #  作者:ScottyFan
  4. #  版本:v1.0 2013.8.8
  5. #  使用说明:
  6. #         在数据库-物品(包括装备)-备注 里写入 @itype[位置编号]
  7. #         新的物品分类编号是从 1 开始。比如 @itype[1]或者@itype[2]
  8. #==============================================================================
  9. module SFS
  10.   CATEGORY = [   #格式["显示名称", :标识],  标识随便写,不重复即可
  11.     ["",     :default], #注意,不要更改此行
  12.     ["药剂", :potion],  #此处为编号1
  13.     ["食物", :food],
  14.     ["宝石", :gem],
  15.     ]
  16. end
  17.   
  18. class RPG::BaseItem
  19.   attr_reader   :category_id
  20.   def category_id
  21.     return if self.is_a?(RPG::Skill)
  22.     if @category_id.nil?
  23.       /@itype\[(.+?)\]/ =~ @note
  24.       @category_id = $1.to_i
  25.     end
  26.     @category_id
  27.   end
  28. end


  29. class Window_ItemCategory
  30.   #--------------------------------------------------------------------------
  31.   # ● 生成指令列表
  32.   #--------------------------------------------------------------------------
  33.   def make_command_list
  34.     SFS::CATEGORY.each do |itype|
  35.       next if itype[1] == :default
  36.       add_command(itype[0],  itype[1])
  37.     end
  38.     add_command("普通物品",     :item)
  39.     add_command(Vocab::weapon,   :weapon)
  40.     add_command(Vocab::armor,    :armor)
  41.     add_command(Vocab::key_item, :key_item)
  42.   end
  43. end


  44. class Window_ItemList
  45.   #--------------------------------------------------------------------------
  46.   # ● 查询列表中是否含有此物品
  47.   #--------------------------------------------------------------------------
  48.   def include?(item)
  49.     if item && item.category_id > 0 #如果是特殊类别
  50.       return @category == SFS::CATEGORY[item.category_id][1]
  51.     end
  52.     case @category   
  53.     when :item
  54.       item.is_a?(RPG::Item) && !item.key_item?
  55.     when :weapon
  56.       item.is_a?(RPG::Weapon)
  57.     when :armor
  58.       item.is_a?(RPG::Armor)
  59.     when :key_item
  60.       item.is_a?(RPG::Item) && item.key_item?
  61.     else
  62.       false
  63.     end
  64.   end
  65. end
复制代码

评分

参与人数 2星屑 +110 收起 理由
weixun + 30 塞糖
feizhaodan + 80 鼓励

查看全部评分

Lv2.观梦者

梦石
0
星屑
575
在线时间
1752 小时
注册时间
2008-11-7
帖子
1431
2
发表于 2013-8-12 10:04:43 | 只看该作者
我来顶下  希望 可以换行   放到第2排里

点评

看4L,竖列的分类,我个人觉得是挺好的。  发表于 2013-8-13 19:03
我自己是配合纵列命令窗口使用的,我不太喜欢默认的样式。  发表于 2013-8-12 16:11
RPG魔塔:http://rpg.blue/thread-254429-1-1.html
魔塔2:http://rpg.blue/thread-303601-1-1.html
魔塔3: 制作中...MV
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
239
在线时间
2399 小时
注册时间
2008-4-11
帖子
12326

贵宾第6届短篇游戏比赛季军

3
发表于 2013-8-13 14:14:13 手机端发表。 | 只看该作者
手机看不到、、下班再来看
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
256 小时
注册时间
2013-5-27
帖子
196
4
 楼主| 发表于 2013-8-13 19:02:28 | 只看该作者
本帖最后由 scottyfan 于 2013-8-13 19:40 编辑

下面这个脚本带有物品分类,并将分类改成了竖列。
RUBY 代码复制
  1. #==============================================================================
  2. #  功能:[RMVA]增加物品栏类别
  3. #  作者:ScottyFan
  4. #  版本:v1.0 2013.8.8
  5. #  使用说明:
  6. #         在数据库-物品(包括装备)-备注 里写入 @itype[位置编号]
  7. #         新的物品分类编号是从 1 开始。比如 @itype[1]或者@itype[2]
  8. #==============================================================================
  9. module SFS
  10.   CATEGORY = [   #格式["显示名称", :标识],  标识随便写,不重复即可
  11.     ["",     :default], #注意,不要更改此行
  12.     ["药剂", :potion],  #此处为编号1
  13.     ["食物", :food],
  14.     ["光碟", :disc],
  15.     ["宝石", :gem],
  16.     ]
  17. end
  18.  
  19. class RPG::BaseItem
  20.   attr_reader   :category_id
  21.   def category_id
  22.     return if self.is_a?(RPG::Skill)
  23.     if @category_id.nil?
  24.       /@itype\[(.+?)\]/ =~ @note
  25.       @category_id = $1.to_i
  26.     end
  27.     @category_id
  28.   end
  29. end
  30.  
  31.  
  32. class Window_ItemList
  33.   #--------------------------------------------------------------------------
  34.   # ● 查询列表中是否含有此物品
  35.   #--------------------------------------------------------------------------
  36.   def include?(item)
  37.     if item && item.category_id > 0 #如果是特殊类别
  38.       return @category == SFS::CATEGORY[item.category_id][1]
  39.     end
  40.     case @category   
  41.     when :item
  42.       item.is_a?(RPG::Item) && !item.key_item?
  43.     when :weapon
  44.       item.is_a?(RPG::Weapon)
  45.     when :armor
  46.       item.is_a?(RPG::Armor)
  47.     when :key_item
  48.       item.is_a?(RPG::Item) && item.key_item?
  49.     else
  50.       false
  51.     end
  52.   end
  53. end
  54.  
  55. class Window_ItemCategoryNew < Window_Command
  56.   #--------------------------------------------------------------------------
  57.   # ● 定义实例变量
  58.   #--------------------------------------------------------------------------
  59.   attr_reader   :item_window
  60.   #--------------------------------------------------------------------------
  61.   # ● 更新画面
  62.   #--------------------------------------------------------------------------
  63.   def update
  64.     super
  65.     @item_window.category = current_symbol if @item_window
  66.   end
  67.   #--------------------------------------------------------------------------
  68.   # ● 生成指令列表
  69.   #--------------------------------------------------------------------------
  70.   def make_command_list
  71.     SFS::CATEGORY.each do |itype|
  72.       next if itype[1] == :default
  73.       add_command(itype[0],  itype[1])
  74.     end
  75.     add_command("普通物品",     :item)
  76.     add_command(Vocab::weapon,   :weapon)
  77.     add_command(Vocab::armor,    :armor)
  78.     add_command(Vocab::key_item, :key_item)
  79.   end
  80.   #--------------------------------------------------------------------------
  81.   # ● 设置物品窗口
  82.   #--------------------------------------------------------------------------
  83.   def item_window=(item_window)
  84.     @item_window = item_window
  85.     update
  86.   end
  87. end
  88.  
  89. class Scene_Item < Scene_ItemBase
  90.   #--------------------------------------------------------------------------
  91.   # ● 生成分类窗口
  92.   #--------------------------------------------------------------------------
  93.   def create_category_window
  94.     @category_window = Window_ItemCategoryNew.new(0, @help_window.height)
  95.     @category_window.viewport = @viewport
  96.     @category_window.help_window = @help_window
  97.     @category_window.height = Graphics.height - @help_window.height
  98.     @category_window.set_handler(:ok,     method(:on_category_ok))
  99.     @category_window.set_handler(:cancel, method(:return_scene))
  100.   end
  101.   #--------------------------------------------------------------------------
  102.   # ● 生成物品窗口
  103.   #--------------------------------------------------------------------------
  104.   def create_item_window
  105.     wx = @category_window.width
  106.     wh = Graphics.height - @help_window.height
  107.     @item_window = Window_ItemList.new(wx, @help_window.height, Graphics.width - wx, wh)
  108.     @item_window.viewport = @viewport
  109.     @item_window.help_window = @help_window
  110.     @item_window.set_handler(:ok,     method(:on_item_ok))
  111.     @item_window.set_handler(:cancel, method(:on_item_cancel))
  112.     @category_window.item_window = @item_window
  113.   end
  114. end

点评

前辈,请问物品分类之后。商店无法出售了,这个问题怎么解决?  发表于 2015-7-9 23:09
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
758
在线时间
2064 小时
注册时间
2011-10-3
帖子
1686
5
发表于 2013-8-14 10:43:09 | 只看该作者
有办法让某类物品(装备)只在装备栏里确认装备时显示,而不在物品栏里显示么

点评

办法肯定有,但是具体问题需要具体对待。  发表于 2013-8-14 16:05
回复 支持 反对

使用道具 举报

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

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-15 12:46

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表