英雄无敌3中,一谈到很多地图,诸多骨灰粉丝玩家都津津乐道的吹嘘自己获得了多少分数,对话通常是这样节奏的:

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分了。

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

另外讲个bug。

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

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

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

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

惩罚

打开网易新闻 查看精彩图片
打开网易新闻 查看精彩图片
打开网易新闻 查看精彩图片