Project1

标题: 自定义的技能、物品命中率和闪避率 [打印本页]

作者: 魔法☆梅莉    时间: 2017-11-16 00:39
标题: 自定义的技能、物品命中率和闪避率
本帖最后由 魔法☆梅莉 于 2017-11-16 00:45 编辑

RUBY 代码复制
  1. #脚本功能:将已知命中率乘以一个参数,该参数与你角色或敌人的属性有关。
  2. #属性公式由脚本使用者自行定义、书写。
  3. #命中率和闪避率分开判定,命中率由使用技能方判定,而闪避率由接受技能方判定。
  4. #作者:梅林
  5. #可以不标注作者就使用。需要功能修改的话可以联系我。
  6.  
  7. class Game_Battler < Game_BattlerBase
  8.  
  9.   #计算技能/物品的成功几率
  10.   alias merlin20171022_item_hit item_hit
  11.   def item_hit(user, item)
  12.     rate = item.success_rate * 0.01         # 获取成功几率
  13.     rate *= user.hit if item.physical?      # 物理攻击:计算成功几率的乘积
  14.     #如果在note中书写公式,则实现概率与公式相同
  15.     if item.note.include?('<hits')
  16.       a = eval($1.to_s) if item.note =~ /<hits=\s*(\S.*)>/
  17.       rate *= a                             #eg:使用18号技能:麻痹时命中率与MP正比
  18. #在18号技能的note中书写以下代码:<hits=user.mp*1.0/user.mmp>
  19.    end
  20.     return rate                             # 返回计算后的成功几率
  21.   end
  22.  
  23.  
  24. #计算技能/物品的闪避几率
  25.   alias merlin20171022_item_eva item_eva
  26.   def item_eva(user, item)
  27.     #技能效果补正
  28.     if item.physical?
  29.       a = eva
  30.       if item.note.include?('<hits')
  31.        b = eval($1.to_s) if item.note =~ /<hits=\s*(\S.*)>/#注意,虽然是接受技能方,仍然写作user而不是target
  32.        a *= b
  33.       end
  34.       return a
  35.     end
  36.     if item.magical?
  37.       b = mev
  38.       if item.note.include?('<hits')
  39.         a *= eval($1.to_s) if item.note =~ /<hits=\s*(\S.*)>/
  40.         b *= a
  41.       end
  42.       return b
  43.     end
  44.     return 0
  45.   end
  46. end


作者: chd114    时间: 2017-11-16 14:31
可以既对友方使用又能对敌方使用的,角色对友方使用总得必定命中吧···就像治疗魔法,对友方治疗被友方闪避掉真的是···
敌人对他自己的队友使用同理




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1