多关任务的命名和自定义(含DTA)

多关任务的命名

YR1.001平台下,多关任务默认名称为

     盟军          苏联  
all01umd.map | sov01umd.map
all02umd.map | sov02smd.map
all03umd.map | sov03umd.map
all04dmd.map | sov04dmd.map
all05umd.map | sov05umd.map
all06umd.map | sov06lmd.map
all07smd.map | sov07tmd.map

为什么:umd 的 u 代表 urban,表示官方图这关是城市地形, 后面还有雪地,就是 smd ,月球就是 lmd。md 代表尤里复仇。自己的图无需限定地形哦。

自定义

Ra2map:参考了未知作者的文章

涉及文件battlemd.inimapselmd.inimissionmd.ini,单人任务由这3个 INI 文件共同定义,并且与任务地图关联,规定了每场任务的名称、调用哪个地图文件等信息。修改它们可以实现自定义各阵营战役阵容与任务文件名等数据。注意按顺序修改,不易出错。可以打开 歧途 任务参考。

Battlemd.ini

主要关系到任务入口。打开这个 INI,在开篇就能看到一个注册表,下面大致是这些字段,它们就是任务空间的名称:

ini
[Battles]
1=ALL1
2=SOV1
3=ALL02
4=ALL03

首先我们要了解一个概念——任务入口,就是开新战役时那2个图标,YR 平台下,第一个图标固定调用[Battles]内名为 ALL1 的任务,第二个是 SOV1,与列表内注册顺序无关。ARES 下可以自定义,见说明书。

然后此列表即为任务注册表,有新增的写到后面,然后再添加关卡的内容。

以下是关卡定义:

ini
[ALL1] ;空间名称
CD=2 ;需要放哪张光盘才能运行。光盘版遗留语句,最好都写成CD=2
Scenario=ALL01umd.MAP ;地图文件名,自定义,要和mapsel.ini里对应语句相同
FinalMovie=  ;结束时播放哪个BIK电影,这是RA1遗留下来的垃圾语句,因为从RA2起,播放电影完全由任务地图来定义。
Description=DESC:ALL1 ;这是任务入口的特殊语句,表示鼠标悬停时在最下方显示什么说明文字,在CSF中定义

[ALL02]
DebugOnly=yes ;非任务入口有这条,见下文
Description=(all02umd.map) ;对于非任务入口来说多余了,不知不写会不会有问题,可能下文选关会用到

ARES 说明书:

如果你的战役数量超过默认数量,你可以选择使用TS风格的战役列表。ARES能随意定制战役数量,在battlemd.ini里的非测试地图都会展现在下面的列表里,由Description=来定义。

在uimd.ini:

[UISettings]►CampaignList= (boolean) 允许使用这种列表,默认否

[UISettings]►ShowDebugCampaigns= (boolean) 在战役列表里显示DebugOnly=yes设置的地图. 默认否

自定义战役于battlemd.ini:

[Battle]►HoverSound= (sound) 选择战役的时候出现这种声音。默认 AlliedCampaignSelect,SovietCampaignSelect和BootCampSelect

[Battle]►Summary= (CSF label) 展现战役介绍在难度条下面

mapselmd.ini

很重要,主要关系到游戏内接关。打开这个INI,我们能看到这样两个注册表,分别是 GDI 和 NOD 的。其实也能添加 ThirdSide 和 FourthSide 这两个新的表。

ini
[GDI] ;阵营(派系)
Anims=Anims ;不用管
Sounds=GDISFX ;不用管
1=ALL01 ;此阵营下注册的任务名,后面会有详细的定义

你细心会发现,上一个文件中第一关是 ALL1,这里却是 ALL01,所以这俩文件中同一个任务的注册名可以不同,关键还是Scenario=

ini
[ALL01] ;任务注册名
Scenario=ALL01umd.MAP ;该任务关联哪个地图,要和battlemd.ini里对应语句相同
Description=768 ;不用管
VoiceOver=GDI-01.AUD ;不用管
MapVQ=GDIMAP01.VQA ;不用管
Overlays=RG02A.SHP,RN02A.SHP ;不用管
Targets=1,180,80 ;不用管
ClickMap=GDICLK01.PCX ;不用管
2=ALL02 ;下一个数字=下一关注册名

关键是最后一行,这一关和下一关必须处于同一个注册表中(其实一个任务可以同时注册到多个表中),而=前面的数字不那么重要。咱未做更多测试。见任务 林德拉克2 的文件,[ALL07] 8=Sov01,由尤里最后一关跳到中国第一关。

还有就是,一个任务里,玩家属于哪个大阵营,那么这个任务就至少需要在哪个大阵营的注册表里能找到,否则会导致不能接关。

实现支线(隐藏)关卡可以看改变任务流程、支线(隐藏)关卡的实现方法 - 红警任务之家

missionmd.ini

主要关系到任务文本。这个里面没有注册表,只是对前两个 INI 的补充定义(吐槽 WW 一个任务竟然需要3个文件来定义)

ini
[SOV01UMD.MAP] ;地图名称,需要关联游戏根目录或MIX包里有同名的地图文件即可保证正常调用,也正是前两个INI预定的地图名称
Briefing=Brief:Sov01md ;游戏过程中按TAB键,显示的任务简报,在CSF中定义
UIName=Name:Sov01md ;决定该任务的名称,直接影响存档信息的名称
LSLoadMessage=LoadMsg:Sov01md ;载入画面时出现的任务信息,在任务标题栏,军事行动:任务名+地点
LSLoadBriefing=LoadBrief:Sov01md ;载入画面时出现的任务信息,任务目标那块
LS640BriefLocX=20 ;载入画面时出现的任务信息显示在哪个坐标位置上,和以下3条语句共同作用
LS640BriefLocY=20
LS800BriefLocX=20
LS800BriefLocY=20
LS640BkgdName=LS640S01.SHP ;无用
LS800BkgdName=LS640S01.SHP ;在YR中载入界面默认只能用800的分辨率,该语句决定选用哪副SHP图象作为载入图
LS800BkgdPal=LS640S01.PAL ;对应该SHP使用哪个调色板文件,不定义的话小心画面失色

DTA 客户端相关

  • 多关任务的命名和自定义(含DTA)
  • 作者:轻稚天雪  发布于:2024-03-09  许可协议:若无特别说明,均为 CC BY-NC-SA
背景音乐的使用与添加
其他工具