0.发此贴的目的是给开始尝试修改地图的人一些帮助,让我能玩到更多有特色的游戏地图.本人才疏学浅,文中难免有错漏,轻拍...
1.解包等步骤就不多说了,文件转换请使用较新版本,省去修改ids文件(其实我也不会...).
地图文件位置: \MEDIA\DUNGEONS\ 具体什么文件对应什么地图,可以根据文件名和转成txt文件后
DISPLAYNAME行查看.
其中以MAP_开头的是MAPWORK的地图,就以其中的Map_Estherian_B.DAT为例,逐行分析.
先说一下文件结构吧,以[]框起来的部分是用来说明文件结构的.比如[DUNGEON]和[/DUNGEON]之间的内容为定义这个地图.内部还嵌套有很多这种结构,从名字上就可以大概知道其中定义的是什么.
[DUNGEON] :开始定义地图
NAME:Map_Estherian_B :地图名,其它文件中要使用到这个地图,是需要通过这个名字来做到的.
VOLATILE:false :字面意思是不稳定的,不过我没见过true的地图,所以不知道游戏内的效果.
BOTTOMLESS:false :字面意思是无限的,同样没见过,应该是可以做成无限地城.
MAP:true :应该表明这是通过地图进入的.
REPLAYSCALED:false :不知道什么意思.
PLAYER_LVL_MATCH_MIN:48
PLAYER_LVL_MATCH_MAX:55 :建议等级,会直接影响内部怪物等级
PARENT_DUNGEON:MAPWORKS
PARENT_TOWN:MAPWORKS :表明你出地城和使用回城后到的地方
DISPLAYNAME:Ruined Shrine :地图名字,因为这个基本肯定会被汉化,所以只要文件有这一项,就应该会被汉化效果覆盖,自行解决吧.
MONSTER_LVL_MULT:1.000000 :没试过效果,字面看来应该是提高内部怪物等级用的.
TYPE: DUNGEON :地图类型.
MINRANDOMAFFIXES:0
MAXRANDOMAFFIXES:4 :地图词缀,也就是MAPWORK地图附带的效果
ENCHANTEDLEVELCHANCE:100.000000 :没试过,应该和附魔有关
[STRATA0] :定义第一块地图
RULESET :media/layouts/esthshrine/maproom_floor1_a_rules.template :定义这一块的规则,包括地图样式,大小,风景,宝箱等.
NAME_OVERRIDE:Ruined Shrine :进入地图后,右上角显示名字
FLOORS:1 :这一块地图的层数
MONSTERSPAWNCLASS:RANDOMMAP_DRAGONTOWER1_SET :普通怪物组,比如你想让普通怪物用精英怪替代,只要把冒号后的内容替换成精英怪相应的组别就可以了.这些组别都在\MEDIA\SPAWNCLASSES内定义.此外这些组的定义都不是必须有的语句,没有会被默认为NONE.
MONSTERS_PER_METER_MIN:0.007000
MONSTERS_PER_METER_MAX:0.007000 :每米怪物组数,决定怪物密度
CHAMPIONSPAWNCLASS:ACT3_DRAGONTOWER_1_CHAMPIONS :精英怪物组
CHAMPIONS_MIN:2.000000
CHAMPIONS_MAX:2.000000 :每层精英怪数量范围
PROPSPAWNCLASS:NONE :没试过效果
NPCSPAWNCLASS:NPCS_DUNGEON_ENCHANTERS_AND_MIMICS :NPC组,所以理论上其实你可以让任何NPC出现在地图里,初始地图都是附魔NPC.
NPCS_MIN:0.000000
NPCS_MAX:1.000000 :NPC数目范围
CREEPSPAWNCLASS:MINECREEPS :某种类型的怪物组合...
CREEPS_PER_METER_MIN:0.001500
CREEPS_PER_METER_MAX:0.001500 :这种怪物的密度
[/STRATA0] :第一块定义完毕
[STRATA1]
...
[/STRATA1] :第二块的定义,与第一块完全相同,有些地图第一块有2层,所以没有这一块地图.
[STRATA2] :此处为BOSS地图块
RULESET:media/layouts/esthshrine/maproom_bossroom_a_rules.template :BOSS地图的规则,貌似会直接决定这里刷出什么样的BOSS
FLOORS:1
MONSTERSPAWNCLASS:NONE
MONSTERS_PER_METER_MIN:0.000000
MONSTERS_PER_METER_MAX:0.000000
PROPSPAWNCLASS:NONE
NPCS_MIN:0.000000
NPCS_MAX:0.000000
CREEPSPAWNCLASS:MINECREEPS
CREEPS_PER_METER_MIN:0.001500
CREEPS_PER_METER_MAX:0.001500 :与之前一致
MONSTER_LVL_MIN:52 :貌似在这没什么用,可能只是规定BOSS等级至少为52级,也就是只对最低等级的MAPWORK地图有效.可以尝试更改这个数值,使其对某块地图所有怪物生效,不过我没试过,欢迎尝试.
ALLOW_PORTALS:false :无法使用传送门
[/STRATA2] :BOSS地图块定义结束
[RANDOMPLAYERAFFIXES] :开始定义玩家相关随机词缀列表
AFFIX:MAP_BURNING
AFFIX:MAP_PLAYER_EXP_BONUS_5
AFFIX:MAP_PLAYER_GOLD_BONUS
AFFIX:MAP_PLAYER_HEALTH_REGEN
AFFIX:MAP_PLAYER_MF_BONUS_15
AFFIX:MAP_PLAYER_REDUCE_MANA_COST
AFFIX:MAP_PLAYER_SUMMON_SKULL :各种词缀,都在MEDIA\AFFIXES\LEVELS下,我因为怕影响平衡性所以没改过,理论上可以自己添加定义,然后加到这,所以可以改出各种BUG词缀...
[/RANDOMPLAYERAFFIXES] :结束定义玩家相关随机词缀列表
[RANDOMMONSTERAFFIXES]
AFFIX:MAP_FREEZING
AFFIX:MAP_MONSTER_HEALTH_PERCENT_BONUS_15
AFFIX:MAP_MONSTER_SPEED_PERCENT_BONUS_10
[/RANDOMMONSTERAFFIXES] :怪物相关随机词缀列表定义与上面类似
[/DUNGEON] :结束定义地图
看到这,你就可以初步修改出你想要的地图了.
更多相关资讯请关注:火炬之光2专题
2. 修改怪物组
所谓怪物组,就是随机产生其中列出的怪物.文件可以新增,比如我增加了关底BOSS组.....
怪物组文件都在\MEDIA\SPAWNCLASSES下
这个文件夹内都是与随机相关的文件,包括传奇掉落.
以其中ACT4_DWARVENLABS_CHAMPIONS为例,逐行分析.
[SPAWNCLASS] : 开始定义
NAME:ACT4_DWARVENLABS_CHAMPIONS :怪物组名字,尽量保证与文件名一致,并且由于hash表的缘故,请尽量使用已有的单词组合,减少出错可能.
[OBJECT] :定义随机项
UNIT: DWARF_BRUTE_CHAMPION :表示会随机到DWARF_BRUTE_CHAMPION这种精英怪(虽然我不知道是怎么产生的,但实际看来是包含其自带小怪的),具体内容可以在\MEDIA\UNIT下搜索查看,如果想要改BOSS也是类似的
WEIGHT:5 :权重,也就是随机到这一项的可能性.真正的概率应该是5/总WEIGHT.
MINCOUNT:1
MAXCOUNT:1 :怪物数量范围,如果设置到2,那么一次就会出现两个这种怪物.
[/OBJECT] :结束此随机项定义
[OBJECT]
...
[/OBJECT]
[OBJECT]
...
[/OBJECT] :这些都与上面类似,不赘述了.
[/SPAWNCLASS] :结束定义
3.RULE文件:
这类文件我也没有成功修改,不过如果要增加地图多样性,早晚会涉及到这一块,欢迎大家尝试.
文件位置:\MEDIA\LAYOUTS下
其实只要把后缀改为.dat就可以转换成txt文件了.
初步分析了一下,应该是通过地图块拼接完成地图生成,不过我分析不了.LAYOUT和.MPP文件,所以具体原理还不了解.
4.MAPWORK中地图定义:
文件位置:\MEDIA\UNITS\ITEMS
其它物品,包括药水,装备等也在这个目录下,需要的话可以自行修改,不过添加似乎会有点问题,可能与GUID有关.
以\MEDIA\UNITS\ITEMS\MAPS\EstherianMapB为例分析
[UNIT] :开始定义物品
BASEFILE:media/units/items/base.dat :父文件,可以暂时认为是把缺省值定义好了的文件
NAME:EstherianMapB :物品名字
RESOURCEDIRECTORY:media/models/items/scroll :应该是物品模型
MESHFILE:scroll :估计也是类型什么的定义
UNITTYPE:MAP :物品类型
DESCRIPTION:Enables entry to the Ruined Shrine via the Mapworks :物品描述,肯定会被汉化,所以自行解决吧
RARITY:100 :稀有度,越高越不稀有
VALUE:10 :不知道,与价格相关的参数么?
LEVEL:48 :物品等级
MAXSTACKSIZE:1 :可堆叠数目
SHADOWS:true :阴影?
ICON:map_shrine :图标
FALL_SOUND:Item Fall
TAKE_SOUND:ClothGet
LAND_SOUND:ScrollDrop
USE_SOUND:TownPortalCast :各种音效
MINLEVEL:45
MAXLEVEL:60 :地图等级,不清楚实际怎么发挥作用
DISPLAYNAME:Ruined Shrine Map (L48-55) :显示名字
DUNGEON:MAP_ESTHERIAN_B :上面的都无所谓,这个才是重点...........使用后传送到的地图名,所以你可以用原本是传送到地图A的地图传送到地图B去,我想尝试使用SPAWNCLASSES来使传送产生随机效果,不过没有成功,欢迎尝试.
USES:0 :没试过,应该是一次使用消耗几个
UNIT_GUID:8973525946458435083 :唯一标识码,64位二进制...我不会生成,否则应该可以添加物品了.如果有人成功添加物品,请不吝赐教.
[/UNIT] :结束定义
更多相关资讯请关注:火炬之光2专题