原帖由龙吟于2004-07-10, 12:13:55发表
事实上,英杰传反击率的算法是这样的:
使用DS:0970和DS:0972的两个双字节整数为计算依据,计算出一个
0-65535之间的数,然后用该数,然后用它去除150,将余数和
武将的武力比较,如果低于武将武力,则产生反击,因此武力越高越容易
产生反击.
这里可以发现:如果使DS:0970和DS:0972为固定值,可以令计算出的
值正好被150除尽,那么余数为0,则反击率可以提升到100%.
大家对DS:0970和DS:0972还有映像吗?对,我在<物理攻击/策略伤害分析>
的贴子中也提到过它.英杰传中每次使用DS:0970和DS:0972计算出某个值
时,就会根据计算出的值产生出两个双字节整数,回填到DS:0970和DS:0972中,
这样下一次计算的值就会发生变化.由于采用了特定算法,并且在计算DS:0970
和DS:0972使,英杰传还会代入两个参数,如计算反击率的参数是<0,150>.所以
第一次计算出的值和第二次计算出的值会有较大不同.在计算机术语中,这叫做
"伪随机数算法".
下面不谈专业知识,只是说结论:因为英杰传中人物攻击/使用策略/补给/天气变化等
等都会调用伪随机数算法,因此甲先行动,乙后行动和乙先行动甲后行动对DS:0970
和DS:0972的影响是不一样的.所以从理论上来说,精心安排行动顺序可以使反击率
提升到100%.当然实际上是不可能做到这一点的.但是,不断S/L使行动顺序变化到
的确可以提升反击的概率.我没有测试过,但估计如果在可以忍受的范围内S/L,争取
每一回合都提升反击率,那么反击率提升3-5个百分点还是有可能的.
另:是否需要制作贼兵必反击补丁呢?我有点犹豫,这好象优点破坏游戏系统?如果
有人需要,请给我回帖,如果需要的人多的话,我就发布一个.
[ 本帖最后由 阿尔法孝直 于 2009-3-2 20:33 编辑 ]