在数据库技能备注里写<无视状态 n,n.....,n>
那么当使用这个技能的时候就会无视所有n号状态的抗性和免疫,不会影响其他技能对这些状态的判定
举例
<无视状态 2>
<无视状态 2,3>
class RPG::Skill def stat_ignore a = [] if note =~ /<无视状态\s+(.+)>/ $1.split(",").each do |i| a << i.to_i end end a end end class Game_Battler alias mf240512ini initialize def initialize mf240512ini @stat_ignore = [] end alias mf240512ieas item_effect_add_state def item_effect_add_state(user, item, effect) @stat_ignore = item.stat_ignore mf240512ieas(user, item, effect) end alias mf240512strate state_rate def state_rate(state_id) return 1.0 if @stat_ignore.include?(state_id) mf240512strate(state_id) end alias mf240512stres? state_resist? def state_resist?(state_id) return false if @stat_ignore.include?(state_id) mf240512stres?(state_id) end end
class RPG::Skill
def stat_ignore
a = []
if note =~ /<无视状态\s+(.+)>/
$1.split(",").each do |i|
a << i.to_i
end
end
a
end
end
class Game_Battler
alias mf240512ini initialize
def initialize
mf240512ini
@stat_ignore = []
end
alias mf240512ieas item_effect_add_state
def item_effect_add_state(user, item, effect)
@stat_ignore = item.stat_ignore
mf240512ieas(user, item, effect)
end
alias mf240512strate state_rate
def state_rate(state_id)
return 1.0 if @stat_ignore.include?(state_id)
mf240512strate(state_id)
end
alias mf240512stres? state_resist?
def state_resist?(state_id)
return false if @stat_ignore.include?(state_id)
mf240512stres?(state_id)
end
end
|