本站域名:
www.chinamods.com
     

- 地图下载 -

- MOD站点链接 -
御天暗黑MOD战网


Game Park

暗黑破坏神官方网站

暗黑破坏神官方战网网站

 
新增户外地图补充篇
新增户外地图补充篇。 作者:罗日明 

此帖子算是原来sloovy那篇帖子的补充,或者说是学习心得吧。

如何新增户外地图:

一:需要使用到的工具:d2excel、win_ds1edit、tbl编辑工具。
需要使用到的文件:相应的ds1文件,lvlpreset.txt,lvlwarp.txt,levels.txt,string.tbl。

二:编辑相应的ds1文件,这里编辑ds1的目的就是添加地图间相连的标识和路标,同时因为是新增区域,所以你需要新建一幅地图,将原来的一幅地图改名即可。添加地图相连的标识时候可以用vis0~vis7都可以,
不过添加以前你最好看看levels.txt里面对应地图的vis(x)是否已经被用到了,被用到的就别再用了。添加完vis后按ctrl+shit+右键进入专家编辑模式把vis所在的贴图隐藏掉,注意你把vis放在哪一层,把它对应的层后hide的值由零变为一就ok了。否则进入地图会见到一小片绿色。两个地图的vis一定要相同,否则无法连接。另外需要注意的就是如果你把vis放在不能点选的物体身上,你将无法从该vis进入。甚至游戏会出错。

三:修改lvlpreset.txt。在最下面增加一行,拷贝一行相近似的行粘贴上去。然后修改部分参数即可。
需要注意修改的参数有:
1、Def值,顺延即可。
2、levelID,对应levels.txt里面的ID。
3、 outdoors,一表示户外。
4、SizeX,SizeY,地图的尺寸,注意固定大小的户外区域这里一定要填零,表示使用levels.txt里面定义的数值。
5、Scan值设为1。

四:修改lvlwarp.txt。随便拷贝一行到最下面修改一下就可以了,名字随便,不过最好跟地图的名字有一定的关联,这样好分辨。最重要的一个参数就是ID值了,因为在levels.txt里面要用到。也是warp跟地图关联起来的唯一标识。

五:修改levels.txt,也是新增一行然后拷贝一行近似的到末尾再修改。
需要注意修改的参数有:
1、ID号,顺延即可。
2、pal,调色板,不必改变。
3、act,不必改变。
4、 questflag.questflagex,需要完成多少任务才能进,不知道是否起作用。
5、layer,层,不同的地图层可以相同。不过最好地图类型要相似。
6、 SizeX,SizeY,地图尺寸。
7、 offsetX,offsetY,地图在世界地图的位置,理解为该地图中心在世界坐标中的坐标值。
offsetX,offsetY值的不合理有可能导致地图的混乱。
8 、 Isinside,是否是地下地图类型。
9 、 DrlgType,重要的参数,固定大小的预设地图DrlgType值为2。
10 、 leveltype,地图类型,重要参数,同levelpreset里面定义的对应。
11、 vis值,在你在地图里面放置的vis号下填连接的地图的ID号。
12、 warp值,在对应的warp下面填你在lvlwarp.txt里面定义的warp的ID号。
显然一组vis只对应一个warp而已。(这个现在看来不一定)
13、 waypoint。路点,你可以更改路点的位置,但是你不能增加。
14、 levelname。在按tab键时出来的小地图信息显示的地图的名字。
15、 levelwarp。当鼠标指向路标时显示出来的名字。
16、 entryfile。进入该地图时屏幕上显示的“进入xxx”的名字,由于我们现在还无法定做,所以就随便复制一个把它改名后放在data/local/Ui/expansion/下即可,缺点是进入你所增加的地图的时候屏幕上显示的“进入xxx”不是真的,有点怪怪的感觉。(这个问题已经解决)

六:修改string.tbl。在这里的任务就是要把你在levels.txt里面定义的levelname和levelwarp汉化。
这样就完成了新增户外地图的任务。

增加地图应该注意的问题:

一:ds1的修改涉及到个四txt文件,包括levels.txt,lvlpreset.txt,lvltype.txt,lvlwarp.txt四个文件。

如果修改还包括怪物的添加和不同act地图元素的替换的话,那么还涉及到monstats.txt,superuniques.txt,monpreset.txt,objects.txt,obj.txt五个文件,其中obj.txt是win_ds1edit自带的文件。
基本的修改一般只涉及levels.txt,lvlpreset.txt,lvlwarp.txt三个文件,做法前面已经提到过,如果漏了某些数据没改,比如warp未定义,定义的vis跟ds1的vis不符,等等。。。一般的错误电脑会有提示,但是有一个错误电脑没有提示,就是levels.txt里面entryfile一列所用到的dc6文件一定要放到local\ui\expansion\下,否则必出错,而且不会告诉你是什么错误。
如果修改涉及到增加新的dt1,那么需要修改lvltype.txt里面的dt1文件列表和lvlpreset.txt里面的dt1mask值。在lvlpreset.txt里面,相同的type地图未必有相同的dt1mask,因为一个ds1预设的dt1mask值是根据它所用到的dt1文件在相应的type的dt1文件列表里面的位置来计算的。要往一个ds1文件里面添加新的dt1,有一个简单的技巧就是在lvlpreset.txt里面将它的dt1mask的值定位它所属的type的dt1mak的最大值,这样它就能使用该type的所有dt1了!
在lvltype.txt里面增加dt1的时候,必须注意在一个type的列表里面不能有重复的dt1文件,否则在游戏中无法进入该地图,但是在win_ds1edit里面却是正常的。在增加比较多的dt1的时候很有可能出现这种错误。
另外我发现dt1文件列表里面dt1文件的先后顺序会影响到贴图的显示,有时候一种贴图会占据另一种贴图的位置,将顺序换一下就可以了,有时候即使换顺序也不行,这种情况下互相冲突的贴图就没法同时处于一张地图中,不知道应该怎么解决!(这个通过设置dt1mask可以解决)

二、如果修改涉及到在地图中增加预先放好的怪物,必须注意以下几点:

1、以前,只要是增加预先放置的怪物,都要修改monpreset才行,但是使用新版的win_ds1edit,却不一定需要修改monpreset。为什么说不一定呢?这里面其实包含两种情况。
(1) 如果是在一个act的地图增加原本在这个act就能出现的怪物,那么不用修改monpreset.txt,只要直接在ds1里面添加就行了。
(2) 如果是在一个act的地图添加原本只在其他act的地图才出现的怪物,那么就需要修改monpreset.txt,而且可能都要修改monstats.txt,superuniques.txt和obj.txt,为什么说可能呢?因为这种情况下我都修改了这三个——至少是两个文件,也就是说我还没试过只修改monpreset和ds1这种情况,不过觉得有可能是可以的。
2、 要很清楚的意识到,一个ds1文件是可以用在任意的act的,而且这个ds1里面存在的物体(包括怪物)是跟这个ds1相关联,而跟它用在哪个act无关。所以我们很容易在act2增加一个lava地图并在里面放置diablo,但是如果你使用winhex修改它的act属性的话,原本放置在这个ds1上的object就变换成你强制改成的act里面的object,我没有去研究这种变换的规则。
3、 就目前来说,我已经会让type1 object超过60。原本win_ds1edit里面默认的type1 object只有60个,这样显然不能满足我们增加许多superuinque的需要。实现的方法很简单,关键在于monpreset.txt和obj.txt都是可以扩展而且可以插入行的,注意是可以插入行,而不仅仅是增加行,这是很关键的。实现方法,在monpreset.txt和obj.txt里面相应的act的最后面插入你新定义的怪的名称即可。注意obj.txt的修改也只需要增加一行和一个名字,其他都不用管,其他是控制在win_ds1edit里面的显示的。

三、 增的和原来的地图直接相连的地图将不能使用maphack探索地图,否则出错。但是新增的地图和原来的地图不是通过warp相连的就可以使用。修改一个地图后如果不能使用maphack,不一定是你刚修改的地图的问题,有可能是你原来修改过的一些地图的问题,所以最好每修改一个地图都用maphack试下看有没有问题。

CopyRight (c) 2003-2008 游戏小站(Game Park)版权所有

如转载,请注明出处。