随机地图揭秘(文/yuuyuu)

事情的起因是这样的,几天前sinc因为做栏目需要,让我到TOH的论坛去找找看有没有和随机地图模板相关的文章,他说他记得有这方面的内容。从我个人的过去和鬼子的对战经验来看,他们也应该有些不错的东西,因为以前在某次和一个鬼子对战的时候聊起随机地图的模板,他在其中谈到的不少内容就让我觉得非常的有见地,不过因为我也看过sinc早前写过的一些模板分析的文章,所以还是不是太以为然。这次既然sinc委托我这事,我就不妨去看看,虽然估计也看不到什么好东西。

没想到随便看了几个主题,当看到一个关于随机模板的讨论以后,我只能用两个字来形容自己当时的表情:震惊!具体内容下面按时间顺序说来。

今年(2002年)1月15日,TOH的一位叫arteman的玩家在TOH的论坛里发布了一个主题为“Waiting for "Midnight" (for template theory)”的帖子,点 这里 观看原贴连接。在该帖子里提到大家一起来探讨一下随机地图的模板类型,以及分别有什么规律,当时反响很激烈,很多玩家都把自己对一些模板的认识写到这个主题里,其中还提到的一些很难碰到的模板类型,有一个人提到他在大约生成了250张以后他发现了一张叫“Golems a Plenty ”的非常不错的地图,也有一些人也反映见过这张地图,但是只有一次。(为什么,呵呵,后面我们就很清楚了)另外大家还提到了一些常见的地图比如“ring”,“Dragons”等,而且大家一致认为“Dragons”还有“newcomers”这样的地图真是sux,这些观点也和国内的玩家意见差不多完全一致。不过,由于没有获得更多的官方资料的支持,所以很多人只能完全按照自己的经验来写,难免有一些错误和不足。限于当时的条件也只能如此了。这期间也有人想编一些关于自动生成好模板的外挂程序,但是因为研究条件有限,写好的程序bug百出,举作者的原话(译文):使用了这个写好的程序以后,”红第一天结束的时候90%的情况会出错“,”大概有80%的概率无论你选中什么条件都只会生成唯一的ring这个模板“,”如果双方都是sod版本那么100%的在d3前都会出错“,因为条件有限,作者也很无奈,认为无法修正这些bug,这个计划只好无限搁浅。

到了10月16日,一个革命性的日子,一个ID是FC_SP111的玩家在这个帖子里揭露了他的惊人发现。他发现了实际上所有的模板文件都定义在一个叫RMG.txt的文本文件里,该文件是作为资源文件存在于h3bitmap.lod这个文件里。h3bitmap.lod这个文件其实我们大家一点都不陌生,我们经常用把里面的头像分离出来看,而且我们经常也用自定义的头像来代替系统默认的头像,只要放置一些相对应的bmp文件放到\data目录下,就可以了。对,同样的道理,我们也可以用这个办法来用自己修改过的随机模板取代系统自带的模板。我们可以做到的修改包括以下几点:1,把一些不好的模板屏蔽掉,只留下你认为还过的去的模板;2,把全部的模板都删除掉,只留下一个模板这样每次产生的随机地图都只有这一个模板;3,你可以对现有的模板进行修改,让他们更平衡(更适合对战或者更适合单机);4,你甚至可以自己全新的建一个模板(hoho,俺期待DW模板和BFH/Boomerang模板)。

怎么做?很简单,让我们step by step。首先你需要得到两个工具,resedit和TextEdit,前者是一个h3/4的资源分离文件,现在已经有其他的工具可以做到这点,你不是一定要下载(只要你能把RMG.txt从你机器里的h3bitmap.lod文件里解出来);后者是一个文本RMG.txt的专用编辑器,不过你完全可以用其他更好的工具代替,比如我现在是用ultraedit来编辑RMG.txt,我甚至发现你可以用Excel来编辑(实际上RMG.txt只是个用列表符分隔的纯文本文件),当然新手还是推荐下载这个专用编辑器,比较直观。我把这两个工具和一个我机器上解出来的RMG.txt放在一个压缩包里方便大家一起下载,点 这里 下载压缩包。我机器上的这个RMG.txt是从(Heroes 3 complete 4.0的版本里解出来的模板定义文件,应该是目前为止官方的最全的模板了。)然后,大家把RMG.txt这个文件放到你的死亡阴影或者末日的目录下的DATA目录里。现在你可以开始编辑模板了,我们打开RMG.txt,可以看到其中有很多行很多列,其中前两行列出的是模板定义的限制条件,对其中的主要几个列含义我解释如下表:

Name 模板名 Indicates template name
Size 模板的大小,点 这里 可以看具体数值含义
Zone ID 每张地图都由几个区域组成,每个区域都有自己独立的设置
-human start 是否一个人类玩家开始于该区域
-computer start 是否一个电脑玩家开始于该区域
-treasure 这是一个宝物区域,玩家不可能从此开始
-junction 这是几条路的交汇点
-base size 指定区域大小
Ownership 指定哪个玩家拥有该区域 ( 1= 红, 2= 蓝 依次类推.)
Minimum Towns/Castle 该玩家拥有多少城
Town Types 该区域的城类型
Mines 该区域有哪些矿
Terrain 该区域地形
Monster Strength 怪物的强度,另外你也可以在这里设定某个城的军队力量(这个意思我不是很确定)
Treasure 这里是关键,每一个物体对象都有一个对应值,在此处指定。点 这里 可以看具体对应关系(未完成)
Density 设置这个区域物体对象密度
Connections 指定区域之间的连接关系
Value 指定这个区域的路口守关老怪(就是DW里的巨人拉),具体数值对应关系目前还没完全研究完。
Border Guard 设定是否存在边界守卫
Min(MAX) human/total positions 这里设定玩家的人数范围,一定要设置好

这张表的内容还不全,因为很多东西还没挖掘完,需要大家继续努力完成它。一些数值的对应关系也不全。如果你要1,删除某些坏的模板,那么你只要简单的把你不要的模板name对应的删除就可以了(当然你要把这个模板的相关全部定义信息都删除也完全可以),比如我只要删除"dragons"这几个字那么以后我随机出来的地图再也不会出现Dragons这个模板;同样如果只想保留一个模板那么就把其他的name对应的地方全删了,就留下你要的那一个模板。2,编辑新的模板。这时候你需要对模板的每个位置的数值含义进行猜测,尝试自己认为应该填入的数值来进行实验。 举个最简单的例子,前面我们提到的Golems a Plenty这张地图的默认设置里 min total positions = max total positons =4 也就意味着这张地图能且仅能作为一个四人的对战地图,一般只有在22的时候否则我们是不可能生成这样的地图的,这也是为什么这个模板很少人见过的原因。另外这张地图的size是6-18,这也说明该地图只能在M2-L2的范围内,我们现在可以做个简单的修改,把它改为4-32,min total positons=1 ,max =4,这样就允许了它能在M1-XL2的范围内生成,而且也不一定是要22才能玩,11也可以适用。但是改的时候要注意,因为其他因素的限制,所以如果你改的太大或者太小,都可能让地图失去平衡性,也有可能生成地图失败。所以精心微雕就见一个人的功力。

ok,罗嗦的说了一大堆,不知道大家看懂没有,反正这还只是初稿,另外这方面的研究本身就才刚开始,上面列出的有些是老外做的研究有些是我自己做的实验得出的结果,难免会有很多错误,先放出来让大家尝试一下,希望大家尽量把它补全。

最后再例行公事的感慨一下,随机地图模板的研究,sinc早在去年5月就开始了,而且得出的结果远远比当时的国外玩家超前,但是确因为后继研究无人,导致现在落后老外整整一个月。所谓中国人长于动口而拙于动手,大抵如是,sigh! 874自己一下,让自己以后好好发奋!

本文版权归 英雄世界 及TOH论坛相关内容提供者所有,转载请注明,谢谢!


英雄无敌随机地图分析(文/sinc) 已到最后页