FF8 战斗系统 危险度 计算公式(更新)

2004-12-08 19:40 | bsp

更新:
危险度的几率计算和一些细节的更正

公式触发条件:
显示某队员的指令菜单之前的瞬间, 危险度计算完毕后直接决定必杀技的出现与否, 计算出的危险度在下次触发条件出现之前不变

公式的计算过程:
1.首先判断是否在Curse状态和是否被封印了Limit Break, 是则危险度固定为0
2.计算公式, 公式如下:
DangerDegree = ( KONumber x 200 + StatusPlus x 10 + 1600 - CurrentHP x MemberPlus x 10 / MaxHP ) /( Random + 160 ) - 4
这里的除法取整, 舍去余数
3.规范结果, 小于0的为0, 大于4的为4
4.按照结果, 0则不显示表示必杀技出现的右箭头, 1到4则显示右箭头

公式解释:
1. DangerDegree: 当前队员危险度, 范围为0到4
2. KONumber: 处于战斗不能的队员数量, 范围为0到2
注意: 这里的战斗不能仅仅是指KO状态, 而不包括Petrify,Stop等等状态, 而且已经不在战场上的队员(比如自爆)不计算在内
3. StatusPlus: 当前队员的状态附加值, 按当前队员所中的对应状态附加, 最小为0, 最大为410, 具体如下:
状态对应的状态附加值
Slow15
Poison30
Blind30
Silence30
Petrifying30
Confuse30
Doom45
Aura200
注意: 影响危险度计算的只有以上所列的几种状态
4. CurrentHP: 当前队员的当前HP
5. MaxHP: 当前队员的最大HP
6. MemberPlus: 队员的个人附加值, 与游戏角色相关, 具体如下:
队员个人附加值
Seifer100
其余队员250
7. Random: 随机数, 范围是0到255, 按我在Selphie的Slot的规律的那篇帖子里的随机数表来查找

关于随机数的几点分析:
1.按照公式的计算, 只要结果有大于0的情况, 就能通过反复的换人来达到出现必杀技的目的, 只是出现几率不同
2.可以看出, Aura的状态附加值对公式的影响很大, 这说明了Aura状态下即使满HP也能出现必杀技的原因, 而且HP低的时候高危险度的出现几率变大
3.Seifer在其余两人KO,自己满HP且无以上状态的情况下,危险度的范围是0到2, 也就是可以出现必杀技
4.几种状态中比较有用的是Slow,Poison,Blind,Silence和Aura, Confuse则是完全无用
5.高危险度的出现建议: 保持Slow,Poison,Blind,Silence和Aura状态, 其余队员KO状态, HP小于最大HP的0.064倍(这里不考虑Seifer)

更新:
程序中正常情况下地几率是通过划定随机数的范围来表示的, 但是条件是随机数必须是计算机产生的真正的伪随机数(也就是一定检验条件的伪随机数). FF8战斗系统中的随机数表并不满足这个条件: 同一个事件反复地使用这张表会体现出非常明显的规律性. 但是由于实际战斗中使用随机数的各种事件本身的出现是随机的(真正的完全随机), 因此计算夹杂其中的某些事件时, 可以按照上面提到的划分范围的方法确定几率.

危险度的计算前后有各种各样的事件使用随机数表, 使得随机数的使用表现出随机性, 因此可以近似地认为危险度的几率可以按照划分范围的方法计算, 由此得到的几率与真实的几率相差不大.

这个现象在连续剑的过程中也存在, 连续剑的每一击都会使用随机数(具体数目没有统计). 不过其随机性应该不如危险度的大, 计算的结果也应该与真实的几率相差大一些.

至于Selphie的Slot则不是这样, 连续的魔法选取使得随机数表被连续地使用, 相对的干扰可以在特殊的情况下(比如敌人是UFO)被排除, 因此这里的计算方法不适合.

由于危险度公式中的因素太多, 不容易对单个因素的分析, 因此我按公式写了个程序, 你可以对照战斗中的具体情况分析, 程序中也提供了4个例子
点此下载FF8危险度几率计算器

还有一些细节的更正, 主要是一些小的错误和遗漏, 直接在正文里改了, 这里就不列出来了

-
Kweh!!Kweehhhh!!