找回密码
 立即注册
查看: 1693|回复: 0

新增户外地图补充篇

[复制链接]
发表于 2013-6-8 08:48:48 | 显示全部楼层 |阅读模式
  如何新增户外地图:
  一:需要使用到的工具: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试下看有没有问题。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|网站地图|联系我们|关于我们|隐私条款|免责声明|小黑屋|D2home暗黑1.09战网 ( 鲁ICP备2020047197号 )

GMT+8, 2024-5-4 03:53 , Processed in 0.224456 second(s), 20 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表