DNF阿拉德游戏论坛

 找回密码
 立即注册
搜索
查看: 7530|回复: 1
打印 上一主题 下一主题

[PVF] DNF城镇地图修改思路[了解一下]

[复制链接]

签到天数: 42 天

[LV.5]阿拉德勇士

1173

主题

1517

帖子

7万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
74344
怒气
65562
声望
2957
战力
1181

活跃会员灌水之王游戏爱好者阿拉德最佳作者阿拉德勇士战斗法师DOF玩家佛系DNF玩家

跳转到指定楼层
楼主
发表于 2018-11-30 15:11:43 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
内容包含:
0 - 地图的相关文件夹说明
1 - 开启城镇所需要的几个步骤
2 - *.lst文件
3 - region文件夹
4 - town文件夹
5 - worldmap文件夹,以及UI文件夹
6 - dungeon文件夹
7 - map文件夹
8 - npc文件夹


0)地图的相关文件夹说明
region
【大区】
town
大区下的城镇,简称【城镇】
worldmap
副本入口选图界面,简称【选图界面】
dungeon
副本,完整意思应该是副本接口,后面称【副本接口】
map
副本的每个小房间,简称【副本房间】,同时也包含了城镇的各个地图,简称【城镇地图】
npc
众所周知,最出名的就是凯利
n_quest
任务系统,不是本帖重点,只会稍微提及


1)开启城镇所需要的几个步骤
最重要的东西,就放在第一个吧
开启城镇和地图,可以这样逆向思考,跟着我的思路来:

A,dungeon副本接口的最低等级要求,是否已经超过70级?
【修改dungeon副本接口文件的等级要求】

B,dungeon副本接口,所需要调用的map副本房间ID,是否存在?
【往map/map.lst添加各个map副本房间的ID和路径】

C,worldmap选图界面文件,是否包含了所要的dungeon副本接口ID?副本接口,是否有前置任务要求?
【修改worldmap选图界面文件的dungeon副本接口ID和前置任务要求】

D, worldmap选图界面文件,所调用的dungeon副本接口ID,是否存在?
【往dungeon/dungeon.lst添加各个dungeon副本接口的ID和路径】

E,worldmap选图界面的UI文件,是否添加了dungeon副本接口ID的控件内容?
【确认worldmap/UI的ui文件是否正确】

F,town城镇的最低等级要求,是否超过了70级?
【修改town城镇文件的等级要求】

G,town城镇文件,所需要调用的map城镇地图ID,是否存在?
【往map/map.lst添加各个map城镇地图的ID和路径】

H,town城镇文件,所需要调用的worldmap选图界面ID,是否存在?
【确认worldmap/worldmap.lst的ID是否齐全】

I,region大区文件,是否包含了所要的town城镇ID?
【修改region大区文件的town城镇ID】

J,region大区文件,所需要调用的town城镇ID,是否存在?
【往town/town.lst添加各个town城镇地图的ID和路径】

K,如何到达新开的城镇?
【确认传送方式,NPC传送或者光圈传送,等级需求,任务需求】

L,深渊如何开启?
【修改worldmap选图界面文件的深渊的前置任务要求】

L,深渊的boss副本房间ID,是否存在
【往map/map.lst添加各个深渊boss副本房间的ID和路径】

2,*.lst文件

整个pvf,每个文件夹底下,都有个*.lst文件。
*.lst文件,是pvf,甚至整个游戏的核心和灵魂躯干。
游戏的相互调用,如调用某个地图,调用某个装备,调用某个技能,都是通过对应的ID来实现。而ID的设置,就是在*.lst文件里。

*.lst文件的内容很浅显易懂,每一行的格式是
ID(空格)路径(空格)
A,路径要用两个单引号’xxxxxx’包住
B,ID数字的先后顺序不重要,同类型的ID数字不能重复
C,路径不能是错误路径
D,行末记得要空格

额外说明一点,不同分类之间的ID,可以是相同的。
例如,NPC的ID可以有1,而副本接口的ID也可以有1,因为它们是属于不同类,不会相互混淆。

3,region文件夹

主要文件都是以rgn作为后缀,也就是region的缩写

以天界的heaven.rgn文件为例
[towns
6 9 14 (town城镇的ID)
[/towns

[name]
Type:9 Str:19 'name_0020>天界' (中文名字是啥不重要)
[english name]
Type:9 Str:19 'name_0021>the Heavens' (英文名字是啥不重要)
[minimap]
'MiniMap/heaven.mm'(小地图)

第二行就是town城镇ID,因此要确保
A,ID是正确的。
B,ID在town/town.lst是存在的。

另外还有就是minimap文件夹,里面包含了各大区的小地图(游戏内右上角)。但本人还不确认如何修改!

4,town文件夹

文件都是以twn作为后缀,也就是town的缩写
以史拉乌工业区的slough.twn文件为例
[entering title]
'Title/Slough.ani'
[cutscene image]
'Map/CutScene/Slough.img' 0
[dungeon what must be cleared]
-1 (前置副本要求,-1为无要求)

[area]
0 'Slough/Slough_down_street.map' '[normal]' (城镇地图之一)
[/area]

[area]
1 'Slough/Slough_up_street.map' '[normal]' (城镇地图之一)
[/area]

[area]
2 'Slough/Slough_powerstation.map' '[dungeon gate]' 19 (城镇地图之一,[dungeon gate]表示连接到worldmap选图界面的ID19)
[/area]

[area]
3 'Slough/Gate_Slough.map' '[gate]' 474 234 (城镇地图之一)
[/area]

[name]
Type:9 Str:14 'name_18210>史拉烏工業區' (中文名字是啥不重要)
[limit level]
78(城镇等级要求)

需要做的就是:
A,改等级要求。
B,确认worldmap选图界面的ID是否存在及正确。

5,worldmap文件夹,以及UI文件夹

该文件夹略复杂点

首先是常规的*.wdm文件,wdm是worldmap的缩写
以powerstation.wdm为例
[map image]
'WorldMap/Lorien.img' 0 (是选图界面的背景图吗?考虑改掉Lorien吧,数字0的意义不明)
[ui path]
'WorldMap/UI/PowerStation.ui' (选图界面的控件,重要)
[dungeon]
(dungeon副本接口的ID和前置任务要求,原文件的此处为空)
[/dungeon]

[name]
Type:9 Str:15 Type:10 Str:366664 (不管是中文名字还是英文名字都不重要了)
[hell dungeon]
1 (深渊副本,1是啥意思呢?)
[hell quest]
4539 (深渊的前置任务要求)
[/hell quest]

[hell freepass item]
8272 1 8376 1 8247 1 (免费深渊的物品ID和数量)
[/hell freepass item]

[item condition]
3330 (深渊门票的ID)
[/item condition]

需要做的就是:

A,添加副本接口的ID,如
[dungeon]
101 -1 102 -1 103 -1 104 -1(101~104就是四大发电厂的dungeon副本接口ID,-1表示无前置任务要求,行末记得空格)
[/dungeon]

B,确认所添加的dungeon副本接口ID,在dungeon/dungeon.lst是存在的

C,修改深渊前置任务要求,如
[hell quest]
101 (此处的任务ID改成了101,也就是出生后的第一个任务)
[/hell quest]

也可以把深渊门票改成其他物品的ID,如无色

UI文件夹

再来就是UI文件夹里面的*.ui文件
还是以powerstation.ui为例
[ui controls]
...
[/ui controls]
(以上部分的意义可以不用深究)

[ui controls]
'[balloon]' 'IDC_WORLDMAP_BUTTON1' 430 61 1'WorldMap/selectdungeon02.img' 3 1 0 101
[common action]
'Action/worldmap_balloon.act'
[/ui controls]
(看最后一个数字101,是不是很熟悉)

[ui controls]
'[balloon]' 'IDC_WORLDMAP_BUTTON2' 608 240 1'WorldMap/selectdungeon02.img' 3 1 13 102
[common action]
'Action/worldmap_balloon.act'
[/ui controls]
(看最后一个数字102,是不是很熟悉)

[ui controls]
'[balloon]' 'IDC_WORLDMAP_BUTTON3' 630 364 1'WorldMap/selectdungeon02.img' 3 1 6 103
[common action]
'Action/worldmap_balloon.act'
[/ui controls]
(看最后一个数字103,是不是很熟悉)

[ui controls]
'[balloon]' 'IDC_WORLDMAP_BUTTON4' 440 400 1'WorldMap/selectdungeon02.img' 3 1 7 104
[common action]
'Action/worldmap_balloon.act'
[/ui controls]
(看最后一个数字104,是不是很熟悉)

[ui controls]
'[balloon]' 'IDC_WORLDMAP_BUTTON5' 330 364 1'WorldMap/selectdungeon02.img' 3 1 6 522
[common action]
'Action/worldmap_balloon.act'
[/ui controls]
(看最后一个数字522,虾米鬼?回去找dungeon/gungeon.lst,没找到。但是有印象的朋友可能会记得,发电站其实还有个隐藏小地图:能量隔离室。不感兴趣的朋友,这部分可以删了)

[ui controls]
'[switchbox]' 'IDC_WORLDMAP_SWITCHBOX' 400 100 1'WorldMap/selectdungeon02.img' 16 1 2 91 24 3 4 5 6 7 8 9 10 96 97 98 99
[/ui controls]

再来讲解下部分结构
[ui controls]
'[balloon]' 'IDC_WORLDMAP_BUTTON1' 430 61 1'WorldMap/selectdungeon02.img' 3 1 0 101
[common action]
'Action/worldmap_balloon.act'
[/ui controls]

430 61 是副本接口图标的坐标
101就是dungeon副本接口的ID。

如果出现选图界面游戏崩溃的,不妨来这找找原因。

6,dungeon文件夹

分为多个文件夹,每个文件夹又包含多个*.dgn文件,dgn是dungeon的缩写

以kohlepowerstation.dgn为例(摘选部分内容)
[minimum required level]
70 (等级要求,这边已经是改过的)

[size]

5 3 (副本房间的格局,横5竖3,注意排序是从0开始

[greed]
'IIJJFFNNEE
LLOOAALLMM
CCDDFFHHGG'
(副本房间的连接顺序,请参考http://tieba.baidu.com/p/4069218170

[map specification]
1 0 18001 (横1竖0,副本房间的ID是18001)

[boss map specification]
4 1 18008(boss的副本房间为横4竖1,副本房间的ID是18008)

[start map]
0 0 0 1 0 2(起始点的副本房间坐标,表明可能是0 0或者0 1或者0 2)

[hell dungeon]
1
[seal door map index]
60067
[seal door pos]
4 0
(深渊boss的副本房间ID 60067和坐标4 0)


请确保各个副本房间ID在map/map.lst是存在的。

7,map文件夹结构

也是包含多个文件夹,每个文件夹又包含多个*.map文件

但是请注意,map文件,分为2大类
A,城镇地图,比如slough/ slough_down_street.map
B,副本房间,比如kohlepowerstation/ 18001(1,0)n.map

对于后者,我不打算多说。一是了解不多,二是很复杂,三是基本上不用改动。

对于前者,先以slough_down_street.map为例(摘选部分内容)
[town movable area]
777 132 107 31 14 1 361 142 97 21 14 3 (实可步行区域)
[/town movable area]
每6个数字为1组,第一、二个数字如777 132为坐标

[virtual movable area]
38 212 1480 130 377 155 81 69 427 173 58 65 774 140 112 82881 161 81 61 (虚可步行区域)
[/virtual movable area]
每4个数字为1组,第一、二个数字如38 212为坐标

[NPC]
79 '[right]' 1185 155 0 136 '[right]' 90 196 0 (NPC的ID和坐标)
[/NPC]

我们再来看shonan/shonan_gymnasium.map(传送时间门和镇魂曲的关键文件)
[town movable area]
1257 119 222 31 11 2 767 348 96 23 11 1 2016 142 97 21 11 349 186 96 23 12 0
[quest condition]
4117 (49 186 96 23 12 0这组,有前置任务要求,任务ID是4117)
[/quest condition]
2450 186 116 23 13 0
[quest condition]
4540 (2450 186 116 23 13 0 这组,也有前置任务要求,任务ID是4540)
[/quest condition]
[/town movable area]

[virtual movable area]
34 219 2586 115 767 326 95 30 2015 158 99 64 1440 153 71 701267 137 214 90 1508 175 43 47 53 197 94 27
[quest condition]
4117 (53 197 94 27这组,有前置任务要求,任务ID也是4117)
[/quest condition]
2460 197 94 27
[quest condition]
4540 (2460 197 94 27 这组,也有前置任务要求,任务ID也是4540)
[/quest condition]

整理一下,我们发现:
任务4117可以开通坐标49 186(实)和53197(虚)
任务4540可以开通坐标2450 186(实)和2460197(虚)

聪明的朋友看出来了吧:
任务4117开通了左边到时间门的传送
任务4540开通了右边到雷奎安(镇魂曲)的传送

把4117和45440改成其他任务ID吧,比如我最爱的101。
当然,也可以删掉任务要求。
这样子,从修南到时间门和镇魂曲的传送就开通了。

但是,请注意,这边只是开通了传送。
而实际上,我们还需要个图标,也就是光圈,来指示传送的地点。[animation]部分,我们加上
'Animation/timegate.ani' '[normal]' 91 186 0'Animation/timegate.ani' '[normal]' 2500 186 0
其作用就是在91 186和2500 186这两个坐标的地方,加上光圈图标。

8,npc文件夹

npc其实不是本修改的重点,但是我们这边要修改某个NPC。

看了上面的内容,有朋友其实已经想到一个问题:如何从悬空海港到工业区。
因此,我们需要给悬空海港的贝伦,增加一个地区传送功能,用以传送到工业区。

悬空海港的贝伦,npc/wernvonnegut.npc的文件里面
[role]
'[item shop]' 43
[/role]

而工业区的贝伦,npc/wernvonnegut_slough.npc的文件里面
[role]
'[item shop]' 43 '[move town]' 65
[/role]

‘[move town]’就是传送功能,65是NPC的ID。
记住了,NPC的传送,是从某个NPC传送到另外一个NPC,以NPC的ID【的原始位置】为目标,而不是城镇ID为目标。

显然原始文件里,悬空海港的贝伦的传送功能被干掉了。

那么,我们就改下npc/wernvonnegut.npc
[role]
'[item shop]' 43 '[move town]' 136 (136就是工业区贝伦的ID)
[/role]
(转于老牛社区)
“今天也是充满希望的一天!”——赛丽亚
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。

该用户从未签到

0

主题

36

帖子

140

积分

阿拉德菜鸟

Rank: 2

积分
140
怒气
26
声望
10
战力
58
沙发
发表于 2019-8-18 00:09:30 | 只看该作者
作者能出个视频就好了
来来,以钱赚钱啦!...
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|DNF阿拉德游戏论坛 ( 渝ICP备2024024979号 )

渝公网安备50023502000547号

GMT+8, 2024-11-22 01:17 , Processed in 0.114849 second(s), 41 queries .

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