本帖最后由 taroxd 于 2014-7-9 06:05 编辑
qknight 发表于 2014-7-9 02:03
脚本亲测超实用,所以追问一下,如果想把防具也弄成这种多种类型的,比如女武神之靴=魔法防具+女性专用防 ...
呃,你好,我这个脚本呢是、只要满足一个条件就可以装备的……
因为楼主说“只能拿枪的枪兵拿上它发出矛系的必杀技”,因此只要满足枪和矛之一就可以装备。
但是我看了你这个要求,难道只要可以装备魔法防具,男的也可以装备女性专用的防具吗?
如果不是追求这个效果,你可以干脆设置一个类别,叫做“女性专用魔法防具”即可,不需要什么脚本。
如果你依旧需要“只要满足条件之一即可装备”的话:
# 在武器上备注 <wtype 2 5 6> 2, 5, 6 是武器类型的 id # 在防具上备注 <atype 2 5 6> 2, 5, 6 是防具类型的 id # 备注后,原来武器类型的设置失效 class RPG::Weapon def wtypes @wtypes ||= if @note =~ /<wtype((?:\s+\d+)+)\s*>/i $1.strip.split(/\s+/).map(&:to_i) else [wtype_id] end end end class RPG::Armor def atypes @atypes ||= if @note =~ /<atype((?:\s+\d+)+)\s*>/i $1.strip.split(/\s+/).map(&:to_i) else [atype_id] end end end class Game_BattlerBase #-------------------------------------------------------------------------- # ● 判定物品是否可以装备 #-------------------------------------------------------------------------- def equippable?(item) return false unless item.is_a?(RPG::EquipItem) return false if equip_type_sealed?(item.etype_id) return item.wtypes.any? {|wtype_id| equip_wtype_ok?(wtype_id) } if item.is_a?(RPG::Weapon) return item.atypes.any? {|atype_id| equip_atype_ok?(atype_id) } if item.is_a?(RPG::Armor) return false end end class Game_Actor #-------------------------------------------------------------------------- # ● 是否装备着特定类型的武器装备 #-------------------------------------------------------------------------- def wtype_equipped?(wtype_id) weapons.any? {|weapon| weapon.wtypes.include?(wtype_id) } end end
# 在武器上备注 <wtype 2 5 6> 2, 5, 6 是武器类型的 id
# 在防具上备注 <atype 2 5 6> 2, 5, 6 是防具类型的 id
# 备注后,原来武器类型的设置失效
class RPG::Weapon
def wtypes
@wtypes ||=
if @note =~ /<wtype((?:\s+\d+)+)\s*>/i
$1.strip.split(/\s+/).map(&:to_i)
else
[wtype_id]
end
end
end
class RPG::Armor
def atypes
@atypes ||=
if @note =~ /<atype((?:\s+\d+)+)\s*>/i
$1.strip.split(/\s+/).map(&:to_i)
else
[atype_id]
end
end
end
class Game_BattlerBase
#--------------------------------------------------------------------------
# ● 判定物品是否可以装备
#--------------------------------------------------------------------------
def equippable?(item)
return false unless item.is_a?(RPG::EquipItem)
return false if equip_type_sealed?(item.etype_id)
return item.wtypes.any? {|wtype_id| equip_wtype_ok?(wtype_id) } if item.is_a?(RPG::Weapon)
return item.atypes.any? {|atype_id| equip_atype_ok?(atype_id) } if item.is_a?(RPG::Armor)
return false
end
end
class Game_Actor
#--------------------------------------------------------------------------
# ● 是否装备着特定类型的武器装备
#--------------------------------------------------------------------------
def wtype_equipped?(wtype_id)
weapons.any? {|weapon| weapon.wtypes.include?(wtype_id) }
end
end
依旧没有测试,但我相信上次没有问题的话这次也应该没有问题。
如果你需要“满足所有条件才可以装备”的话,可以把39、40行的 any? 改成 all?
或者,“装备条件以默认设置为准”的话,请把 32 到 43 行删去。但是这样护甲的设置就没有任何意义了。
@熊喵酱 大概可以结贴了吧 |