设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 2647|回复: 7
打印 上一主题 下一主题

[已经解决] 调整命中/回避和暴击/暴击回避计算方式的办法

[复制链接]

Lv2.观梦者

梦石
0
星屑
836
在线时间
159 小时
注册时间
2012-6-3
帖子
124
跳转到指定楼层
1
发表于 2015-2-7 22:26:53 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

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

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

x
是这样的,VA默认的命中计算方式似乎是第一命中率和第二命中率
角色命中先判断,再判断敌人回避率
这样的话,角色命中100%就最高了,而且100%命中也打不到100%回避的敌人……
我想要把命中和回避在一起计算,造成“命中率提升,有更高机会命中高回避的敌人”,能够堆命中达到必中效果,公式上简单的我方命中减去敌方回避就可以了

另外,暴击和暴击回避也能这样就好了……

Lv3.寻梦者 (版主)

…あたしは天使なんかじゃないわ

梦石
0
星屑
2208
在线时间
4033 小时
注册时间
2010-10-4
帖子
10779

开拓者贵宾

8
发表于 2015-2-11 21:45:17 | 只看该作者
大概就是这个意思(未测试)

直接删除了“闪避”的概念

RUBY 代码复制
  1. class Game_Battler
  2.   def item_apply(user, item)
  3.     @result.clear
  4.     @result.used = item_test(user, item)
  5.     @result.missed = @result.used && rand >= Math.log10(item_hit(user, item)) - item_eva(user, item) + 1
  6.     # @result.missed = (@result.used && rand >= item_hit(user, item))
  7.     # @result.evaded = ([email protected] && rand < item_eva(user, item))
  8.     if @result.hit?
  9.       unless item.damage.none?
  10.         @result.critical = (rand < item_cri(user, item))
  11.         make_damage_value(user, item)
  12.         execute_damage(user)
  13.       end
  14.       item.effects.each {|effect| item_effect_apply(user, item, effect) }
  15.       item_user_effect(user, item)
  16.     end
  17.   end
  18. end

点评

喔,意思是只有【未命中】没有【闪避】,不过计算命中的时候还是要算B的回避率是吧?谢谢  发表于 2015-2-14 01:11

评分

参与人数 1梦石 +1 收起 理由
熊喵酱 + 1 认可答案

查看全部评分

回复 支持 反对

使用道具 举报

Lv2.观梦者

会吐槽的画师

梦石
0
星屑
782
在线时间
3431 小时
注册时间
2011-6-10
帖子
6535
7
发表于 2015-2-11 13:49:44 | 只看该作者
白玉楼的台阶 发表于 2015-2-11 13:13
啊,这样做的结果是,只要命中大于回避就必中了……

怎么说呢……

我这样的结果命中大于闪避不是必中,而是当命中大于闪避+100才必中。
你需要的效果是:A>100时,最终命中率=(100-B闪避)+B闪避*(A-100)
而且你所罗列的例子毫无逻辑性:
100-30:70
150-30:85【难道不是( 100-30 )+ (150-100)*30?】
又来个120-10:0?什么鬼
————————————————————————
告诉你实经验:你花心思在这些东西上其实毫无用处,玩家根本不管你是怎么算的

评分

参与人数 2星屑 +65 收起 理由
三途亚梦 + 55 如果是数值小的游戏,玩家会在意计算问题.
taroxd + 10 最后一句很赞同

查看全部评分

长名公主玩家群:372588926 攻略娱乐应有尽有
了解更多新RM游戏,游戏制作请加入RPGmaker支援群:113622890
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (版主)

…あたしは天使なんかじゃないわ

梦石
0
星屑
2208
在线时间
4033 小时
注册时间
2010-10-4
帖子
10779

开拓者贵宾

6
发表于 2015-2-11 13:31:39 | 只看该作者
白玉楼的台阶 发表于 2015-2-11 13:13
啊,这样做的结果是,只要命中大于回避就必中了……

怎么说呢……

这个公式如何?
Math.log10(user.hit) - eva + 1

(不过命中率不到10%的话就注定无法命中了= =)

点评

不是直接放,而是要理解之后插入原来的脚本。在 Game_Battler#item_apply 里面有关于命中率的计算,自己改着玩吧  发表于 2015-2-11 21:41
LX说的很好……不过咱本来就是自娱自乐的,有个点子能做进去感觉很好……这一行放哪里?几个带Battle的脚本页里面搜hit好像都不对……  发表于 2015-2-11 21:37
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
836
在线时间
159 小时
注册时间
2012-6-3
帖子
124
5
 楼主| 发表于 2015-2-11 13:13:40 | 只看该作者
上贺茂润 发表于 2015-2-8 08:44
第一步打开脚本找到计算最后命中率
把公式改成hit=user.hit-self.eva if damge >=0
然后下滚找到计算最后闪 ...

啊,这样做的结果是,只要命中大于回避就必中了……

怎么说呢……
比方说,A的命中是100%,B的回避是30%,最终有70%的几率命中
当A的命中堆到了150%,B的回避仍然是30%,最终命中率是85%……
或者A的命中是120%,B的回避是10%,必中;B的回避堆到了30%,最终90%命中……
嘛,计算公式如何变化不重要,加减或者乘除都可以……重要的是,更高的命中可以【降低】回避造成的影响
回复 支持 1 反对 0

使用道具 举报

Lv2.观梦者

会吐槽的画师

梦石
0
星屑
782
在线时间
3431 小时
注册时间
2011-6-10
帖子
6535
4
发表于 2015-2-8 08:44:27 | 只看该作者
第一步打开脚本找到计算最后命中率
把公式改成hit=user.hit-self.eva if damge >=0
然后下滚找到计算最后闪避率
把公式也改成上面那样,就可以做出命中闪避一次性计算抵消

点评

喔,谢了,下班试试看  发表于 2015-2-8 16:34

评分

参与人数 1星屑 +66 收起 理由
熊喵酱 + 66 认可答案

查看全部评分

长名公主玩家群:372588926 攻略娱乐应有尽有
了解更多新RM游戏,游戏制作请加入RPGmaker支援群:113622890
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (版主)

…あたしは天使なんかじゃないわ

梦石
0
星屑
2208
在线时间
4033 小时
注册时间
2010-10-4
帖子
10779

开拓者贵宾

3
发表于 2015-2-8 08:18:34 | 只看该作者
觉得命中100是最高的,先去看一遍F1再说

点评

哪来这种东西  发表于 2015-2-9 07:51
那是因为后面有个hit=100 if hit>100  发表于 2015-2-9 07:47
呃……确实没注意……但是不管堆多高,打100%的敌人还是打不中……  发表于 2015-2-8 16:34
回复 支持 反对

使用道具 举报

Lv3.寻梦者

闇吼者の災悪眷族
不気味存在締造者

梦石
0
星屑
1366
在线时间
2881 小时
注册时间
2014-7-29
帖子
6491
2
发表于 2015-2-7 22:30:45 | 只看该作者
本帖最后由 三途亚梦 于 2015-2-7 23:07 编辑

100不是最高呀,如果你200,你受到一个减少50%命中的debuff依然能都保持在命中是100。

你肯定没有好好看我给你的回复,暴击默认就是大致上是 攻击者暴击率-被击者暴击回避。
  1. class Game_Battler < Game_BattlerBase
  2.   #--------------------------------------------------------------------------
  3.   # ● 计算技能/物品的必杀几率
  4.   #--------------------------------------------------------------------------
  5.   def item_cri(user, item)
  6.     item.damage.critical ? [user.cri - cev, 0].max : 0
  7.   end
  8. end
复制代码
这样就是把暴击彻底改成普通的减法了。

命中太麻烦我就不管了~
当然如果你单纯的想不分 miss(未命中) 和 evad(闪避) 概念处理会简单一些。

评分

参与人数 1星屑 +30 收起 理由
熊喵酱 + 30 感謝幫忙

查看全部评分

回复 支持 反对

使用道具 举报

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

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-15 18:03

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表