| 英杰传攻击与防御杀伤策略数值分析 大家玩英杰传时都为不能即时存盘而苦恼。在DOS时代,有一个叫GW(Game Wizard Pro)的软件可以实时保存游戏进度(实际上是保存内存镜像)。但现在GW不能用了,运行它会报需要286以上CPU才能运行的错误。所以龙吟对其进行了破解: 操作系统:Windows 98 SE2 GW版本:Game Wizard Pro 2.0 破解方法: 使用UltraEdit等二进制编辑软件,打开gw.exe,将00002e46h-00002e49h处修改为90 90 b8 04,保存即可。 破解效果: GW可以正常使用。经本人测试,可以在Dos6.22下、Win98的Dos环境下(甚至是启动Win98图形界面后进入的Dos Shell中)运行。 在不携带宝物的前提下。 部队的攻击力=(兵种基本攻击力×2+士气+武将攻击加成)×(10+等级)/10 其中武将攻击加成=4000÷(140-武将武力) 部队的防御力=(兵种基本防御力×2+士气+武将防御加成)×(10+等级)/10 其中武将防御加成=4000÷(140-武将统御力) 在携带宝物的时候,宝物的攻击力会附加到 (兵种基本攻击力×2+士气+武将攻击加成)的地方,具体数值是多少,还在分析中。 但对99级短兵刘备的分析,发现其攻击力较计算数值偏高,目前正在深入分析中。 另: 村庄等可以恢复的设施,其恢复力是根据战役开始时的随机变量确定的,该变量存放在DS:0970开始的四个字节中,每会合按固定公式计算出恢复力,然后乘以10,得到恢复兵力数量。然后根据固定公式计算出一个数值,填回DS:0970中。所以,在保存全部内存镜像(如GW)的情况下,不能使用GW载入进度的方式,得到不同的恢复兵力数量。至于GB4是否是采用保存全部内存镜像的方式,龙吟还不能确定。 【短兵】 基本攻击力:40 基本防御力:40 【长兵】 基本攻击力:60 基本防御力:60 【战车】 基本攻击力:60 基本防御力:80 【弓兵】 基本攻击力:30 基本防御力:40 【连弩兵】 基本攻击力:60 基本防御力:40 【投石车】 基本攻击力:80 基本防御力:50 【轻骑兵】 基本攻击力:60 基本防御力:30 【重骑兵】 基本攻击力:70 基本防御力:50 【近卫队】 基本攻击力:80 基本防御力:60 【山贼】 基本攻击力:50 基本防御力:40 【恶贼】 基本攻击力:60 基本防御力:50 【义贼】 基本攻击力:70 基本防御力:60 【军乐队】 基本攻击力:20 基本防御力:20 【猛兽兵团】 基本攻击力:80 基本防御力:30 【武术家队】 基本攻击力:70 基本防御力:60 【妖术师】 基本攻击力:20 基本防御力:20 【异民族】 基本攻击力:70 基本防御力:80 【民众】 基本攻击力:20 基本防御力:20 【运输队】 基本攻击力:20 基本防御力:20 龙吟最近对英杰传的执行代码继续进行跟踪,结果如下: 结果1:英杰传中部队攻击力的最后公式 部队攻击力=(部队基本攻击力)×(100+宝物加成)÷100 其中: 部队基本攻击力=(兵种基本攻击力×2+士气+武将攻击加成)×(等级+10)÷10 武将攻击加成=4000÷(140-武将武力) 宝物加成为固定值,如青龙偃月刀为12。 PS:上一帖中刘备攻击力偏高是因为我忘了把青龙偃月刀从他身上卸下来德缘故。 (龙吟狂汗中) 结果2:英杰传中部队防御力的最后公式 部队防御力=(部队基本防御力)×(100+宝物加成)÷100 其中: 部队基本防御力=(兵种基本防御力×2+士气+武将防御加成)×(等级+10)÷10 武将防御加成=4000÷(140-武将统御力) 宝物加成为固定值。 PS:宝物的固定加成,请参见小戟的英杰传攻略。 结果3:英杰传的物理攻击杀伤公式 物理攻击杀伤=基本物理攻击杀伤×(100-地形防御加成)÷100 其中: 基本物理攻击杀伤=(攻击方部队攻击力-防御方部队防御力×兵种生克系数÷2) 兵种生克系数如下: 攻击方兵种克制防御方:1.25 防御方兵种克制攻击方:0.75 不存在兵种生克: 1.00 地形防御加成: 村庄 5 森林 20 鹿砦 30 结果4:英杰传的攻击性策略杀伤公式(未完) 不考虑天气变化因素,被攻击者部队的兵种不是运粮队、军乐队、妖术师的前提下: 策略攻击杀伤力=攻击方策略能力×2-防御方策略能力+策略基本威力+随机数 其中: 策略能力=(武将智力×等级÷50+武将智力) 策略基本威力是固定的: 如焦热:200 火龙:600 猛火:1000 随机数是根据DS:07A0和DS:07A2的变量变化的,所以使用GW或GB4恢复时,计算出的 随机数不会发生变化,因此策略的杀伤力也就固定了。 不过当每计算一次随机数时,会根据DS:07A0和DS:07A2的内容,按固定算法计算出 新的值,然后回填到DS:07A0和DS:07A2中,所以甲先使用策略、乙后使用策略 与乙先使用策略、甲后使用策略的效果是不同的。 PS:当被攻击部队兵种是运粮队、军乐队、妖术师时,杀伤力还要打一个折扣, 具体折扣多少,还在分析中,估计是50%。 PS:天气变化因素还在分析中。 PS:随机数算法还在分析中。 PS:策略基本威力=(策略杀伤指数÷16+策略杀伤指数×4+2)×100 焦热的杀伤指数为0,火龙为1,漩涡为17。 每种策略的杀伤指数还在收集中。 PS:还有许多要素未能分析出: 被攻击时士气降低量如何计算? 贼兵的反击率如何计算? 策略的成功率如何计算? 村庄的恢复力如何计算? 天气变化对策略的影响如何? 天气变化的规律如何? 敌军行动AI的算法如何? 龙吟苦战中。希望有精通汇编语言的好手加入分析队伍中,看看是否能为完成 21个99级(22个99级???)的宏伟大业添砖加瓦。 要对三国志英杰传的执行代码进行分析,必须准备以下软件: 如果在Dos6.22中,需要Gametools 3.22/3.23或Soft-ice for dos 如果在Windows中,需要Soft-Ice for Windows 我使用的是Gametools3.22,对DOS版英杰传进行分析。 Gametools3.22的使用方法可以在网上搜索到使用手册。 首先启动Gametools3.22(运行g3x程序)。 然后启动英杰传。在游戏中,用小键盘上的"*"键唤醒Gametools3.22。 举例:要跟踪部队攻击力时,怀疑部队攻击力与武将的武力有关。首先在分析中找 到刘备的武力地址,DS:682E。 然后设置断点,地址为DS:682E,断点属性设为Read/Write。 按ESC退出游戏,当将鼠标移动到刘备身上时(在战斗)中,右方应显示出刘备的武力 和攻击力。当程序访问DS:682E时,Gametools会自动唤醒。显示出程序的执行代码。 然后使用T和P键向下执行程序,判断程序执行使用的算法。 有时唤醒后的程序代码不一定是想要分析的代码,此时退出Gamtools,等待下一次唤醒。 如上述跟踪武力的地方,第一次唤醒时实际上是将武力显示到屏幕上,第二次才是取出武力 计算攻击力。 |
