Project1

标题: 简易物品分类拓展 [打印本页]

作者: qq634488405    时间: 2013-2-18 17:29
标题: 简易物品分类拓展
第一次写,轻喷。。
首先,特别感谢后知后觉,物品分类很大一部分均参考了后知后觉的装备栏拓展脚本
坛子里虽然有国外yanfly的,但是那长度。。。。还有945127391的脚本,但是有个BUG,无法手动更换装备,只能用最强装备换。
步入正题,VA默认物品2个分类,普通物品和贵重物品,而很多时候游戏中物品的分类远不止2种。我们可以把普通物品和贵重物品作为两类,这个可以在数据库直接设置,修改用语可以把其改为所需的分类。
接下来就是要拓展分类了。
RUBY 代码复制
  1. #  使用说明:
  2. #       2.在数据库-物品-备注 里写入 @itype[分类编号]
  3. #         默认系统一共有2个分类.
  4. #         所以扩展出来分类编号是从 3 开始.比如 @itype[3]  @itype[4]
  5. class RPG::Item < RPG::UsableItem
  6.   def itype_id
  7. #正则表达式不懂。。下面的If完全取自后知后觉的脚本
  8.     if /@itype\[(.+?)\]/ =~ @note
  9.       return $1.to_i
  10.     else
  11.       return @itype_id
  12.     end
  13.   end
  14. #判断是否为分类3,有更多分类可以仿照下面的def添加
  15.   def itype3?
  16.      self.itype_id=3
  17.   end
  18. end

在物品窗口也需要做相应修改,Window_ItemCategory在第41行
RUBY 代码复制
  1. def make_command_list
  2.     add_command(Vocab::item,     :item)
  3.     add_command(Vocab::weapon,   :weapon)
  4.     add_command(Vocab::armor,    :armor)
  5.     add_command(Vocab::key_item, :key_item)
  6.     add_command("分类名字",  :itype3)
  7.   end

Window_ItemList也需要修改,53行,在用when的时候,下面的条件要增加
RUBY 代码复制
  1. def include?(item)
  2.     case @category
  3.     when :itype3
  4.       item.is_a?(RPG::Item) && item.itype3?
  5.     when :item
  6.       item.is_a?(RPG::Item) && !item.key_item? && !item.itype3
  7.     when :weapon
  8.       item.is_a?(RPG::Weapon)
  9.     when :armor
  10.       item.is_a?(RPG::Armor)
  11.     when :key_item
  12.       item.is_a?(RPG::Item) && item.key_item? && !item.itype3
  13.     else
  14.       false
  15.     end
  16.   end


至于窗口的一些坐标,请自行计算并修改。。




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