简单的可运行战役地图制作——2.2战役地图的运行方法
叶墨冷泉
2021年10月16日 10:00
收录于文集
共18篇

如果你不想知道内在逻辑,那么你可以参考下面的内容:

将地图文件名改为左边的内容(包括文件后缀),然后放在地图根目录,从战役列表运行右边对应的关卡即可打开地图,下面是对应表(A代表盟军战役,S代表苏军战役,E代表厄普西隆战役,数字代表第几关):

areddawn.map——A1      aeaglesfly.map——A2     aroadtrip.map——A3

aheavenhell.map——A4  abadapple.map——A5    abmind.map——A6

ahammerfall.map——A7  awrongside.map——A8  azerosignal.map——A9

agardener.map——A10   apanic.map——A11        asunlight.map——A12

asiren.map——A13         apuppet.map——A14      astone.map——A15

aghost.map——A16        abottle.map——A17        ahyst.map——A18

astorm.map——A19        apara.map——A20          arele.map——A21

ainsomnia.map——A22  sbleed.map——S1           sggate.map——S2

shbd.map——S3            sside.map——S4              speace.map——S5

srech.map——S6           sidle.map——S7               sdeath.map——S8

sroad.map——S9           sopen.map——S10          smachine.map——S11

sdragon.map——S12     sraven.map——S13         sawake.map——S14

sexist.map——S15        sfire.map——S16              sjugger.map——S17

sheart.map——S18       sred.map——S19              sthread.map——S20

smelt.map——S21        searth.map——S22           epeace.map——E1

eaccel.map——E2        escrap.map——E3            eship.map——E4

ehuman.map——E5     eland.map——E6              ethink.map——E7

elord.map——E8          efields.map——E9            efocus.map——E10

esing.map——E11       emoon.map——E12          edilemma.map——E13

ehuehue.map——E14 ebreed.map——E15          ediver.map——E16

egodsend.map——E17 elizard.map——E18        eblood.map——E19

ehead.map——E20     esands.map——E21        etotal.map——E22

 

以下是原理解析:

运行战役相关的文件是BattleClient.ini,它的位置在根目录下的INI文件夹,我们先打开这个文件。

我们首先看到的是这个部分:

这个区域对应的是战役列表里的这些部分:

上面[]里的是每个项目的注册名,下面Description=后面的内容是这个项目的文本内容。

如果你想新建一个战役列表的区域,首先要在这里注册,例如:

然后往下看到这里:

这里往下是整个战役列表的内容,按照从上往下的顺序依次显示已经注册的内容,我们选一个区域为例:

在代码里“;”后面的是注释内容,用来标记这里的代码意义,没有实际作用,比如“;;Allied Act One”标记的是下面是盟军战役第一幕的内容。

“XA1=”后面的内容是我们在上面注册的[XCATONEALL],这里就会显示[XACTONEALL]里的文本“—— 同盟国联军 - 第一幕 ——”,自动居中。

下面的1=到12=的“=”后面接战役注册名,战役注册在下面进行。需要注意的是,这里的数字在整个列表中不可以重复,否则会发生冲突,可以使用大于78的数字。

XNA=XNULL,XNULL在上面注册了一个空文本,使用这一句就会形成一个空行。

为了测试效果,我们在这里加上这些内容:

往下翻到这里,这里往下是每个战役注册的区域:

我们以盟军第一关为例:

第一行[AREDDAWN]是战役的注册名,“[]”里的内容要和上面的“数字=”后面的名称相同。

Scenario=后面的内容是战役对应的地图文件名称,MO的地图文件在.mix文件里,我们把自制的地图文件放在根目录也可以读取,这里似乎是不区分大小写的,填上需要的地图的名字。

FinalMovie=后面似乎是过场电影的名称,也许是战役结束后播放影片。但暂时没有看到有战役用到这一条。

Description=后面的是战役显示在游戏客户端里的名称,填上战役名就可以了。

SideName=后面的内容对应战役名称前面的图标,目前有Allies,AlliesX,Soviets,SovietsX,Epsilon,EpsilonX,Foehn,FoehnX八个,具体效果可以自己尝试着看。

Enabled=false,在战役注册里加入这条代码可以使战役无法运行(不能开始战役,但还可以看简报),目前用于四阵营的两个结局关。

LongDescription=后面的是任务简报,里面用@可以换行。

Summary=后面的内容可能是某句文本,但是没有找到对应位置,不填写似乎也没问题。

最后我们写成的就是这个样子:

进游戏看到的效果就是这样的:

所以,我们只要找到对应战役注册的位置,然后看Scenario=后面的内容,把自己的地图名字改成一样的放到根目录,就可以通过运行这个战役来启动自己的地图了,或者参考上面的方法直接把自己的地图新增到战役列表里。