《火炬之光2》地图MOD入门教程

单机攻略      更新:2017-04-28

0.发此贴的目的是给开始尝试修改地图的人一些帮助,让我能玩到更多有特色的游戏地图.本人才疏学浅,文中难免有错漏,轻拍...

1.解包等步骤就不多说了,文件转换请使用较新版本,省去修改ids文件(其实我也不会...).

地图文件位置: \MEDIA\DUNGEONS\      具体什么文件对应什么地图,可以根据文件名和转成txt文件后<TRANSLATE>DISPLAYNAME行查看.

其中以MAP_开头的是MAPWORK的地图,就以其中的Map_Estherian_B.DAT为例,逐行分析.

先说一下文件结构吧,以[]框起来的部分是用来说明文件结构的.比如[DUNGEON]和[/DUNGEON]之间的内容为定义这个地图.内部还嵌套有很多这种结构,从名字上就可以大概知道其中定义的是什么.

[DUNGEON]  :开始定义地图

<STRING>NAME:Map_Estherian_B  :地图名,其它文件中要使用到这个地图,是需要通过这个名字来做到的.

<BOOL>VOLATILE:false  :字面意思是不稳定的,不过我没见过true的地图,所以不知道游戏内的效果.

<BOOL>BOTTOMLESS:false   :字面意思是无限的,同样没见过,应该是可以做成无限地城.

<BOOL>MAP:true  :应该表明这是通过地图进入的.

<BOOL>REPLAYSCALED:false  :不知道什么意思.

<INTEGER> PLAYER_LVL_MATCH_MIN:48

<INTEGER> PLAYER_LVL_MATCH_MAX:55  :建议等级,会直接影响内部怪物等级

<STRING> PARENT_DUNGEON:MAPWORKS

<STRING> PARENT_TOWN:MAPWORKS  :表明你出地城和使用回城后到的地方

<TRANSLATE>DISPLAYNAME:Ruined Shrine  :地图名字,因为这个基本肯定会被汉化,所以只要文件有这一项,就应该会被汉化效果覆盖,自行解决吧.

<FLOAT>MONSTER_LVL_MULT:1.000000  :没试过效果,字面看来应该是提高内部怪物等级用的.

<STRING>TYPE: DUNGEON  :地图类型.

<INTEGER>MINRANDOMAFFIXES:0

<INTEGER>MAXRANDOMAFFIXES:4  :地图词缀,也就是MAPWORK地图附带的效果

<FLOAT>ENCHANTEDLEVELCHANCE:100.000000  :没试过,应该和附魔有关

[STRATA0]  :定义第一块地图

<STRING>RULESET  :media/layouts/esthshrine/maproom_floor1_a_rules.template :定义这一块的规则,包括地图样式,大小,风景,宝箱等.

<TRANSLATE>NAME_OVERRIDE:Ruined Shrine  :进入地图后,右上角显示名字

<INTEGER>FLOORS:1  :这一块地图的层数

<STRING>MONSTERSPAWNCLASS:RANDOMMAP_DRAGONTOWER1_SET  :普通怪物组,比如你想让普通怪物用精英怪替代,只要把冒号后的内容替换成精英怪相应的组别就可以了.这些组别都在\MEDIA\SPAWNCLASSES内定义.此外这些组的定义都不是必须有的语句,没有会被默认为NONE.

<FLOAT>MONSTERS_PER_METER_MIN:0.007000

<FLOAT>MONSTERS_PER_METER_MAX:0.007000  :每米怪物组数,决定怪物密度

<STRING>CHAMPIONSPAWNCLASS:ACT3_DRAGONTOWER_1_CHAMPIONS  :精英怪物组

<FLOAT>CHAMPIONS_MIN:2.000000

<FLOAT>CHAMPIONS_MAX:2.000000  :每层精英怪数量范围

<STRING> PROPSPAWNCLASS:NONE  :没试过效果

<STRING>NPCSPAWNCLASS:NPCS_DUNGEON_ENCHANTERS_AND_MIMICS  :NPC组,所以理论上其实你可以让任何NPC出现在地图里,初始地图都是附魔NPC.

<FLOAT>NPCS_MIN:0.000000

<FLOAT>NPCS_MAX:1.000000  :NPC数目范围

<STRING>CREEPSPAWNCLASS:MINECREEPS  :某种类型的怪物组合...

<FLOAT>CREEPS_PER_METER_MIN:0.001500

<FLOAT>CREEPS_PER_METER_MAX:0.001500  :这种怪物的密度

[/STRATA0]  :第一块定义完毕

[STRATA1]

...

[/STRATA1]  :第二块的定义,与第一块完全相同,有些地图第一块有2层,所以没有这一块地图.

[STRATA2]  :此处为BOSS地图块

<STRING>RULESET:media/layouts/esthshrine/maproom_bossroom_a_rules.template  :BOSS地图的规则,貌似会直接决定这里刷出什么样的BOSS

<INTEGER>FLOORS:1

<STRING>MONSTERSPAWNCLASS:NONE

<FLOAT>MONSTERS_PER_METER_MIN:0.000000

<FLOAT>MONSTERS_PER_METER_MAX:0.000000

<STRING> PROPSPAWNCLASS:NONE

<FLOAT>NPCS_MIN:0.000000

<FLOAT>NPCS_MAX:0.000000

<STRING>CREEPSPAWNCLASS:MINECREEPS

<FLOAT>CREEPS_PER_METER_MIN:0.001500

<FLOAT>CREEPS_PER_METER_MAX:0.001500  :与之前一致

<INTEGER>MONSTER_LVL_MIN:52  :貌似在这没什么用,可能只是规定BOSS等级至少为52级,也就是只对最低等级的MAPWORK地图有效.可以尝试更改这个数值,使其对某块地图所有怪物生效,不过我没试过,欢迎尝试.

<BOOL>ALLOW_PORTALS:false  :无法使用传送门

[/STRATA2]  :BOSS地图块定义结束

[RANDOMPLAYERAFFIXES]  :开始定义玩家相关随机词缀列表

<STRING>AFFIX:MAP_BURNING

<STRING>AFFIX:MAP_PLAYER_EXP_BONUS_5

<STRING>AFFIX:MAP_PLAYER_GOLD_BONUS

<STRING>AFFIX:MAP_PLAYER_HEALTH_REGEN

<STRING>AFFIX:MAP_PLAYER_MF_BONUS_15

<STRING>AFFIX:MAP_PLAYER_REDUCE_MANA_COST

<STRING>AFFIX:MAP_PLAYER_SUMMON_SKULL    :各种词缀,都在MEDIA\AFFIXES\LEVELS下,我因为怕影响平衡性所以没改过,理论上可以自己添加定义,然后加到这,所以可以改出各种BUG词缀...

[/RANDOMPLAYERAFFIXES]  :结束定义玩家相关随机词缀列表

[RANDOMMONSTERAFFIXES]

<STRING>AFFIX:MAP_FREEZING

<STRING>AFFIX:MAP_MONSTER_HEALTH_PERCENT_BONUS_15

<STRING>AFFIX:MAP_MONSTER_SPEED_PERCENT_BONUS_10

[/RANDOMMONSTERAFFIXES]  :怪物相关随机词缀列表定义与上面类似

[/DUNGEON]  :结束定义地图

看到这,你就可以初步修改出你想要的地图了.


2. 修改怪物组

所谓怪物组,就是随机产生其中列出的怪物.文件可以新增,比如我增加了关底BOSS组.....

怪物组文件都在MEDIA\SPAWNCLASSES下

这个文件夹内都是与随机相关的文件,包括传奇掉落.

以其中ACT4_DWARVENLABS_CHAMPIONS为例,逐行分析.

[SPAWNCLASS]  : 开始定义

<STRING>NAME:ACT4_DWARVENLABS_CHAMPIONS  :怪物组名字,尽量保证与文件名一致,并且由于hash表的缘故,请尽量使用已有的单词组合,减少出错可能.

[OBJECT]  :定义随机项

<STRING>UNIT: DWARF_BRUTE_CHAMPION  :表示会随机到DWARF_BRUTE_CHAMPION这种精英怪(虽然我不知道是怎么产生的,但实际看来是包含其自带小怪的),具体内容可以在MEDIA\UNIT下搜索查看,如果想要改BOSS也是类似的

<INTEGER>WEIGHT:5  :权重,也就是随机到这一项的可能性.真正的概率应该是5/总WEIGHT.

<INTEGER>MINCOUNT:1

<INTEGER>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]  :开始定义物品

<STRING>BASEFILE:media/units/items/base.dat  :父文件,可以暂时认为是把缺省值定义好了的文件

<STRING>NAME:EstherianMapB  :物品名字

<STRING>RESOURCEDIRECTORY:media/models/items/scroll  :应该是物品模型

<STRING>MESHFILE:scroll  :估计也是类型什么的定义

<STRING>UNITTYPE:MAP  :物品类型

<TRANSLATE>DESCRIPTION:Enables entry to the Ruined Shrine via the Mapworks  :物品描述,肯定会被汉化,所以自行解决吧

<INTEGER>RARITY:100  :稀有度,越高越不稀有

<INTEGER>VALUE:10  :不知道,与价格相关的参数么?

<INTEGER>LEVEL:48  :物品等级

<INTEGER>MAXSTACKSIZE:1  :可堆叠数目

<BOOL>SHADOWS:true  :阴影?

<STRING>ICON:map_shrine  :图标

<STRING>FALL_SOUND:Item Fall

<STRING>TAKE_SOUND:ClothGet

<STRING>LAND_SOUND:ScrollDrop

<STRING>USE_SOUND:TownPortalCast  :各种音效

<INTEGER>MINLEVEL:45

<INTEGER>MAXLEVEL:60  :地图等级,不清楚实际怎么发挥作用

<TRANSLATE>DISPLAYNAME:Ruined Shrine Map (L48-55)  :显示名字

<STRING>DUNGEON:MAP_ESTHERIAN_B  :上面的都无所谓,这个才是重点...........使用后传送到的地图名,所以你可以用原本是传送到地图A的地图传送到地图B去,我想尝试使用SPAWNCLASSES来使传送产生随机效果,不过没有成功,欢迎尝试.

<STRING>USES:0  :没试过,应该是一次使用消耗几个

<STRING>UNIT_GUID:8973525946458435083  :唯一标识码,64位二进制...我不会生成,否则应该可以添加物品了.如果有人成功添加物品,请不吝赐教.

[/UNIT]  :结束定义

原文地址:http://www.18pk.com/web/wen-265131.html 转载请在文首保留此行。

感兴趣的