#============================================================================== # 此脚本来自 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 试试这个,上面都有解释。 |
Nil2018 发表于 2018-5-1 17:23 说白了我就是不会把脚本代入工程里,可以教教我吗? |
本帖最后由 Nil2018 于 2018-5-1 17:35 编辑 才入手1天.....怕和你说脚本你听不懂...但我只懂脚本的方法了。 https://rpg.blue/thread-404903-1-1.html 下载工程,找到脚本“装备系统”,把脚本复制到你自己的工程里,在脚本里设定额外的装备位置。 也可以使用其他脚本: https://rpg.blue/forum.php?mod=v ... 5%E5%A4%87%E6%A0%8F |
站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作
GMT+8, 2024-11-17 08:56
Powered by Discuz! X3.1
© 2001-2013 Comsenz Inc.