本帖最后由 三途亚梦 于 2015-5-4 16:11 编辑
我这里写了一个方法,可以直接运用到伤害公式里,理论上不会发生什么冲突。
使用方式是在公式中使用- b.amu_clear_equip(需要卸下或破坏装备位置的顺序的数组, 是否破坏)
复制代码 就会对目标的装备产生效应。
举例而言,史莱姆的“腐蚀溶液”技能的公式是- b.amu_clear_equip([0, 1, 2]); a.atk * 4 - b.def * 2
复制代码 其效果就会将被击中者武器、盾牌和头盔都强制破坏掉,并造成普通攻击的伤害。- b.amu_clear_equip([0, 1, 2], false); a.atk * 4 - b.def * 2
复制代码 ↑面这样在数组后用“,”和“false”就是单纯的强制卸下,但不破坏装备。
也就是说破坏可以不写,但是纯卸下的话需要写false
※ 数组是必须要填写的,如果是想破坏一个位置,例如武器就写成b.amu_clear_equip([0])。
#============================================================================== # ■ Game_Actor #------------------------------------------------------------------------------ # 管理角色的类。 # 本类在 Game_Actors 类 ($game_actors) 的内部使用。 # 具体使用请查看 Game_Party 类 ($game_party) 。 #============================================================================== class Game_Actor < Game_Battler #-------------------------------------------------------------------------- # ● 卸下or破坏特定装备 #-------------------------------------------------------------------------- def amu_clear_equip(id, destroy = true) @equips.each_with_index do |item| id.each do |i| if item.object != nil && item.object.etype_id == i trade_item_with_party(nil, item.object) if !destroy item.object = nil break end end end end end
#==============================================================================
# ■ Game_Actor
#------------------------------------------------------------------------------
# 管理角色的类。
# 本类在 Game_Actors 类 ($game_actors) 的内部使用。
# 具体使用请查看 Game_Party 类 ($game_party) 。
#==============================================================================
class Game_Actor < Game_Battler
#--------------------------------------------------------------------------
# ● 卸下or破坏特定装备
#--------------------------------------------------------------------------
def amu_clear_equip(id, destroy = true)
@equips.each_with_index do |item|
id.each do |i|
if item.object != nil && item.object.etype_id == i
trade_item_with_party(nil, item.object) if !destroy
item.object = nil
break
end
end
end
end
end
|