赞 | 11 |
VIP | 29 |
好人卡 | 1 |
积分 | 3 |
经验 | 1731 |
最后登录 | 2020-2-5 |
在线时间 | 316 小时 |
Lv2.观梦者
- 梦石
- 0
- 星屑
- 254
- 在线时间
- 316 小时
- 注册时间
- 2015-7-2
- 帖子
- 1747
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
如图,我使用脚本加入额外装备栏时无法装备物品。
上方两图是我设置的。
脚本见下方。- #==============================================================================
- # 此脚本来自 www.66rpg.com
- #------------------------------------------------------------------------------
- # 功能:[RMVA]增加装备栏数量
- # 作者:后知后觉([email protected])
- # 版本:v1.1 2012-02-20
- # 使用说明:
- # 1.在下面设置需要增加的数量以及增加部位的名字
- # 2.在数据库-护甲-备注 里写入 @etype[位置编号]
- # 默认系统一共有5个装备位置.占用了0~4号
- # 所以扩展出来的装备栏位置编号是从 5 开始.比如 @etype[5] @etype[6]
- # 3.在扩展位置上给角色设置初始装备的方法
- # 在 数据库-角色-备注 里写入 @add_equips[装备1ID,装备2ID.....]
- # 每个ID中间由半角的 , 分开 比如 @add_equips[61] @add_equips[61,63]
- # 4.设置 固定装备 的初始值
- # 在 数据库-角色-备注 里写入 @fix_equips[装备位置编号,装备位置编号......]
- # 每个编号间由半角的 , 分开 比如 @fix_equips[5] @fix_equips[5,6]
- # 5.设置 禁用装备 的初始值
- # 在 数据库-角色-备注 里写入 @seal_equips[装备位置编号,装备位置编号......]
- # 每个编号间由半角的 , 分开 比如 @seal_equips[5] @seal_equips[5,6]
- # 6.游戏运行时可以使用:
- # $game_actors[角色ID].fix_equips 来获取该角色被固定装备位置的数组
- # $game_actors[角色ID].seal_equips 来获取该角色被禁用装备位置的数组
- # 然后可以使用数组类的 delete 和 push 方法来删除/增加 etype_id
- # 来达到解除与启用 固定、禁用的效果
- # 比如 $game_actors[1].fix_equips.delete(5) 解除1号角色5号位置的固定
- # $game_actors[2].seal_equips.push(6) 2号角色禁用6号装备位置
- # 注意事项:
- # 1.上面说的设置初始装备、固定装备、禁用装备都是只针对新扩展部位的
- # 默认的前5个装备位置的固定、禁用、设置初始.还请使用RMVA默认方式设置
- # 2.状态画面的描绘装备部分.在默认分辨率下.只能描绘6个装备.
- # 我小改了一下.但还是觉得不怎么好看.建议你自己重新描绘那一块...
- #==============================================================================
- module HzhjEquip
- # 设置要增加的装备部位数量
- ETYPE_ADD_NUM = 1
- # 设置要增加的装备部位的名字
- ETYPE_ADD_NAME = ["成就"]
- end
- def Vocab.etype(etype_id)
- etypes = $data_system.terms.etypes + HzhjEquip::ETYPE_ADD_NAME
- etypes[etype_id]
- end
- class RPG::Actor < RPG::BaseItem
- def add_equips
- if /@add_equips\[(.+?)\]/ =~ @note
- result = $1.split(/,/).collect{|str|str.to_i}
- result << 0 while result.size < HzhjEquip::ETYPE_ADD_NUM
- else
- result = Array.new(HzhjEquip::ETYPE_ADD_NUM){0}
- end
- result
- end
- def fix_equips
- if /@fix_equips\[(.+?)\]/ =~ @note
- result = $1.split(/,/).collect{|str|str.to_i}
- else
- result = []
- end
- result
- end
- def seal_equips
- if /@seal_equips\[(.+?)\]/ =~ @note
- result = $1.split(/,/).collect{|str|str.to_i}
- else
- result = []
- end
- result
- end
- end
- class RPG::Armor < RPG::EquipItem
- def etype_id
- if /@etype\[(.+?)\]/ =~ @note
- return $1.to_i
- else
- return @etype_id
- end
- end
- end
- class Game_Actor < Game_Battler
- attr_accessor :fix_equips
- attr_accessor :seal_equips
- alias hzhj_old_init_equips_game_actor init_equips
- def init_equips(equips)
- @fix_equips = actor.fix_equips
- @seal_equips = actor.seal_equips
- hzhj_equips = equips.clone
- add_equips = actor.add_equips
- HzhjEquip::ETYPE_ADD_NUM.times{hzhj_equips << add_equips.shift}
- hzhj_old_init_equips_game_actor(hzhj_equips)
- end
- alias hzhj_old_equip_slots_game_actor equip_slots
- def equip_slots
- result = hzhj_old_equip_slots_game_actor
- HzhjEquip::ETYPE_ADD_NUM.times{result << result.size}
- result
- end
- def equip_type_fixed?(etype_id)
- if etype_id > 4
- return @fix_equips.include?(etype_id)
- else
- return super
- end
- end
- def equip_type_sealed?(etype_id)
- if etype_id > 4
- return @seal_equips.include?(etype_id)
- else
- return super
- end
- end
- end
- class Window_EquipSlot < Window_Selectable
- def actor=(actor)
- return if @actor == actor
- @actor = actor
- create_contents
- refresh
- end
- end
- class Window_Status < Window_Selectable
- def draw_equipments(x, y)
- x = 224 if @actor.equips.size > 6
- @actor.equips.each_with_index do |item, i|
- dx = x + 146 * (i / 6)
- dy = y + line_height * (i % 6)
- draw_item_name(item, dx, dy, true, 122)
- end
- end
- end
复制代码 |
|