查看: 2451|回复: 4

[已经解决] 【已解决】如何让某些技能在某些状态下提高成功率

[复制链接]
梦石
0
星屑
526
在线时间
452 小时
注册时间
2009-7-17
回帖
250
发表于 2018-5-12 22:58:24 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 奉命在先 于 2018-5-13 08:51 编辑

虽然按照下面这两个脚本代码下 鼓捣出了自己要的效果 但是一次只能判定一个技能id 很麻烦 试了在 if item.is_a?(RPG::Skill) && item.id == 后面用[1,2,3]或者[1..3]这样写 都没有卵用  要么完全不判定,要么就只判定第一个技能ID
本来是想在某个状态(或者先制攻击的情况)下 让一些平时成功率很低的技能100%命中
物理攻击技能其实可以通过状态里的添加物理命中率来提升成功率  但是魔法攻击就不行了 因为没有添加魔法命中率的选项

https://rpg.blue/forum.php?mod=viewthread&tid=397315

https://rpg.blue/forum.php?mod=viewthread&tid=377047


我暂时鼓捣出的这个目前好像没啥问题,如果只需要个别技能这种效果的可以拿去用  如果改成if item.is_a?(RPG::Skill) && item.id = [1,2,3]  虽然1/2/3号技能都可以判定 但是再用时会跳错
[pre lang="ruby"]class Game_Battler < Game_BattlerBase
#================================================


#================================================
  def item_hit(user, item)
    rate = item.success_rate * 0.01
    rate *= user.hit if item.physical?
    if item.is_a?(RPG::Skill) && item.id == 194 and user.state?(6)#194号技能在6号状态下成功率为100
      rate = 100#大概是成功率 可以自己改
      return rate
     end
    if item.is_a?(RPG::Skill) && item.id == 195 and user.state?(6)#195号技能在6号状态下成功率为100
      rate = 100#大概是成功率 可以自己改
      return rate
    end
    return rate                           
  end
end[/pre]


根据2楼的提示改的 暂时没什么问题,有需要的拿去用,我自己只是测试了在队伍只有一个人的情况下第一回合的判定,不保证多个队友或者后面几回合会不会出问题。
[pre lang="ruby"]class Game_Battler < Game_BattlerBase
#================================================

#================================================
  def item_hit(user, item)
    rate = item.success_rate * 0.01
    rate *= user.hit if item.physical?
    if item.is_a?(RPG::Skill) && [194,195,196].include?(item.id) and user.state?(6)#194/195/196号技能在6号状态下成功率100,可以在[]内自行追加技能编号
      rate = 100#大概是成功率 可以自己改
      return rate
    end
    return rate                           
  end
end[/pre]
梦石
0
星屑
7427
在线时间
948 小时
注册时间
2017-9-27
回帖
566
发表于 2018-5-13 00:12:57 | 显示全部楼层
我记得ruby中判断一个数组中是否包含某个值,是用"[1, 2, 3].include?(item.id)"这样的语法格式。

评分

参与人数 1赞 +1 收起 理由
奉命在先 + 1 认可答案

查看全部评分

回复

使用道具 举报

梦石
0
星屑
2338
在线时间
275 小时
注册时间
2017-7-25
回帖
128
发表于 2018-5-19 02:05:43 | 显示全部楼层
其实我想顺路问一下这个“失败”是指直接发动无效这回合白费还是另有一套公式
回复

使用道具 举报

梦石
1
星屑
24088
在线时间
3339 小时
注册时间
2011-7-8
回帖
3862

开拓者

发表于 2018-5-19 09:10:27 来自手机 | 显示全部楼层
应该可以直接改$data_skills吧,行动前缓存一个备份,然后直接改了,行动后改回来
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部