当谈到英雄无敌三中的很多地图时,很多刘海迷玩家都会吹嘘自己得了多少分,对话通常都是这样有节奏的。

Xx地图昨天3个小时得了480分,牛不行吗?

有什么要吹的,上次我看到隔壁老王在他电脑上打495。

大半夜的,你跑隔壁老王家里看他玩电脑???破案了啊!!!赶紧坦白交代,除了英雄无敌3还做了什么!!

那么你知道分数的计算公式吗?今天小辉就给大家介绍一下

引用国外大神Fush的简化公式:

最终得分=基础分数*难度系数分(0.8、1、1.3、1.6、2。其实就是百分比难度,200%难度就是2)

基础分数=200-(过关天数 – 我方占领城镇数 +6)/(地图总城镇数+5)+ 25(击败所有敌人奖励分)+ 25(挖掘圣杯并建造的奖励分)

详细说明一下

1.200分是基础分。

2.如果击败所有敌人,奖励25分。

3.如果挖掘圣杯并建造,奖励25分。挖到之后不能读存档,不能被击败。

4.天数惩罚。由于是除法,最终处理是四舍五入。大家可以看到,前3个刚好可以凑够500分满分。由于天数惩罚值是减法,也就是说这个天数惩罚的值要为0最好。从公式看,如果地图上有7个城镇,那么就必须在1天内击败敌人(考虑四舍五入,还可以宽裕3天时间),才能获得0分。这有点扯了。不过还有别的办法。如果地图上有20个城镇,过关天数14天以下(考虑四舍五入,还可以宽裕12天时间)就可以拿天数惩罚值0分了,这样总分可以到500分了。

如果城镇更多,那就意味着可以有更充裕的时间。


战役得分:3代战役总分是根据整张战役地图的各个单关得分综合计算的:

设这张战役地图有10关,每关的得分,分别为X1 X2 X3 ……X10,

战役的总得分=(X1+X2+……+X10)/10,取整后,×5。

由于每关是500最高,因此从公式可以知道战役的最高分为2500,且得分肯定是5的倍数。

可以看出要在战役中取得满分2500,必须在战役的每个单关地图中均得到满500分——这肯定不可能。


另外讲个bug。

由于英雄无敌3开发的时间比较早,有一些隐藏很深的bug后期才被挖掘出来。

在游戏中时间的天数,是16位存储的。在程序中隐藏的上限是32767,下限是-32767。

人是可以天然分清楚这些上限和下限的。但对于计算机程序来说,一旦天数达到32767,再过一天,计算机会自动+1,增长到最低的数值(因为它是一个环形的数据链,最高和最低是挨着的。。。),也就是说,天数为32767的时候,再过一天,会变成天数-32767。

这个时候。。。玩家取得胜利。。。。这个天数惩罚由于是减法。。。负负得正。。。也就是说。。。这个最终分数会变的狂高。

具体请看下面两张图,对比下时间和分数就明白了。



欢迎关注头条号,查看更多精彩文章,谢谢。