作者laechan (小太保)
看板mud_sanc
标题Re: [闲聊] 飘浮高度=空中移动能力设定
时间Wed Jul 17 23:26:53 2013
※ 引述《laechan (小太保)》之铭言:
: 推 warrenchen :嗯哼~您说的是"可用攻击技与高度差"的关系, 而小弟我 07/17 23:05
: → warrenchen :也不是想搞复杂,只是想到有关"命中"及"暴击"甚至"特 07/17 23:06
: → warrenchen :攻(en/cast/spell)"的成功率与伤害力, 这样? :] 07/17 23:06
刚好你提到这个我就大致提一下,比方说今天问题简单化
为「能不能成功打到(即击中成功率)」,则光是要计算这
个值就得纳入底下的参数
1.高度差
2.自身命中率与怪物闪躲力的差别计算
3.技能使用级数
於是成功率 y = f(高度差,自身命中率,怪物闪躲力,..)
那我的想法就是
1.我们先决定「到底能不能打中」
2.剩下的才是「打中并造成伤害的成功率」
於是能否打中 y1 = f1(高度差)
打中成功率 y2 = f2(自身命中率,怪物闪躲力,级数)
则当程式满足 y1 时才会有 y2 的计算,否则只会停在y1
阶段,用白话来讲
1.当彼此之间的高度差,对照玩家使用的技能,绝对打不
到时,玩家一定是打到空气。(即 y=f1() 的计算)
2.当总算有可能打到时,才实际去计算打到的成功率。比
方说两者之间的高度差在可攻击的范围内时,也是有可
能本次挥剑还是没办法砍到怪(比方牠很会闪或你命中不
高)。
因为很明显的,与其引入多个参数写出复杂的计算公式,
还不如从中抽丝剥茧,先把一两个关键因素挑出来先计算
,就像与其要从五个嫌疑犯里面找犯人,去清查他们彼此
的关系啦、调查犯案的动机啦、....,还不如努力先把不
可能犯罪的(例如有绝对不在场证明的)先剔除掉,比方成
功剔除了两个,那从三个嫌疑犯里面找犯人,总是比从五
个嫌疑犯里面找犯人要单纯一些。
暴击也一样,如果我要写暴击,我的做法就是
1.先判断这家伙本次施展出来的攻击是否有「绝对无法暴
击的可能因素在」,有的话程式判断到这里就结束,送
出「他本次无法暴击的结果」。
2.然後才接着做像是「他有没有可能暴击失败」这类的计
算,有的话程式一样到这里就结束,送出「他本次暴击
失败的结果」。
3.最後才是计算并传回暴击伤害值。
我个人认为程式写久了自然就会这样做,因为这是很自然
直觉的想法与做法。
Laechan
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.224.78.134