家园首页
单机游戏 | 游戏人生 | Flash小游戏 |
资讯中心 | 网游下载 | 攻略秘籍 | BT下载 | 业界动态 | 经验心得
首页-> 攻略秘籍-> 单机游戏攻略-> 角色扮演-> 三国志II霸王大陆计策分析 tanjian_barry
搜索:

角色扮演

即时战略
角色扮演
体育竞技
动作冒险
飞行射击
经营策略
休闲养性
棋牌益智
模拟游戏
电子游戏

精品推荐
三国志II霸王大陆计策分析 tanjian_barry

游戏者家园 加入时间:2005-8-2

此分析来自对游戏代码的解读,应该可以保证正确
其中有些分析的结论和我所阅读到的以前的资料不相符合,希望大家可以讨论讨论

计策成功率:
基本成功率算法: (距离修正+智力差+等级差x2+难度修正)%
距离修正=(距离-3)x(-5)
其中距离取两个部队横坐标差或纵坐标差中大的那个值,由于计策施展的距离不会大于5,所以取值只可能为1,2,3,4,5. 修正值分别为10,5,0,-5,-10
智力差为施方与受方之差,若受方智力反而高的话则为0.
等级差为施方与受方之差,若受方等级反而高的话则为0.
难度修正: 人类玩家=10 level1的电脑=5 level2的电脑=10 level3的电脑=20

对于基本成功率还要做调整,基本成功率<5%和>95%的按5%和95%计算
也就是说至少有5%的成功率,最多也只有95%的成功率.

以上计算方法对笼络和十面埋伏无效,对其他计策均有效.

笼络成功率算法: [等级差x2+(德+智)/10+忠诚修正]%
等级差为施方与受方之差,若受方等级反而高的话则为0.
德和智为施方武将的仁德和智力.
忠诚修正和受方武将的忠诚有关,0到30的修正为50,31到50的修正为30,50到70的修正为10
若受方武将忠诚在70以上时,则笼络不会成功.

十面埋伏的成功率为100%.

对于劫火 共杀 水攻 连环这样影响多个部队的计策,其成功率只看被点的那个武将.也就是说和白痴靠在一起就认栽吧.

看来所谓的按A可以提高成功率的说法只是心理作用.
如果同样智力不如对方,那么等级高的武将成功率略占便宜.
对忠诚大于70的武将施展笼络是唯一肯定失败的计策.
笼络方面同样等级的诸葛亮和周瑜的成功率是一样的。
笼络的时候成功率和对方武将的忠诚度关系是一段一段的,0和30是一样的,31和50是一样的,51和70是一样的,在一个区段内不影响成功率,只影响成功后的忠诚值。
由于计算的时候采用单字节带符号运算所以把智力修改过高可能反而适得其反。比如智力高达200的武将对智力小于70的武将的成功率只有5%。

(由于随机算法的局限性,以上的提到的成功率并不是概率论严格意义上的概率,但应该可以说是十分十分接近概率了。)

计策伤害算法:
火计、共杀、伪擊转杀: 智x(9~13)/10+(等级-1)x10+30
要擊、落石(兵): 武x(14~20)/10
乱水、水攻: 智x(20~26)/10+(等级-1)+7
劫火: 智x(30~35)/10
陷阱、落石(体): (5~7)x[等级-1+(武+智)/10]/10
连弩: (150~349)+(武+智)/2
十面埋伏: (30~40)x智/10
火箭: 粮x(10~14)/100+智/5
奇门遁甲: 80~150

其中X~Y代表取随机,X为下限,Y为上限。所有随机基本是平均分布,也就是各个可能值的可能性相等。同样由于随机算法的

局限性,概率只可以说十分十分接近,不是概率论上的相等。举例来说9~13代表这个值可能是9,10,11,12,13中的任何一个,

而且每个值得可能性相等。

其中所有值均为施计武将的数值,唯有粮代表了受方的粮草.

对于影响多个部队的计策,对于每个部队独立计算伤害值.也就是算法中各个部队的随机数是不同的。

奇门遁甲只有诸葛亮在战场上的时候才能造成伤害,如果诸葛亮离场了,那么将停止伤害,但依然不能移动。

要擊、落石(兵)只和武力有关系,也就是说诸葛匹夫反不如无脑的吕布。
十面埋伏和劫火的系数真是大,造成的伤害也十分恐怖。
水攻和乱水的算法是一样的,但是劫火却要比火计厉害多了。

单次伤兵最少29(崔谅用要击),最多可能有3460(诸葛亮用劫火)[这个似乎不可能,由于随机算法对于联合概率近似的局限

性,应该不可能连续10次随机出系数35]。

考虑到要击对武力的依赖,连续数次施展时高武力武将比高智商武将可能有更高的总伤害力数学期望值。

以上所有除法结果均舍去小数。

分析方法
算法其实不难跟踪,我为大家分析一下跟踪中的难点。

F2D7开始的调用是取人物数值基地址,参数在A中(人物代码),结果保存在$00和$01中。

人物具体数值按人物数值基地址和偏移量得到,偏移量参数为Y,$#00为体力,$#01为武力,$#02为智力,$#03为忠诚,$#04

为仁德,$#06和$#07为经验值,$#08和$#09为兵力,$#0A为装备,$#0B比较复杂,高4位为等级-1,低4位中的高两位为兵种

,(低4位的低两位好像和十面埋伏或奇门遁甲有关?望高人赐教)

B806开始的调用是判断两个部队的距离,参数在$0509和$050A中(人物代码),结果保存在A中。

E8B7开始的调用是取随机数。

E862开始的调用是取值小于A的随机数。

B854决定计策是否成功的分支语句。

EAA5是除法$00$01$02/$03$04;EBE9是乘法$00$01$02x$03;EA7C是除法$01$02/$03$04。(注意字节反序)

B68B开始的调用是开始落实伤害(兵),并计算经验值等等。

我用的调试器是FCE Ultra debug,据说NESten不错,VNES也有debug版本的(我的似乎比较慢)。 

相关文章

相关软件