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

Project1

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

[讨论] 和我一起读脚本--第一第二命中率

[复制链接]

Lv4.逐梦者

梦石
0
星屑
14616
在线时间
2196 小时
注册时间
2019-1-24
帖子
1123

R考场第七期纪念奖

跳转到指定楼层
1
发表于 2021-9-12 19:44:17 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 miantouchi 于 2021-9-12 20:28 编辑

今天探讨下第一第二命中率,对于菜鸟来说还是需要理解的毕竟只有搞明白了其中的原理,才能改出来自己想要的一些功能。
今天这个地方主要是用到了系统自带的F1说明书。
通过F1得知,普通攻击、特技、使用物品,这三项都涉及第一第二命中率。



咱们先探讨下普通攻击的的第一命中率
废话不多说,老规矩先上图


hit_result = (rand(100) < attacker.hit)
可以看出来第一命中率是attacker.hit,这个是多少,默认的第一命中率就是多少。
F1里面A 在正常状态下的命中率为 100。 作为一个新手来说,等于解释了也等于没解释。

那我们就通过全局搜索看下这个hit到底写了什么内容,通过上图发现这个是数据库--状态里面的命中率。
首先:遍历攻击者(玩家/敌人)身上现有的状态的命中率,如果中的状态越多则
用n *= $data_states.hit_rate / 100.0,这个公式反复相乘。
也就是说,攻击者的第一命中率就是现在身上所中的状态的命中率相关的,如果你的游戏里面状态里面没有改默认的命中率的话,
整个游戏的普通攻击第一命中率就是100%了。

顺着这个思路,我接着用下老办法,先设置状态数据库,搞出来几个不是100%命中率的状态,然后让玩家中了这几个状态,
不就达成了,影响第一命中率的几个技能,游戏的内容不就丰富了吗?


所以我只做了2个状态一个是失明状态情况命中率5%,头晕状态是80%
这里面的命中率有解释我借用RB大大的基础教程,因为我也是看了这段解释才慢慢理解的:
命中率:这个也是一个特殊的能力值,表示人物自身的命中率,注意,不是技能的命中率。
该命中率设定只对物理攻击和攻击力F为1以上的特技有效,其余情况无效。
当这个命中率发生变化时,
人物的物理攻击和物理特技的命中都会受到影响,
真正的第一命中率为:人物命中率*技能命中率。通常情况下,人物命中率为100%,只有当人物中了状态时人物命中率才会下降。

有点绕吧,结合F1解释多读几遍吧。
然后当然是制作2个技能,让玩家同时中了这两个技能被






n = 100 * 5/ 100.0 = 5.0  是100.0不要漏了.0之前漏了
n = 5 * 80 / 100.0 = 4.0

过程是上面这个样子的第一次中了失明结果为5,接着又中了头晕,又降低了80%,可以说是雪上加霜。结果第一命中变成了4%
是不是简简单单就搞了2个技能出来
是不是有点感觉了,不是技能的命中率这句话。中了这个状态后,反而影响到命中率这句话。
好了接着说下第二命中率,

这段代码清楚写着hit_result = (rand(100) < hit)  这是第二命中率的结果
如果成立的话# 命中的情况下 if hit_result == true  才往下执行
eva = 8 * self.agi / attacker.dex + self.eva
hit = self.damage < 0 ? 100 : 100 - eva
也就是   第二命中率 = 100 - 回避力
这里面我们只看  self.eva中的eva

可以看出受到了base_eva这个值的影响,我们知道
Game_Battler是Game_Actor和Game_Enemy的父类
所以看看他俩各自的base_eva


可以看出来玩家的回避率全部来自防具,敌人则来自于数据库里面的回避率设置。

首先新手会想第一命中率和第二命中率具体啥关系,普通攻击方面
1.第一命中率就是刚才说的和玩家自身所中的状态的命中率有关系,当然没有中状态的话普通攻击就是默认的100%。
2.第二命中率只和玩家和怪物的回避率有关系,回避率还参与了速度和灵巧,最後再看是否有无法回避的状态,有这个状态当然就以这个为准了无法回避。
3.第一命中率是第二命中率的基础,只有第一命中率命中了,才有可能第二命中率命中,第一命中率相当于盖房子的地基。



一些设想:
1.可以利用状态的命中率,制作一些物品、特技和状态效果(我上面简单弄了2个,大家自行发挥一些影响第一命中率的地方)
2.可以直接修改第一第二命中率公式,或者有些大佬完全抛弃了默认的第一第二命中率,对于已经做了N年游戏大佬来说,这句是废话
3.可以给角色增加基础的初始回避率/命中率,默认的只有防具有回避率、默认的只有武器有命中率(VA及以上版本已经有了直接可以设置。)


特技和物品我就不说了,相信大家这个明白了,另外两个也不能太困难了。匆匆忙忙,编辑有点潦草了,想到什么再补充吧













评分

参与人数 2星屑 +150 +2 收起 理由
RyanBern + 150 + 1 精品文章
taeckle + 1 大神威武!

查看全部评分

Lv5.捕梦者 (版主)

梦石
1
星屑
23994
在线时间
3339 小时
注册时间
2011-7-8
帖子
3926

开拓者

2
发表于 2021-9-12 20:32:12 | 只看该作者
第一命中率是使用者是否击中,第二命中率是目标是否躲开。我记得这里的公式有个经典bug,似乎是致盲状态下技能的第一命中率直接判0?
熟悉rgss和ruby,xp区版主~
正在填坑:《膜拜组传奇》讲述膜拜组和学霸们的故事。
已上steam:与TXBD合作的Reformers《变革者》
* 战斗调用公共事件 *
* RGSOS 网络脚本 *
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
14616
在线时间
2196 小时
注册时间
2019-1-24
帖子
1123

R考场第七期纪念奖

3
 楼主| 发表于 2021-9-12 20:47:17 | 只看该作者
guoxiaomi 发表于 2021-9-12 20:32
第一命中率是使用者是否击中,第二命中率是目标是否躲开。我记得这里的公式有个经典bug,似乎是致盲状态下 ...


也是哈,你这么说第一第二命中率回头一看,真是这么回事,你说的致盲BUG,是不是我设置的法术攻击的原因,没有触发这个BUG,我设置的上面的图。

点评

你光第一命中设置了95%,最终还要取决于第二命中呀。  发表于 2021-9-13 17:48
哦哦,是猫大的插件呀,我现在只用了备注接口。  发表于 2021-9-13 17:46
不清楚XP的机制,反正你设置95,命中率也很低的  发表于 2021-9-13 14:37
搜索“sep”  发表于 2021-9-13 14:06
没太明白sep是什么  发表于 2021-9-13 11:31
回复 支持 反对

使用道具 举报

Lv4.逐梦者 (版主)

梦石
0
星屑
9532
在线时间
5073 小时
注册时间
2013-6-21
帖子
3580

开拓者贵宾剧作品鉴家

4
发表于 2021-9-14 20:08:38 | 只看该作者
guoxiaomi 发表于 2021-9-12 20:32
第一命中率是使用者是否击中,第二命中率是目标是否躲开。我记得这里的公式有个经典bug,似乎是致盲状态下 ...

粗心的 RGSS 程序员忘记给 100 打小数点了,导致按照整数除法计算都变成 0 了。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-22 16:43

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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