
0.發(fā)此貼的目的是給開(kāi)始嘗試修改地圖的人一些幫助,讓我能玩到更多有特色的游戲地圖.本人才疏學(xué)淺,文中難免有錯(cuò)漏,輕拍...
1.解包等步驟就不多說(shuō)了,文件轉(zhuǎn)換請(qǐng)使用較新版本,省去修改ids文件(其實(shí)我也不會(huì)...).
地圖文件位置: \MEDIA\DUNGEONS\ 具體什么文件對(duì)應(yīng)什么地圖,可以根據(jù)文件名和轉(zhuǎn)成txt文件后
DISPLAYNAME行查看.
其中以MAP_開(kāi)頭的是MAPWORK的地圖,就以其中的Map_Estherian_B.DAT為例,逐行分析.
先說(shuō)一下文件結(jié)構(gòu)吧,以[]框起來(lái)的部分是用來(lái)說(shuō)明文件結(jié)構(gòu)的.比如[DUNGEON]和[/DUNGEON]之間的內(nèi)容為定義這個(gè)地圖.內(nèi)部還嵌套有很多這種結(jié)構(gòu),從名字上就可以大概知道其中定義的是什么.

[DUNGEON] :開(kāi)始定義地圖
NAME:Map_Estherian_B :地圖名,其它文件中要使用到這個(gè)地圖,是需要通過(guò)這個(gè)名字來(lái)做到的.
VOLATILE:false :字面意思是不穩(wěn)定的,不過(guò)我沒(méi)見(jiàn)過(guò)true的地圖,所以不知道游戲內(nèi)的效果.
BOTTOMLESS:false :字面意思是無(wú)限的,同樣沒(méi)見(jiàn)過(guò),應(yīng)該是可以做成無(wú)限地城.
MAP:true :應(yīng)該表明這是通過(guò)地圖進(jìn)入的.
REPLAYSCALED:false :不知道什么意思.
PLAYER_LVL_MATCH_MIN:48
PLAYER_LVL_MATCH_MAX:55 :建議等級(jí),會(huì)直接影響內(nèi)部怪物等級(jí)
PARENT_DUNGEON:MAPWORKS
PARENT_TOWN:MAPWORKS :表明你出地城和使用回城后到的地方
DISPLAYNAME:Ruined Shrine :地圖名字,因?yàn)檫@個(gè)基本肯定會(huì)被漢化,所以只要文件有這一項(xiàng),就應(yīng)該會(huì)被漢化效果覆蓋,自行解決吧.
MONSTER_LVL_MULT:1.000000 :沒(méi)試過(guò)效果,字面看來(lái)應(yīng)該是提高內(nèi)部怪物等級(jí)用的.
TYPE: DUNGEON :地圖類型.
MINRANDOMAFFIXES:0
MAXRANDOMAFFIXES:4 :地圖詞綴,也就是MAPWORK地圖附帶的效果
ENCHANTEDLEVELCHANCE:100.000000 :沒(méi)試過(guò),應(yīng)該和附魔有關(guān)
[STRATA0] :定義第一塊地圖
RULESET :media/layouts/esthshrine/maproom_floor1_a_rules.template :定義這一塊的規(guī)則,包括地圖樣式,大小,風(fēng)景,寶箱等.
NAME_OVERRIDE:Ruined Shrine :進(jìn)入地圖后,右上角顯示名字
FLOORS:1 :這一塊地圖的層數(shù)
MONSTERSPAWNCLASS:RANDOMMAP_DRAGONTOWER1_SET :普通怪物組,比如你想讓普通怪物用精英怪替代,只要把冒號(hào)后的內(nèi)容替換成精英怪相應(yīng)的組別就可以了.這些組別都在\MEDIA\SPAWNCLASSES內(nèi)定義.此外這些組的定義都不是必須有的語(yǔ)句,沒(méi)有會(huì)被默認(rèn)為NONE.
MONSTERS_PER_METER_MIN:0.007000
MONSTERS_PER_METER_MAX:0.007000 :每米怪物組數(shù),決定怪物密度
CHAMPIONSPAWNCLASS:ACT3_DRAGONTOWER_1_CHAMPIONS :精英怪物組

CHAMPIONS_MIN:2.000000
CHAMPIONS_MAX:2.000000 :每層精英怪?jǐn)?shù)量范圍
PROPSPAWNCLASS:NONE :沒(méi)試過(guò)效果
NPCSPAWNCLASS:NPCS_DUNGEON_ENCHANTERS_AND_MIMICS :NPC組,所以理論上其實(shí)你可以讓任何NPC出現(xiàn)在地圖里,初始地圖都是附魔NPC.
NPCS_MIN:0.000000
NPCS_MAX:1.000000 :NPC數(shù)目范圍
CREEPSPAWNCLASS:MINECREEPS :某種類型的怪物組合...
CREEPS_PER_METER_MIN:0.001500
CREEPS_PER_METER_MAX:0.001500 :這種怪物的密度
[/STRATA0] :第一塊定義完畢
[STRATA1]
...
[/STRATA1] :第二塊的定義,與第一塊完全相同,有些地圖第一塊有2層,所以沒(méi)有這一塊地圖.

[STRATA2] :此處為BOSS地圖塊
RULESET:media/layouts/esthshrine/maproom_bossroom_a_rules.template :BOSS地圖的規(guī)則,貌似會(huì)直接決定這里刷出什么樣的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 :貌似在這沒(méi)什么用,可能只是規(guī)定BOSS等級(jí)至少為52級(jí),也就是只對(duì)最低等級(jí)的MAPWORK地圖有效.可以嘗試更改這個(gè)數(shù)值,使其對(duì)某塊地圖所有怪物生效,不過(guò)我沒(méi)試過(guò),歡迎嘗試.
ALLOW_PORTALS:false :無(wú)法使用傳送門(mén)
[/STRATA2] :BOSS地圖塊定義結(jié)束

[RANDOMPLAYERAFFIXES] :開(kāi)始定義玩家相關(guān)隨機(jī)詞綴列表
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下,我因?yàn)榕掠绊懫胶庑运詻](méi)改過(guò),理論上可以自己添加定義,然后加到這,所以可以改出各種BUG詞綴...
[/RANDOMPLAYERAFFIXES] :結(jié)束定義玩家相關(guān)隨機(jī)詞綴列表
[RANDOMMONSTERAFFIXES]
AFFIX:MAP_FREEZING
AFFIX:MAP_MONSTER_HEALTH_PERCENT_BONUS_15
AFFIX:MAP_MONSTER_SPEED_PERCENT_BONUS_10
[/RANDOMMONSTERAFFIXES] :怪物相關(guān)隨機(jī)詞綴列表定義與上面類似
[/DUNGEON] :結(jié)束定義地圖
看到這,你就可以初步修改出你想要的地圖了.
更多相關(guān)資訊請(qǐng)關(guān)注:火炬之光2專題
2. 修改怪物組
所謂怪物組,就是隨機(jī)產(chǎn)生其中列出的怪物.文件可以新增,比如我增加了關(guān)底BOSS組.....
怪物組文件都在\MEDIA\SPAWNCLASSES下
這個(gè)文件夾內(nèi)都是與隨機(jī)相關(guān)的文件,包括傳奇掉落.
以其中ACT4_DWARVENLABS_CHAMPIONS為例,逐行分析.

[SPAWNCLASS] : 開(kāi)始定義
NAME:ACT4_DWARVENLABS_CHAMPIONS :怪物組名字,盡量保證與文件名一致,并且由于hash表的緣故,請(qǐng)盡量使用已有的單詞組合,減少出錯(cuò)可能.
[OBJECT] :定義隨機(jī)項(xiàng)
UNIT: DWARF_BRUTE_CHAMPION :表示會(huì)隨機(jī)到DWARF_BRUTE_CHAMPION這種精英怪(雖然我不知道是怎么產(chǎn)生的,但實(shí)際看來(lái)是包含其自帶小怪的),具體內(nèi)容可以在\MEDIA\UNIT下搜索查看,如果想要改BOSS也是類似的
WEIGHT:5 :權(quán)重,也就是隨機(jī)到這一項(xiàng)的可能性.真正的概率應(yīng)該是5/總WEIGHT.
MINCOUNT:1
MAXCOUNT:1 :怪物數(shù)量范圍,如果設(shè)置到2,那么一次就會(huì)出現(xiàn)兩個(gè)這種怪物.
[/OBJECT] :結(jié)束此隨機(jī)項(xiàng)定義
[OBJECT]
...
[/OBJECT]
[OBJECT]
...
[/OBJECT] :這些都與上面類似,不贅述了.
[/SPAWNCLASS] :結(jié)束定義
3.RULE文件:
這類文件我也沒(méi)有成功修改,不過(guò)如果要增加地圖多樣性,早晚會(huì)涉及到這一塊,歡迎大家嘗試.
文件位置:\MEDIA\LAYOUTS下
其實(shí)只要把后綴改為.dat就可以轉(zhuǎn)換成txt文件了.
初步分析了一下,應(yīng)該是通過(guò)地圖塊拼接完成地圖生成,不過(guò)我分析不了.LAYOUT和.MPP文件,所以具體原理還不了解.
4.MAPWORK中地圖定義:
文件位置:\MEDIA\UNITS\ITEMS
其它物品,包括藥水,裝備等也在這個(gè)目錄下,需要的話可以自行修改,不過(guò)添加似乎會(huì)有點(diǎn)問(wèn)題,可能與GUID有關(guān).
以\MEDIA\UNITS\ITEMS\MAPS\EstherianMapB為例分析

[UNIT] :開(kāi)始定義物品
BASEFILE:media/units/items/base.dat :父文件,可以暫時(shí)認(rèn)為是把缺省值定義好了的文件
NAME:EstherianMapB :物品名字
RESOURCEDIRECTORY:media/models/items/scroll :應(yīng)該是物品模型
MESHFILE:scroll :估計(jì)也是類型什么的定義
UNITTYPE:MAP :物品類型
DESCRIPTION:Enables entry to the Ruined Shrine via the Mapworks :物品描述,肯定會(huì)被漢化,所以自行解決吧
RARITY:100 :稀有度,越高越不稀有
VALUE:10 :不知道,與價(jià)格相關(guān)的參數(shù)么?
LEVEL:48 :物品等級(jí)
MAXSTACKSIZE:1 :可堆疊數(shù)目
SHADOWS:true :陰影?
ICON:map_shrine :圖標(biāo)
FALL_SOUND:Item Fall
TAKE_SOUND:ClothGet
LAND_SOUND:ScrollDrop
USE_SOUND:TownPortalCast :各種音效
MINLEVEL:45
MAXLEVEL:60 :地圖等級(jí),不清楚實(shí)際怎么發(fā)揮作用
DISPLAYNAME:Ruined Shrine Map (L48-55) :顯示名字
DUNGEON:MAP_ESTHERIAN_B :上面的都無(wú)所謂,這個(gè)才是重點(diǎn)...........使用后傳送到的地圖名,所以你可以用原本是傳送到地圖A的地圖傳送到地圖B去,我想嘗試使用SPAWNCLASSES來(lái)使傳送產(chǎn)生隨機(jī)效果,不過(guò)沒(méi)有成功,歡迎嘗試.
USES:0 :沒(méi)試過(guò),應(yīng)該是一次使用消耗幾個(gè)
UNIT_GUID:8973525946458435083 :唯一標(biāo)識(shí)碼,64位二進(jìn)制...我不會(huì)生成,否則應(yīng)該可以添加物品了.如果有人成功添加物品,請(qǐng)不吝賜教.
[/UNIT] :結(jié)束定義
更多相關(guān)資訊請(qǐng)關(guān)注:火炬之光2專題