#脚本功能:将已知命中率乘以一个参数,该参数与你角色或敌人的属性有关。
#属性公式由脚本使用者自行定义、书写。
#命中率和闪避率分开判定,命中率由使用技能方判定,而闪避率由接受技能方判定。
#作者:梅林
#可以不标注作者就使用。需要功能修改的话可以联系我。
class Game_Battler < Game_BattlerBase
#计算技能/物品的成功几率
alias merlin20171022_item_hit item_hit
def item_hit(user, item)
rate = item.success_rate * 0.01 # 获取成功几率
rate *= user.hit if item.physical? # 物理攻击:计算成功几率的乘积
#如果在note中书写公式,则实现概率与公式相同
if item.note.include?('<hits')
a = eval($1.to_s) if item.note =~ /<hits=\s*(\S.*)>/
rate *= a #eg:使用18号技能:麻痹时命中率与MP正比
#在18号技能的note中书写以下代码:<hits=user.mp*1.0/user.mmp>
end
return rate # 返回计算后的成功几率
end
#计算技能/物品的闪避几率
alias merlin20171022_item_eva item_eva
def item_eva(user, item)
#技能效果补正
if item.physical?
a = eva
if item.note.include?('<hits')
b = eval($1.to_s) if item.note =~ /<hits=\s*(\S.*)>/#注意,虽然是接受技能方,仍然写作user而不是target
a *= b
end
return a
end
if item.magical?
b = mev
if item.note.include?('<hits')
a *= eval($1.to_s) if item.note =~ /<hits=\s*(\S.*)>/
b *= a
end
return b
end
return 0
end
end