查看: 4065|回复: 2

[原创发布] 自定义的技能、物品命中率和闪避率

[复制链接]
梦石
0
星屑
1078
在线时间
127 小时
注册时间
2017-9-27
回帖
32
发表于 2017-11-16 00:39:14 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
本帖最后由 魔法☆梅莉 于 2017-11-16 00:45 编辑

[pre lang="ruby"]#脚本功能:将已知命中率乘以一个参数,该参数与你角色或敌人的属性有关。
#属性公式由脚本使用者自行定义、书写。
#命中率和闪避率分开判定,命中率由使用技能方判定,而闪避率由接受技能方判定。
#作者:梅林
#可以不标注作者就使用。需要功能修改的话可以联系我。

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[/pre]

评分

参与人数 1星屑 +150 收起 理由
RaidenInfinity + 150 原创发布

查看全部评分

我是梅林,人称花之魔术师。
梦石
0
星屑
9292
在线时间
2504 小时
注册时间
2011-5-20
回帖
14521

开拓者

发表于 2017-11-16 14:31:41 | 显示全部楼层
可以既对友方使用又能对敌方使用的,角色对友方使用总得必定命中吧···就像治疗魔法,对友方治疗被友方闪避掉真的是···
敌人对他自己的队友使用同理

点评

因为是备注所以可以一个技能一个技能的设置,备注内容非属性。  发表于 2017-11-16 20:57

评分

参与人数 1赞 +1 收起 理由
魔法☆梅莉 + 1 可以不做设置的

查看全部评分

[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部