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] :結束定義
來源:遊民星空