需要允许JavaScript脚本
只有JavaScript没被允许的时候才会被显示出来的章节
如果你看到了这个章节(内部编码为sec_test )的话,说明你没有允许JavaScript脚本。请允许本页面内的JavaScript脚本以获得最佳浏览体验。
红色警戒2修改实操教程
Red Alert 2 Mod Course
目前网上流传的红警修改教程都比较零碎、不够系统,也没有实操教程,对于初学者来说无人指导也很难快速入门。而像红警地形制作这种教程更是难得一见。但是当你看到这个教程后绝对会眼前一亮,这简直是一部红警修改百科全书!
这是一部关于《红色警戒2》 (以下简称红警2 或红警 )及其资料片《红色警戒2尤里的复仇》 的修改实操教程。教程总目录位于网页的左侧边栏,希望这篇文档能够帮助你解答修改红警中遇到的绝大多数问题。祝修改顺利!
游戏基本信息
游戏名称:《命令与征服:红色警戒2》
英文名称:《Command & Conquer:Red Alert 2》
游戏类别:RTS(即时战略游戏)
游戏平台:PC端
游戏开发:Westwood Studios(西木工作室)
游戏发行:EA Games(美国艺电游戏公司)
发行时间:2000年9月28日
游戏画面:2.5D
游戏语言:英文、繁体中文
游戏名称:《命令与征服:红色警戒2尤里的复仇 》
英文名称:《Command & Conquer:Red Alert 2 Yuri's Revenge》
游戏类别:RTS(即时战略游戏)
游戏平台:PC端
游戏开发:Westwood Studios(西木工作室)
游戏发行:EA Games(美国艺电游戏公司)
发行时间:2001年8月30日(美国)、2001年10月10日(欧洲)
游戏画面:2.5D
游戏语言:英文、繁体中文
游戏下载:
红警2原版(完整版) 提取密码:421d
红警2原版(去除过场动画、音乐) 提取密码:m2hs
尤里的复仇(完整版) 提取密码:etvc
尤里的复仇(去除过场动画、音乐) 提取密码:ivsh
备用下载地址
红警修改是基于游戏本体的,为了达到节省磁盘空间和利于下载传播的目的,建议使用去除过场动画、音乐的版本。当然,如果你的修改与原版剧情有关,那可以使用完整版。
"强制为红警续命!"
安装调试 目录:
安装注册
如何安装注册红警
安装或解压后在游戏根目录找到Reg.exe 或RegSetMD.exe
或Register.exe 或必须先注册.exe ,不同的版本名字可能不同,你任选其一并鼠标左键双击运行以注册游戏。然后找到YURI .exe 或Ra2.exe 鼠标左键双击运行即可进入游戏。
Win7/Win8/Win10/Win11系统用户可能还需要设置游戏兼容性后才能正常游戏。方法见下文中的“兼容设置”。
如果以上方法失败,可以利用窗口化完美解决问题,但只能窗口化游戏,方法见下文中的“额外设置”。
兼容设置
如何设置游戏兼容性
首先确保你已经按照“安装注册”章节的指引完成了红警的安装。如果出现问题再看以下章节。
Windows XP用户 :一般无需修改兼容性,可以直接游戏。如果你的红警版本含有ddraw.dll 渲染补丁文件,需要删除掉才能正常游戏。
Windows 7 用户 :一般无需修改兼容性,可以直接游戏。
如果无法正常游戏,你需要修改位于游戏根目录里的YURI .exe 或Ra2.exe 的兼容性。在YURI .exe 或Ra2.exe 的“兼容性”选项卡做如下设置:
勾选“
以兼容模式运行这个程序 ”,并选择“
Windows XP(Service Pack 2) ”。
勾选“
简化的颜色模式 ”,并选择“
16位(65536色) ”(如果没有此选项请忽略)。
勾选“
以管理员身份运行此程序 ”
如下图所示:
点击“确定”并退出。此时Windows 7用户就可以正常进行游戏了。
Windows 8/Windows 10/Windows 11的用户 :
你需要将ddraw.dll 渲染补丁文件放入游戏根目录,并按照Windows 7用户的方法修改兼容性,然后直接启动YURI .exe 或Ra2.exe 就能正常进行游戏了。
下载ddraw.dll 渲染补丁文件
额外设置
开始游戏前,额外的游戏设置功能
除了游戏本身设置选项里的那些功能,还可以通过修改快捷方式来调用额外的游戏设置功能。给YURI .exe 或Ra2.exe 创建一个快捷方式,然后鼠标右键单击后再鼠标左键单击“属性”,在快捷方式选项中的目标里的文字后面键入空格+以下参数:
-SPEEDCONTROL 游戏的单人任务会出现游戏速度选项
-WIN 以窗口化的方式进行游戏
这些参数可以同时或单个键入,字母大小写随意,但参数前必须带有空格
然后以快捷方式启动游戏即可。
游戏速度调节:
进入游戏开始任务后,按“Esc”键,切换到游戏选项界面,屏幕中央的“游戏速度”选项可以调节游戏速度。默认游戏速度为4,最快可以调节为6。
各游戏速度对应的游戏帧率:
游戏速度0 10帧/秒
游戏速度1 12帧/秒
游戏速度2 15帧/秒
游戏速度3 20帧/秒
游戏速度4 30帧/秒
游戏速度5 60帧/秒
游戏速度6 60+帧/秒(按CPU最大运算能力)
窗口化游戏时的分辨率设置:
对于绝大多数用户来说游戏分辨率是可以直接在游戏选项里修改的,但参数只能选固定的几个选项,个别Win10用户可能无法在游戏选项里修改。而窗口化游戏以后也有让窗口满屏的需求,这就需要我们手动调节游戏分辨率。所以,有必要介绍一下手动修改分辨率的方法。
找到游戏文件夹下的ra2md.ini ,用记事本 打开,在其中查找[Video] ,可以看到以下内容:
[Video]
ScreenWidth=1280
ScreenHeight=720
StretchMovies=no
VideoBackBuffer=no
AllowHiResModes=yes
AllowVRAMSidebar=no
这里的ScreenWidth= 指定了宽度,ScreenHeight= 指定了高度,比如上面那段代码就确定游戏分辨率为1280×720。如果是全屏运行,设为自己的屏幕分辨率刚刚好;但是在窗口化运行时,要注意,不能简单的把这个分辨率设为你的屏幕分辨率,纵向要减去窗口标题栏高度(一般为26)、任务栏高度(Windows 10一般为40)、下边框宽度(3),横向要减去窗口左右边框宽度(各为3)才行。比如作者的电脑屏幕最大分辨率是1920×1080的,作者需要设置的分辨率就是:
宽度:屏幕宽度1920-2×窗口边框宽度3=1914
高度:屏幕宽度1080-窗口标题栏高度26-任务栏高度40-下边框宽度3=1011
所以我应该把ScreenWidth= 设为1914,ScreenHeight= 设为1011。改完记得保存文件。
窗口化游戏的分辨率计算器
屏幕宽度:
屏幕高度:
计算结果:ScreenWidth=1914 , ScreenHeight=1011
理论基础 目录:
Mod理论基础
红警修改的理论基础课程
Mod (Modification,模组):对将电脑游戏中的道具、武器、人物、事物、模式、故事情节等做出修改或新增后的游戏增强程序。
Moder :对电脑游戏做出修改的人。
红警游戏的本质是一种实时显示的2.5D动态画面,是游戏读取素材文件和规则文件后的结果。规则文件当中的代码决定了游戏如何读取、处理素材文件。要制作Mod就要对这些文件做出修改。
素材文件:
.shp :用户界面、步兵、建筑、图标、载具和飞行器、动画等文件的格式
.vxl、.hav :载具和飞行器文件的主要格式,两种文件是伴生关系
.map :单人任务地图文件的格式
.mpr、.mmx、.yrm 遭遇战多人地图文件的格式
.pcx :部分图标文件的格式
.csf :游戏文本文件的格式
.sha :鼠标光标文件的格式
.wav :游戏音乐、声音、语音等音频文件的格式
.bik :游戏过场动画、任务窗口等视频文件的格式
.tem、.sno、.urb、.ubn、.lun、.des :温带、雪地、城市、新城市、月球、沙漠六种地形文件的格式
.mix :打包文件的格式。游戏的素材文件成千上万,打包文件的作用是将这些文件封包。
.pal :色盘文件的格式。.shp、.sha、.tem、.sno、.urb、.ubn、.lun、.des这些shp类文件需要色盘文件才能显色,
它们是伴生关系
规则文件:
YURI 需要修改的常用规则文件
核心类规则文件
rulesmd.ini Rules规则文件:规定了单位、动画、武器、地形对象、覆盖图、全局设置等的属性和注册
artmd.ini Art规则文件:规定了单位、动画的游戏运作方式
aimd.ini AI规则文件:规定了电脑AI如何进攻玩家
单人任务规则文件
battlemd.ini 战役规则文件:规定了单人任务关数、顺序、使用的地图文件、任务名称
missionmd.ini 任务规则文件:规定了单人任务载入图的图像和文本
mapselmd.ini 地图选择规则文件:规定了单人任务的入口、关数、顺序
音频类规则文件
soundmd.ini 游戏语音的规则文件
evamd.ini 游戏语音的规则文件
thememd.ini 游戏音乐的规则文件
地形规则文件
temperatmd.ini 温带地形的规则文件
snowmd.ini 雪地地形的规则文件
urbanmd.ini 城市地形的规则文件
urbannmd.ini 新城市地形的规则文件
lunarmd.ini 月球地形的规则文件
desertmd.ini 沙漠地形的规则文件
RA2 需要修改的常用规则文件
核心类规则文件
rules.ini Rules规则文件:规定了全局、单位、国家及阵营、武器及弹头、动画等的属性和注册
art.ini Art规则文件:规定了单位、动画、过场电影的游戏运作方式
ai.ini AI规则文件:规定了电脑AI如何进攻玩家
单人任务规则文件
battle.ini 战役规则文件:规定了单人任务关数、顺序、使用的地图文件、任务名称
mission.ini 任务规则文件:规定了单人任务载入图的图像和文本
mapsel.ini 地图选择规则文件:规定了单人任务的入口、关数、顺序
音频类规则文件
sound.ini 游戏语音的规则文件
eva.ini 游戏语音的规则文件
theme.ini 游戏音乐的规则文件
地形规则文件
temperat.ini 温带地形的规则文件
snow.ini 雪地地形的规则文件
urban.ini 城市地形的规则文件
Mod制作工具
与Mod制作有关的工具
红警Mod制作需要用到以下工具:
文本编辑软件 (以下简称记事本 )
文本编辑软件,用于对ini规则文件的编辑。系统自带的记事本 就可以,好用的文本编辑软件推荐UE 。
Photo Shop (以下简称PS )
绘图软件,用于绘制素材文件的图像,生成的图像一般使用256索引颜色的.png或者.pcx格式。
格式工厂
音频转换软件,用于将.mp3等常见的音频文件转化为游戏可以读取的.wav格式。
XCC Mixcer (以下简称XCC )
mix文件修改器,用于导入或导出素材文件、规则文件,也可以生成.mix打包文件和.pal色盘文件。
Final Alert 2 (以下简称地编 )
红警地图编辑器,用于制作单人任务地图、遭遇战多人地图以及测试地形。
SHP Builder (以下简称SB )
SHP文件制作软件,用于生成或编辑.shp、.sha、.tem、.sno、.urb、.ubn、.lun、.des这些shp类文件。
红警2语言编辑器
csf文件编辑器,用于编辑.csf文本文件。
TMP Builder (以下简称TMP )
地形文件制作软件,用于制作.tem、.sno、.urb、.ubn、.lun、.des这些地形类文件。
Voxel Section Editor
vxl文件编辑器,用于制作.vxl文件。
Hva Builder
为vxl素材生成配套hva文件用,可调节缩放、坐标、转轴等,还可生成gif展示图。
Rad Video Tools
bik文件转换器,用于将.mp4、.avi等常见的视频文件转化为游戏可以读取的.bik格式。
红警2AI编辑器
用于辅助ai编辑。
ResHacker
红警2EXE图标修改器,能够修改YURI.exe、RA2.exe的显示图标。
Load Screen Builder
红警2任务封面制作器,可仿造官方任务载入图制作简单的战役载入图。
红警2修改大师
测试mod时使用的作弊软件,有时反而可以提高测试效率。
下载所有工具
文件提取与打包
对素材文件、规则文件的提取与打包;游戏对素材文件、规则文件的读取规则
对素材文件、规则文件的提取与打包需要用到XCC。
一、XCC Mixcer
XCC Mixcer是mix文件修改器,用于导入或导出素材文件、规则文件,也可以生成.mix打包文件和.pal色盘文件。网上主要存在1.35、1.42、1.46三张种版本。1.35是英文版,1.42是半汉化版,1.46是全汉化版,但是1.46容易被杀毒软件误杀。它们的使用方法是一样的。
用户界面:
XCC Mixcer 1.42YR - ▣ ×
文件(F) 转换(C) 查看(V) 网络(I) 启动(L) ;此处为工具栏
Name Type Size Desription
c:\ drive
d:\ drive
e:\ drive
... dir
... csf 346349 -
... hva 88 -
... mix 6226784 -
... pal 76 -
... pcx 1355 -
... shp(ts) 4220 -
... text 694561 -
... vxl 64432 - ;此处为预览窗口,只显示文字信息
... tem(ts) 18576 -
... sno(ts) 2772 -
... urb(ts) 14864 -
... ubn(ts) 11152 -
... des(ts) 29712 -
... lun(ts) 9338 -
... wav 26982 -
... unknown 98304 -
local mix database.dat xcclmd 247 -
就绪 ;此处为状态栏
工具栏 包括文件(F) 转换(C) 查看(V) 网络(I) 启动(L) 这几个选项。
(一) 文件(F)
单击“文件(F)”按钮后有如下选项:
新建(N)... Ctrl+N
打开(O)... Ctrl+O
关闭 Ctrl+X
建立SFL
查找... Ctrl+F
创建(F) >
退出(X)
①新建(N)... Ctrl+N: 可以新建一个空的mix文件。一般用于新增拓展mix。
单击“新建”后会弹出一个名为“另存为”的对话框。
另存为 ×
保存在(I): RA2 ← ✉ ☸ ♒
名称 修改日期 类型 大小
...
...
...
文件名(N): expandmd99 保存
保存类型(T): Red Alert 2MIXs(*.mix) 取消
在文本框内输入一个起好的文件名,单击保存按钮就可以了。
②打开(O)... Ctrl+O: 打开一个已经存在的mix文件。
单击“打开(O)... Ctrl+O”后会弹出一个名为“打开”的对话框。
打开 ×
查找范围(I): RA2 ← ✉ ☸ ♒
名称 修改日期 类型 大小
...
...
...
文件名(N): expandmd99 打开
保存类型(T):MIXs files(*.big;*.dat;*.mix;*.pkg) 取消
选择一个需要打开的文件,单击打开按钮就可以了。打开后可以对mix里的文件进行操作。
③关闭 Ctrl+X: 关闭已经打开的mix文件。软件不会退出。
④建立SFL: 功能不明,单击后没有反应,实际也用不上。
⑤查找... Ctrl+F: 在整个文件夹中的所有mix文件里查找需要搜索的文件。
单击“查找... Ctrl+F”后会弹出一个名为“搜索文件”的对话框。
搜索文件 - ▣ ×
文件名:
搜索 关闭
在文本框输入你要搜索的文件,格式为“文件名.文件后缀”,然后单击搜索按钮。如果有搜索结果会告诉你文件的具体位置。然后双击显示出来的搜索结果,就可以找到你搜索的文件了。
⑥创建(F) >: 实际效果就是打开里面子选项的mix。
鼠标放在“创建(F) >”上,就会出现“创建(F) >Red Alert 2 >***.mix”,单击“***.mix”就打开这个mix了。
⑦退出(X): 关闭XCC Mixer。效果和单击软件右上角的“×”按钮相同。
(二)转换(C)
单击“转换(C)”按钮后有如下选项:
新建(N)... Ctrl+N
打开(O)... Ctrl+O
关闭 Ctrl+X
建立SFL
查找... Ctrl+F
创建(F) >
退出(X)
(三)查看(V)
单击“查看(V)”按钮后有如下选项:
新建(N)... Ctrl+N
打开(O)... Ctrl+O
关闭 Ctrl+X
建立SFL
查找... Ctrl+F
创建(F) >
退出(X)
(四)网络(I)
单击“网络(I)”按钮后有如下选项:
FinalSun主页
Sun Edit 2K主页
XCC主页
单击后可以打开相对应的网页。
(五)启动(L)
单击“启动(L)”按钮后有如下选项:
XCC AV 播放器(A)
XCC 编辑器(E)
XCC MIX 编辑器(M)
XCC Mod 创建器
XCC Mod 启动器
XCC 项目释放器(O) >
XCC 声音编辑器(S)
XCC 语言编辑器(S)
XCC 主题曲写入器(T) >
_______________________
FinalSun
FinalAlert
SunEdit 2K
SunEdit 2K Mod 管理器
RAGE
_______________________
沙丘2(D)
泰伯利亚黎明(T)
红色警戒1(R)
沙丘2000(D)
泰伯利亚之日(T)
尤里的复仇(Y)
如果安装注册了选项中的软件,单击后可以启动相对应的软件。
游戏读取规则
游戏对素材文件、规则文件的读取规则
游戏允许添加拓展mix,这也是做mod的基础。
括展mix的命名规则:
ecache(md)XX.mix
expand(md)XX.mix
XX为01-99的数字,数字越大,文件被游戏读取的优先级越高。
不加md只能被RA2 及YURI 1.000读取
加md只能被YURI 1.001读取
不按照拓展mix的命名规则命名文件,mix文件将无法被游戏读取。
游戏优先读取游戏根目录里的单个文件,其次读取扩展mix里的文件,最后是读取官方mix里的文件。官方mix文件优先读取****md.mix(YURI mix)里的文件,其次读取****.mix(RA2 mix)里的文件。文件名中的字母不区分大小写就可以被游戏读取。
特例:启动游戏时的载入图文件不能被打包进扩展mix里,否则游戏无法读取。可以放在游戏根目录,或者替换掉language.mix/langmd.mix里的载入图文件。
mix文件解析
mix文件中存放的文件内容
ra2.mix
ra2.mix里有很多子mix,RA2 会读取里面的内容,YURI 会读取里面未被ra2md.mix替换的内容,具体存放内容见下表:
cache.mix
RA2 地形色盘.pal文件
conquer.mix
RA2 步兵、武器动画的.shp文件
鼠标、建筑的.sha文件
generic.mix
通用类型下,RA2 苏联、盟军建筑及其动画的.shp文件
isogen.mix
通用类型下,RA2 地标建筑及其坍塌动画的.shp文件
isosnow.mix
雪地类型下,RA2 平民建筑及其动画的.shp文件
雪地类型下,RA2 苏联、盟军建筑的建造动画.shp文件
雪地类型下,RA2 地形及其铁路覆盖图.sno文件
isotemp.mix
温带类型下,RA2 平民建筑及其动画的.shp文件
温带类型下,RA2 苏联、盟军建筑的建造动画.shp文件
温带类型下,RA2 地形及其铁路、隧道覆盖图.tem文件
isourb.mix
城市类型下,RA2 平民建筑及其动画的.shp文件
城市类型下,RA2 苏联、盟军建筑的建造动画.shp文件
城市类型下,RA2 地形及其铁路、隧道木桥桥覆盖图.urb文件
load.mix
RA2 关卡及遭遇战载入界面的载入图、进度条的.shp.pal文件
local.mix
RA2 载具.vxl,.hva文件
国家国旗.pcx文件
部分UI.shp.pal文件
字体.fnt文件
规则.ini文件
neutral.mix
RA2 主界面UI,包括背景、状态栏、按钮、对话框、计分屏的.shp.pal文件
sidec01.mix
RA2 进入游戏后,盟军阵营的全套UI.shp.pal文件
sidec02.mix
RA2 进入游戏后,苏联阵营的全套UI.shp.pal文件
sidenc01.mix
残留文件,RA2 /YURI 主程序均不会读取
sidenc02.mix
残留文件,RA2 /YURI 主程序均不会读取
sno.mix
雪地类型下,RA2 弹药箱、水面波纹的.shp文件
snow.mix
雪地类型下,RA2 覆盖图、污染、地形对象、建筑废墟的.tmp文件
雪地类型下,RA2 苏联、盟军建筑的.shp文件
tem.mix
温带类型下,RA2 弹药箱、水面波纹的.shp文件
temperat.mix
温带类型下,RA2 覆盖图、污染、地形对象、建筑废墟的.tmp文件
urb.mix
城市类型下,RA2 弹药箱、水面波纹的.shp文件
urban.mix
城市类型下,RA2 覆盖图、污染、地形对象、建筑废墟的.tmp文件
key.ini
无需修改
ra2md.mix
ra2md.mix里有很多子mix,只有YURI 会读取里面的内容,具体存放内容见下表:
cachemd.mix
YURI 新增地形的色盘文件
conqmd.mix
YURI 新增步兵、武器动画的.shp文件
鼠标、建筑的.sha文件
des.mix
沙漠类型下,RA2 弹药箱、水面波纹的.shp文件
desert.mix
沙漠类型下,RA2 覆盖图、污染、地形对象、建筑废墟的.tmp文件
genermd.mix
通用类型下,YURI 新增苏联、盟军建筑及其动画的.shp文件
通用类型下,YURI 新增国家尤里建筑及其动画的.shp文件
isodes.mix
沙漠类型下,RA2 平民建筑及其动画的.shp文件
沙漠类型下,RA2 苏联、盟军建筑的建造动画.shp文件
沙漠类型下,RA2 地形及其铁路、隧道覆盖图.des文件
isodesmd.mix
沙漠类型下,YURI 新增平民建筑及其动画的.shp文件
沙漠类型下,YURI 复制中心动画、坦克碉堡建造动画.shp文件
isogenmd.mix
通用类型下,YURI 新增平民建筑及其动画的.shp文件
通用类型下,YURI 复制中心建造动画.shp文件
通用类型下,心灵控制器及其动画、建造动画.shp文件
isolun.mix
月球类型下,RA2 平民建筑及其动画的.shp文件
月球类型下,RA2 苏联、盟军建筑的建造动画.shp文件
月球类型下,RA2 地形及其铁路、隧道覆盖图.des文件
isolunmd.mix
月球类型下,YURI 新增平民建筑及其动画的.shp文件
月球类型下,YURI 复制中心、心灵感应器、坦克碉堡的建造动画.shp文件
月球类型下,地表裂缝地形.lun文件
isosnomd.mix
雪地类型下,YURI 新增平民建筑及其动画的.shp文件
雪地类型下,YURI 尤里部分建筑的建造动画.shp文件
雪地类型下,YURI 扩展的冰川地形.sno文件
isotemmd.mx
温带类型下,YURI 新增平民建筑及其动画的.shp文件
温带类型下,YURI 复制中心、心灵感应器的建造动画.shp文件
isoubn.mix
新城市类型下,RA2 平民建筑及其动画的.shp文件
新城市类型下,RA2 苏联、盟军建筑的建造动画.shp文件
新城市类型下,RA2 地形及其铁路、隧道覆盖图.ubn文件
isoubnmd.mix
新城市类型下,YURI 新增平民建筑及其动画的.shp文件
新城市类型下,YURI 复制中心动画、坦克碉堡建造动画.shp文件
新城市类型下,YURI 扩展的新城市地形、地形对象.ubn文件
isourbmd.mix
城市类型下,YURI 新增平民建筑及其动画的.shp文件
城市类型下,YURI 复制中心、心灵感应器的建造动画.shp文件
城市类型下,YURI 扩展的城市地形.urb文件
loadmd.mix
YURI 新增关卡及遭遇战载入界面载入图的.shp.pal文件
localmd.mix
YURI 新增载具.vxl,.hva文件
国家国旗.pcx文件
YURI 新增部分UI.shp.pal文件
规则.ini文件
lun.mix
月球类型下,RA2 弹药箱、水面波纹的.shp文件
lunar.mix
月球类型下,RA2 覆盖图、污染、地形对象、建筑废墟的.tmp文件
neutral.mix
YURI 主界面UI.shp.pal文件,主要是背景图。其他部分,YURI 会读取ra2.mix-neutral.mix中的内容
sidec02md.mix
YURI 尤里阵营的背景图、雷达UI的.shp.pal文件。其他部分,YURI 会读取ra2.mix-sidec02.mix中的内容
snowmd.mix
雪地类型下,YURI 新增苏联、盟军建筑及其动画的.shp文件
雪地类型下,YURI 新增国家尤里建筑及其动画的.shp文件
ubn.mix
新城市类型下,RA2 弹药箱、水面波纹的.shp文件
urbann.mix
新城市类型下,RA2 覆盖图、污染、地形对象、建筑废墟的.tmp文件
key.ini
无需修改
language.mix 这里存放RA2 的游戏主菜单视频、游戏文本、声音、图标等文件。
langmd.mix 这里存放YURI 的游戏主菜单视频、游戏文本、声音、图标等文件。
language.mix
ra2ts_l.bik
RA2 游戏主菜单视频(632×570)的.bik文件
ra2ts_s.bik
RA2 游戏主菜单视频(472×450)的.bik文件
ra2.csf
RA2 文本的.csf文件
audio.mix
RA2 伊娃副官、佐菲亚副官和训练关卡教官语音的.wav文件
RA2 声音的audio.bag、audio.idx两个文件,这两个文件可以用XCC声音编辑器进行编辑
cameo.mix
RA2 单位图标.shp文件
grfxtxt.shp
单人任务的任务完成/失败和遭遇战的您获胜了/游戏结束的.shp文件
langmd.mix
ea_wwlogo.bik
EA Logo的.bik文件
ra2ts_l.bik
YURI 游戏主菜单视频(632×570)的.bik文件
ra2md.csf
YURI 文本的.csf文件
audiomd.mix
YURI 伊娃副官、佐菲亚副官和尤里副官语音的.wav文件
YUR声音的audio.bag、audio.idx两个文件,这两个文件可以用XCC声音编辑器进行编辑
cameomd.mix
YURI 新增单位图标.shp文件
glsmd.pal
启动游戏时的载入画面的色盘.pal文件
glslmd.shp
启动游戏时的载入画面的.shp文件
crsditsmd.txt
通关任务后的制作人员清单,文本调用ra2md.csf中CRD:的文本
keyboardmd.ini
键盘热键设置的规则文件
missionsmd.pkt
遭遇战地图名称的命名规则文件
maps01.mix 包含RA2 教学关卡和盟军关卡的地图文件。
maps02.mix 包含RA2 苏联关卡的地图文件。
maps03md.mix 包含YURI 盟军关卡和苏联关卡的地图文件。
这些文件名是由任务规则文件battle(md).ini定义的。
maps01.mix
all01t.map RA2 盟军第01关-孤独守卫
all02s.map RA2 盟军第02关-危机黎明
all03u.map RA2 盟军第03关-向长官欢呼
all04u.map RA2 盟军第04关-最后机会
all05s.map RA2 盟军第05关-暗夜
all06u.map RA2 盟军第06关-自由
all07t.map RA2 盟军第07关-深海
all08u.map RA2 盟军第08关-自由门户
all09t.map RA2 盟军第09关-太阳神殿
all10s.map RA2 盟军第10关-海市蜃楼
all11t.map RA2 盟军第11关-核爆辐射尘
all12s.map RA2 盟军第12关-超时空风暴
sov01t.map
e31.map
e32.map
tmcj4f.ini
trn01t.map RA2 训练关卡第01关-基本作战训练
trn02t.map RA2 训练关卡第02关-进阶作战训练
maps02.mix
439FEA47
all01t.map
e31.map
e32.map
sov01t.map RA2 苏联第01关-红色黎明
sov02t.map RA2 苏联第02关-危机四伏
sov03u.map RA2 苏联第03关-大苹果
sov04s.map RA2 苏联第04关-家乡前线
sov05u.map RA2 苏联第05关-灯火之城
sov06t.map RA2 苏联第06关-割分
sov07s.map RA2 苏联第07关-超时空防御战
sov08u.map RA2 苏联第08关-首都之辱
sov09u.map RA2 苏联第09关-狐狸与猎犬
sov10t.map RA2 苏联第10关-残兵败将
sov11s.map RA2 苏联第11关-红色革命
sov12s.map RA2 苏联第12关-北极风暴
sov1u.map
tmcj4f.ini
maps03md.mix
all01umd.map YURI 盟军第一关-光阴似箭
all02umd.map YURI 盟军第二关-好莱坞梦一场
all03umd.map YURI 盟军第三关-集中攻击
all04dmd.map YURI 盟军第四关-古墓奇袭
all05umd.map YURI 盟军第五关-纽澳复制战
all06umd.map YURI 盟军第六关-万圣节
all07smd.map YURI 盟军第七关-脑死
sov01umd.map YURI 苏联第一关-时空转移
sov02smd.map YURI 苏联第二关-似曾相识
sov03umd.map YURI 苏联第三关-洗脑行动
sov04dmd.map YURI 苏联第四关-北非谍影
sov05umd.map YURI 苏联第五关-脱离地心引力
sov06lmd.map YURI 苏联第六关-飞向月球
sov07tmd.map YURI 苏联第七关-首脑游戏
官方任务地图文件的命名规则:
all(sov/trn)XXt(s/u/d/l)(md).map
all表示盟军关卡,sov表示苏联关卡,trn表示训练关卡
数字XX表示关卡数
t表示温带地图,s表示雪地地图,u表示城市或新城市地图,d表示沙漠地图,l表示月球地图
md表示尤里的复仇任务关卡
movies01.mix 包含RA2 盟军关卡的电影文件。
movies02.mix 包含RA2 苏联关卡的电影文件。
movmd03.mix 包含YURI 盟军关卡和苏联关卡的电影文件。
这些文件名是由核心类规则文件art(md).ini里的[Movies]字段定义的。
官方真人电影文件的命名规则:
a(s)f(p)XXe.bik
a表示盟军关卡,s表示苏联关卡
f表示640×480电影,p表示140×110电影
数字XX表示关卡数
multi.mix 这里存放RA2 的遭遇战地图文件。
multimd.mix 这里存放YURI 的遭遇战地图文件。
遭遇战地图的名称由规则文件missions(md).pkt定义。地图名称的文本调用ra2md.csf中DESC:或NAME:里的文本。
theme.mix 这里存放RA2 的背景音乐文件。
thememd.mix 这里存放YURI 的背景音乐文件。
音乐的名字及文件名由游戏音乐规则文件theme(md).ini定义。音乐的名字文本调用ra2md.csf中THEME:里的文本。
wdt.mix 一般不用修改。
本章节的主要内容来自红警diy论坛,作者fhy093对核心规则进行了梳理和校正。
核心规则 目录:
核心规则修改需要用到以下工具:
文本编辑软件 (以下简称记事本 )
任意一种文本编辑软件,用于对核心规则文件的修改。。
Rules解析
对rules.ini、rulesmd.ini规则文件的解析
红色警戒2 RULES 单位篇代码中文版
===========阅读说明============
1、有些代码是针对某种类型单位使用的,在使用前请看看后面的解释。
2、游戏中的代码针对说明(“所有”是特指而不是“全部”的意思):
陆军单位指所有陆上单位,包括步兵
步兵单位指步兵,包括动物
战车单位指除步兵外的所有陆军单位
海上单位指所有海上单位
空军单位指所有空中单位
战机指像入侵者战机一样的从机场出来的单位
直升机指像夜鹰直升机一样的直升机单位
VXL单位则指除步兵、建筑外的所有单位
建筑指所有建筑物单位
两栖单位指可以运行在陆地和水上的陆上单位、海军单位
3、全教程的代都经过字母排序,通过相应的字母可以找到相应的代码。
4、AI指电脑玩家,并非人类玩家。
5、在填写yes或no(或true或false)时,各位可以通过前面的介绍和自己的需要来选择填写。
===============================
注意:这个代码表是针对红色警戒2的,但大部分应该可以用在尤里复仇上。
我的英语不够好,这些中文代码说明肯定有错,请高手指正!
-A-
Accelerates=
可以设置为"ture"或者"false"来决定这个单位移动式是否慢慢加速至Speed定义的速度
AccelerationFactor=
加速度比率,要用在有加速度的单位上,调节加速度大小
ActivateSound=
有控制时候的声音
Adjacent=
填数值。这个代码指定建筑距离扩展建筑的距离。这里的扩展建筑指像基地、战车工厂等可以扩张自己建造领地的建筑。
Agent=
填yes或no。这个代码指定步兵单位是否为间谍单位。如果想要让该单位具有“渗透”建筑物的功能,就要与Infiltrate=yes这段代码连用。注意:当设定了Agent=yes后,就不能再加入Assaulter=yes了。
AIBasePlanningSide=
填0-1的数值。这个代码指定建筑的所属方,主要是给AI判断的,AI会根据这个数值来作出一些行为诸如建立围墙。数值为0时表示为盟军,1时为苏军。
AIBuildThis=
填yes或no。这个代码指定建筑是否可以被AI所建造。
AirportBound=
可以设置为"yes"或"no"来决定这个航空器是否需要一个机场(通常是指一个带有Helipad=yes 代码的建筑物)的机位,如果没有机位,这个航空器将会坠毁。这个航空器一定要在PadAircraft= 后面声明,否则会出现建造不受机位限制的问题。
AirRangeBonus=
可以设置为一个数字来决定当这个单位使用一个带有AA=true 代码的武器攻击空中目标时,是否获得此数字设定的额外射程。
注意只用于Primary= 后面的武器,并且这个数值不能大于武器射程,否则可能会出问题。
AirstrikeRechargeTime=
BORIS式召唤物体的间隔时间(一轮结束后何时召唤第二轮)
AirstrikeTeam=
BORIS式召唤的物体数量
AirstrikeTeamType=
BORIS式召唤的物体种类
AllowedToStartInMultiplayer=
填yes或no。这个代码指定单位是否可以在游戏开始时伴随基地车出现(如苏军开始时的动员兵、犀牛坦克)。注意:该指定单位不能是海军单位,否则游戏开始时该单位就会自动摧毁(就和用超时空传送仪传送海军单位到陆地上的效果相同),除非该单位为两栖单位。
AlternateArcticArt=
填yes或no。这个代码指定步兵单位是否在雪地地图和陆地地图有两种不同的形态,如盟军的海豹部队。注意:如果填yes,该步兵单位就必须准备一个雪地型的步兵文件(SHP文件),并且命名规则为:该单位的温和地图形态+A.SHP,如海豹部队的温和地图形态文件名为SEAL.SHP,那么雪地地图形态文件名则为SEALA.SHP。
AmbientSound=
填Sound.ini中定义的声音名。这个代码指定该单位在地图上存在的声音。注意:这个声音会在该单位被摧毁前不停播放,声音太大可能会影响人类玩家进行游戏。
Ammo=
填数值。这个代码指定该单位的弹药数量。战机不能自动补给弹药,需要在机场降落后进行补给。
AntiAirvalue=
(防御武器)对空军的价值
AntiArmorvalue=
(防御武器)对装甲部队的价值
AntiInfantryvalue=
(防御武器)对步兵的价值
Armor=
填下表中的相应项。这个代码指定该单位的装甲。注意:装甲和防御能力没有任何关系,单位的受伤程度是由攻击方的弹头对相应装甲的百分比决定。
------------------------------------------------
步兵单位:None 无装甲
Flak 布质装甲
Plate 铁质装甲
VXL单位: Light 金属装甲
Medium 中型装甲
Heavy 重型装甲
建筑单位:Wood 木质装甲
Steel 钢铁装甲
Concrete 混凝土庄稼
special_1 特殊装甲1,用于蜘蛛机器人等VXL单位
special_2 特殊装甲2,用于重生VXL导弹等单位
------------------------------------------------
Artillary=
填yes或no。这个代码指定建筑是否为VXL单位展开后的建筑单位并且转向东北方。一般用于地雷等建筑。
Armory=
填yes或no。这个代码指定建筑是否可以升级3级以下的步兵单位,任何进入该建筑的步兵单位都会升级为3级。注意:如果想限制升级步兵的数量,可以加入Ammo=来限制,Ammo=的数值为你想要的限制数量。
Assaulter=
填yes或no。这个代码指定步兵单位是否可以驱逐建筑中驻守的步兵单位而无须对该建筑造成任何损伤。这里的“驱逐”指将建筑中的所有驻守的步兵单位全部破坏。驱逐过程动画由主武代码的AssaultAnim=来设定,一般用UCFLASH,也可以用UCBLOOD和UCELEC。注意:当设定Assaulter=yes后,Agent=就不能设定为yes了。
AttackCursorOnFriendlies=
填yes或no。这个代码指定该单位是否可以对自己一方单位展开攻击,一般用于医疗兵、疯狂伊文、维修车等单位。
AttackFriendlies=
填yes或no。这个代码指定单位是否可以攻击自己一方单位,但也可以攻击敌人单位。
AutoCrush=
受到敌兵攻击后自动去撞敌兵,一般用于矿车或不能打兵的战车
AuxSound1=
填Sound.ini中定义的声音名。这个代码指定飞机起飞时的声音
AuxSound2=
填Sound.ini中定义的声音名。这个代码指定飞机降落时的声音
-B-
BalloonHover=
填yes或no。这个代码指定空军单位不能落地,但该空军单位要有JumpJet=yes这个代码。
BarrelCompressFrames=
炮筒收缩的时间
BarrelHoldFrames=
炮筒保持收缩的时间
BarrelRecoverFrames=
炮筒恢复的时间
BarrelTravel=
炮筒缩的幅度
BaseNormal=
是否作为连接基础
BerserkFriendly=
是否使友军疯狂
Bib=
填yes或no。这个代码指定建筑为特殊平台,用来停置一些单位。如机场。
Bombable=
填yes或no。这个代码指定该单位是否能被疯狂伊文捆绑上定时炸弹。
BombSight=
填数值。这个代码指定该单位对定时炸弹的警戒范围,当被捆绑上定时炸弹的我方单位进入警戒范围该单位会进行拆除定时炸弹的工作,该单位弹头要有BombDisarm=yes这个设置否则同样不能拆除。注意:当该单位本身被捆绑上定时炸弹时不能进行自我拆除定时炸弹的工作。
BridgeRepairHut=
填yes或no。这个代码指定建筑是否为桥梁维修小屋,这种建筑可以维修附近的毁损桥梁或提供其他单位(如谭雅)来炸毁桥梁。
Bunker=
是否为坦克碉堡
Bunkerable=
是否可以放入坦克碉堡
BuildCat=
填下表的相应项。这个代码指定建筑的所属类型,用来给游戏分类和AI识别。
--------------------------------------------------
Combat 防御建筑,该建筑会出现在防御栏中
Infrastructure 不知道,似乎没什么效果
Resource 资源建筑,给玩家提供金钱
Power 电力建筑,给玩家提供电力供给
Tech 科技建筑,用来作为其他单位的建造条件
DontCare 很奇怪的一项,没怎么试过
--------------------------------------------------
BuildLimit=
填数值。这个代码指定单位的建造数量限制。
BuildTimeMultiplier=
微观制造速度
BuildupSound=
填Sound.ini中定义的声音名。这个代码指定建筑建造时播放建造动画时播放的声音。
-C-
C4=
填yes或no。这个代码指定该步兵是否拥有C4炸弹。注意:当为yes时,不管是主副武是否可以对建筑物,对付建筑物的武器都会被C4代替,除非攻击目标有CanC4=no的设定。同时该步兵不能有Infiltrate=yes这段代码。
CanApproachTarget=
填yes或no。这个代码指定幻影坦克一类的伪装战车是否可以不断接近目标开火而不暴露身份。
CanBeach=
填yes或no。这个代码指定该海军单位能否在沙滩上(接近陆地)的地方运行,同时还要有MovementRestrictedTo=Water这一项设定。但实际效果不怎么样,还不如改成两栖的。
CanBeOccupied=
填yes或no。这个代码指定建筑单位是否可以被占领。红色警戒2不同于尤里复仇,占领后的武器要在该建筑上设定,盟军占领后使用Primary=的武器,苏军占领后使用Secondary=的武器。
CanC4=
填yes或no。这个代码指定该单位是否能被有C4=yes的步兵炸毁。默认值是yes。
CanDisguise=
填yes或no。这个代码指定该单位是否可以伪装而敌人无法发觉(狗除外),用在间谍和幻影坦克上。
CanOccupyFire=
是否能被进驻且向外开火
CanPassiveAquire=
填yes或no。这个代码指定该单位是否能够自动攻击目标。默认值是yes。
CanRecalcApproachTarget=
填yes或no。这个代码指定带有CanApproachTarget=yes代码的战车是否能重新计算敌人所在路径点。实际上在游戏中,人类玩家选择了一个攻击对象,游戏并不是攻击该对象而是该对象所在的路径点,然后给击中的目标一些伤害。当然要选择yes,否则该战车就会变的极难操纵。
CanRetaliate=
填yes或no。这个代码指定该单位是否能在遭到敌方攻击时进行反击。注意:反击的武器是主武,当主武为none时,即使这里设为yes也没有任何意义。
Capturable=
填yes或no。这个代码指定建筑是否能被工程师占领。
CaptureEvaEvent=
占领它时的EVA语音
CarriesCrate=
填yes或no。这个代码指定战车被摧毁后是否会在附近生成一个箱子。箱子的内容是随机的。注意:如果想要让建筑物拥有这个效果要换成CrateBeneath=yes。
Carryall=
此飞行器是否可以吊运车辆,一定是运动方式为{4A582746-9839-11d1-B709-00A024DDAFD1}的飞行器。不要是直升机(就是重工造出的那种)
Category=
填下表中的相应项。这个代码指定VXL单位的分类,用来给AI判断的。
--------------------------------------------------
AirLift 运输机,用来运输步兵的飞机
AirPower 战机,用在战机和直升机上,可以使用武器
Transport 运输车,用来运输各种单位的战车
Support 基地车,也可以用在其他可展开成为建筑物的战车上
LRFS 远射程战车,可以进行远程打击的战车
IFV 步兵战车,多功能步兵战车专用
AFV 战车,可以广泛运用于各种战斗用战车,如坦克
Recon Reconnaisance战车
VIP 重要的步兵单位,没什么用
Soldier 步兵,所有步兵单位都用这个分类
--------------------------------------------------
ChargedAnimTime=
填数字。这个代码指定超级武器建筑在超级武器启动前多长时间播放启动动画,单位为分钟,动画由Art.ini中的SuperAnim=来控制。该值应该小于相应超级武器的RechargeTime=值。
ChronoInSound=
填Sound.ini中定义的声音名。这个代码指定单位超时空运动开始的声效。
ChronoOutSound=
填Sound.ini中定义的声音名。这个代码指定单位超时空运动结束的声效。
Civilian=
填yes或no。这个代码指定该单位是否是平民单位,平民单位也就是大家说的中立单位。平民步兵在遭到攻击时会作出逃跑动作,逃跑动作由Art.ini中该步兵的Sequence控制。
ClearAllWeapons=
填yes或no。这个代码指定步兵是否可以清除多功能步兵战车中的步兵。
ClickRepairable=
填yes或no。这个代码指定建筑是否可以使用游戏建造栏的“维修小扳手”工具来维修。注意:当该设置为no时,建筑不能被“维修小扳手”修复,但仍然能被工程师进入修复,如果不想这样,可以在建筑代码中加入Repairable=no。
Cloakable=
填yes或no。这个代码指定该单位是否可以隐形。注意:如果要给空军单位隐形,不能直接使用这个代码来隐形,只能在VeteranAbilities=或EliteAbilities=加入cloakable这个代码,不过只能在升级后才能隐形。
CloakingSpeed=
填1-10的数值。这个代码指定该单位的隐形速度(即出厂时的隐形速度和被发现后的再次隐形速度),要配合Cloakable=yes使用。
CloakGenerator=
填yes或no。这个代码指定该建筑是否可以将自身周围的已方单位全部隐形。
CloakRadiusInCells=
填数字。这个代码指定建筑隐藏周围已方单位的隐藏半径,要和CloakGenerator=yes配合使用。
CloakStop=
填yes或no。这个代码的指定该单位是否受隐形建筑的波及影响。填yes时,该单位不能隐形。
Cloning=
填yes或no。这个代码指定建筑是否为复制中心。克隆中心会把所有从兵营出厂的单位再免费赠与一个同样的。
CloseRange=
攻击距离非常近,单位必须跑到身边来打
ConcentricRadialIndicator=
填true或false。这个代码指定建筑是否拥有“心灵感应装置”(苏军的)那样的雷达扫描效果,但该建筑必须要有HasRadialIndicator=true的设定。
ConsideredAircraft=
填yes或no。这个代码指定空军单位是否为一般空军单位而不是重生卵单位,用来作区分的。
ConstructionYard=
填yes或no。这个代码是基地建筑专用的,比如基地车展开为基地前是朝西南方的。
Cost=
填数值。这个代码指定该单位的价格。每个可以建造的单位都应该设定其价格。
Crashable=
填yes或no。这个代码指定此空中单位被摧毁后,是否坠落到地面
CrashingSound=
填Sound.ini中定义的声音名。这个代码指定空军单位被摧毁坠落时爆炸的声效。要配合Crashable=yes使用。
CrateBeneath=
填yes或no。这个代码指定建筑被摧毁时是否在附近生成箱子。箱子的内容在没有专门设定下是随机的。
CrateBeneathIsMoney=
填yes或no。这个代码指定建筑摧毁后生成的箱子的内容是“获得金钱”。要配合CrateBeneath=yes使用。
CrateGoodie=
填yes或no。这个代码指定战车单位能否从箱子中获得,获得该战车的机率要看使用这个代码的战车数量。
CreateSound=
填Sound.ini中定义的声音名。这个代码指定该单位被建造时的声音。
CreateUnitSound=
填Sound.ini中定义的声音名。这个代码指定步兵单位生成时兵营播放的声音。每种类型单位出厂时工厂都可以播放不同的声音:CreateInfantrySound=,CreateUnitSound=,CreateAircraftSound=分别对应步兵、机动车单位(包括海军单位)、空军单位。
Crewed=
填yes或no。当此单位或建筑被摧毁后,是否有步兵从里面逃出(逃出的可能性在rules的开头有控制),不要用于运动方式为{4A582746-9839-11d1-B709-00A024DDAFD1}的飞行器,不过可以用于直升机(jumpjet),但是会很BT~~~
Crushable=
填yes或no。这个代码指定步兵单位是否能够被机动车单位碾压。同样适用于建筑单位,但该建筑要为围墙类建筑。
Crusher=
填yes或no。这个代码指定战车单位是否能够碾压步兵单位。
CrushSound=
填Sound.ini中定义的声音名。这个代码指定步兵(或围墙类建筑)被碾压的声效。要和Crushable=yes配合使用。
-D-
DamageParticleSystems=
填粒子系统名称。这个代码指定VXL单位被摧毁时播放的粒子动画。
DamageReducesReadiness=
填yes或no。这个代码指定单位弹药减少时单位会承受相应损害。当该单位没有Ammo=的设定时,这个代码无效。
DamageSelf=
是否会伤害自己
DamageSound=
填Sound.ini中定义的声音名。这个代码指定单位被攻击时被攻击方播放的损害声效。
DamageSmokeOffset=
填X,Y,Z的数值。这个代码指定VXL单位、建筑单位临近毁坏时冒烟的位置。默认为0,0,0。
DamSmkOffScrnRel=
填X,Y,Z的数值。这个代码指定VXL单位、建筑单位临近破坏时冒烟的位置,不过这个位置冒的烟比DamageSmokeOffset=冒的烟更难观察到。默认为0,0,0。
DeaccelerationFactor=
填数值。这个代码指定单位接近攻击目标时减慢的速度的百分比,降低百分比是以该单位的Speed=的数值来作标准的。
DeactivateSound=
没有控制时候的声音,见遥控坦克
DeathAnims=
填相应动画名。这个代码指定步兵死亡的动画。但是这个动画早就在InfDeath=设定了,连用会产生视觉冲突。在红色警戒2表现不怎么好,不推荐使用。
DeathWeapon=
填武器名。这个代码指定该单位被摧毁时使用的武器。
DeathWeaponDamageModifier=
填数值。这个代码指定该单位DeathWeapon=武器增加或减少威力的百分比。
DebrisAnims=
填动画名。这个代码指定该VXL单位、建筑单位被摧毁时弹出的碎片。
DebrisTypes=
当这个VXL单位被摧毁后,产生的Voxel类型的碎片。这个碎片一定要是在[VoxelAnims]里定义了的。那些坦克报废后弹处炮管的效果就靠的这个。
DebrisMaximums=
填数值。这个代码指定VXL单位、建筑单位被摧毁时弹出的碎片的最大数量。
DefaultToGuardArea=
填数值。这个代码指定该单位的警戒范围,一旦有敌方进入这个警戒范围,该单位会自动上前迎敌。不能使用在建筑单位上。
Deployer=
填yes或no。这个代码指定步兵能否展开。展开的样子由Art.ini中该步兵的Sequence控制。
DeployFacing=
展开面朝什么方向,0北,7西北
DeployFire=
填yes或no。这个代码指定步兵展开后是否能够开火。要和Deployer=yes配合使用。
DeployFireWeapon=
填0-1的数值。这个代码指定步兵展开后所使用的武器。填“0”为使用主武,填“1”为使用副武。默认值为“1”。
DeployingAnim=
展开动画
DeployToFire=
填yes或no。此VXL单位开火前必须部署。要和DeploysInto=和IsSimpleDeployer=配合使用。
DeployToLand=
是否展开时需要落到地面(例如武直)
DeployTime=
填时间。这个代码指定该单位展开所用的时间。单位为分钟。
DeploysInto=
填建筑名称。这个代码指定战车展开后变成的建筑。
DeploySound=
填Sound.ini中定义的声音名。这个代码指定战车展开成为建筑时的声效。
DetectDisguise=
填yes或no。这个代码指定该单位是否能发现伪装的敌人并展开攻击(是用主武攻击)。
DetectDisguiseRange=
填数值。这个代码指定该单位发现伪装的敌人的距离。要和DetectDisguise=yes配合使用。
DestroyAnim=
填动画名。这个代码指定建筑被摧毁时播放的动画。
DestroyParticleSystems=
填粒子系统名。这个代码指定该单位被摧毁时播放的粒子动画。
DestroySmokeOffset=
填X,Y,Z的数值。这个代码指定该单位被摧毁时播放粒子动画的位置。
DieSound=
填Sound.ini中定义的声音名。这个代码指定该单位被摧毁时的声音。
Disableable=
填yes或no。这个代码指定该单位是否被遭遇战模式的选项所影响,如基地车不能展开后能不能再次收回。
DisguiseWhenStill=
填yes或no。这个代码指定伪装单位在不移动时会把自身伪装起来,如幻影坦克。
DistributedFire=
填yes或no。这个代码指定该单位能分散火力攻击不同目标。
Dock=
填建筑名称。这个代码指定VXL单位可以进入的平台,如战车能进入维修厂维修。
DockUnload=
填yes或no。这个代码指定VXL单位进入平台后进行“卸货”。一般用在矿车上。
DontScore=
为YES时则不计分,不加经验,不加摧毁数
Drainable=
飞碟是否可以吸取它的能量,或停止工作,或资金被吸收
-E-
EnterWaterSound=
两栖类下水的声音
EligibleForDelayKill=
填yes或no。这个代码指定建筑是否为油桶一类的单位。
EligibileForAllyBuilding=
填yes或no。这个代码指定玩家能否在这个建筑上与其他玩家结盟。
EliteAbilities=
填下表中的相应项。这个代码指定单位3级时拥有的能力。
--------------------------------------------------
FASTER 单位移动速度加快(Speed=值加大)
STRONGER 单位的生命值增加(Strength=值加大)
SCATTER 单位能自动分散火力
FIREPOWER 单位攻击力加强(武器的Damage=值加大)
SIGHT 单位的视力加大(Sight=值加大)
CLOAK 单位可以隐形(Cloakable=yes)
TIBERIUM_PROOF 单位可以免疫气体损害(TiberiumProof=yes)
VEIN_PROOF 单位可以免受VXL单位的误伤(ImmuneToVeins=yes)
SELF_HEAL 单位可以自动治愈(SelfHealing=yes)
EXPLODES 单位可以爆炸(Explodes=yes)
RADAR_INVISIBLE 单位可以不被雷达检测到(RadarInvisble=yes)
SENSORS 单位可以检测隐形单位(Sensors=yes)
FEARLESS 单位不会产生畏惧(Fearless=yes)
TIBERIUM_HEAL 单位可以在矿石上自动治愈(TiberiumHeal=yes)
GUARD_AREA 单位可以警戒(DefaultToGuardArea=yes)
CRUSHER 单位可以碾压(Crusher=yes)
C4 单位拥有C4炸弹(C4=yes)
--------------------------------------------------
EliteAirstrikeRechargeTime=
三星时BORIS式召唤物体的间隔时间(一轮结束后何时召唤第二轮)
EliteAirstrikeTeam=
三星时BORIS式召唤的物体数量
EliteAirstrikeTeamType=
三星时BORIS式召唤的物体种类
ElitePrimary=
填武器名。这个代码指定单位3级时使用的主武。
EliteSecondary=
填武器名。这个代码指定单位3级时使用的副武。
EliteStageN=
三星时第N阶停留时间,最后一个停留完后返回第一个
EliteWeaponN=
填武器名。这里的N指的是多功能步兵战车的武器序号。这个代码指定步兵单位在3级多功能步兵战车使用的武器。
EliteOccupyWeapon=
三星进驻用武器
EmptyReload=
填时间。这个代码指定单位弹药用完后重装弹药的所耗时。
EMPulseCannon=
填yes或no。这个代码指定建筑可否用EMP武器。EMP武器是从TS遗留下来的。
Engineer=
填yes或no。这个代码指定步兵是否为工程师。
Enslaves=
"奴隶"为什么东西
EnterTransportSound=
填Sound.ini中定义的声音名。这个代码指定的是单位进入运兵单位时的声音。
ExitCoord=
填X,Y,Z的数值。这个代码指定的是战车工厂或兵营制造出的单位出来的位置。
Explodes=
填yes或no。这个代码指定的是该单位是否能够在被摧毁时爆炸并伤害到邻近的单位,爆炸武器是主武。当然也可以用DeathWeapon=来专门设定。
Explosion=
填动画名。这个代码指定的是VXL单位和建筑爆炸时播放的动画。
ExtraPower=
填数值。
当它和GapGenerator=yes,GapRadiusInCells=,SuperGapRadiusInCells=连用时 表示该裂缝可以展开,展开前覆盖GapRadiusInCells=的面积,展开后覆盖SuperGapRadiusInCells=的面积,耗费电力ExtraPower=,该数值应为负数,当空闲电力达到ExtraPower=时则可以展开,达不到则不可展开,且强行关闭。
和UnitAbsorb=,InfantryAbsorb=连用,表示每装一单位(坦克或人,别想装飞机>_<)增加ExtraPower=的电力
-F-
Factory=
填下表中的对应项。这个代码指定工厂类建筑的所属类别,用来给AI分类的。
------------------------------------------------
BuildingType 建筑工厂,一般用在基地
VehicleType 战车工厂,一般用在战车制造厂
AircraftType 战机工厂,一般用在停机坪和机场
InfantryType 步兵工厂,一般用在兵营
------------------------------------------------
注意:1、VesselType已经不再使用。
2、船厂为VehicleType。
3、CloningType可以使用但没有什么效果。
FactoryPlant=
是否为工业工厂类建筑,有如下相关语句
---------------------------------------------------------------------------
InfantryCostBonus=
步兵建造价格为原来多少倍,工业工厂专用
UnitsCostBonus=
战车建造价格为原来多少倍,工业工厂专用
AircraftCostBonus=
飞机建造价格为原来多少倍,工业工厂专用
BuildingsCostBonus=
建筑建造价格为原来多少倍,工业工厂专用
DefensesCostBonus=
防御建造价格为原来多少倍,工业工厂专用
-----------------------------------------------------------------------------
Fake=
填yes或no。这个代码指定建筑是否为“虚假建筑”。一般用来供地图加事件用。
Fearless=
填yes或no。这个代码指定步兵是否永不畏惧。注意:当为yes时,步兵的恐慌时的匍匐、哀叫将会被取消。
Fighter=
填yes或no。这个代码指定空军单位是否在目标上方发起攻击并且能够命中,同时要有MovementZone=Fly的设定。
FireAngle=
填0-64的数值。这个代码指定单位射出的弹的倾斜度。“0”为水平倾斜,“64”为垂直倾斜。
FirestormWall=
填yes或no。这个代码是从TS遗留下来的,在红色警戒2中没有作用。
FlightLevel=
填数值。这个代码指定空军单位的飞行高度,同时要有MovementZone=Fly的设定。
FlyBack=
单位被锁定在它的轨道(即发射者和目标之间的最短距离)上
FlyBy=
True时为攻击目标时不减低速度(如ZEP)
ForbiddenHouses=
填国家名。这个代码指定该单位不能被指定的国家所建造,即使指定的国家所有条件都满足了。
Fraidycat=
填yes或no。这个代码指定步兵是否在受到打击后做出逃跑的动作。逃跑的动作由Art.ini中步兵的Sequence中的Panic=指定。
FreeUnit=
填战车名称。这个代码指定建筑建造后是否赠送1个免费的单位,一般用于矿厂。
-G-
GapGenerator=
填yes或no。这个代码指定建筑是否为“黑幕产生器”。
GapRadiusInCells=
填数值。这个代码指定“黑幕产生器”建筑产生的黑幕半径。要和GapGenerator=yes配合使用。
Gate=
填yes或no。这个代码指定建筑是否为“门”型建筑,已方单位进入已方的“门”型建筑时,“门”型建筑就会打开。另外敌方间谍伪装进入时,已方“门”型建筑也会打开。
GateCloseDelay=
填时间。这个代码指定“门”型建筑关闭的所花时间。要和Gate=yes配合使用。
GDIBarracks=
填yes或no。这个代码指定该建筑是否为盟军兵营,用来给AI判断的。这关系到可否使用集结点
Grinding=
是否为回收机,例如尤里的回收厂
GuardRange=
填数值。这个代码指定该单位的警戒距离,不能用于建筑物。要和DefaultToGuardArea=yes配合使用。
Gunner=
填yes或no。这个代码指定战车是否可以依据不同情况转换炮台。在红色警戒2中只能用在多功能步兵战车上。
-H-
HalfDamageSmokeLocation=
填X,Y,Z的数值。这个代码指定战车冒黄烟的开始位置。
HalfDamageSmokeLocation1=
填X,Y,Z的数值。这个代码指定建筑冒黄烟的开始位置。
HalfDamageSmokeLocation2=
填X,Y,Z的数值。这个代码指定建筑冒第二个黄烟的开始位置。
Harvester=
填yes或no。这个代码指定VXL单位是否为矿车。
HarvestRate=
挖矿的间隔时间(限奴隶用)
HasRadialIndicator=
填yes或no。这个代码指定建筑是否拥有攻击范围圆弧(如机枪碉堡的那种圆弧)。圆弧的半径由CloakRadiusInCells=或GapRadiusInCells=或SuperGapRadiusInCells=指定。或者也可以设定成PsychicDetectionRadius=,这是另一种雷达扫描效果(“心灵感应装置”那种圆弧效果)。
HasTurretTooltips=
填yes或no。这个代码指定运兵单位运兵时是否显示里面的步兵名称,效果同“多功能步兵战车”,而且运兵量必须为1。
HasSpotlight=
填yes或no。这个代码是从TS遗留下来的,在红色警戒2没什么作用。
HasStupidGuardMode=
填true或false。这个代码指定建筑是否能够自动攻击敌方目标。填true时不能自动攻击,只有填false时才能自动攻击目标。
Height=
高度
Helipad=
填yes或no。这个代码指定建筑是否为机场建筑。入侵者一类的需要机场的空军单位就从这里制造。注意:该机场应该注册在PadAircraft=的列表中。
Hospital=
填yes或no。这个代码指定建筑是否为医院。进入医院的受伤步兵全部都会在短时间内痊愈。如果要限制治疗数量可以加入Ammo=来限制。注意:因为红色警戒2的内核问题看上去是治愈了步兵,其实是从医院出来了一个一模一样的同等级步兵,这时复制中心就会复制出另外一个一样的新兵。在尤里复仇中这个问题得到了解决。
HoverAttack=
填yes或no。这个代码指定空军单位是否盘旋攻击目标,同时要有JumpJet=yes这个设定。
HoverPad=
填yes或no。这个代码是从TS遗留下来的,在红色警戒2没什么作用。
HunterSeeker=
填yes或no。这个代码是从TS遗留下来的,在红色警戒2中还有部分作用,该单位可以跟踪选定的目标。
-I-
ICBMLauncher=
填yes或no。这个代码指定建筑物在展开时战车是否朝着东南方向。
IdleRate=
填数值。这个代码指定步兵(包括海豚和巨型乌贼)的空闲动画播放比率。数值越大越慢。
IFVMode=
填多功能步兵战车的相关炮台数值。这个代码指定步兵进入多功能步兵战车后多功能步兵战车的状态。
*TurretIndex=
"*"代表前文的武器,该武器使用的炮台为N号炮台
*TurretWeapon=
"*"代表前文的武器,该武器使用的武器为N号武器
IgnoresFirestorm=
填yes或no。这个代码填在武器代码中。这个指定武器是否爆发防御工事,但并没有什么作用。
Image=
填Art.ini的图象定义名。这个代码指定该单位的图象。不设定时即和Art.ini中的名称相同。注意:Art.ini中的单位名称应该和单位对应的素材(SHP、VXL/HVA)名称相同,否则会无法显示单位的图象只会显示图标。
ImpactLandSound=
填Sound.ini中定义的声音名。这个代码指定单位被摧毁落地时的声效,同时要有Crashable=yes这个设定。
Immune=
填yes或no。这个代码指定单位是否会受到损害。当为yes时单位为无敌状态,任何损伤都没有用。一般用于桥梁维修小屋一类的重要建筑。
ImmuneToPoison=
是否对神经毒气免疫
ImmuneToPsionics=
填yes或no。这个代码指定单位是否会受到心灵控制和心灵气波(尤里展开释放时那种气波,气波仅对步兵有效)的影响。
ImmuneToPsionicWeapons=
是否对心灵震荡波免疫
ImmuneToRadiation=
填yes或no。这个代码指定单位是否会受到辐射的影响。
ImmuneToVeins=
填yes或no。这个代码指定步兵单位是否会受到VXL单位的误伤。
InfantryAbsorb=
步兵单位是否能进入发电
InfantryGainSelfHeal=
给步兵增加每桢几点的回血
Infiltrate=
填yes或no。这个代码指定步兵是否可以“渗透”建筑物。要和Agent=yes配合使用。注意:当Infiltrate=yes时,这个单位就可以有C4=yes,Engineer=yes,Thief=yes,Agent=yes多个功能之一。
InitialAmmo=
填数字。这个代码指定该单位出厂时的初始弹药数。当不设定时,初始弹药数为Ammo=的数值。
Insignificant=
填yes或no。这个代码指定该单位是否为“无关紧要的单位”,即在破坏时伊娃不会播发Lost的讯息。
Invisible=
填yes或no。这个代码指定该单位是否不会理睬任何单位。当为yes时,不会理睬任何单位。
InvisibleInGame=
填yes或no。这个代码指定建筑是否不能被游戏者发现和选中、攻击等,只能看见它的动画等特效。一般用于灯光建筑。
IsBase=
是否为基础设施,这关系到AI攻击的目标
IsBaseDefense=
填yes或no。这个代码指定建筑是否为防御建筑,AI会根据选项来自动建造防御工事来防御自己。
IsChargeTurret=
填yes或no。这个代码指定战车是否可以在有多辆同样的已方战车在旁边时进行聚能攻击,同样的已方战车越多聚能攻击的威力就越大。红色警戒2中光棱坦克就有聚能攻击的能力。
IsCanine=
填yes或no。这个代码指定步兵是否为狗。当为yes时,单位会检测出伪装的步兵单位并自动用主武攻击。在红色警戒2中这段代码加不加无所谓,因为已经被DetectDisguise=yes替代了。
IsGattling=
是否有盖特效应
IsSelectableCombatant=
填yes或no。这个代码指定该单位是否能被玩家选中。当为no时玩家不能选中即也不能对其控制。一些特殊的单位如V3导弹就用了这个代码,如果改成yes那么V3导弹发射出去后就可以手动操作了。
IsSimpleDeployer=
填yes或no。这个代码指定该单位展开后会变成另一个样式,但实际上仍然是同一个单位。
IsTilter=
填yes或no。这个代码指定VXL单位在斜坡上是否会倾斜。默认值为yes。
IsTrain=
填yes或no。这个代码指定战车单位是否为火车。
Ivan=
填yes或no。这个代码指定步兵是否为疯狂伊文类型的单位,作用是和电脑作区分,并且武器为给目标绑上定时炸药。
-J-
JumpJet=
填yes或no。这个代码指定空军单位是否为“跳跃式”运动方式,除战机外,这种运动方式应该广泛运用在所有空军单位上。
-----------------------当JumpJet=yes时可用的代码-----------------------
JumpjetAccel=
填数值。这个代码指定空军单位在移动中加速的比率,一般填整数。
JumpjetClimb=
填数值。这个代码指定空军单位在越过山崖等高地时的攀登速度。
JumpjetCrash=
填数值。这个代码指定空军单位被摧毁时坠地的速度,一般不要大于15。
JumpjetDeviation=
填数值。这个代码指定空军单位射弹的弹道偏离程度。
JumpjetHeight=
填数值。这个代码指定空军单位的飞行高度,通常设置为800。
JumpjetNoWobbles=
填yes或no。这个代码指定是否禁止空军单位浮动。填yes时为禁止空军单位浮动。
JumpjetSpeed=
填数值。这个代码指定空军单位的平飞速度,即在没有地形影响时空军单位的运行速度。
JumpJetTurn=
是否停止时面向一方
JumpjetTurnRate=
填数值。这个代码指定空军单位掉转方向的速度,数值越小越快。
JumpjetWobbles=
填数值。这个代码指定空军单位的浮动比率,一般填小数,数值越小浮动动作越小。
-----------------------------------------------------------------------
-K-
没有以这个字母开头的代码。
-L-
Landable=
填yes或no。这个代码指定空军单位是否可以降落在地面上。对于战机单位,则只能停留在机场建筑上。
LandTargeting=
填0-2的数值。这个代码指定海军单位攻击的规则。设置为0,海军单位可以攻击陆上单位;设置为1,海军单位不能攻击陆上单位;设置为2,海军单位攻击陆上单位用副武攻击(只能用于尤里复仇)。
LeadershipRating=
领导值,同时选择一群时该值最大者发声
LeaveWaterSound=
两栖类出水的声音
LeaveRubble=
填yes或no。这个代码指定建筑被破坏后是否会留下残渣,也就是说在这个区域内不能建造任何建筑物。残渣是由Art.ini设定的,当不设定时,建筑物被破坏后,那一块将无法使用。默认值为no。注意:当建筑遭到超时空攻击消失后,即使你设定了LeaveRubble=yes,这块区域也不会出现残渣,而且可以再次利用。
LeaveTransportSound=
填Sound.ini中定义的声音名。这个代码指定运兵单位中的单位释放时的声音。
LegalTarget=
填yes或no。这个代码指定该单位能否被直接攻击(即在不按下Ctrl键强制攻击的情况下)。典型的应用是平民的医院不能被直接攻击。注意:当按住Ctrl强制攻击时,即使你设定了LegalTarget=yes,该单位都会遭到攻击。
LightBlueTint=
填数值。这个代码指定建筑的发光程度,这里发的是蓝光。默认值是1.0。
LightGreenTint=
填数值。这个代码指定建筑的发光程度,这里发的是绿光。默认值是1.0。
LightIntensity=
填数值。这个代码指定建筑的发光强度。默认值是0.0,即不发光。
LightRedTint=
填数值。这个代码指定建筑的发光程度,这里发的是红光。默认值是1.0。
LightVisibility=
填数值。这个代码指定建筑物发光的能见程度,数值越大,光的覆盖面积越大。默认值是5000。
Locomotor=
填下表中的对应项。这个代码指定除建筑物外的单位的运动方式。每个除建筑物外的单位都应该设定运动方式。设定该项之后要把MovementZone=,SpeedType=和MovementRestrictedTo=同时进行相应设定。
-----------------------------------------------------------------------------
{4A582741-9839-11d1-B709-00A024DDAFD1}
这是普通的运动方式,用于车辆单位,单位的图像必须为VXL,以确保单位能够正常的旋转、移动、摇晃、上下山。它的速度方式默认为SpeedType=Wheel。这个代码还有另外几个设置:
1、被控制在轨道上移动(如TS的火车)。要加入IsTrain=true。
2、用一个特殊的图像方式来显示在不同的区域移动(如TS里GDI的两栖运兵车)。
3、由游戏程序控制,并由HARV定义的怪东西,作用不明。
{4A582742-9839-11d1-B709-00A024DDAFD1}
这是运动方式“悬浮”,它的特殊设置为:当离子风暴发生时,单位被迫着陆,并停止移动。
{4A582743-9839-11d1-B709-00A024DDAFD1}
这是潜地移动的运动方式,所有用此类方式移动的单位的潜地移动速度由[General]部分里的Subterranean Vehicle Characteristics中的TunnelSpeed=定义;而平时的移动速度由单位本身的Speed=项决定。它速度方式默认为SpeedType=Underground。
{4A582744-9839-11d1-B709-00A024DDAFD1}
这是步兵的“行走”的运动方式,单位图像为SHP,必须在Art.ini里设置它们的Sequence。默认为SpeedType=Foot。这个代码还有另外几个设置:
1、在水里的移动图像,由Sequence的相关项控制。
2、空投时的图像,由Sequence的相关项控制。空投步兵的阴影由INFSHDW.SHP控制。
3、在特殊环境时,使用POD.SHP的逻辑,但是在红色警戒2里缺少图像文件。
4、游戏程序控制,当单位叫做DESO时,有些特殊东西,但到底是什么不清楚。
5、游戏程序控制,当单位叫做COW时,会到处乱走。
{4A582745-9839-11d1-B709-00A024DDAFD1}
这是“落下”的运动方式,由在[General]部分里的Drop Pod Flight Characteristics控制它的特有属性。速度方式默认为SpeedType=Winged。它的附加设置为,在落地/升空时调用一些图像来做为动画效果。
{4A582746-9839-11d1-B709-00A024DDAFD1}
这是“飞行”的运动方式,速度方式默认为SpeedType=Winged。
附加设置:
1、可以有一个尾焰,由Art(md).ini的Trailer=控制
2、如果单位为战机,且有Landable=yes,可以设置降落动画;用Carryall=yes,IsDropship=yes也会有类似效果,但是由ART.ini中不同参数控制。
3、在离子风暴来临时,单位会从空中落下被毁。
4、若是战车单位,且有HunterSeeker=yes,则会自动寻找找单位来攻击。
5、有Fighter=yes时,可以悬浮在敌军单位上方攻击敌人(类似TS里的Orca Fighter)。
{4A582747-9839-11d1-B709-00A024DDAFD1}
这是“传送”的运动方式,即超时空移动方式,在Rules.ini的[General]部分中有个叫Reinforcement/Chrono Stuff 的特殊专门设定。这个运动方式在移动是有特殊的动画效果为WarpOut= (尽管它的一个存在且有效的参数项WarpIn= 没有用到)。同时,这个运动方式是唯一一个没有默认的SpeedType的,有可能是被干扰了——删掉某一个物件的运动方式并不定义它也可以有这样的效果。游戏设置的原意是要让拥有这种运动方式的单位在使用时用一些特殊的蓝色的光标事件来代替平时的绿色的那些,但它们并没有被用上而且仍保留在Mouse.shp和Mouse.sha里。
{55D141B8-DB94-11d1-AC98-006008055BB5}
这是“机械”的运动方式,被使用于机械类的单位的“行走”而不是“驾驶”型运动方式。被用于基于SHP型图象单位,使它们能够正确的面向各个方向。默认SpeedType=Foot。注意:使用这个运动方式的单位可以有一个炮台(需要VXL和HVA)。这个代码还有另外设置:
1、使用此运动方式的单位可以像建筑一样使用电力供应,当停电时不能运转(由Powered=控制)。
{92612C46-F71F-11d1-AC9F-006008055BB5}
这是“跳跃飞行”的运动方式。在Rules.ini的[JumpjetControls]中有综合特征的定义。默认为SpeedType=Winged。可以在这些单位代码中加入一些控制该单位在使用此运动方式时的设置,覆盖综合特征的定义(仅对该单位而言),即可对不同单位进行专用化。这在RA2的引擎中是很必要的因为有些使用此运动方式的单位是从工厂里建造出来。
{2BEA74E1-7CCA-11d3-BE14-00104B62A16C}
这是“航运”的运动方式。被使用于各类船只。单位基于VXL图象。默认为SpeedType=Float,并有附加代码使得单位被摧毁不是爆炸而是下沉。附加代码为:Weight=x。当x为大于3的整数,这个单位就会下沉,小于3则反之。
Locomotor={B7B49766-E576-11d3-9BD9-00104B972FE8}
这是“弹道”的运动方式。用于单位发出的卵导弹。使用该运动方式的导弹必须基于vxl图象。默认SpeedType=Winged。在Rules.ini的[General]中的V3 Rocket Control and Dreadnaught Rocket Control处有综合特征定义。注意:卵导弹的运动方式已经被游戏平台定死,你不能新增任何导弹型单位,只能修改游戏内置的导弹型单位,有V3导弹、无畏级导弹,新增的导弹是无法射中目标的,只会自个飞走。
附加设置:
1、增加FlyBack=true可使单位被锁定在它的轨道(即发射者和目标之间的最短距离)上。
-M-
MaxDebris=
填数值。这个代码指定除步兵外的单位被摧毁后弹出的碎片数的最大值。
MaxNumberOccupants=
填数值。这个代码指定该建筑最大能够容纳多少步兵,典型的应用是在平民建筑上。
MinDebris=
填数值。这个代码指定除步兵外的单位被摧毁后弹出的碎片数的最小值。
MissileSpawn=
填数值。这个代码指定空军单位是否为卵导弹。应该只有V3导弹、无畏级导弹才设置这个项。
MobileFire=
填yes或no。这个代码指定单位是否只能在开火后才能继续移动。典型的运用是V3火箭发射车。
MoveSound=
填Sound.ini中定义的声音名。这个代码指定战车和步兵移动中的声音。
MovementZone=
这个代码要和Locomotor=的值配合使用,具体请参照下表:
----------------------------------------------------------------
WaterBeach 能在海滩上和水上运动但不能在陆地上运动
Water 能在水上运动但不能在陆地上运动
Fly 能在空中运动
InfantryDestroyer 常用于手雷兵、导弹兵之类步兵运动
Subterranean 能在地下潜地运动
Amphibious 能在水陆运动,即两栖
AmphibiousDestroyer 能在水陆运动,但其他地方不能运动
Destroyer 常用于战车的运动
Crusher 常用于矿车的运动
Normal 正规的运动方式,没有特殊效果
----------------------------------------------------------------
MovementRestrictedTo=
填下表中的对应项。这个代码相当于第二个MovementZone=。
----------------------------------------------------------------
Clear 一般,没有特殊效果
Road 在公路上移动
Rock 在岩石上移动
Beach 在海滩上移动
Rough 在粗糙的地域上移动
Tunnel 在隧道中移动
----------------------------------------------------------------
MoveToShroud=
填yes或no。这个代码指定单位是否能够探路,即打开地图上的黑色部分。
MoveStart=
移动开始时的声音
MuzzleFlash=
填X,Y,Z的数值。这个代码指定TurretAnim=的动画播放的位置,可以设置多个,如MuzzleFlash0=,MuzzleFlash1=等。典型的运动是平民建筑被占领后,攻击时的火花位置。这个代码要用在Art.ini中。
-N-
Name=
填任何内容。这个代码指定该单位的注释内容,在游戏中没有任何作用。
Natural=
为野生动物,野生动物不接受INFDEATH
NaturalSmokeLocation=
伤害时冒烟的部位
Naval=
填yes或no。这个代码指定该单位是否为海军单位。所有海军单位都应该有Naval=yes的设置,有这个设置的单位会被船坞类建筑生产。
NavalTargeting=
填下表中的对应项。这个代码指定海军单位攻击目标的规则。
----------------------------------------------------------------
0 能够攻击水下单位,攻击武器为主武
1 能够攻击水下单位,攻击武器为副武
2 只能攻击水下单位,攻击武器为主武
3 使用副武攻击海上单位
4 使用主武攻击海上单位,副武攻击水下单位
5 使用主武攻击所有海军单位
6 不能攻击海上单位
----------------------------------------------------------------
NeedsEngineer=
填yes或no。这个代码指定建筑是否能够被工程师占领,常用于平民科技建筑。该平民科技建筑要在NeutralTechBuildings=中注册,以保证伊娃能够播放相应的提示语。
NoAutoFire=
填yes或no。这个代码指定该单位能否自动攻击目标。
NODBarracks=
填yes或no。这个代码指定该建筑(兵营类)是否为苏联方兵营,给AI判断用的。所有苏联兵营都应该有NODBarracks=yes。
Nominal=
填yes或no。这个代码指定该单位是否能被敌人攻击,典型的运用是平民单位。
NoShadow=
填yes或no。这个代码指定该单位是否没有阴影。当为yes时,单位没有阴影。
NoSpawnAlt=
填yes或no。这个代码指定VXL单位发射出卵单位后是否会变成“无卵”样式。典型的运用是V3导弹发射车发射后车上的导弹会短暂的不见,变成一辆没有导弹的V3导弹发射车,还有无畏级战舰。注意:“无卵”样式实际上是调用另一个VXL文件,所以当NoSpawnAlt=yes时,要把准备的“无卵”样式VXL和HVA文件改名为 原单位VXL名+WO.VXL 和 原单位VXL名+WO.HVA。如V3,应该改名为V3WO.VXL和V3WO.HVA。
NotHuman=
填yes或no。这个代码指定步兵单位是否为野生动物,这种单位不会受到攻击者武器的弹头中的InfDeath=影响。
NotWorkingSound=
填Sound.ini中定义的声音名。这个代码指定建筑停止工作时的声音。
NukeSilo=
填true或false。这个代码指定建筑是否为核弹井。当为true时,配合SuperWeapon=MultiSpecial,就可以成功开启“核弹攻击”的超级武器。
NumberImpassableRows=
填数值。这个代码指定建筑最多可以停载等待的单位数量。
NumberOfDocks=
填数值。这个代码指定可停载单位建筑的最大可停载量,如机场可以停载4架战机,矿厂能够停载1辆矿车。
-O-
Occupier=
填yes或no。这个代码指定步兵单位是否可以进入可驻守的建筑物。
OccupyWeapon=
进驻用武器
OmniCrushResistant=
是否能被战斗要塞碾压
OpenTopped=
是否可以从运输工具内向外射击,如战斗要塞
OpenTransportWeapon=
在可对外射击的运输工具里使用主武(0)副武(1)
OpportunityFire=
填yes或no。这个代码指定该单位是否能够移动中开火。这个代码不能用于建筑物。
OrePurifier=
填yes或no。这个代码指定建筑是否为矿石精炼器。效果和盟军的矿石精炼器一样,即从矿石精炼厂中获得的资金再增加一定百分比的额外资金。这个百分比可以在Rules.ini中的PurifierBonus=设定,当为1时即为100%,也就是一次获得双倍资金。
Organic=
填yes或no。这个代码指定海军单位是否为水下单位,通常用于潜水艇。
Owner=
填国家名。这个代码指定该单位可以被哪些国家所拥有(注意!不是建造)。对于基地车等一开始就会出现的单位,应该正确的设置这个代码否则不能在开始时显示。注意:在实际运用中发现即使设定为某个国家专有,但是其他国家仍然能够建造,原因是Prerequisite=这个代码,需要将后面跟上的建筑名改换为你所想要的国家的特有建筑。如果没有特有建筑,可以使用RequiredHouses=这个代码跟上你所想要的国家名即可,注意Prerequisite=代码跟上的建筑名不要有该国家不能建造的建筑。
Overpowerable=
填yes或no。这个代码指定建筑是否为充能建筑,当类似磁暴步兵类的充能单位对其进行充电时,该建筑转为副武攻击,副武通常要指向比主武强的武器。典型的运用是苏军的磁暴线圈。
-P-
PackupSound=
填Sound.ini中定义的声音名。这个代码指定建筑收回为战车时播放的声音,不设定时就为基地车收回的那种声音。
Parasiteable=
填yes或no。这个代码指定该单位是否能被寄生,这里的寄生是指被像恐怖机器人一类的单位所寄生。
Passengers=
填数值。这个代码指定VXL单位的可运兵数量。如果要最大容积,可以修改SizeLimit=这个代码。
Passive=
填yes或no。这个代码指定该单位是否为“被动单位”。当为yes时,该单位不会自动攻击敌人,被敌人攻击也不会还击,相当于CanPassiveAquire=no和CanRetaliate=no连用。
PermaDisguise=
填yes或no。这个代码指定伪装单位是否可以在移动中不会破坏自己的伪装。典型的运用是间谍,间谍在移动中不会轻易被敌人识破。
PhysicalSize=
填1-10之间的值。这个代码的详细作用不明,但应该给每个步兵都添上PhysicalSize=1。(该代码作用已取消)
Pip=
填对应颜色名。这个代码指定单位进入运兵VXL单位后下面小格显示的颜色,在红色警戒2中有green、yellow、white、red和blue几个颜色可共选择。默认为green。
PipScale=
填下表中的对应项。这个代码指定单位下方小格显示的类型。注意:小格数量在特殊状况下PipWrap=指定。
---------------------------------------------------------------------------------------------------------
Passengers 乘客,小格数量由Passengers=这个代码的数值指定
Ammo 弹药,这里不是小格表示而是竖线方式表示,小格数量由Ammo=这个代码的数值指定
Power 电力,这里不是小格表示而是提示条方式表示,提示条显示电力内容由Power=这个代码的数值指定
Tiberium 矿石,只能用在矿石精炼厂和采矿车上,小格数量由Storage=这个代码的数值的 逻辑 指定
---------------------------------------------------------------------------------------------------------
PipsDrawForAll=
所有人能见到它的容量,典型运用是尤里的心灵控制塔
PipWrap=
填数值。这个代码指定单位下方显示的小格的数量限制,不同阶段会用不同颜色表示,如弹药,不同阶段由不同颜色表示弹药的数量。要和PipScale=以及其对应值的连用。
PitchAngle=
填数值。这个代码指定直升机单位飞行的角度。默认为20。也可以用于所有空军单位,只不过效果没直升机好。
PitchSpeed=
填数值。这个代码指定空军单位的加速百分比,用小数表示。默认为0.25。
PixelSelectionBracketDelta=
数值越小 选择框越高
PlaceAnywhere=
填数值。这个代码指定建筑的建造是否不会受到场地的影响,如凹凸等。当为yes时,建筑可以在任何场地建造。
Points=
填数值。这个代码指定该单位的经验点。这个经验点既指定了该单位拥有的经验点,也指定了敌人摧毁该单位后获得的经验点(部分)。数值越大该单位升级越慢。
Power=
填数值。这个代码指定建筑单位占用的电力量。当为负数时,则为供电。
Powered=
填yes或no。这个代码指定建筑单位是否会受到停电后影响,如不能使用武器、建筑动画不能播放等。如果想设定建筑受到停电影响后可以继续播放动画,可以设定Art.ini中的ActiveAnimPowered=no,反之则设定为yes。
PoweredSpecial=
是电力类建筑
PoweredUnit=
是否在无电的时候不工作
PowersUpBuilding=
填建筑名。这个代码指定建筑可加载哪个附属建筑。附属建筑即只能放在主体建筑上面,不能放在空地或其他地方的建筑。详情请参考《反恐联盟》中中国的地热发电厂、超级空军研究所。
PowersUnit=
填单位名,给该Unit供能,如无该建筑则对应UNIT无法工作
PowersUpToLevel=
填数值。这个代码指定建筑最多可以加载多少个附属建筑。-1为可以无限加载。加载的位置由Art.ini中该建筑的PowerUpNLocXX=、PowerUpNLocYY=和PowerUpNLocZZ=指定,N表示第N个建筑,通常能加载多少附属建筑就设定多少个。
Prerequisite=
填建筑名。这个代码指定该单位制造时所必须的建筑,当已方没有该建筑时该单位不能建造。具体请参看我对Owner=的说明。该代码同时也可以指定建筑类型,当建造了该类型的建筑后,该单位可以建造,常用于两个阵营都可以建造的单位。注意:该建筑要在Rules.ini上部的“Building prerequisite categories are specified here.”这一项后面的相应项(这一项是个注释)注册才行,否则电脑不认。以下是建筑类型表:
------------------------------------------------------------------------------------------
RADAR 雷达类建筑,这种类型的新建筑应该同时在PrerequisiteRadar=中注册
BARRACKS 兵营类建筑,这种类型的新建筑应该同时在PrerequisiteBarracks=中注册
TECH 科技类建筑,这种类型的新建筑应该同时在PrerequisiteTech=中注册
PROC 矿厂类建筑,这种类型的新建筑应该同时在PrerequisiteProc=中注册
POWER 发电厂类建筑,这种类型的新建筑应该同时在PrerequisitePower=中注册
FACTORY 战车工厂建筑,这种类型的新建筑应该同时在PrerequisiteFactory=中注册
------------------------------------------------------------------------------------------
PrerequisiteOverride=
填建筑名。这个代码指定该单位可以在Prerequisite=之外另外指定必须建筑,相当于第二个Prerequisite=。只要当PrerequisiteOverride=这个代码满足时,即使Prerequisite=没有满足,该单位也可以建造。
PreventAttackMove=
填yes或no。这个代码指定该单位能否攻击移动中的单位,不设置也能攻击不过命中率不怎么样。
PreventAutoDeploy=
填yes或no。这个代码指定该单位是否能够自动展开。
Primary=
填武器名。这个代码指定该单位的主武,也就是所谓的主要武器、第一武器。
ProduceCashAmount=
填数值。这个代码指定建筑在每隔固定时间就会给拥有者多少资金。典型的运用是科技钻油井。这里的时间由ProduceCashDelay=这个代码的数值指定。
ProduceCashDelay=
填数值。这个代码指定建筑每隔多少时间便会给拥有者固定的资金。典型的运用是科技钻油井。这里的资金由
ProduceCashAmount=指定。
ProduceCashStartup=
填数值。这个代码指定当该建筑被占领时占领方获得的资金。典型的运用是科技钻油井。
ProtectWithWall=
填yes或no。这个代码指定建筑在AI使用时是否会被围墙围住,该围墙由当前选择的国家的所属阵营来决定,也可以通过设定AIBasePlanningSide=来指定。
PsychicDetectionRadius=
填数值。这个代码指定探测敌人动作的半径范围。典型的运用是苏军的“心灵感应装置”。
-Q-
没有以这个字母开头的代码。
-R-
Radar=
填yes或no。这个代码指定建筑是否拥有雷达功能,拥有雷达功能的建筑可以不是雷达类建筑。
RadarInvisible=
填yes或no。这个代码指定该单位是否会被敌方雷达检测到,效果是敌人无法在小地图看见该单位。
RadarVisible=
填yes或no。这个代码指定该单位完全不能被雷达检测到,即使是“心灵感应装置”一类的建筑物也不能感测到。步兵的默认值为no。一般和Insignificant=yes连用。
RadialColor=
填颜色值,用24位RGB来表示。这个代码指定建筑的颜色,用来固定建筑的颜色的,当设定该代码后该建筑的颜色不会受游戏的一系列设置的影响。默认为该建筑所属方的颜色,或者是遭遇战设置时的颜色。
RadialFireSegments=
武器放射状发射的角度
RateUp=
每桢多少个Stage时间
RateDown=
多少桢找不到敌人才终止盖特效应
Refinery=
填yes或no。这个代码指定建筑是否为矿石精炼厂。给AI判断用的,比如AI会指定部队围着矿石精炼厂打。
RefinerySmokeParticleSystem=
矿厂接受矿物后冒烟的烟雾系统
RefinerySmokeFrames=
矿厂接受矿物后冒烟的时间
RefnSmokeOffsetOne=
填X,Y,Z的值。这个代码指定矿石精炼厂在接受采矿车的矿石后冒烟的位置,这是第一个位置。
RefnSmokeOffsetTwo=
填X,Y,Z的值。这个代码指定矿石精炼厂在接受采矿车的矿石后冒烟的位置,这是第二个位置。
ReadinessReductionMultiplier=
填数值。这个代码指定该单位的损害乘法器。要和DamageReducesReadiness=yes连用。
RejoinTeamIfLimboed=
填yes或no。这个代码指定该单位攻击目标后是否归队,该单位的武器要有LimboLaunch=yes。通常用于狗。
Reload=
填yes或no。这个代码指定该单位装弹的所需时间。
ReloadIncrement=
填yes或no。这个代码指定该单位弹药用完后再装弹的所需时间。默认值为Reload=的值。
Repairable=
填yes或no。这个代码指定建筑是否能够被工程师所修复。当为no时工程师不能进入修复。
RequiredHouses=
填国家名。这个代码指定该单位只能被指定的国家所建造。对于其他国家,即使满足了Prerequisite=和TechLevel=,只要不是指定的这个国家,就不能建造。
RequiresStolenAlliedTech=
填yes或no。这个代码指定该单位是否在已方间谍渗透盟军的高科技实验室后才能建造。
RequiresStolenSovietTech=
填yes或no。这个代码指定该单位是否在已方间谍渗透苏军的高科技实验室后才能建造。
RequiresStolenThirdTech=
填yes或no。这个代码指定该单位是否在已方间谍渗透尤里的高科技实验室后才能建造。
ReselectIfLimboed=
填yes或no。这个代码指定该寄生单位在所寄生的单位被摧毁的情况下能否再次出现。该单位的武器代码要有LimboLaunch=yes 才行。
ResourceDestination=
是否作为矿厂来使用
ResourceGatherer=
是否是奴隶矿山类物体
RevealToAll=
填yes或no。这个代码指定建筑是否会生成雷达事件,这里的雷达事件是指伊娃的报告。
RollAngle=
填数值。这个代码指定空军单位转弯时的滚动次数。默认为30。
ROT=
填数值。这个代码指定该单位转弯的比率,数值越大转弯越快。默认值为0。
-S-
SAM=
填yes或no。这个代码指定建筑是否发射SAM导弹,也就是对空导弹。当设置为yes时,该建筑只能攻击“部分”空军单位。在红色警戒2中不怎么支持,因为它不对所有空军单位发动攻击,只会对“Aircraft Type List”中注册的空军单位发动攻击,而不会对“Vehicle Type List”、“Infantry Type List”中注册的空军单位发动攻击,也就是说像直升机、飞行步兵都不能对其发动攻击。
Secondary=
填武器名。这个代码指定该单位的副武,也就是所谓的次要武器、第二武器。当主武不能攻击某目标时,游戏会自动转为副武攻击,当副武不能攻击时,游戏才会判断该单位不能攻击。
SecretHouses=
在秘密实验室里只有某一方可以取得这项科技
SecretLab=
是秘密实验室
Selectable=
填yes或no。这个代码指定该单位能否被玩家选中。典型的运用是V3导弹。
SelfHealing=
填yes或no。这个代码指定该单位是否能够自动恢复生命点。
SensorArray=
填yes或no。这个代码指定建筑是否能在特定范围内感应到敌人的行动并且用虚线表示出来。
Sensors=
填yes或no。这个代码指定VXL单位是否能够探测隐形。
SensorsSight=
填数值。这个代码指定VXL单位检测其它隐形单位的半径范围。
ShowOccupantPips=
填yes或no。这个代码指定当建筑被步兵驻守后是否显示底下的小格。
Sight=
填数值。这个代码指定该单位的视力范围。数值越高,该单位在探路时拨开的黑雾越大。这个代码也指定了该单位发现目标的距离。
SinkingSound=
填Sound.ini中定义的声音名。这个代码指定海军单位被摧毁后下沉的声音。该海军单位的Weight=要大于3。如果想设定海军单位下沉的Weight=的标准值,可以修改Rules.ini上方ShipSinkingWeight=的数值。
Size=
填数值。这个代码指定该单位的大小。默认为1。
SizeLimit=
填数值。这个代码指定运兵单位最大支持的运兵体积。
Slaved=
是否为奴隶
SlaveReloadRate=
奴隶被"回收"在主物体中的时间
SlaveRegenRate=
奴隶数量不满时候重新释放奴隶的时间
SlavesNumber=
奴隶数量
Soylent=
填数值。这个代码指定该单位被卖掉后所得的资金。对于步兵单位,只有通过进入苏军的“复制中心”(或同类型建筑)才能卖掉。
Spawned=
填yes或no。这个代码指定空军单位是否为重生卵单位。用来和一般的空军单位作区分的。
Spawns=
填空军单位名。这个代码指定召唤重生卵单位的单位召唤重生卵单位的类型。这个单位的召唤武器需要有Spawner=yes设定。
SpawnsNumber=
填数值。这个代码指定召唤重生卵单位的单位召唤重生卵单位的数量。这个单位的召唤武器需要有Spawner=yes设定。
SpawnRegenRate=
填数值。这个代码指定当召唤重生卵单位的可召唤卵数量为0时,重新装载重生卵单位的时间。
SpawnReloadRate=
填数值。这个代码指定召唤重生卵单位的单位,装载重生卵单位的时间。
SpecialThreatvalue=
填0-1的数值。这个代码指定该单位的“潜在恐吓能力”,好象没什么作用,但应该给每个英雄单位设置为1。当设置为1时,应该设置该单位ThreatPosed=0,当为设置为0时或者没有这个代码时,可以任意设置ThreatPosed=的值。
Speed=
填数值。这个代码指VXL单位、步兵单位的运动速度。每个VXL单位、步兵单位都一定要设置这个项。最大值为100。
SpeedType=
填下表中的对应项。这个代码指定该单位的运动类型。应该和Locomotor=、MovementZone=配合使用。注意:当单位设定SpeedType=Amphibious时,Locomotor=可以任意设定。
---------------------------------------------------------------------------------
Underground 潜地运动类型
FloatBeach 海和海滩运动类型
Float 海运动类型
Winged 飞行运动类型
Hover 盘旋运动类型
Wheel 车辆运动类型
Track “轨迹”运动类型
Foot 步兵行走运动类型
---------------------------------------------------------------------------------
SprayAttack=
是否随机使攻击范围内人疯狂
Spyable=
填yes或no。这个代码指定建筑是否能够被间谍渗透,被间谍渗透的建筑会根据建筑类型触发相应的事件,如渗透发电厂类建筑会导致停电等。
SpySat=
填yes或no。这个代码指定建筑是否为“间谍雷达”。当为yes时,该建筑一旦被建造,周围的黑幕会被其消除(在“黑幕产生器”的作用范围除外),效果和“间谍卫星”一样。
StageN=
第N阶停留时间,最后一个停留完后返回第一个
Storage=
填数值。这个代码指定该单位能够储存的矿石数量。只能用在采矿车和矿石精炼厂。
Strength=
填数值。这个代码指定该单位的生命点,当为0时,该单位破坏。
StupidHunt=
填yes或no。这个代码常用于片面武器的单位,即使你强行叫它去攻击它不能攻击的东西,它也不会行动。
SuperGapRadiusInCells=
填数值。这个代码指定“黑幕产生器”类建筑产生的黑幕半径。要和GapGenerator=yes和ExtraPower=配合使用。
SuperWeapon=
填超级武器名。这个代码指定该建筑产生后所激活的超级武器。
SuperWeapon2=
填超级武器名。这个代码指定该建筑产生后所激活的第二个超级武器。
SuppressionThreshold=
填数值。这个代码指定该单位抵御寄生单位的能力。
-T-
TargetCoordOffset=
海军出口位置
TargetLaser=
攻击时是否有瞄准激光(无实际意义)
TechLevel=
该值确定物体在建造栏中的顺序,越小的越在前,同样的按照注册顺序调整,注意:1到10的整数方可建造,-1或者10以上均不可建造
Teleporter=
超时空行动用语句
ThreatAvoidanceCoefficient=
躲避高危险地区的几率
ThreatPosed=
威胁值,电脑优先攻击高威胁的,注意加载物必须为0,因为电脑不可能直接攻击加载物
TiberiumProof=
在矿石中是否能加血(似乎是无效参数)
ToProtect=
有此语句者被其他东西优先保护
TooBigToFitUnderBridge=
无法在桥底停留
Trainable=
为no时则不可升级
Turret=
单位有无炮塔
TurretAnim=
炮台动画
TurretAnimIsVoxel=
炮台是否是VXL
TurretAnimX=
炮台中心点X坐标
TurretAnimY=
炮台中心点Y坐标
TurretAnimZAdjust=
炮台中心点Z坐标
TurretCount=
炮塔种类数(IFV)
TurretRecoil=
开炮时炮口是否后退,典型例子是巨炮
TurretRotateSound=
炮台旋转的声音
TurretSpins=
该物体的炮塔是否为飞碟型,例如飞碟
TurretTravel=
炮台缩的幅度
-U-
UndeployDelay=
释放型武器造成的停顿(无法移动,攻击)时间(限步兵)
Underwater=
是否为水下物体
UnloadingClass=
倒矿时候的车子
UnitAbsorb=
战车单位是否能进入发电
UnitRepair=
是否可以修理单位
UnitsGainSelfHeal=
给单位增加每桢几点的回血
Unsellable=
无法被出售
Upgrades=
能被加载的次数
-V-
VeteranAbilities=
一星升级加的能力
VHPScan=
专门对某一类MoveMentZone攻击,Strong代表所有
VoiceAttack=
接受攻击指令的声音
VoiceCrashing=
被击落的声音
VoiceDeploy=
展开的声音
VoiceEnter=
进入DOCK=的声音(非战斗机)
VoiceFeedback=
害怕时播放的声音
VoiceHarvest=
采收矿物的声音
VoiceMove=
接受移动指令的声音
VoiceSelect=
选择的声音
VoiceSelectDeactivated=
失去控制时候的声音 见遥控坦克
VoiceSelectEnslaved=
奴隶类被解放的声音
VoiceSecondaryWeaponAttack=
副武攻击声音
VoiceSpecialAttack=
接受特殊攻击指令(例如坐下后攻击)的声音
-W-
WalkRate=
移动使用的SHP图象桢数(只用于水中的SHP物体)
Wall=
是否为围墙
WantsExtraSpace=
是否需要额外的空间
WaterBound=
是否为水上建筑
WeaponCount=
武器种类数(IFV)
WeaponStages=
武器盖特效应有几阶
Weight=
重量
WorkingSound=
工作声音
-X-
没有以X开头的语句
-Y-
YuriBarracks=
是否为尤里方的兵营,这个关系到可否设置集结点
-Z-
ZFudgeBridge=
离桥底多远就走不过去了
ZFudgeColumn=
离柱子多远就走不过去了
ZFudgeCliff=
离悬崖多远就走不过去了
ZFudgeTunnel=
离地道多远就走不过去了
至此所有单位类语句完结 欢迎添加或指正
Art解析
对art.ini、artmd.ini规则文件的解析
By: Xgamer
Red Alert 2 art.ini 教程
翻译:小遥指挥官
审核,纠正 MK
art.ini文件用于指定游戏的图画如何显示到用户的屏幕上。游戏中大部分的图像数据都位于这里。art.ini文件的某些部分甚至用于创建附加的特效,例如播放矿的产生的动画。
就像rules.ini一样,art.ini文件也由片断组成。每个独立的对象必须拥有自己的片断。然而,在art.ini文件中,片断头更加重要——在绝大多数情况下,它指定了该对象使用的图像。如果某个步兵的片断头叫做“[SOMEGUY]”,那么游戏将希望有个叫做“someguy.shp”的文件能够与之相对应,而这个shp文件中或许包含了显示该步兵单位的所有需要的图像。另外,在rules.ini中,如果一个对象没有“Image=”这一条标签,那么游戏默认使用art.ini中片断头与之相同的代码。如果某个单位的片断头叫做“[MEGATANK]”,那么游戏将会在art.ini中寻找片断头叫做“[MEGATANK]”的片断来决定如何显示该单位,当然最后也会寻找同名的图片。然而,在art.ini文件中动画对象可能使用另外的图像,此时通过“Image=”的值来指定。
建议不要删除已经存在的片断头,因为游戏会引用某些片断头,删除的话有可能由于游戏找不到其引用的头而导致崩溃。(这句话的意思就是别没事找事胡乱删除原本就有的东西,哪怕你觉得这部分没啥作用……存在必有道理……)
全局标签
这些标签在游戏中所有的对象上都有效,包括动画。
Cameo=
指定该单位使用哪个SHP文件作为图标(就是你点的那个东西来建造它)。如果该对象没有图标,游戏默认使用“Missing
Cameo”图标作为它的图标(就是那个红警2样的图标)。每个图标都必须是SHP格式,并且调色盘要求是红警2的cameo.pal文件。另外,图标的大小要求是60*48像素,即宽60像素,高48像素。
AltCameo=
指定当该单位升级之后使用的图标。升级是指玩家使用间谍渗透对方的兵营或战车工厂之后,单位所产生的变化。规则和Cameo=标签相同。
Voxel=
指定该单位的图像是否是vxl(就是说这个单位是不是使用vxl文件作为图形)。游戏会将它和SHP文件区分对待。某些标签是否起作用取决于这个标签是否设置为“yes”(就是说如果这个标签决定某些涉及vxl的标签是否有效。假如被设置成“no”,那么即使你为那些有关vxl的标签赋了值也无效)。
Remapable=
如果被赋值为yes,那么它将告诉游戏该单位的图像文件(SHP或者VXL)包含特殊的红色像素,这些特殊的红色像素会自动变色为玩家拥有的颜色(就是说如果这个标签赋值yes,那么该单位的图像中采用了特殊红色像素的部分会变成你选择的颜色)。这些特殊的像素位于unittem.pal、unitsno.pal和uniturb.pal这几个调色盘文件中,索引号为16至31。 动画无主,动画上的这个颜色不会被替换
Normalized=
决定是否调节该对象的动画使之以一个恒定的速度播放。只用于建筑,因为步兵和战车不可能使用动画。即使调用动画,动画也是以动画而非单位的形式出现。
NewTheater=
如果被赋值为yes,那么该单位(一般是建筑)将会在不同的场景中使用不同的图形(例如温和气候场景和雪地场景)。游戏通过判断图像文件名的第二个字母来决定使用哪个图像。如果某个建筑名叫“[GARADR]”,那么当建筑在雪地场景中建造的时候,游戏会寻找名叫“garadr.shp”的文件作为图像;当建筑在温和气候场景中建造的时候,则寻找“gtradr.shp”。注意A代表雪地气候,U代表城市场景,T代表温和气候场景。尤里的复仇中,D代表沙漠场景,L代表月球场景。如果游戏找不到与场景相关的图像,那么将默认使用文件名第二个字母为G的图像(也就是普通的场景)。
ShadowIndex=
仅用于使用vxl图像的对象,并且包含多个vxl的对象。它决定了哪个vxl会渲染出单位的影子。例如:直升机,直升机的机体大概包含两个vxl,即机身和螺旋桨。ShadowIndex=决定了游戏到底是绘制机身的影子还是螺旋桨的影子。
DemandLoad=
可以被赋值为true或者false。如果设置成true,游戏将会在装载“Loading…”那个画面的时候预载入图像而不是在建造的载入图像。一般用于平民建筑。(这是当然的!你要是打算在那个“Loading…”画面的时候悠哉悠哉地洗个澡的话,就随便你设置……)
TurretOffset=
指定单位的炮塔位于什么地方,沿着单位的中轴线。换句话说,炮塔距离前后有多远。默认值为0(正中心),单位是“lepton”,其中,256个lepton等于一格。就是说如果某个机体前后长度为1格,相当于前后256个lepton。
PrimaryFireFLH=
SecondaryFireFLH=
ElitePrimaryFireFLH=
EliteSecondaryFireFLH=
决定了炮弹出膛位置和开火动画播放位置,单位是lepton,格式是(数字英文逗号数字英文逗号数字),分别表示前,左,高。如果武器的burst=大于1,第二发炮弹会从F -L H的位置发出。
WeaponXFLH=
与“PrimaryFireFLH=”相似。这里的X代表第几种武器。这个标签仅用于拥有多种武器的单位,如ifv,盖特。光棱用的是weapon1,所以也是这个系统。总之,primaryfireflh只对primary有效,weaponxflh只 对weaponx有效。art要和rules的武器代码对应
游戏中地表单元是60x30的菱形,换算为实际尺寸就是边长为60*2^0.5/2像素的一个正方形,而这个边长等于256个单位,所以每个像素等于256/(60*2^0.5/2)=6.035个单位,因此F和L在平行于屏幕的截图上像素数乘以6即可。H的方向总是和屏幕成60°所以应乘上6.035/sin60°=6.969即7。
AlternateFLH0=
AlternateFLH1=
AlternateFLH2=
AlternateFLH3=
AlternateFLH4=
这些标签和其他有关FLH的标签相似。这些标签仅用于大脑车和要塞。npext中有新的用法,见ext说明书
步兵
Sequence=
决定需要的动画帧是哪一个序列片断头。序列是指定哪些帧用于开火,哪些帧用于行走等等。“Sequence=”决定使用哪一个动作序列作为步兵的SHP图像。更多信息请参见Infantry
Sequences部分。 任何一个步兵素材正常发挥作用都需要sequence。
FireUp=
指定使用第一武器开火的动画的帧的序号。它用来确定例如使用步枪的时候,当你可以看到步枪开火时子弹离开的那一帧的帧序号,不是前一帧也不是后一帧(总之就是那一帧)。仅适用于步兵站着而不是卧倒时。
(YR) FireProne=
(仅用于尤里的复仇)同上。唯一的不同就是步兵是卧倒开火。
(YR) SecondaryFire=
(仅用于尤里的复仇)与“FireUp=”相同,只不过这里是第二武器。
(YR) SecondaryProne=
(仅用于尤里的复仇)卧倒用第二武器开火的……
Crawls=
指定是否单位能够爬行(包括卧倒)。当然步兵的动作序列必须具有爬行的帧。
战车和飞机
WalkFrames=
指定这个SHP战车(不是使用vxl的战车)每个方向的帧数。假定全方向的动画都存在。这些帧在该SHP战车移动的时候发挥作用。(这种SHP战车和步兵非常类似。)
FiringFrames=
同上。只不过这些帧用于SHP战车开火。
Trailer=
这个标签指定哪一个动画被用作尾烟。单位会不停产生动画,动画独立播放,因为单位不停飞远,看起来就是连续的。只对aircraft类单位有效 。对动画也适用。
SpawnDelay= 每隔多少帧产生一个新的尾烟动画
UseLineTrail=
使游戏绘制一条跟从与之相关联的对象的线,就像轨迹一样。限制和“Trailer=”一样。它要求“LineTrailColor=”和“LineTrailColorDecrement=”都存在且值有效。
LineTrailColor=
指定轨迹线的RGB颜色(如果存在的话)。
LineTrailColorDecrement=
指定轨迹线有多长(如果有的话)。数值越大代表轨迹线越短。
建筑
Foundation=
决定建筑有多大,部署该建筑需要多少格。它采用的格式为“宽 x
长”,其中宽为该建筑在东南或者西北方向上所占的格子数,长为该建筑在西南或者东北方向上所占的格子数。
Height=
指定该建筑有多高(单位为格)。它用于决定当选中该建筑时,出现的白色虚线框的高度,还有基洛夫空艇、火箭飞行兵或其他任何飞行单位打算飞过该建筑时需要升高的高度。
Buildup=
决定建造该建筑的时候使用哪个SHP图像作为建造动画。卖建筑的时候,动画倒退播放。这个动画应该少于100帧左右,并且每个可建造的建筑都必须要有“Buildup=”,否则就不能被卖掉。如果你没有建造动画,随便找一个小短动画作为临时建造动画。
DemandLoadBuildup=
提前载入建造动画
FreeBuildup=
可被设定为“true”或者“false”。这个标签的功能未知。不过,一般被设定为true。
Recoilless=
如果被设定为yes,那么它将告知游戏该建筑不使用后坐力武器或者炮塔,从而应该调整。
ToOverlay=
指定该建筑将会转化为哪个覆盖物。一般用于允许玩家建造城墙和公路和宝箱
DamageLevels=
指定一个城墙的SHP文件有多少损坏的程度。每一种损坏的程度都是一整套城墙的图像,而破损增加。(就是说每坏得更厉害一次,都需要一整套城墙的图像。)
PowerUp1Anim=
PowerUp2Anim=
PowerUp3Anim=
指定当该建筑充能1次、2次或3次时加到建筑上的动画。
PowerUp1AnimDamaged=
PowerUp2AnimDamaged=
PowerUp3AnimDamaged=
同上。区别是这3个标签用于建筑被破坏到50%或者更少的HP时使用的动画。
PowerUp1LocX=
PowerUp2LocX=
PowerUp3LocX=
指定绘制建筑的升级模块距离绘制建筑的位置的X轴像素偏移量。建筑的绘制位置是在该建筑的SHP图像的左上方。
PowerUp1LocY=
PowerUp2LocY=
PowerUp3LocY=
同上。不同的是这里指Y轴像素偏移坐标。
PowerUp1YSort=
PowerUp2YSort=
PowerUp3YSort=
为升级模块如何绘制创建顺序。如果和其他升级模块相交迭的话,数值最低的升级模块将会在其他模块和动画后面绘制。这些标签使ActiveAnimYSort关联,确定谁遮挡谁
ActiveAnim=
ActiveAnimTwo=
ActiveAnimThree=
指定当该建筑建造起来之后正常运行或者没有严重损坏(就是绿血的状态……)的时候播放的动画。
ActiveAnimDamaged=
ActiveAnimTwoDamaged=
ActiveAnimThreeDamaged=
指定该建筑以少于50%的HP运行的时候播放的动画。
ActiveAnimX=
ActiveAnimTwoX=
ActiveAnimThreeX=
指定距离该建筑绘制坐标的X坐标。默认值为0。红警2中无用,因为大多数建筑的动态动画和建筑一样大。
ActiveAnimY=
ActiveAnimTwoY=
ActiveAnimThreeY=
同上。涉及Y坐标。
ActiveAnimYSort=
ActiveAnimTwoYSort=
ActiveAnimThreeYSort=
为如何绘制动态动画创建顺序。YSort数值低的动态动画将会在其他ActiveAnim或PowerUp后面绘制。就像“PowerUp1YSort=”一样。
ActiveAnimZAdjust=
ActiveAnimTwoZAdjust=
ActiveAnimThreeZAdjust=
调整动画在层次上的数值。默认为0。ActiveAnim的z值决定了动态动画到底处于哪一个层次上。最低的z值意味着“处于所有图像的后面”,同样,最高的z值意味着“处于所有图像的前方”。
ActiveAnimPowered=
ActiveAnimTwoPowered=
ActiveAnimThreePowered=
如果被设置为yes,那么ActiveAnim只有在玩家拥有足够的电力的时候才被播放(这就是为什么一旦电力不够,电厂就失去了动画效果的缘故……)。否则,在电力切断之前动态动画会在播放完全部的帧之后停止播放并冻结在最后一帧。
SpecialAnim=
SpecialAnimTwo=
SpecialAnimThree=
SpecialAnimDamaged=
SpecialAnimTwoDamaged=
SpecialAnimThreeDamaged=
SpecialAnimZAdjust=
SpecialAnimTwoZAdjust=
SpecialAnimThreeZAdjust=
SpecialAnimX=
SpecialAnimTwoX=
SpecialAnimThreeX=
SpecialAnimY=
SpecialAnimTwoY=
SpecialAnimThreeY=
SpecialAnimYSort=
SpecialAnimTwoYSort=
SpecialAnimThreeYSort=
这些标签就像ActiveAnim一样,只不过这些是用于当该建筑执行特殊功能时。因此并不是一直有效,只有需要的时候才有效。
ProductionAnim=
ProductionAnimDamaged=
ProductionAnimZAdjust=
ProductionAnimYSort=
ProductionAnimX=
ProductionAnimY=
这些标签也像ActiveAnim一样,只不过用于建造厂,当玩家拥有了一个这样的建筑并建造的时候有效。
SuperAnim=
SuperAnimDamaged=
SuperAnimZAdjust=
SuperAnimYSort=
SuperAnimX=
SuperAnimY=
基本同上,只不过这些用于属于该建筑的超级武器激活的时候有效。
PrimaryFirePixelOffset=
SecondaryFirePixelOffset=
规定武器开火的位置。和PrimaryFireFLH不同的是它的单位是“像素”而不是“lepton”。通常用于无炮塔的建筑。第一个参数为距离图像中心的x坐标,第二个参数则是y坐标。默认值为0,0,且不管武器从哪个方向开火,它都只从同一个位置开火。这一点不像PrimaryFireFLH一样考虑开火位置的移动。
PrimaryFireDualOffset=
当设置为true的时候,表示建筑同时使用PrimaryFirePixelOffset和PrimaryFireFLH。它允许建筑使用PrimaryFirePixelOffset来确定0,0,0(从PrimarFireFLH)的位置,而不是正中心。当要求某个不对称的建筑看起来像有个炮塔(其实没有)的时候使用这个标签会很有效。
QueueingCell=
指定当一个矿车在朝矿厂里面倒矿,另一个矿车在旁边等待倒矿的时候,那个等着的矿车所在的格子的x,y坐标(就按照这种顺序)。这个参数按照如下确定:从建筑的西角开始数,向东北方向x坐标增加,向东南方向y坐标增加。
BibShape=
指定用作“Bib”的图像。Bib是指建筑的某个部分,单位可以越过这个部分。此时游戏将单位绘制到Bib的上面而不是下面。
DockingOffset0=
DockingOffset1=
DockingOffset2=
DockingOffset3=
这三个值表示入坞距离建筑的Bib中心(如果有Bib的话)或者建筑本身的偏移量x,y,z坐标(朝向西南意味着y增加,朝向东南意味着x增加,朝向上意味着z增加)。单位是lepton。
DamageFireOffset0=
DamageFireOffset1=
DamageFireOffset2=
DamageFireOffset3=
指定当建筑被破坏到HP少于50%的时候播放的着火的动画。参数的单位为像素,格式为x,y,默认在SHP的中心播放。
IsAnimDelayedFire=
如果被设置为yes,那么当建筑被指定攻击一个在射程范围内的目标的时候,开火前会产生硬直。下面一个标签用于控制该硬直时间。
DelayedFireDelay=
指定开火硬直时间的帧数(游戏在中速的时候大约15fps)。它用于同步建筑开火的动画。
TerrainPalette=
如果被设置为yes,则建筑会使用地形调色盘isotem.pal、
isourb.pal和isosno.pal。尤里的复仇中还包括isodes.pal和isolun.pal。只在泰伯利亚之日中使用
CanHideThings=
可被设置为true或者false。指定是否游戏会自动指明被认为是被该建筑挡住了的动画的格子,并同时显示“隐藏物品”动画。(就是说如果游戏选中了“显示隐藏物品”的选项,且该建筑的这个标签被设为true,则被该建筑挡住的对象会显示出一个闪烁的光标表示这里有东西……)
AddOccupy1=
AddOccupy2=
AddOccupy3=
AddOccupy4=
指定某个单位被设定为隐藏时,在顶层会显示出表示隐藏的动画所附加的格子。(什么意思?)它的格式是从建筑偏移位置开始的x和y的偏移量(未知)。(更加不明白了……)
RemoveOccupy1=
RemoveOccupy2=
RemoveOccupy3=
RemoveOccupy4=
不考虑CanHideThings=所指定的格子。单位能够占据这么多格子,而不会显示表示隐藏的动画。它的格式是从建筑偏移位置开始的x和y的偏移量(未知)。
CanBeHidden=
指定该建筑是否能够被位于它前方的更高的建筑挡住。可以被设置为true或者false。
OccupyHeight=
指定OccupyCell(由AddOccupy和CanHideThings=指定)有多高。漂浮在OccupyCell上且低于OccupyHeight的火箭飞行兵会被认为是被挡住,而飞到其上方,则不被认为挡住。
(YR) DoubleThick=
(仅用于尤里的复仇)如果被设置为true,则该建筑或者动画被超时空兵种攻击的时候会出现额外的半透明效果。用于当建筑有两个或者更多的层且其中一个半透明的层不够用的情况。
用作抛射体的动画
AnimLow
AnimHigh
AnimRate
这三条用于动画抛射体,抛射体飞行中会播放动画而非停留在第一帧。low和high等于是loopstart和loopend
Trailer=
SpawnDelay=
UseLineTrail=
LineTrailColor=
我怎么感觉好像已经翻译过这些标签了……
LineTrailColorDecrement=
指定轨迹线的长度(如果存在的话)。数值越大意味着轨迹线越短。
Rotates=
如果被设置为yes,它将告知游戏这个抛射体使用一个具有64帧的SHP,且这些帧显示出一个旋转了360°的抛射体。这使得游戏能够正确显示出导弹按照它的方向移动的帧。
AnimPalette=
如果被设置为yes,游戏绘制SHP图像时将会使用anim.pal调色盘,而不是unittem.pal、unitsno.pal或者uniturb.pal调色盘。
Voxel=
如果被设置为yes,则该抛射体的图像是vxl而不是SHP。
Flat=
如果被设置为yes,游戏在绘制地表层的时候将会绘制该抛射体,然后在其上面绘制其它部分。这个标签将会让抛射体在其他单位下方移动。
步兵动作序列
步兵动作序列告诉游戏某个步兵的SHP文件的哪些帧用于什么用途。每个标签都有三四个可能的值。
第一个数字是特定动作的开始帧。注意红警2是从0号开始计算SHP的帧数,因此红警2的起始帧被认为是0号。
第二个数字是每个特定动作用到的帧数,包括起始帧。
第三个数字比较复杂。它表示如何到达某个动作特定方向的起始帧。从起始帧开始,游戏会用面向序号(0号代表面向“上”,逆时针方向数字递增)乘以第三个数字来得到面向方向的起始帧。它用于不必添加新绘制的帧就可以得到“卧倒”帧的情况。(就是说,某个特定动作的起始帧序号为第一个数字(从0号开始计算),该特定动作在某个方向上占用的帧数为第二个数字,该特定动作从一个方向转向下一个方向需要跨过的帧数为第三个数字。
总之这是不需要知道的知识,shpbuilder可以帮你写序列。在工具里。
动员兵
Crawl=86,6,6
游戏从第86帧开始,使用6帧包括第87帧作为面向北,然后后6帧作为下一个方向,以此类推。(可以推断,面向北的爬行的动作起始帧为第86帧,每个方向上的爬行动作占用6帧,从面向北转向面向西北需要跨过6帧,也就是说面向西北的爬行动作起始帧为第(86+6=92)帧。以此类推。)
Prone=86,1,6
这里,游戏仅使用第一帧(第87帧)作为面向帧,然后通过计算得到下一个方向所占用的帧序号。(可以推断,面向北的卧倒动作起始帧为第86帧,每个方向上的卧倒动作占用1帧,从面向北转到面向西北需要跨过6帧……后面的我就不用再废话了。)
第四个值是罗盘系统上的“北,南,东,西”。游戏的方向性和你认为的不一样,游戏认为北就是你的屏幕的左上方。基本上游戏的罗盘相当于顺时针旋转了45°。第四个标签仅用于Idle1=、Idle2=、WetIdle1=、WetIdle2=和Cheer=标签中。
下面是有效的动作标签:
Ready=
用于当步兵单位站在那里等待的时候。
Guard=
用于当步兵单位被置于防御模式中。在红警2中似乎使用的不多。
Tread=
指定当步兵单位在水中游泳,并不断打水保持自己浮在水面上的帧序列。(谭雅?)
Prone=
指定步兵单位卧倒(企图减少伤害)的所有帧序列。
Walk=
指定当步兵行走的时候的帧序列。
Swim=
指定当步兵在水中游泳的帧序列。
FireUp=
指定当步兵单位站着向敌方单位开火的帧序列。
WetAttack=
指定当步兵单位在水中向敌方单位开火的帧序列。
Down=
指定当步兵单位遭到攻击卧倒的帧序列。
Crawl=
指定当步兵单位爬行的帧序列。当步兵在移动的时候遭到攻击会出现这种动作。
Up=
和down=相反。指定当危险过后步兵单位站起来的帧序列。
FireProne=
指定当步兵卧倒开火的帧序列。
Idle1=
Idle2=
指定当步兵单位站着闲得没事的帧序列。这会使步兵单位不至于看起来像一尊雕像一样。
WetIdle1=
WetIdle2=
同上。不同点是这里的标签指的是水中。
Die1=
指定当步兵单位被某种拥有InfDeath=1弹头的武器杀死的帧序列。
Die2=
指定当步兵单位被某种拥有InfDeath=2弹头的武器杀死的帧序列。可能会从Die2=和Die3=中随机选择一种。
Die3=
指定当步兵单位被某种拥有InfDeath=1弹头的武器杀死的帧序列。可能会从Die3=和Die2=中随机选择一种。
Die4=
指定当步兵单位被某种拥有InfDeath=3弹头的武器杀死的帧序列。
Die5=
指定当步兵单位被某种拥有InfDeath=4弹头的武器杀死的帧序列。
WetDie1=
指定当步兵单位在水中被杀死的帧序列。可能会从WetDie1=和WetDie2=中随机选择一种。
WetDie2=
指定当步兵单位在水中被杀死的帧序列。可能会从WetDie2=和WetDie1=中随机选择一种。
Deploy=
指定当步兵单位被命令“部署”从而激活某种功能(就像美国大兵会在身边摆放沙袋并架起机关枪)的帧序列。
Deployed=
指定当步兵单位被部署且目前闲的没事的帧序列。
Undeploy=
指定当步兵被命令“取消部署”的帧序列。
Cheer=
指定步兵单位欢呼的帧序列。
Paradrop=
指定当步兵单位被空投到战场上的帧。该帧不要有影子。
(YR) SecondaryFire=
(仅用于尤里的复仇)和FireUp=相同,不同的是这里使用第二武器开火。
(YR) SecondaryProne=
(仅用于尤里的复仇)和FireProne=相同,不同的是这里使用第二武器卧倒开火。
动画覆盖物
这些动画会在其它之上播放。包括火焰,爆炸等。
Scorch=
如果被设置为yes,动画会在战场上留下烧焦的痕迹(燃烧“污染”),纯粹就是图像效果。
Crater=
如果被设置为yes,动画会在战场上留下弹坑的痕迹,当然也是图像效果。
PsiWarning=
如果被设置为yes,动画会在核弹发射的时候为拥有心灵感应器的玩家播放。
Sticky=
如果被设置为yes,动画会附着在目标上。但是这条语句是无效的。
Flat=
告诉游戏绘制的时候在其他对象例如建筑和单位以下的地面上。
Translucent=
如果被设置为yes,它将告诉游戏该动画半透明。导致卡的元凶之一
Translucency=
指定动画的半透明效果为多少。可取值25、50或75意味着25%、50%或75%透明(值越大越透明)。
Damage=
一帧造成一次伤害,范围和动画弹头一样。原版inviso弹头为super,其它为fire2,不能修改
Report=
指定当播放动画的时候播放的声音。声音应当和soundmd.ini文件中的片断头相匹配。
Next=
指定当前动画已经停止播放之后播放的动画。这也包括当它已经循环播放数次之后的情形。
DetailLevel=
推测是指定图像中显示细节的数量。此时观察无效。
UseNormalLight=
如果被设置为yes,那么动画将一直以100%的亮度播放(即使此时屏幕由于闪电风暴超级武器变暗)。
YSortAdjust=
指定动画的YSort值,该值用于使位于某个单位背后(就像超时空部队的空间扭曲图像),或者在单位前方(就像超时空传送启动动画)的动画可以显示出来。
ZSortAdjust=
指定动画的ZSort值,该值用于使某个位于建筑背后或者前方的动画可以显示出来。
AltPalette=
如果被设置为yes,那么动画将会使用unittem.pal,unitsno.pal和uniturb.pal作为调色盘进行描绘,而不是使用anim.pal作为调色盘。
Rate=
决定动画的播放速度。数值越大代表播放速度越快。这个数值以900帧为基数。Rate=300代表游戏将判定动画每帧之间插入900/300帧时间。
Layer=
决定动画在哪个层上播放。“Top”意味着在所有之上(包括力场护盾——试图用闪电风暴击打力场护盾)。“Ground”意味着战场。
Start=
指定动画的起始帧。默认从0开始。
LoopStart=
指定动画开始循环的帧序号。这和Start=不同。游戏会从Start=那一帧开始播放,一直到LoopEnd=那一帧停止,然后从LoopStart=那一帧继续播放。
LoopEnd=
指定动画的结束帧。如果没有到LoopCount=所指定的循环次数,它将会跳到LoopStart=那一帧继续播放。
LoopCount=
指定动画播放的次数。第一次播放被认为是循环次数为0(就是说第一次播放相当于循环了0次,第二次播放相当于循环了一次)。当动画播放到了LoopEnd=那一帧时,循环次数加1,同时检测LoopCount=看是否还需要循环。如果LoopCount=被设置为-1,动画将永远不会停止。(正数再怎么加1也不可能加成-1……)
碎片
碎片是动画的一种,如ts的流星和建筑爆炸时候飞出来的东西。和rules里的vxl碎片一样
Elasticity=
碎片弹性,01之间,越大越强。必须Bouncer= yes才有效
MaxXYVel= 碎片在平面上的速度,不得小于1
MaxZVel= 碎片的竖直速度,正数为向上飞
ExpireAnim= 碎片爆炸动画。可以是另一个碎片的名字
Damage= 被砸到的伤害数值
DamageRadius= 伤害范围,单位lepton,似乎无效,用弹头的cellspread计数
Warhead=碎片弹头
IsMeteor= 此动画将会从天而降
Spawns= 撞击产生子碎片类型
SpawnCount= 子碎片数目
LoopStart=
LoopEnd=
LoopCount=
TrailerAnim=
和之前的一样
TrailerSeperation=
和SpawnDelay= 一样
Bouncer=为yes时此动画作为碎片处理
RandomRate=填两个数字,碎片shp的播放速度从此区间产生
TiberiumSpawnType=产生矿的种类,如GEM01
TiberiumSpawnRadius=
产矿范围,无效,只能一格一层
唔,说实话通行的小遥指挥官的那份翻译还是有些半通不通,咱就重写了一份明白一点的、每个序列里的动作都由三个数字组成,其中第一个数字和第三个数字根据SHP内容可以完全确定(如果你写的序列不是胡闹的话),第二个数字视用户需要书写。 第一个数字是某个动作的开始帧。
注意,序列里的数字要比实际的帧号少1,比如第一帧开始的话第一个数字要写0。
第二个数字暂且不说
第三个数字是这个动作每个方向上的帧数。比如动员兵在SHP文件里每行走6帧换一个方向,则此数字写6
那么第二个数字到底是做什么的呢?通常来说,只要你的SHP正常,只要和第三个数字一样就可以了。第二个数字理论上只能小于等于第三个数字。它的意思是这个动作里每隔多少帧换一个方向。如果等于,自然是走完所有动作再切换方向,小于的话自然就是只播放若干帧就切换
死亡,欢呼,闲置之类4参数动作,第一个数字还是开始帧数-1,第二个数字是动作帧数,第三数字就写0,第四参数是方向,不过感觉没有实际意义
AI解析
对ai.ini、aimd.ini规则文件的解析
TS平台AI(MD).ini教程(LH_Mouse版)
声明:此教程为我个人的独力完成,其内容凝结着我近2年的心血,允许转载但请不要注明“作者未知”之类的字样,
本人保留一切追究的权利。
说明:本文适用于RA2、YR以及其派生出的RP、NP平台所使用的AI(MD).ini文件。阅读时请留意注*的项目。
========================================================================================================================
【第一章】AI基本教程——AI(MD).ini结构及原理简析
AI(MD).ini(以下简称AI),和其他的ini文件一样,控制着电脑玩家的行为。AI是从地图文件中派生出来的,因此
可以将其复制粘贴到地图文件的后面用FinalAlert2打开并编辑。当然,本章主要提供给希望学习手工编辑的Modder们。
§1.1 AI的结构
每一条有效的AI规则由四个部分组成:AI触发(AITrigger)、作战小队(Team)、特遣部队(TaskForce)和脚本(Script)。
* 这四个部分中,只有AI触发是不需要注册的,其余都需要注册。
这四个部分的关系为:
↗特遣部队1
作战小队1
↗ ↘脚本1
AI触发
↘ ↗特遣部队2
作战小队2
↘脚本2
下面分别说明这四个部分的其他结构:
⑴AI触发:控制着AI行为的核心部分。下面以原版谭雅载直升机攻击核弹发射井的AI触发为例说明:
例:0CAD0DCC-G=Allied Anti-Nuke 1 ,08DA125C-G,
,9,0,NAMISL,0100000003000000000000000000000000000000000000000000000000000000,70.000000,10.000000,70.000000,1,0,1,0,0CB246CC-G,0,1,1
注册ID 名称 作战小队1 国家 ①②条件单位名 触发条件参数 基础分量 分量下限 分量上限 ③④⑤⑥ 作战小队2 ⑦⑧⑨
①科技等级 ②触发条件 ③遭遇战有效(疑似无效) ④未知 ⑤所属方 ⑥基地防御(无效) ⑦简单敌人允许 ⑧中等敌人允许 ⑨冷酷敌人允许
作战小队1、2:每个AI触发至多可以包含两个小队。AI触发被启动后可以指挥电脑玩家组建特定的作战小队。
国家 :指定只有特定一个国家的电脑玩家才允许激活该触发,典型应用如坦克杀手和磁能坦克。
科技等级 :如果电脑玩家的科技等级低于该水平那么这个AI触发就不会被激活。
* 在原版遭遇战中这个是没有意义的,因为所有玩家的科技级别都是上限10;但是在任务地图以及用NP开启了调节科技等级功能的Mod里,
这个就有必要认真考虑了。具体我会在后文说明。
触发条件 :可以为0-7的任何一个值,这八个值的意思分别是:
0 目标敌方单位满足条件……
1 本方单位满足条件……
2 敌方电力黄
3 敌方电力红
4 目标敌方金钱大于或等于……
5 本方铁幕装置就绪
6 本方超时空传送就绪
7 平民单位满足条件……
条件单位名 :指定在触发条件里评估什么单位。
触发条件参数:必须是一个64位长的16进制数字。目前只有前两位和第十位有用,其余作用不明。
前两位:用十六进制表示0-255之间的一个数字,指定在触发条件中衡量的数量为多少。其中作战单位评估其数量,金钱则除以1000后和该数值比较。
第十位:控制触发条件用何种算法来比较。可以为0-5的任何一个值,这六个值的意思分别是小于、小于或等于、等于、大于或等于、大于和不等于。
基础分量 :指定该触发在没有被执行时候的分量。据说只能用5000,500,70,50,40,20,10七个值(未验证,但是原版只有这七个值),个人以为这种东西稳健一些好。
* 分量就是AI在随机选择应该执行哪条触发的时候考虑的权重。AI在选择触发时,将所有满足条件的触发构成一个集合,然后加权随机抽取一个启动之。
如果该小队成功执行了脚本中的小队任务完成动作,则视为完成目的,将分量提升一些;反之,在完成目的之前该小队单位被全部摧毁,则视为失败,
将分量减小一些。
有关设置请在RulesMD.ini中查找AITriggerSuccessWeightDelta以及AITriggerFailureWeightDelta。
分量下限 :指定该触发反复失败的所能减小到的分量下限。
分量上限 :指定该触发反复成功执行的所能增加到的分量上限。
遭遇战有效 :该触发在遭遇战中是否允许启动,疑似无效,建议使用1。
未知 :作用不明,建议使用0。
所属方 :哪个作战方可以启动该AI触发。1代表盟军,2代表苏联,3代表尤里,4、5、6分别代表第四、五、六阵营。
基地防御 :已废弃,改为使用作战小队中的IsBaseDefense参数。此处建议使用0。
简单敌人允许:是否允许简单的敌人启动该AI触发。
中等敌人允许:是否允许中等的敌人启动该AI触发。
冷酷敌人允许:是否允许冷酷的敌人启动该AI触发。
⑵作战小队:AI触发激活之后执行相应任务的小队。作战小队需要在[TeamTypes]中注册。以上面的作战小队1为例说明:
例:[TeamTypes]
…………
39=08DA125C-G ; 注册
…………
[08DA125C-G] ; 注册ID
Name=Allied Anti-Nuke Team - 1 ; 名称(注释用)
VeteranLevel=1 ; ! x 兵种等级
MindControlDecision=0 ; ! 遭心灵控制后的动作,0=自动,1=加入控制者作战小队,2=送入部队回收厂,3=送入生化反应炉,4=搜索敌人,5=什么也不做
Loadable=no ; ! 可装载
Full=no ; ! x 创建小队成员的时候,如果小队中有运载工具,其他成员是否应该位于运载工具的内部
Annoyance=no ; ! 烦恼效果,作用不明
GuardSlower=no ; ! 降低反应速度,作用不明
House= ; ! x 创建小队成员时的所属作战方
Recruiter=no ; 强制重组优先级较低的小队的成员,如果它们是可以重组的
Autocreate=yes ; ! 自动建造
Prebuild=no ; ! 预先建造,作用不明
Reinforce=no ; ! x 增援部队
Droppod=no ; ! x 使用空降舱进入战区
UseTransportOrigin=no ; ! 使用原始的运载工具
Whiner=yes ; ! 哀叫效果,作用不明
LooseRecruit=no ; ! 解散新兵,作用不明
Aggressive=no ; 侵略性的,电脑在防御达到一定数量之后再开始建造该小队
Suicide=yes ; 自毁式攻击,受到攻击不允许还击
Priority=5 ; 优先级
Max=1 ; 同一作战方至多允许同时存在的该类型小队个数
TechLevel=0 ; ! x 科技等级,疑似无效
Group=-1 ; ! 分组,等同于人类玩家按下Ctrl+数字键组建的小队
OnTransOnly=no ; ! 只能运输,作用不明
AvoidThreats=yes ; 规避威胁,小队成员在移动的过程中将会试图规避途中可能遭遇的敌方单位
IonImmune=no ; ! x 离子风暴免疫
TransportsReturnOnUnload=yes ; 运载工具卸载后返回基地
AreTeamMembersRecruitable=no ; 小队成员是否允许重组
IsBaseDefense=no ; 基地防御小队
OnlyTargetHouseEnemy=no ; ! 只攻击敌方单位,作用不明
Script=0A6E54EC-G ; 指定脚本
TaskForce=0617909C-G ; 指定特遣部队
注:! 一般实际作用不明,建议使用这里的值,不要随便更改
x 在AI中理论上是无效的语句
⑶特遣部队:对于一个作战小队,告诉电脑玩家这个小队中包含什么单位,应该建造什么。特遣部队需要在[TaskForces]中注册。以上面的特遣部队为例说明:
例:[TaskForces]
…………
16=0617909C-G ; 注册
…………
[0617909C-G] ; 注册ID
Name=1 Tanya, 3 GI, 1 Blackhawk, 1 Guard ; 名称(注释用)
0=1,TANY ; 单位列表,格式为[ID=数量,单位类型]
1=3,E1
2=1,SHAD
3=1,GGI
Group=-1 ; 分组,建议保留原始值-1
⑷脚本:告诉电脑玩家控制特遣部队做什么样的动作。
例:[ScriptTypes]
…………
25=0A6E54EC-G ; 注册
…………
[0A6E54EC-G] ; 注册ID
Name=Allied Anti-Nuke Transport ; 名称(注释用)
0=54,0 ; 脚本序列,格式为[ID=动作,参数]
1=14,0
2=43,0
3=47,54
4=8,2
5=49,0
6=46,54
7=0,2
8=0,1
AI在遭遇战中实际可用的脚本动作是有限的。下面给出一个列表,无用的省略:
动作 动作说明 参数 参数说明
0 攻击最接近的敌方目标 1 可攻击的任何目标。
2 敌方建筑物。
3 敌方资源单位,就是矿车和矿场。
4 敌方步兵。
5 敌方载具。
6 敌方工厂,包括建造场、兵营、战车工厂、空指部和造船厂。
7 敌方基地防御。
8 基地威胁,目标在本方基地范围内的敌方单位。
* 这个脚本不能用于战机,否则战机不会等装弹完毕就起飞了,当然无法投弹,再返回、再起飞……
9 敌方发电厂。
10 可以驻守的平民建筑物。
11 可以占领的平民科技建筑物。
5 原地待命 时间 命令单位处于Guard状态一段时间,时间单位是6x秒,就是说1=6秒,2=12秒,等等。
6 转到行 行号 跳至该脚本的指定行处继续执行,一般用于创建不断循环的脚本。
* 行号一般应为序列ID+1,即0=的行其行号是1,不要搞错。
8 运载工具卸载 1 运载工具和卸出的单位都仍然是该小队的成员。
2 运载工具仍然是该小队的成员,卸出的单位不再属于该小队(成为新兵)。
3 运载工具不再属于该小队(成为新兵),卸出的单位仍然是该小队的成员。
4 运载工具和卸出的单位都不再属于该小队(成为新兵)。
9 部署 0 命令小队中可以部署的成员(美国大兵、基地车等,不包括武装直升机)部署。
11 进入状态 5 原地待命。
6 原地永久驻扎。
10 采矿。
11 警戒。
15 搜索敌人。
14 装载到运载工具中 0 命令小队成员依次装载到运载工具中。
43 等待直到运载工装满 0 暂停脚本,直到运载工装满,然后继续。
* 14和43一般应该连用。TS平台对装载逻辑的处理有两个问题:
1.如果小队中有两个以上的运载工具,游戏在装载时,可能会先尝试将其中一个装载至另一个里。
这样脚本就会在43处永久暂停而无法继续。
2.如果小队中使用的是可以运载车辆的运载工具并且准备装载的成员中有车辆,装载完毕后,
并不会触发装载完成的事件,因此脚本同样会在43处永久暂停而无法继续。
46 攻击敌方建筑 建筑ID 攻击/渗透/占领/C4爆破敌方特定的建筑。建筑ID由Rules中的注册相对顺序决定。
* 大家可以去我的网盘http://e.ys168.com?lh-mouse下载用于输出建筑ID的js,网盘上有说明。
47 移动至敌方建筑 建筑ID 移动至敌方特定的建筑。建筑ID由Rules中的注册相对顺序决定。
49 该小队任务完成 0 告诉该作战小队的所属方该小队已完成特定的任务。
* 每个AI触发脚本都应该包含这个动作,否则可能导致AI触发分量处理不正确。
53 在敌方基地附近集结 0 集结于距离敌方基地中心(一般应为建造场所在地)AISafeDistance(在Rules中指定)的位置。
54 在己方基地附近集结 0 集结于本方基地边界之外。
55 请求铁幕,如果可用 0 向该小队的所有者请求铁幕保护。
56 请求超时空传送至敌方建筑物 建筑ID 向该小队的所有者请求超时空传送至敌方特定建筑物。
57 请求超时空传送至敌方目标 同动作1参数 向该小队的所有者请求超时空传送至敌方特定建筑物。
58 移动至己方建筑 建筑ID 移动至己方特定的建筑。建筑ID由Rules中的注册相对顺序决定。
60 送入部队回收厂 0 将小队中所有的单位送进己方部队回收厂转变为资金。
61 送入坦克碉堡 0 将小队中的载具单位送入坦克碉堡。
62 送入生化反应炉 0 将小队中的步兵单位送入生化反应炉。
63 进入战斗碉堡 0 将小队中的步兵单位送入己方可驻守的建筑物。
64 驻守最接近的平民建筑 0 小队中的步兵单位将会搜索并占领平民的可驻守建筑物。
§1.2 AI的原理
(以下参数无特殊说明均为Rules中指定的)
首先,电脑按照TeamDelays的延迟定期检查所有AI触发,然后根据条件判断这些触发是否可用。一旦判断完成,电脑根据AI触发分量加权随机抽取一个触发激活之。
激活的AI触发将向电脑申请作战小队。电脑首先检查是否有空闲单位以及无指令单位,按照作战小队的要求将这些单位按照优先级从高到低的顺序填充到小队中,
剩余的部分电脑将指令工厂生产。一旦有新单位制造出来,电脑将把它们填充到小队中。如果在小队被填充完毕之前(在基地里),有些成员已经被毁灭,
电脑将会补充这些被消灭的单位,直至小队中的所有单位达到指定数量,然后电脑正式组建该小队,小队中的成员按脚本执行。
如果该小队执行了脚本中的49号动作(该小队任务完成),电脑将视该触发为成功一次并提高该触发的分量(不超过上限);反之,在完成任务之前该小队被全灭,
电脑经过DissolveUnfilledTeamDelay的延迟之后记该AI触发失败一次,取消该小队的编制(然后才允许重新创建该小队),并减小相应AI触发的分量(不低于下限)。
现在我们考虑一些特殊情况:
⑴补兵 :一旦某个小队开始执行脚本,AI就不再对其补兵,除非该小队全灭并且经过了DissolveUnfilledTeamDelay的时间,AI取消该小队的编制。
⑵被心灵控制:被心灵控制的单位解除控制后将成为新兵,并且是Guard状态(原地待命)。如果AI再次建立新的小队这些单位也不会加入。
⑶海军的问题:海军不会把陆军当做目标,除非是像驱逐舰这样的单位,能够主动攻击,而敌方的单位恰好在射程内。要让海军单位攻击敌方基地,只能用46号动作。
⑷弹头比率1%:除非使用46号动作或者遭到攻击还击,AI不会主动攻击某个单位,如果该小队中有任何一个成员对目标单位装甲的伤害比率是1%。也就是说,
电脑用鲍里斯只能看家。
【第二章】AI拔高教程——AI的设计
AI无疑是让很多中级甚至高级的Modder们头疼的一件事。不仅是AI(MD).ini中几乎没有任何注释,而且那些随机的数字ID让人头昏眼花。
制作AI不像修改Rules那样简单。制作AI要有一个整体的意识,同时还要有足够的耐心和谨慎。
§2.1 设计AI的基本步骤
首先,作为Modder,和设计Mod一样,设计AI必须要把握好整体战略。这点可以从对战中得到经验。从初期到末期,AI应该用什么样的套路进攻,都要考虑完全。
然后,列出一个提纲,这个提纲从上到下,是AI从有了兵营开始一直到最后拥有高科的过程中作战小队的改变。这些是AI的主攻部队。
再然后,艺术作品当让少不了修饰。AI的主攻部队还需要一些辅攻作支持。比如,战机,或者是间谍,工程师+履带车,等等。
再再然后,还要考虑AI面对敌方应该如何应对。由于AI要隔一段时间才能启动一个AI触发,应当使某一时刻可能被启动的AI触发数量尽可能的少,以避免AI由于
造了许多防御性小队反而没有造攻击性小队的情况。比如,如果敌方造了基洛夫,AI将造一些多功能步兵车防御;但是如果敌方没有造基洛夫,就不用造这些步兵车。
最后,才是正式地编写AI。
有了提纲的帮助,编写AI将变得简单许多。但是有一点是应当忌讳的,就是总觉得AI触发的分量不够,比如开始是50,后来觉得正在写的触发
总该比之前的该重要吧,就加到了70;再写,又总觉得触发越写越不可少,结果写完了发现从前往后触发分量有增无减,越写越大,从50到70、100、150、200……
这种情况,多是由于心切导致的。AI的编写是一份需要细致耐心的工作,绝不能图快而放弃了质量。分量不均衡的AI只能是失败的作品。
§2.2 设计AI的要点
⑴合理分配分量
对AI触发分量要有一个合理的理解。虽然分量上限可以达到5000,但是绝对不能以为分量可以随意设置,比如重要的给4000,中等重要的给500,不重要的给30。
应该说,使用5000分量的AI触发,启动的概率非常大,一般只有两种情况才可以使用:一是危急情况,比如补基地车;二是Rush型AI,比如犀牛海,初期杀伤很大,
后期对于AI的作用大幅下降,条件是本方没有高科;一旦本方建造了高科,触发条件不再满足,分量自然也就失去了意义。
对于一般的攻击,70的分量已经很高了。如果希望电脑造更多的小队,既不应该盲目提升AI触发分量,也不能肆意增加作战小队的Max值,而应该增加AI触发,
赋予一个不同的作战小队,这个作战小队的和那个作战小队特遣部队可以相同,但是脚本尽量不要用相同的,这样可以是AI进攻风格多变化。
⑵合理安排进攻次序
原版的AI很笨,因为它集结了大量的单位,全部瞄准我们的工厂,而半路全被光棱塔解决(甚至是秒杀)了。因此,合理安排攻击次序很关键。
攻击的次序安排要考虑AI进攻小队的单位种类、数量等。比如电脑有6光棱,就应该攻击敌方基地防御;如果电脑有20光棱,就应该攻击任何目标;
如果电脑有20 V3,就应该攻击敌方发电厂和超级武器;如果敌方有20天启,就应该直接攻击敌方建筑物;等等。
攻击动作参数里面有一个8,即基地威胁。这个参数使用得好可以使AI防御更强。方法就是提升基洛夫、幽浮等空中单位的威胁值,然后指定含有坦克杀手、
磁能坦克之类的小队攻击基地威胁。这样,有防空能力的,比如步兵车和盖特将优先攻击基洛夫;没有防空能力的犀牛幻影等等将攻击敌方来犯的天启。
如此一来将使得AI相当难对付。
⑶养成脚本中添加49号动作的习惯
AI小队不同于地图小队,这个完成任务的触发是必不可少的。否则,触发分量只会下降不会上升,最终将导致AI触发失衡。
⑷优先级的选取
从目前做出的测试中来看,优先级起到的作用主要有三个:
①优先级低的小队建造的倾向大,优先级高的小队重组的倾向大;
②优先级高的小队如果指定了Recruiter=yes,并且优先级低的小队指定了AreTeamMembersRecruitable=yes,
高优先级的小队建立时将强制重组低优先级的小队中的成员;
③AI向小队中填充新兵时,优先填充优先级较高的小队。
如果以上三条都成立,那么我们可以得出以下结论:AI根据优先级较低的小队的要求建造单位,但是首先填充到优先级最高的小队中。
这样看起来不合情理但是原因是明白的:如果高优先级小队由于某些原因被解散(触发条件不再满足等),其成员可以立即重新加入低优先级的小队,
以避免类似于电脑造了贪造高优先级小队突然高科被毁导致大量单位积压家中的情况。
如果以上推测都成立,优先级就应该这样设定:Rush型AI的优先级应当比较低,后期大部队的优先级比较高;特殊部队比如补充基地车,
由于没有其他小队拥有同样的单位,优先级应当低一些。
* 优先级低于SuspendPriority(在Rules中,默认为1)的小队,在电脑建造基地防御类小队时将会被挂起,不推荐使用这个优先级。推荐的优先级下限是5。
⑸注意TechLevel
TechLevel,即科技等级,是用于调节某作战方在一场战役中所能建造的部队的。比如生死斗的科技等级就比较低,普通遭遇战就很高。对于电脑来讲,
如果AI触发的科技等级低于该作战方的科技等级,那么这个AI触发就有可能被激活;如果该小队中的某个成员科技等级却高于该作战方的科技等级,
那么这个电脑玩家就无法建造这种单位,进而导致这个小队永远无法建立,白白浪费CPU资源。
为了避免这种情况,基本的要求是,AI触发的科技等级不应该低于AI触发中所有特遣部队中的所有单位的科技等级
【第三章】AI高级教程——AI技能整合运用
“高手”“专家”,多么神圣又多么遥远的名字。其实,无论是“高手”还是“专家”,都是从菜鸟成长起来的,都是用经验一点一滴积累出来的。
只要功夫深,铁杵磨成针。如果本文的读者能有这份兴趣和毅力,相信,你终究会成为高手和专家的。
§3.1 好马配好鞍,好AI配好Rules
虽然TS平台的AI处理多工厂逻辑上存在问题(人类玩家建造多个工厂可以提速生产;电脑玩家建造多工厂不仅提升建造速度,还同时出兵),
但是不得不承认,多工厂仍然是一种必需且有效的手段。然而,让电脑造另一个真重工有难度;目前通行的做法是,复制一个假重工,只给电脑造,
人不能建造。这种方法已经用于多款Mod中。实际使用效果来看,除了占领假重工不能造对应国家的车辆(比如占领假盟军重工造不出灰熊光棱幻影),
此方法并无太大问题。多工厂使得电脑可以更快地建造单位。同时,要注意调整AIBaseSpacing和RelaxedStray以避免堵车和小队过大无法集结的情况出现。
电脑选择激活AI触发是一个周期的过程,具体由TeamDelays决定;AI建造首个小队的时间是从游戏开始到AttackDelay。这些都是可以调整的。
* [IQ]里面的设置不要随意更改。很多人以为把里面的数值改得越大AI智能程度越高。其实不然。除了MaxIQLevels之外,每一条的意思都是,
“允许出现这种行为的IQ值下限”。比如,SuperWeapons=4的意思就是“当电脑玩家IQ≥4时允许自动发射超级武器”,以此类推。
§3.2 旧瓶装新酒,旧平台实现新功能
之前的全军突击就是使用了Recruiter和一个很大的优先级实现的。TS平台的脚本虽然有限,但是综合起来用AI还是能实现很多原版没有的效果的。
盟军用工程师+步兵车偷袭基地,这个是原版中被屏蔽了的。当然要承认这的确是一个好主意,可以启用;
苏联用天启+V3组成一个小队混合攻击,可以极大地提高效率;
尤里用磁电+盖特+神经突击车的方式,可以有效对付敌方来犯部队;
等等。
§3.3 成功的AI需要什么
以下仅仅列出必需的部分,其余请自己联想、逐步添加:
工程师占领科技建筑
使用步兵的基本基地防御
初期各种Rush
间谍偷重工、电厂
反间谍触发(虽然意义不大,只是怎么设计的问题)
切断敌方资源补给的
大部队Bombard
基地防空
海军攻击部队
海军大部队
对抗敌方来犯部队的
对付超级武器的
辅攻部队,清理敌方基地防御及电厂的
专攻敌方重工、高科的
以上仅仅是思路,涉及到具体的部队种类、数量,触发分量等,请自己调试。
§3.4 调试AI应当注意的细节
⑴同时启动的战机小队包含的战机总数量不应大于电脑同时能允许的停机坪机位总数
比如,有三个小队,每个小队各有两架入侵者战机。如果某电脑玩家启动了两个小队而造了四架入侵者,派遣其中两架来攻击我,
被击落一架,返航一架。此时电脑尝试造第三个小队,结果是,第一个小队有两架入侵者,第二、三都只造了一半,由于机位不足,
无法继续建造。此时电脑就只能派遣第一小队进攻,而第二、三小队都不完整,无法进攻。这种情况的解决办法是,削减战机小队的数量。
比如,电脑只有一个小队,这个小队包含两架入侵者战机,而其Max=2。
⑵合理使用AvoidThreats语句
这条语句是很有用的。对于像多功能+工程师这类偷袭战术,使用规避威胁的语句可以大大提高成功率。在有AI.tlb存在的时候,规避威胁的路径可以绕得更大,
使得AI的偷袭更加有效。
* 注意,对于Rush和Bombard以及类似的进攻不要使用规避威胁语句。例如,我在家门口摆了几辆光棱,敌方灰熊海过来,他们试图规避光棱,但是很不幸,
有一辆没有绕开,被光棱击中,光棱的分光伤害到了更多的灰熊,灰熊尝试还击;但是由于灰熊处于光棱射程的边缘,AI的单位被攻击又会减速,结果,
少量的光棱反而吃掉了敌方的灰熊海:这种情况是不允许出现的。
⑶攻击性小队避免使用简单触发条件
什么是简单触发条件呢,就是类似于“本方拥有兵营”“本方拥有重工”这样的条件。这种条件用在基地防御的小队上是可以的;但是如果用在攻击性的小队上,
电脑发展到后期,已经拥有了高科,然而控制灰熊海的触发还占有很大的比重,表现就是电脑造光棱幻影少,造灰熊多。
这种情况很常见。最佳的解决办法是,
将条件改为“本方没有高科”。这就是所谓“Rush型AI”,有人称为“一次性AI”(抱歉这是谁我把名字忘了,好像是紫霞)。因为这种小队初期攻击力很强,
但是等后期敌方造了大量的幻影和光棱塔以后,灰熊海就没什么意义了。此时本方如果拥有高科,就应该全力造光棱幻影,而停止爆灰熊海。
⑷注意辅攻兵种的配合
在遭遇战中,即使是同一作战方的两个小队,想要同步行动也是极其困难的。为此,我们可以借鉴一下原版战斗要塞的AI触发:
脚本的说明中已经讲过,同一个小队中不允许出现两个运载工具。那么,如何实现四个满载(至少是部分满载)的战斗要塞进攻呢?
原版使用了三个AI触发来控制:
首先,有两个AI触发控制了两个小队,这两个小队都是1战斗要塞+5补兵,装载后集结于己方高科附近。每个小队造两个。
然后,第三个AI触发具有极高的分量(500),当己方有四辆战斗要塞时,重组成一个小队并进攻。
此即为神龙天舞中实现全军突击触发的思想:将所有单位重组成一个大“小队”进攻,其力量当然惊人。
这也为我们提供了一个思路:我们可以如此实现光棱幻影与海豹步兵车的混合攻击。对于那些我们不希望加入小队的步兵车,比如基地防空的,可以简单地将
AreTeamMembersRecruitable设置为no。
⑸合理使用IsBaseDefense和Aggressive
IsBaseDefense,即基地防御小队。电脑优先建造这些小队。但是注意基地防御小队是有数量限制的,具体定义于Rules中的
MinimumAIDefensiveTeams和MaximumAIDefensiveTeams。
Aggressive,即侵略性小队。只有当电脑的防御部队和建筑数量达到一定值时电脑才会建造这个小队。因此Rush小队上不要使用这个参数;
但是对于光棱幻影这样的大部队进攻,为了避免电脑出现防守漏洞,就应该加上这个参数。
⑹移动区域不相同的单位不要安排到同一个小队里
比如犀牛和基洛夫。如果指定了“集结于XXXX”的脚本动作,电脑总是选择其中比较大的移动范围做决定,因此有可能把集结点选在水面上或悬崖上,
导致脚本无法执行。
⑺如果小队比较多,尽量增加一条全军重组突击的触发
这点的意义在于,如果AI出兵太多,可能会堵在家里把自己卡死。这条触发的作用就是及时地将家中积压的部队派遣出去,避免堵车。
⑻全部编写好以后照着提纲检查一遍
最好是能画一个草图,然后标明在AI发展的不同阶段(有了兵营、有了重工、有了高科、有了超武,等等)都有哪些触发是激活的、哪些是曾经被激活后来被屏蔽的。
同时还用标记一下不同作用的AI触发的分量,以避免前述分量越写越大的情况。
【后记】
写了三天,总算写完了。这个教程仅仅提供了一个参考,编写AI更多的还是经验,还要广大Modder们多多实验。
本文里的说明绝大多数都是我的个人经验,有一部分从PPM上收集整理而来,难免有疏漏之处,还请大家指正。
附赠:AI检查脚本,能够检查AI(MD).ini中作战小队、特遣部队、脚本是否注册,特遣部队单位是否正确,AI触发条件、分量、所属方是否正确等。
说明文档在网盘中,不定期更新,欢迎下载!http://e.ys168.com/?lh-mouse
本章节内容由作者fhy093编写。
前言
红警地图是玩家进入游戏最直观看到的东西,所以红警地图是一个红警Mod的灵魂。红警的地图可以分为遭遇战地图、任务地图。地图制作的过程是枯燥的,同时也是快乐的。编写触发的过程异常枯燥,解决bug的过程也很糟心。但是当你能把你想要讲述的故事通过亲手制作的任务关卡展现出来,当你的成品受到很多红警玩家的追捧时,你一定是快乐的。因此创作地图一定要提高到艺术这个层面,如小说、画作、电影一样,它也能表达作者自身的情感。
地图任务 目录:
地图任务的制作需要用到以下工具:
系统要求
1.操作系统要求Windows系列
2.需要已经安装且注册好的《红色戒警2尤里的复仇》支持
Final Alert 2 (以下简称地编 )
红警地图编辑器,用于制作多人遭遇战地图和单人任务地图。本教程使用的软件是FinalAlert2YR汉化版。
文本编辑软件 (以下简称记事本 )
任意一种文本编辑软件,用于对地图ini的添加与修改。
XCC Mixcer (以下简称XCC )
mix文件修改器,用于导入或导出地图文件。
基础知识
制作地图任务的基础知识
一、地图文件
.map 单人任务及官方遭遇战地图的文件格式
.yrm YURI 非官方遭遇战地图的文件格式
.mpr RA2 非官方遭遇战地图的文件格式
.mmx 官方遭遇战地图的文件格式
二、与地图或任务相关的mix文件
mix文件中的文件提取与打包请参看“理论基础”章节中的“文件提取与打包”教程。
(一)任务规则文件
ra2(md).mix-local(md).mix 里面包含三种单人任务规则文件。
battle(md).ini 战役规则文件:规定了单人任务关数、顺序、使用的地图文件、任务名称
mission(md).ini 任务规则文件:规定了单人任务载入图的图像和文本
mapsel(md).ini 地图选择规则文件:规定了单人任务的入口、关数、顺序
任务规则文件的修改请参看“核心规则”章节中的“任务规则”教程。
(二)文本文件
language.mix 包含ra2.csf文件,它是RA2 的文本文件。
langmd.mix 包含ra2md.csf文件,它是YURI 的文本文件。通过在地编里填写csf文件里的“类型名称:项目名称”,以使游戏中显示出对应的文本。这对做地图,尤其是任务地图是有必要的,比如任务名称、任务简报、任务目标等都是在.csf文件里编辑的。
csf文件需要使用红色警戒语言编辑器这种软件打开。打开后在软件界面左侧显示着类型列表,其中有几个比较重要的类型:
BRIEF
任务简报界面文本,由battle(md).ini里的[任务地图名称]字段定义
GUI
通关任务界面文本,由地图文件ini里的[Ranking]字段定义
LOADBRIEF
载入图界面里的任务地图的目标文本,由battle(md).ini里的[任务地图名称]字段定义
遭遇战地图里国家介绍文本
LOADMSG
载入图界面里的任务名称及地点文本,由battle(md).ini里的[任务地图名称]字段定义
MISSION
执行任务后左上角显示的文本,倒计时文本,使用时直接在地编里调取
NAME
包含储存游戏时任务的名称文本,由mapsel(md).ini的[任务地图名称]字段定义
步兵、载具、建筑等单位的名字文本,由rules(md).ini里[单位]字段定义
部分遭遇战地图名称文本,由missions(md).pkt定义
DESC
遭遇战地图名称文本,由missions(md).pkt定义
文本文件的修改请参看“文本音视”章节中的“文本修改”教程。
(三)载入图文件ra2(md).mix-load(md).mix 里面包含单人任务的载入图文件。
载入图的文件格式是.shp,这种文件需要同名的色盘文件.pal才能显色。
这些文件的命名是由任务规则文件mission(md).ini定义的。
RA2 的载入图文件 YURI 的载入图文件
ls800a01.shp ls800a01.pal ls800a01.shp ls800a01.pal
ls800a02.shp ls800a02.pal ls800a02.shp ls800a02.pal
... ...
ls800a12.shp ls800a07.pal ls800a07.shp ls800a07.pal
ls800s01.shp ls800s01.pal ls800a01.shp ls800a01.pal
ls800s02.shp ls800s02.pal ls800a01.shp ls800a01.pal
... ...
ls800s12.shp ls800s05.pal ls800s01.shp ls800s01.pal
ls800b01.shp ls800s06.pal
ls800c01.shp ls800s12.pal
官方任务载入图文件的命名规则:
ls800(640)a(b、c、s)XX.shp
ls800(640)a(b、c、s)XX.pal
ls表示载入图
800表示分辨率800×600,640表示分辨率640×480
a表示盟军关卡,b表示训练关卡第01关,c表示训练关卡第02关,s表示苏联关卡
最后的数字XX表示关卡数
载入图文件的修改请参看“用户界面”章节中的教程。
(四)任务地图文件
maps01.mix 包含RA2 教学关卡和盟军关卡的地图文件。
maps02.mix 包含RA2 苏联关卡的地图文件。
maps03md.mix 包含YURI 盟军关卡和苏联关卡的地图文件。
这些文件的命名是由任务规则文件battle(md).ini定义的。
maps01.mix
all01t.map RA2 盟军第01关-孤独守卫
all02s.map RA2 盟军第02关-危机黎明
all03u.map RA2 盟军第03关-向长官欢呼
all04u.map RA2 盟军第04关-最后机会
all05s.map RA2 盟军第05关-暗夜
all06u.map RA2 盟军第06关-自由
all07t.map RA2 盟军第07关-深海
all08u.map RA2 盟军第08关-自由门户
all09t.map RA2 盟军第09关-太阳神殿
all10s.map RA2 盟军第10关-海市蜃楼
all11t.map RA2 盟军第11关-核爆辐射尘
all12s.map RA2 盟军第12关-超时空风暴
sov01t.map
e31.map
e32.map
tmcj4f.ini
trn01t.map RA2 训练关卡第01关-基本作战训练
trn02t.map RA2 训练关卡第02关-进阶作战训练
maps02.mix
439FEA47
all01t.map
e31.map
e32.map
sov01t.map RA2 苏联第01关-红色黎明
sov02t.map RA2 苏联第02关-危机四伏
sov03u.map RA2 苏联第03关-大苹果
sov04s.map RA2 苏联第04关-家乡前线
sov05u.map RA2 苏联第05关-灯火之城
sov06t.map RA2 苏联第06关-割分
sov07s.map RA2 苏联第07关-超时空防御战
sov08u.map RA2 苏联第08关-首都之辱
sov09u.map RA2 苏联第09关-狐狸与猎犬
sov10t.map RA2 苏联第10关-残兵败将
sov11s.map RA2 苏联第11关-红色革命
sov12s.map RA2 苏联第12关-北极风暴
sov1u.map
tmcj4f.ini
maps03md.mix
all01umd.map YURI 盟军第一关-光阴似箭
all02umd.map YURI 盟军第二关-好莱坞梦一场
all03umd.map YURI 盟军第三关-集中攻击
all04dmd.map YURI 盟军第四关-古墓奇袭
all05umd.map YURI 盟军第五关-纽澳复制战
all06umd.map YURI 盟军第六关-万圣节
all07smd.map YURI 盟军第七关-脑死
sov01umd.map YURI 苏联第一关-时空转移
sov02smd.map YURI 苏联第二关-似曾相识
sov03umd.map YURI 苏联第三关-洗脑行动
sov04dmd.map YURI 苏联第四关-北非谍影
sov05umd.map YURI 苏联第五关-脱离地心引力
sov06lmd.map YURI 苏联第六关-飞向月球
sov07tmd.map YURI 苏联第七关-首脑游戏
官方任务地图文件的命名规则:
all(sov/trn)XXt(s/u/d/l)(md).map。
all表示盟军关卡,sov表示苏联关卡,trn表示训练关卡
数字XX表示关卡数
t表示温带地图,s表示雪地地图,u表示城市或新城市地图,d表示沙漠地图,l表示月球地图
md表示尤里的复仇任务关卡
修改官方任务地图命名规则请参看“核心规则”章节中的“任务规则”教程。
(七)multi(md).mix 包含官方遭遇战多人地图文件,文件格式.map
红色警戒2单人任务编辑教程—基础篇
红色警戒2单人任务编辑教程—基础篇
本教程是红警地图编辑器最基础部分,讲解了红警编辑器的大体构造和内容组成。
本教程使用的软件是FinalAlert2YR汉化版
下载地址:fhy093.ys168.com
二、软件界面
(一) 工具栏和菜单
工具栏包括:“新建 编辑 地形 工具 网络 选项 帮助”这几个选项。
(1)文件里包括:
新建
打开
保存
另存为
地图检测
运行YR
最近打开的地图文件
最近打开的地图文件
最近打开的地图文件
最近打开的地图文件
退出
①新建:可以新建一张单人任务地图或多人地图,多人地图指遭遇战地图。
单击“新建”后会弹出一个名为“建立新地图 - 步骤1”的对话框。
建立新地图 - 步骤1 ×
请选择要建立单人任务地图或是多人地图。多人地图使
用于遭遇战模式或是多人游戏中。
〇单人任务地图(仅用于可熟练操作高级模式的用户)
〇多人地图
取消 下一步
A.如果勾选“单人任务地图(仅用于可熟练操作高级模式的用户)”后单击下一步按钮,会弹出一个名为“建立新地图 - 步骤2”的对话框。
建立新地图 - 步骤2 ×
请选择是完全建立一张地图或是准备导入一
张已存在的地图(注意:不能导入RA2 生成
的随机地图)。
〇建立一张全新地图
〇导入已存在的地图或图片(BMP)
☑激活AI触发(可获得较好的AI效果)
取消 下一步
a.如果勾选“建立一张全新地图”后单击下一步按钮弹出一个名为“建立新地图 - 步骤3”的对话框。
建立新地图 - 步骤3 ×
请选择地图尺寸(宽和高)、战场类型和
起始地表高度。地图尺寸小于100×100
时效果最好。
地图宽度: 50
地图高度: 50
地图类型: TEMPERATE ∨
起始地表高度: 0 ∨
取消 下一步
地图宽度:指定地图的宽度,参数填0-209。
地图高度:指定地图的高度,参数填0-209。
地图类型:TEMPERATE(温带)、SNOW(雪地)、URBAN(城市)、NEWURBAN(新城市)、LUNAR(月球)、DESERT(沙漠)。前三种为RA2 、YURI 都能使用的地形,后三种为YURI 专用地形。
起始地表高度:参数是0-8。
单击下一步按钮弹出一个名为“建立新地图 - 步骤4”的对话框。
建立新地图 - 步骤4 ×
请选择人类玩家,推荐保留其所属方设置。
☑准备标准参战方(推荐)
玩家所属方: 美 ∨
☑设置自动保护触发
取消 下一步
单击下一步后就会生成一张全新地图。
b.如果勾选“导入已存在的地图或图片(BMP)”后单击下一步按钮弹出一个名为“建立新地图 - 步骤3”的对话框。
单击下一步按钮弹出一个名为“建立新地图 - 步骤3”的对话框。
建立新地图 - 步骤3 ×
请选择准备导入的地图,触发和所属方设置不会导入。位
图将被调整至合适的大小,当前的图片将会被转换为温和
型的地图。
∨ 浏览
☑导入树木 ☑导入单位/建筑
☑导入覆盖图
取消 下一步
勾选“多人地图”后可以新建一张多人地图,勾选好后单击下一步按钮。
点击单人任务地图后,下一步分建立一张全新地图和导入已存在的地图或图片。
勾选“多人地图”后可以新建一张多人地图,勾选好后单击下一步按钮。
点击单人任务地图后,下一步分建立一张全新地图和导入已存在的地图或图片。
RA2 盟军第五关暗夜涉及到了触发、事件、
1.使用XCC提取出“map01.mix”文件里的“all05s.map”的RA2 盟军第五关暗夜地图文件。
2.打开地编,在工具栏“文件”中单击“新建”,勾选“单人任务地图(仅用于可熟练操作高级模式的用户)”后下一步,勾选“导入已存在的地图或图片(BMP)”后下一步,点击“浏览”按钮后,选择刚才提取的“all05s.map”文件,并勾选“导入树木”“导入单位/建筑”“导入覆盖图”三个选项后下一步,后续按默认选项下一步即可进入地图编辑界面。此时,你应该可以看到RA2 盟军第五关暗夜地图的地形、树木、单位、建筑和覆盖图。
3.
全新地图里设置地图宽度和高度,以及战场类型(草地、雪地、城市、沙漠、月球),起始地表高度。然后再向下选择玩家所属方。
导入已存在的地图时可以选择是否导入树木、单位/建筑、覆盖物。(修改官方任务时又不想要它的触发,可以用此方法)
②打开
可以打开*.map(单人任务)、*.yrm(Yuri遭遇战)、*.mpr(Ra2遭遇战)三种格式的地图文件。
③保存和另存为
不解释了,经常保存防止辛苦做的地图毁于意外。
(2) 编辑里包括:
撤消,重做,复制,复制整张地图,粘贴,居中粘贴,地图参数,基本设置,特定标识,灯光,单人任务设置,所属方,局部变量,触发编辑器,标签编辑器,脚本,特遣部队,作战小队,AI触发编辑,AI触发有效,INI编辑器。
下面讲基础重点:
A、地图参数:
地图尺寸的修改,如果你对开始时地图的大小不满意,就可以在这里设置。
可见区域,格式是左、上、宽、高,可以设置游戏时玩家看到的区域。
一般情况下,左和上的参数默认为2和4。宽或高的参数为(地图宽高总尺寸减去4或8)。
特殊任务会根据实际情况调整可见区域,例如原红警盟军第五关暗夜一开始没有核弹那部分地图,玩家的可见区域只能见到苏联作战实验室那里。这个官方任务的上这个参数就改的比较大,所以玩家看不到上半部分。
B、基本设置:
主要是其中的 无偿雷达 选项,选择YES后,游戏者不需要雷达即可拥有雷达显示。
C、灯光:
用于调节游戏里的光线明暗和早中晚效果,比如暗夜和超时空风暴这两张地图,同样都是雪地,但是地图一个暗,一个亮,一个是晚上,一个是白天。
一般只需要修改 “正常”里的参数,修改后就可以使地图有早晨、下午、黄昏、晚上的区别了。具体修改的参数见下表。
温和型地图(含城市和温带):
环境照明
0.750000早晨
1.000000下午
0.750000黄昏
0.350000晚上
红
1.090000早晨
1.080000下午
0.710000黄昏
0.510000晚上
绿
0.800000早晨
0.940000下午
0.810000黄昏
0.460000晚上
蓝
0.490000早晨
0.680000下午
1.190000黄昏
1.410000晚上
雪地型地图:
环境照明
0.750000早晨
1.000000下午
0.750000黄昏
0.550000晚上
红
1.120000早晨
0.990000下午
1.060000黄昏
0.760000晚上
绿
0.800000早晨
1.040000下午
1.070000黄昏
0.740000晚上
月球和沙漠的请自行摸索。
“正常”下面的那些灯光参数是指闪电风暴启动时的灯光效果。
E、局部变量:
一般用于设置某个建筑或人物 、坦克、飞机等等(地图上已有的)被摧毁后发生某事件。具体用法见下面的例子。
要求是作战实验室被摧毁后任务失败。
第1步:加入一个新的变量
触发事件:创建一个失败条件,作战实验室被敌人摧毁。
在编辑菜单下,选择“局部变量”。加入一个新的变量“0”以及“SYS Destoryed”的描述(描述的名字可以任意),把初始值设为“0”既是无。
第2步:建立触发事件
建立一个带有一下参数的触发事件:
a. 名字:“SYS Destoryed” ( 名字可以任意)
b. 事件:“48被任何事物摧毁”。
c. 动作: -“56局部设置”,参数“o SYS Destroyed,0"。
第3步:建立胜利条件
建立带有以下参数的胜利条件:
a. 名字:“Win” ( 名字可以任意)
b. 事件: - "36 局部设置开始", 参数 "0 SYS Destroyed,0"
c. 动作: - "67宣告胜利"。
F、触发编辑器:
在上面的例子里我们已经说到了触发。一个完整的触发由Trigger options、 Events 和 Actions三部分组成。通俗来说就是当游戏满足Events中设置的条件时就可以使Actions里设置的动作运行。
其中在Trigger options里可以设置触发的名称、所属参战方(触发属于哪个国家)、类型(0为标准,只执行一次;1为重复,会根据Events条件多次触发,直到该触发被其他触发禁止)、关联触发(该触发由哪个触发引起)、禁止(开始时该触发不能被运行,知道被其他出发激活允许,方可在Events条件满足时触发)、简单中等困难(默认时全选,即:运行红色警戒的新游戏时,选择了一定的难度会有相应难度的触发)
在Events里当前事件(当有多个事件时选择要操作的事件)、事件选项(有从0到57个不同的事件,具体用法在下面会有详细的介绍)、事件参数和参数值(不同的事件会有不同的设置,具体视事件再定)
在 Actions里有当前行为(有多个行为时选择要操作的行为)、行为选项(有从0到129个行为,同样在下面专门介绍)、行为参数和参数值(同上段里的事件参数和参数值)
下面有关事件和动作的介绍,有很多其实我也没有用过,也不懂,对于这些我只能引用编辑器里的解释了。
(1) Events事件(指触发达成所需要的条件):
1进入事件。 一般同单元标记合用,具体在单元标记里已经介绍过了,在此不再重复。也可以用建筑做关联,比如谭雅进入克里姆林宫就触发盟军最后一关胜利剧情。
2侦察开始。 发现一个间谍进入附上触发的建筑。.
3 偷窃行动... 发现一个间谍进入指定的参战方。.
4 被游戏者发现。 附上触发的的物体被玩加发现。
5 作战方被发现... 指定参战方的任何单位被玩家发现。
6受到任意作战方攻击。附上触发的的物体被攻击。事件和盟军的间接攻击不算(比如闪电风暴就算间接)。
7被任意作战方摧毁。 附上触发的的物体被摧毁。事件和盟军的间接攻击不算(比如闪电风暴就算间接)。
8 任何事件。 相当于没有条件,即直接触发!
9被摧毁,单位,全部… 即:被摧毁所有建筑、大兵、坦克等,不包括俘虏的平民。
10被摧毁,建筑,全部… 即:被摧毁所有指定方的建筑,不包括占领的中立建筑。
11被摧毁,全部… 即:被摧毁所有建筑、大兵、坦克等,不包括占领的中立建筑和俘虏的平民。
12 荣誉胜过... (其实该翻译为金钱超过吧)资金超过参数值所指的数值。
13流逝时间 使用最广泛的事件。即:经过…时间后发生某动作。
14任务时间已到 同记时动作合用,具体例子会在后面提到。
15 被摧毁,建筑,(数量为 #)... 指定的参战方摧毁一定数量的建筑。
16 被摧毁,单位,(数量为 #)... 指定的参战方摧毁一定数量的单位。
17 不再有战车工厂。 指定的参战方没有战车工厂。
18平民撤离。 平民从地图上撤退
19建造特定类型的建筑... 触发的所属参战方建造了一个指定的建筑。
20生产特定类型的单位... 触发的所属参战方生产了一个指定的单位。
21 生产步兵类单位... 触发的所属参战方建造了一个指定的步兵。
22 生产飞行类单位... 触发的所属参战方建造了一个指定的飞行器。
23离开地图(小队)... 指定的小队从地图上撤退。队伍被摧毁不触发。
24 进入某区域... 指定参战方进入和触发关联的区域。
25 越过水平线... 一个参战方进入指定的水平线。触发器必须同一定的单元标记关联。
26 越过垂直线... 同25类似。
27 全局设置开始... 非局部变量开启。
28 全局设置清除.. 非局部变量关闭。
29 在任何情况下被摧毁 [不包括渗透] 同触发关联的物体被毁。而不是渗透。
30电力不足 指定方电力不足时触发。
34到达路径点附近 触发的所属参战方到达指定路径点是触发。
35 敌人进入局部照明区... 下面有13项选择。
36局部设置开始 37局部设置清除 同动作里的56局部设置 57局部清除前后合用。基本用法已经在前面的局部变量里说了,这里不重复。
38 首次受损(仅指战斗) 第一个在战斗时被损坏。
39 一半生命值(仅指战斗) 只有一半的生命。
40四分之一生命值(仅指战斗) 只有四分之一的生命。
41首次受损(任何来源) 第一个被损坏。
42一半生命值(任何来源) 只有一半的生命。
43四分之一生命值(任何来源) 只有四分之一的生命。
44受到攻击(作战方)... 被指定的房子攻击
45环境照明 <= ... 当环境照明亮度低于某一确定值时,事件触发。可用值介于 0 到 100之间。
46环境照明 >= ... 当环境照明亮度超过某一确定值时,事件触发。可用值介于 0 到 100之间。
47流逝的情节时间... 从剧情开始计算游戏的流逝时间。
48被任何事物摧毁 同7被任意作战方摧毁的区别是间接或友军开火造成被毁在此事件里也包括在内。
49关联对象拾的木箱。同触发关联的单位拾的木箱。
50任何单位拾的木箱 木箱箱像被任何东西捡起
51随机延时... 随机延迟指定的时间。和13流逝的时间很像,但这个是随机的,会随机为设定值的50%-150%。
52 荣誉值低于.. 金钱低于指定数值
53 间谍伪装进入... 间谍伪装指定参战方。
(2) Actions行为动作(指触发条件达成后电脑执行的结果):
1胜利者是… 2失败者是… 设置游戏结束时的胜利和失败。参数写国家。
3生产开始 所指的国家开始生产。经常与13和74连用。
4建立小队 前面我们说到的作战小队,在这里就可以调用使之运行指定的脚本,但是小队成员是已经存在于地图上的。
5摧毁小队 同4的作用相反。摧毁特定类型的小队。小队的成员将做为新兵加入其他小队中。
6全部搜索 军队全部单位,(归属于特定的,作战方)进入搜索模式。他们将搜索并消灭敌人。
7援军(小队)建立一个特定的援军小队。小队成员将由本行为建立。
8降落区闪动(路径点) 在特定的路径点显示一个闪动的降落区域。此区域附近的地图也将会显示。
9卖掉全部建筑 指定方变卖所有建筑。一般很少用。
10播放影片… 显示特定的影片(全屏幕)。游戏在此期间将会暂停,在播放完成后自动恢复正常。
12摧毁触发事件 摧毁所有特定触发事件类型的当前实操。不会影响未来的触发实操(包括正在建立中的)。
11文本触发事件 可以调用显示ra2.csf或 ra2md.csf里相应文本,显示在游戏中屏幕的左上角。一般用于游戏中间的文本显示,
13自动生产开始 所指的国家开始自动生产。一般与3、74联用。
14更改所属 同拥有此动作的触发相关联建筑或大兵或坦克等变为该行为动作参数里所指的参战国家。关联方法:双击地图里的单位,所属方选项改为触发里设定的,最下面的关联选项(默认是None不关联)选上建好的相应触发。
15允许胜利 清除一个“障碍”后允许游戏者胜利。障碍的数量等于已建立而拥有此行为的触发数。
16显示全部地图 但是有裂缝产生器的地方不会被显示。
17显示路径点周围区域 显示指定路径点周围一定大小的区域。
18显示路径点的单元区域… 显示全部与特定路径点共享相同区域的单元。该行为会产生一些附带效应,使用时要谨慎!
19播放声音… 播放特定的音效。声音在sound(md).ini里有定义。
20播放音乐… 播放特定的音乐曲目。在theme(md).ini里有定义。
21播放语音… 播放特定的语音。在eva(md)
.ini里有定义。
22强制触发事件 不管事件标记的指示,强制激活所有特定类型的触发
23记时开始 24记时停止
25记时延伸… 按特定的时间延续全局任务计时器。
26记时缩短… 按特定的时间缩短全局任务计时器。但特定的时间值不能小于零。
27记时设置 参数值为要记的时间长度,同上面的23记时开始一起使用。当时间到时有14任务时间已到这个事件的触发就被触发运行。
28全局设置 设置全局标记。全局标记被命名于 Globals.INI 文件中。全局标记可以是[ON/SET/TRUE]或[OFF/CLEAR/FALSE]。
29全局清除…清除全局标记。全局标记被命名于 Globals.INI 文件中。全局标记可以是[ON/SET/TRUE]或[OFF/CLEAR/FALSE]。
30自动建设基地 初始化计算机遭遇战模式的建设控制,可以是[ON]或[OFF]状态。当设为[ON],时,在遭遇战模式中计算机将接管控制(要确保有建造厂)。
31逐单元延伸黑幕 一步一步(按单元)增大地图的黑幕(不可见)区域。
32摧毁关联建筑 摧毁该触发关联的所有建筑, 桥梁, 或单位。
33添加一次特定的武器… 为拥有此触发的参战方添加一次(只一次)特定的武器(按指示)。
34重复添加特定的武器.. 为拥有此触发的参战方添加永久的武器(按指示)。
35首选目标… 指定拥有此触发的参战方特定武器攻击时的首选目标。
36全部更改所属… 触发所属方变为该行为动作参数里所指的参战国家。
37结盟 触发所属方同参数值所属方结盟。需要注意的是不能间接结盟,例如美国同苏联结盟,美国再同法国结盟,这样并不能让苏联同法国结盟。
38成为敌人 同37结盟正好相反。
39更改视野等级…更改游戏者雷达图的视野等级。使用 1 为超常视野, 2 为缩小视野。
40调整游戏者视野… 分别设置上下右左。同编辑菜单里地图参数的可见区域设置合用。具体用法见下面例子:
地图的可见部分是玩家可以看见和移动到的地方。许多地图在贯穿整个任务的过程中都在改变此——为了确保玩家在某一时刻完成一个任务。比如原版盟军第5关暗夜,你要毁灭核弹发射井。此任务开始只有一半的地图可见,然后展开以包含新的目标。在此指南中,我们会尝试仅仅显示顶部的一半。
第1步:理解地图尺寸
在编辑菜单下,选择地图。有一个可编辑的文本框在中间。这是地图的可见部分,在地图窗口中使用蓝线表示。顶端的文本框显示了实际可编辑的地图尺寸。在地图窗口中用红线表示。按顺序,尺寸为:
a. 可见地图左界
b. 可见地图上界
c. 地图剩余部分宽度
d. 地图剩余部分高度
e. 格式:“左界,上界,宽度,高度”
第2步:设置高度,宽度和边界
在第2个文本框中,键入以下:
a. 把左界设为0(你可以到达离左边最近的地方)
b. 把上界设为4。不要把上界设为小于4,否则游戏上界会出现显示错误。
c. 在顶端的文本框中找到宽度。把可见宽度设为理想的值。
d. 在顶端的文本框中找到高度。把可见宽度设为地图1/2。精确的计算中间没有必要,你估计便可。
现在可见左界在极左边,右界在极右边,上界尽可能的靠近地图顶部,并且只有地图的一半可见。
如果你想要在游戏过程中把任何地图可见部分改为仅仅为地图的下半部:
第1步:新建一个触发事件
此手册假设玩家使用一个本地变量“5 ResizeMap”来触发地图大小改变。在编辑菜单下,打开触发事件编辑器。创建一个带有一下属性的触发事件:
a. 名字: "Resize Map 1"
b. 重复: 否
c. 事件: "36-局部设置开始", 参数"5 ResizeMap,0"
d. 动作: "40 调整游戏者视野", 参数:
- 上界 = [把地图分为2半 (地图中央)]
- 左界 = 0
- 右界 = [地图宽]
- 下界 = [把地图高度分为2半 (在加入上界时和加入下半部分相同)]
41播放动画在… 在特定的单元播放特定的动画。
42爆炸在… 使用特定的弹头,在特定的单元, 产生一个爆炸。
46禁止用户输入 47允许用户输入 两者前后照应使用,分别禁止或允许玩家的鼠标键盘操作。使游戏在游戏者不干扰的情况下运行一些剧情。
48移动并居中视野 移动视野到参数指定的路径点,速度有1234四个等级,1最慢,4最快。
49放大视野 放大战术视野。
50缩小视野 缩小战术视野。
51重置黑幕(未探测区域) 遮蔽全部地图
52更改照明状态 更改某建筑的局部照明方式。此触发与某一可生产局部照明的建筑相关联。
53允许目标触发 当一个触发在Trigger options里被设置为禁止,或被其他触发禁止后,使用这个动作,可以激活参数值所指的触发。
54禁止目标触发 作用同上边相反。53和54常可用于由一个触发引起另一个触发,或禁止、停止另一个触发,经常使用
55建立雷达事件 在特定的路径点建立雷达事件(即小地图里的方框标记)。参数值为0是红色、1是蓝色、2是黄色
56局部设置 57局部清除 前面已经说过,这里不重复。
58流星雨在… 在特定的路径点建立显示一个流星雨事件。参数值阵雨定为7时效果最好
60变卖关联建筑 同拥有此动作的触发相关联的建筑可以被变卖。
61关闭关联建筑 关闭与此触发关联的建筑。
62启动关联建筑 启动与此触发关联的建筑。
63给予100损伤在… 给予参数指定路径点100点损伤。常在桥上下放路径点,在使用此动作,来造成桥的坍塌。使用这种方式才能让桥梁可以维修,画出来的不可以。
64闪光(较小)… 65闪光(中等)… 66闪光(较大)… 在特定区域显示一个相对的闪光。
67宣告胜利 68宣告失败 作用同1、2
69强制结束 强制结束游戏任务。
70摧毁标记… 摧毁标记和所有关联的触发。
71设置环境步幅… 设置环境亮度淡入步幅值。
72设置环境速率… 设置环境亮度淡入速率。
73设置环境亮度… 用新的环境亮度等级淡入替代原亮度。
74 AI触发开始 启动特定参战方的 AI 触发。
75 AI触发停止… 停止特定参战方的 AI 触发。
76 AI触发小队比例 AI 进行 AI 触发小队建造的比例 (100 = 全部 AI 触发小队, 0 = 全部正规小队)。
77飞行作战小队比例 AI 进行飞行小队建造的比例(100 = 全部小队, 0 = 全部随机)。
78步兵作战小队比例 AI 进行步兵小队建造的比例(100 = 全部小队, 0 = 全部随机)。
79作战小队单位比例… AI 进行小队单位建造的比例(100 = 全部小队, 0 = 全部随机)。
80援军(作战小队)[在路径点]… 同作战小队合用,用来在参数指定的路径点创造小队。使用极广泛!
81自我唤醒 唤醒所有休息或无指令单位进行防卫模式。
82唤醒所有休息单位 唤醒所有休息的单位模式。
83唤醒所有无指令单位 唤醒所有无指令的单位模式。
84成立作战小队 将所有单位成立为特定的作战小组。
85脉矿生长… 控制矿脉是否生长。
86矿石生长… 控制矿石是否生长。
87冰层延伸… 控制结冰面积是否增长。
88粒子动画 美国任务第五关开始时,地面升起黑烟,直升机飞来,放下谭雅和间谍,这里的黑烟就是粒子动画。我们只要会用7 TestSmoke 就可以了,也可以制造同第五关一样的场景。当然也可以试试其它的动画都是什么效果。
89删除粒子动画 同88对应。
90闪电打击… 单个的离子风暴闪电打击。
91 Go Berzerk Attached object (cyborg) goes berzerk.
95核弹打击… 102闪电风暴打击… 超级武器打击参数指定的路径点。
97 Toggle Train Cargo Toggles state of cargo train dropping crate.
98 播入音效(随机)... 在随机的路径点播放音效。
99 播放音效... 在特定的路径点播放特定的音效。
100 播放开场影片... 显示特定的开场影片(在小屏幕)。游戏者仍能对步兵和单位进行控制。
101 重置黑幕(未探测区)... 用黑幕覆盖特定的路径点。
103记时器文本 同前面的23、24、27记时合用,类似与11文本触发时间,但显示在游戏中的右下角。
104闪亮小队 让指定的小队闪光,以引起游戏者的注意。
105 显示对话注释框... 在单位的上面显示对话注释框。
106 设置科技等级(Techno)[Level]... 设置特定的科技到特定的等级。
107超时空传送友军 用法同80。
108 建立小木箱... 在特定的路径点建立一个特定内容的工具木箱。你应该清楚什么内容是游戏所支持的。
宝箱代码一览:
0=MONEY Gives chunk of cash 金钱
1=UNIT Random unit 随机单位(可在rules.ini中设置)
2=HEALBASE Heals all objects 修复所有建筑和部队
3=CLOAK OBSOLETE - makes object submarine (old cloak effect) 旧的隐形效果(仅仅是效果,没有实际意义)
4=EXPLOSION Explodes 爆炸
5=NAPALM Fire death (infantry only) 人员灭亡
6=SQUAD OBSOLETE - gives player money instead, effect unknown although some logicis attached 金钱(少一些)
7=DARKNESS Shrouds entire map 黑暗,用迷雾遮掩整个地图
8=REVEAL Reveals entire map 显示整个地图
9=ARMOR Upgrade to Armor 护甲加强
10=SPEED Upgrade to Speed 速度加快
11=FIREPOWER Upgrade to Firepower 攻击力加强
12=ICBM One-time Nuke 一次核弹使用权
13=INVULNERABILITY OBSOLETE 旧的不受伤害效果(没用)
14=VETERAN Promote to veteran 等级提升
15=IONSTORM OBSOLETE 旧的离子风暴(没用)
16=GAS Trigger firing of [GAS] warhead 气体弹头攻击(有一定伤害值)
17=TIBERIUM Random amount of Ore 随机矿藏
18=POD OBSOLETE
109铁幕作用于.. 可用来保护建筑。
110 游戏暂停(秒)... 使游戏暂停特定的秒数。
111 驱逐占据者 本行为将会从城市关联的建筑中驱逐占据的作战单位。
112 移动并居中当前视野到路径点... 立即将战术视野移动到特定的路径点。
113欢呼 用于游戏结束时胜利的一方。
114 设置制表位到(0-3)... 强制使工具条移动到特定的制表位。
115 闪动视野 在画面中闪动该类型和长度的作战视野。
116 音乐停止于... 在特定的开始使用播放声音触发的路径点停止播放所有音乐。
117 播放开场影片(游戏暂停)... 显示特定的游戏开场影片。影片播放时,游戏暂停。播放影片期间游戏者不可进行操作。
118 清除全部污染 将从地图上删除所有污染对象。
119 将特定作战方全部摧毁... 消灭特定作战方的所有建筑、单位等。
120 将特定方建筑全部摧毁... 摧毁特定作战方的所有建筑。
121 将特定方陆军单位全部摧毁... 消灭特定作战方的所有陆军单位。
122 将特定方海军单位全部摧毁... 消灭特定作战方的所有海军单位。
123 心灵控制基地... 此触发的所有者将会通过心灵控制敌方基地。
124 解除基地的心灵控制... 此触发的所有者将重新取得被敌方心灵控制的所有建筑的作战控制权。
125 将建筑建于... 此触发的所有者将在本路径点获得该类型的建筑。该建筑区域的覆盖图将全被清除,单位被冲击。
126 恢复至游戏初始科技状态... 此作战方游戏初始的所有建筑和单位将会重建。会引起单位冲击和覆盖图被清除。
127 超时空事件效果 ... 将会用多帧画面全屏幕平铺显示超时空事件效果。比如:尤里的复仇里的第一关任务的超失空效果。
142、143、144 重绘红绿蓝色,三者与71、72、73合用相当于修改游戏的光照,这里参数填1-100,和编辑里的光照换算比例为1:100,如原来是0.800000,那么这里填80。
G、脚本:设置特遣部队的动作,比如:空降后先攻击敌人基地,再摧毁兵营等等。具体见下面。
常用的脚本:
Attack…攻击敌人的某项东东。参数有9项,常用的:1—什么都打;2—Buildings即攻击敌人建筑。
Attack Waypoint攻击路径点。
Move to Waypoint移动到路径点。
Guard area (timer ticks)…等待…段时间。
Jump to line #...跳到第…项行为循环。
Unload…展开或卸下,常同Load to Transport前后合用,用来用运兵船、多功能步兵车等运输大兵或坦克等。
Load to Transport装载到运兵船、多功能步兵车等可装载车辆或船只。
Patrol to Waypoint…巡逻到…路径点。常同Jump to line #...合用,来造成循环巡逻。
Panic 对于没有武器的平民是哀叫(就是苏联第一个任务里的平民哀叫效果),有武器的平民和大兵是蹲下或趴下。一般在后面加个Jump to line #...参数为1。
Change house….改变所属
Set local… 和Clear local…分别是设置局部变量和清除局部变量。
Iron Curtain Me铁幕装置保护我。需要等到铁幕装置充能完毕,可以使用时。
H、特遣部队:用来添加执行某一使命的部队。具体用法见下面例子。
单击顶部的 添加 按钮。缺省名字为“New task forces”。把名字改为“5 GI”(可以改为任何可以描述军队的东西)。单击左边的 添加,在中央列表中缺省项目为“1 美国大兵 ”。在列表框底部的单位类型,你可以选择任意一种你想要的单位。单位数量则可以设置你要几个这种单位,比如5个。然后,关闭Taskforces窗口。(之后还需要设置好相应的脚本,然后在作战小队里设置特遣部队和脚本的组合,具体见下)。
I、作战小队:如果已经作好了特遣部队和相应的脚本,就可以把他们组合起来,成为在触发编辑器里可以触发的作战小队了。
小队类型(通过新建来建立,多个小队时可以选择相应的小队),选定的小队类型里有名称(即小队的名字,可任意,但要有代表性)、经验等级(有1、2、3三等,分别对应不同的等级)、参战方(即小队属于哪个国家)、科技等级(有从0到10几等,一般不用)、脚本和特遣部队(分别是小队执行怎样的动作和选择小队的成员)、标签(即该小队同哪个触发联系)、优先权、分组、路径点、传送路径点和最多一般不怎么用。
特遣部队、作战小队和脚本的联合使用举例:
让大兵坐在运兵船中进入地图
第一步:设定两个路径点,一个是运兵船出来的地点0,放在地图边界外面;另一个是士兵下船的地点1。(也可以设为其他的ID)
第二步:创建一个特遣部队,名称为xiaodui1,由五个大兵和一艘运兵船组成。
第三步:编辑脚本,名为xiaodui1,设四个行为,第一个是Move to Waypoint,参数是1。
实操教学:复刻RA2 盟军第五关暗夜
RA2 盟军第五关暗夜涉及到了触发、事件、
1.使用XCC提取出“map01.mix”文件里的“all05s.map”的RA2 盟军第五关暗夜地图文件。
2.打开地编,在工具栏“文件”中单击“新建”,勾选“单人任务地图(仅用于可熟练操作高级模式的用户)”后下一步,勾选“导入已存在的地图或图片(BMP)”后下一步,点击“浏览”按钮后,选择刚才提取的“all05s.map”文件,并勾选“导入树木”“导入单位/建筑”“导入覆盖图”三个选项后下一步,后续按默认选项下一步即可进入地图编辑界面。此时,你应该可以看到RA2 盟军第五关暗夜地图的地形、树木、单位、建筑和覆盖图。
3.
红警任务地编高级教程:使用地编里不显示的脚本
将地编里不显示的尤里复仇脚本添加到地图里
在YURI 任务脚本中,新增了Script60~64这5个脚本。但是它们并没有显示在地编的脚本编辑器里,你需要手动在地图文件中修改INI。
操作说明:
1.用记事本打开需要添加脚本的地图文件,在[ScriptTypes]字段下注册你需要使用的脚本。
[ScriptTypes]
SCRIPT6X=SCRIPT6X ;6X代表你需要使用的脚本序号
2.复制需要使用的脚本,直接添加到地图的空白处里,并保存文件。
以下是地编里不显示的脚本,该脚本只支持尤里复仇。
[Script60]
0=60,0
Name=<进入部队回收厂>
[Script61]
0=61,0
Name=<进入坦克碉堡>
[Script62]
0=62,0
Name=<进入生化反应炉>
[Script63]
0=63,0
Name=<进入战斗碉堡>
[Script64]
0=64,0
Name=<驻扎平民建筑或进入战斗碉堡>
注意:添加后不能在地编里再编辑该脚本,否则添加的脚本会失效。如果脚本失效,你需要重新在地编里将对应脚本的第一行参数修改回“0=6X,0”,并保存文件。
红警任务地编高级教程:声光警报系统
声光警报系统的设计
在红警任务中我们经常会遇到敌人大量来袭从而触发警报,但是这种警报只有声音,也往往不循环。为了让任务更有声有色,这里提供一个红警地编高级教程——循环触发和地图ini的应用。
操作说明:
1.新建一张地图,在地图建立一个路径点,假设为0
2.分别建立两个触发,为方便理解,触发各命名为发光和熄灭,设为2重复,所属方设为平民,组成循环触发。
发光触发:
条件:13流逝的时间…参数为2
结果:
0-19播放声音,参数为NukeSiren
1-53允许目标触发,参数为熄灭触发
2-125将建筑建于,参数为路径点0,建筑INREDLMP
3-54禁止目标触发,参数为发光触发
熄灭触发:
条件:13流逝的时间…参数为1
结果:
0-19播放声音,参数为NukeSiren
1-53允许目标触发,参数为发光触发
2-120将特定作战方建筑全部摧毁,参数为13 平民
3-54禁止目标触发,参数为熄灭触发
3.做完这两个触发进游戏后就已经可以看到路径点0上会有循环的核弹警报音以及红光闪烁。但还有一些问题,第一红光范围太大,第二能听到建筑爆炸以及看到建筑碎片动画。要解决就涉及到地图ini的编辑。
用记事本打开刚才做的地图,写入如下代码:
[INREDLMP]; 不可见红色光源(建筑)
DieSound=Dummy; 建筑死亡声音设为无
Explosion=Dummy;建筑爆炸时播放的动画为无
DamageParticleSystems=Dummy;被摧毁时播放的粒子动画为无
LightRedTint=0.4;建筑红光的发光程度
LightBlueTint=0.01;建筑蓝光的发光程度
LightGreenTint=0.01;建筑绿光的发光程度
LightIntensity=0.01;建筑的发光强度
LightVisibility=1000;建筑的能见范围
写入代码后保存地图文件。至此,一个简易的声光警报系统就做好了。如果嫌循环声音太吵,可以替换为AirRaidSiren,或者把声音单独做成不重复触发。
要暂停或继续循环触发,只需新建一个触发禁止或允许任意一个触发就可以了。
实际应用中这个路径点一般放在需要防守的目标物后面,整个建筑看起来就一直在闪。
红警任务地编高级教程:全局变量与局部变量
全局变量与局部变量的使用方法
喜欢研究的朋友或许可以发现,在原版红警盟军第三关,如果你把那些华盛顿纪念碑、林肯纪念馆等重要建筑摧毁,那么在盟军第六关这些建筑也是一堆废墟。如果不摧毁,这些建筑又都完好。由之前的关卡出现的变量导致后续关卡产生不同的结果,这种触发就涉及到全局变量的应运。全局变量的作用是利用某个关卡的触发结果去影响其他关卡的触发启动。制作比较精良的作品《林德拉克计划》,其中的额外关卡就应用到了全局变量。这种高级技巧很少有任务作者去使用,或者说有些任务作者根本就不知道全局变量是个什么玩意,所以为防失传,有必要将此技巧发扬光大。本文以全局变量的两个典型应用和实操教学来帮助大家理解全局变量的作用。
一、全局变量的应用——延续之前关卡的单位、建筑状态
实操教学:让盟军第三关的华盛顿纪念碑摧毁后在第六关不再出现。
1.打开原版盟军第三关地图,新建一个触发,名称为CAWSH12 Lost A
条件:61-科技类型不存在,参数类型填CAWSH12,数值不填
(触发条件60和61的科技类型是否存在,是尤里复仇专用的,原版红警2请用其他方式实现。)
结果:28-全局设置,参数填14
保存地图。
2.打开原版盟军第六关地图,新建一个触发,名称为CAWSH12 Lost B
条件:27-全局设置开始,参数填14
结果:32-摧毁关联建筑
双击地图中的华盛顿纪念碑,将关联标记为CAWSH12 Lost B触发后,保存地图。
此时一个完整的全局变量就设置完成,进入游戏后就会实现实操教学需要的效果了。
二、全局变量的应用——制作额外关卡、支线剧情
在游戏中,玩家做出不同的选择或者触发某个事件,会导致下一个关卡出现不同的剧情走向。
实操教学:林德拉克计划欧盟第五关和平主义的结局,在立即摧毁刚建起的心灵信标后解锁额外关卡-维京火祭。
1.在第五关新建一个触发,名称为NAPSYB Lost A
条件:61-科技类型不存在,参数类型填NAPSYB,数值不填
(触发条件60和61的科技类型是否存在,是尤里复仇专用的,原版红警2请用其他方式实现。)
结果:28-全局变量,参数填15
2.第六关冻洋需要把关卡冻洋和关卡维京火祭两张图画在一起。
先把冻洋的任务触发都做好,地图参数要求维京火祭地图不可见就行。
3.然后新建一个触发,名称为NAPSYB Lost B
条件:28-全局变量开始,参数填15
结果:
①用“54-禁止目标触发”禁止所有与冻洋任务有关的未禁止触发
②用“36-全部变更所属”将与冻洋任务有关的所有玩家可控单位、建筑变更为不可控的所属方
③用“40-将地图调整为”将地图显示区域调整到维京火祭地图
最后就可以放心做维京火祭的任务触发了。
注意:为保证维京火祭的未禁止触发不被冻洋关卡执行,
除了名称为NAPSYB Lost B的触发是设置为不禁止之外,
所有与维京火祭的任务触发必须设置为禁止触发,
它们的启动只能由NAPSYB Lost B允许或NAPSYB Lost B允许的其他触发允许。
最终效果:如果玩家没有摧毁心灵信标,则下一关正常执行冻洋任务,反之解锁额外关卡执行维京火祭任务。
三、全局变量注意事项
1.全局变量被命名于rules文件的【VariableNames】段。尤里的复仇占用了0-13这些参数,为了防止和原版任务冲突,你最好从14以后选填。实际应用中,这个可以不注册,只要你做任务时不要使用0-13这里的参数即可。
2.参数对应原则,当前关卡的参数和其他关卡的参数必须一致。
3.全局变量不止可以影响下一关卡,还能影响之前关卡、跳关、甚至多个关卡,只要参数对应即可。
4.如果你之前做任务用过局部变量,那么你应该会感觉到局部变量和全局变量很相似,两者的区别在于,全局变量可以影响其他关卡,局部变量只能影响当前关卡。
四、总结
事实上,以上两个实操教学只是全局变量应用的冰山一角,全局变量的强大之处就在于它可以使当前关卡影响到其他关卡。局部变量与全局变量很相似,用法也差不多,局部变量的作用是利用当前关卡的一个触发去影响当前关卡的多个触发。你可以在局部变量编辑器里新建一个局部变量,名字随便写。第一个触发在结果“27-局部设置”来设置局部变量,后面的触发在条件“36-局部设置”启动局部变量,只要参数变量名和数值一致即可。
删除局部变量:用记事本打开地图,在地图里搜索你设置的局部变量名称,把那一行代码删除。当然只要你的任务不再使用局部变量,你不删也行。
本章节的主要内容来自红警diy论坛,作者fhy093对核心规则进行了梳理和校正。
单位制作 目录:
单位制作的制作需要用到以下工具:
Final Alert 2 (以下简称地编 )
红警地图编辑器,用于制作多人遭遇战地图和单人任务地图。
文本编辑软件 (以下简称记事本 )
任意一种文本编辑软件,用于对地图ini的添加与修改。
SHP单位制作
制作SHP单位
VXL单位制作
制作VXL单位
VXL文件FLH计算方法
VXL图形是从中心开始计算的,所以在截面上量出发射点的FLH距离就行了。
但是实际这么做行不行呢?不行!打开VXLSE,点击Section→Voxel Header→Misc,出现Scales、Bounds两组数据,这是什么呢?这就是控制显示方式的地方。
Scales只有一个数据Scale,控制hva文件里的数据缩放比例,也就是说hva里向量扭曲1个单位映射到vxl里是多少单位。实际是由于向量的方向与长度无关,所以这个只对向量平移,也就是hva用XCC转换成csv之后每个向量的第四个参数有效果。
Bounds包含六个数据,分别是Min和Max的X、Y、Z。它们控制了我们在VXLSE里看到的单位在游戏中的表现方式。六个坐标描述了一个长方体,我们的单位将被拉伸缩小恰好填满这个区域。打比方来说,Z轴是前后方向,那么如果我们将MaxZ和MinZ都加上10,单位将被整体向前平移10个像素;如果我们使MaxZ和MinZ的差值变成原来的一半,单位在前后的方向上将被压缩成一半。
所以,计算VXL的FLH是相当复杂的。首先,计算XYZ方向的缩放比率,然后找到原点在VXL上的位置,再根据发射点和原点之间的坐标算出ΔX、ΔY、ΔZ,分别乘以6,然后根据(注意VXLSE 1.2c在编辑模式中左右是反的、预览是正的,VXLSE 1.38没这个问题)X,Y,Z→L,H,F的方法调整下顺序就行了(用VXLSE 1.2c的朋友请取L的相反数)。
附录——RA2颜色表(做素材时用的,主要是为了与原版保持HX,也许对新手没用,冒号前面的数是该颜色在unittem.pal中的编号,我这些都是用VXLSE或SHP Builder取了色拿编号往Palette Editor中查的)
盟军蓝
94:52 52 76
93:64 64 88
88:124 124 148
盟军灰
50:104 104 104
黑
61:12 12 12
56:52 52 52
土黄色
134:156 140 88
137:132 112 72
72:112 112 88
69:148 148 124
白灰色
41:176 176 176
特殊的红色像素(所属色):
180 0 0
255 0 0
20:192 0 0
磁电束颜色:
252: 152 152 252
240:252 252 252
253:100 100 252
颜色替换表(用于做建筑素材时把红色替换为所属色):
200 16
201 19
202 22
203 24
8 21
249 16
250 20
191 23
190 22
本章节的主要内容来自红警diy论坛,作者fhy093对核心规则进行了梳理和校正。
武器动画 目录:
武器动画的制作需要用到以下工具:
Final Alert 2 (以下简称地编 )
红警地图编辑器,用于制作多人遭遇战地图和单人任务地图。
文本编辑软件 (以下简称记事本 )
任意一种文本编辑软件,用于对地图ini的添加与修改。
SHP单位制作
制作SHP单位
VXL单位制作
制作VXL单位
本章节介绍文本修改、音频视频的制作。
2024年10月19日由fhy093编辑完成。
文本音视 目录:
文本音视的制作需要用到以下工具:
文本编辑软件 (以下简称记事本 )
任意一种文本编辑软件,用于对ini规则文件的添加与修改。
格式工厂
音频转换软件,用于将.mp3等常见的音频文件转化为游戏可以读取的.wav格式。
红警2视频转换工具 Rad Video Tools
bik文件转换器,用于将.mp4、.avi等常见的视频文件转化为游戏可以读取的.bik格式。
红警2语言编辑器 RA2CStrEditor
csf文件编辑器,用于编辑.csf文本文件。
文本修改
游戏显示文本的修改
红警的文本文件是ra2.csf或ra2md.csf。
language.mix 包含ra2.csf文件,它是RA2 的文本文件。
langmd.mix 包含ra2md.csf文件,它是YURI 的文本文件。
.csf文件需要使用红警2语言编辑器这种软件打开。
一、游戏读取机制:
红警调用文本的机制是直接读取项目下的文本代码,在游戏关卡任务中调取csf文件里的文本,你需要填写预览窗口中②项目下的文本代码。
文本代码的格式为“①类型名称:项目名称” ,例如:MISSION:ALLO1A,只能填写英文和数字,游戏读取时不区分大小写。
通过在地编里填写csf文件里的“类型名称:项目名称”,以使游戏中显示出对应的文本。这对做地图,尤其是任务地图是有必要的,比如任务名称、任务简报、任务目标等都是在.csf文件里编辑的。
打开后在软件界面左侧显示着类型列表,其中有几个比较重要的类型:
BRIEF
任务简报界面文本,由battle(md).ini里的[任务地图名称]字段定义
GUI
通关任务界面文本,由地图文件ini里的[Ranking]字段定义
LOADBRIEF
载入图界面里的任务地图的目标文本,由battle(md).ini里的[任务地图名称]字段定义
遭遇战地图里国家介绍文本
LOADMSG
载入图界面里的任务名称及地点文本,由battle(md).ini里的[任务地图名称]字段定义
MISSION
执行任务后左上角显示的文本,倒计时文本,使用时直接在地编里调取
NAME
包含储存游戏时任务的名称文本,由mapsel(md).ini的[任务地图名称]字段定义
步兵、载具、建筑等单位的名字文本,由rules(md).ini里[单位]字段定义
部分遭遇战地图名称文本,由missions(md).pkt定义
DESC
遭遇战地图名称文本,由missions(md).pkt定义
二、修改文本
打开红警2语言编辑器后在菜单栏中依次点击“文件>打开”或者在工具栏中点击“⑨打开”按钮,打开你需要编辑的ra2.csf或ra2md.csf文件。
选择编辑窗口①类型下任意一个你需要编辑的类型,再选中编辑窗口②项目里任意一个你需要编辑的项目,双击或者点击⑤修改按钮可以编辑③内容,编辑完成后点击确定。如果你没有简体字体文件,则不支持简体字,你需要在编辑前点击工具栏中的“⑦繁体切换”按钮,然后再进行编辑③内容。
三、新建文本
选择编辑窗口①类型下任意一个你需要编辑的类型,再在菜单栏中依次点击“编辑>新建项目”或者在工具栏中点击“④新项目”按钮,弹出新建项目对话框,填写项目名称和内容后点击确定即可。
如果你不想修改原文件中的各项目类型中的内容,那么可以新建一个项目类型。在菜单栏中依次点击“编辑>新建类型”,弹出项目类型对话框,填写项目类型和项目名称后点击确定即可。
如果你对某个项目不满意,可以在编辑窗口②项目里选中一个你需要删除的项目后,在工具栏点击“⑥删除”按钮即可。
四、修改字体文件
原版游戏只支持繁体中文和英文,强行使用简体中文,个别文字会变成“□”。如果要让游戏支持简体中文,需要修改游戏的字体文件。游戏的字体文件是game.fnt,将简体中文的game.fnt放在游戏根目录或者打包进mix即可支持简体中文的显示。
这里提供两种字体文件,字体文件1被绝大多数mod采用,特点是对简体中文支持友好,但是对英文字母“f”支持不友好,字体文件2对字母、数字都支持友好,但是简体中文看着别扭。
字体文件下载
音频制作
游戏语音、游戏声音、游戏音乐的制作
一、基础知识
红警中的声音分为:游戏语音(EVA)、游戏声音(Sound)、游戏音乐(Theme)。这三种声音分别对应着各自的规则文件:evamd.ini、soundmd.ini、thememd.ini。也对应你红警设置中的语音音量、音效音量、音乐音量。
游戏语音(EVA)文件位于lange(md).mix/audio(md).mix里,使用XCC可以直接在此添加或提取游戏语音文件。
游戏声音(Sound)文件位于lange(md).mix/audio(md).mix中的audio.bag和audio.idx里,使用XCC提取出这两个文件到游戏根目录,然后注册一遍游戏(这一点很重要),在XCC菜单栏中依次点击“启动”>“XCC声音编辑器(S)”,随后使用XCC声音编辑器添加或提取游戏声音文件。
游戏音乐文件(Theme)位于theme(md).mix里,使用XCC可以直接在此添加或提取游戏音乐文件。
红警的音频文件格式为.wav,采样率为22050HZ。
修改前的准备:
1.使用格式工厂将做好的声音文件改成.wav格式,采样率设为22050HZ。
格式工厂使用方法
2.使用XCC在ra2md.mix/localmd.mix中提取出evamd.ini、soundmd.ini、thememd.ini这三个文件。
二、游戏语音的修改
游戏语音(EVA)是游戏副官播报的声音。
用记事本打开evamd.ini文件,可以找到注册列表[DialogList]字段。后面是各语音的具体条目字段。在[DialogList]注册你新增的语音中的文件名称(不带.wav),然后填写语音的具体条目字段。以第一个条目“警告:检测到核弹发射井”([EVA_NuclearSiloDetected])为例:
[EVA_NuclearSiloDetected]
Text=Warning: Nuclear Silo detected. ;跟rulesmd中的Name类似,起注释作用
Russian=csof001 ;苏联阵营采用的语音文件
Allied=ceva001 ;盟军阵营采用的语音文件
Yuri=cyur001 ;尤里阵营采用的语音文件
Type= QUEUE ;类型=队列 可填值:QUEUE、STANDRAD、INTERRUPT、QUEUE_INTERRUPT
Priority=IMPORTANT ;优先级=重要 可填值:LOW、NORMAL、IMPORTANT
各类型Type=的作用:
QUEUE:放在播放队列,等当前语音播完再播
STANDRAD:正常的,没啥特殊的,会被别的给掩盖
INTERRUPT:无论当前正在播放什么,先立刻播放这个
QUEUE_INTERRUPT:为了避免两个INTERRUPT挤掉另一个,放在立刻播放的队列里
注意:
原版对于语音文件的调用是锁死的,也就是说你修改的文件不能随意取文件名,只能制作一个同名的文件替换原来的语音文件。
在ares平台中,现在可以新增EVA语音来替换原版的3阵营语音,需要在evamd.ini里注册:
[EVATypes]
0=GDI
1=Cabal
然后该干啥干啥,比如:
[EVA_LowPower]
Cabal=ccab053
GDI=cgdi053
实操:自己找一段音频,命名成ceva054,然后选择盟军打自己基地,看一下基地受攻击语音是否变化。
三、游戏声音的修改
游戏声音(Sound)包含红警中的环境背景音(如鸟叫、水声),特效声音(如爆炸声),单位的各种语音(如动员兵的脖子又拧)
用记事本打开soundmd.ini文件,然后我们看一段标准的音效文件的写法。这里由于官方给了一段例子,我直接把例子贴上去。
[NameOfSoundEvent]
Control = ; 播放控制
Sounds= ;声音文件列表$
Volume= ; 音量<0..100>
Delay= ;播放前的延迟(填两个值构成一个区间) minDelay maxDelay (milliseconds)
Priority= ; 优先级
Type= ;类型 < GLOBAL NORMAL SCREEN LOCAL PLAYER (GUN_SHY NOISE_SHY) UNSHROUD SHROUD>
FShift= ;音调调节 minFDelta maxFDelta (in percent delta from normal pitch)
Limit= ; 每次最大播放的数量
Range= ; 声音的范围
Loop= ;循环多少次
MinVolume= ; 最小的音量
这里说一下重点:
播放控制Control=的里面的值可以同时填多个,共同操控播放规则,但是有的规则会冲突,请根据控制作用自行判断。原版注释中attach实际由于后面程序员的疏忽全部被改成了attack,一定要注意
各播放控制Control=的作用:
loop:循环播放
predelay:播放前先有一段Delay=里定义的随机延迟
random:随机播放Sound=里指定的音频中的一个,有$则只控制$的音频
attack:实际意义为attach,播放带$的主要音频前会先播放附加的音频
decay:播放带$的主要音频后会再播放后面的附加音频(称为衰减音频)
all:Sound=列表中的音频都放一遍
ambient:作为游戏环境背景音播放
interrupt:立刻播放这个
不同的值用空格相隔
在具体的一个音频小节里还会有两个语句,对应attack和decay播放控制使用,它们分别是:
Attack=和Decay=,分别用于指定在前面和后面附加的音频个数,这两句就连ModEnc上都没解释正确
新增语音:以修改美国大兵的移动声音为例。第一步当然是寻找要使用的音频文件了。提取文件技巧:在游戏根目录找到Reg.exe或RegSetMD.exe 或Register.exe或必须先注册.exe,不同的版本名字可能不同,你任选其一并鼠标左键双击运行以注册游戏。然后在XCC里点启动→声音编辑器,就可以提取和加入声音了。有了文件之后,我们用声音编辑器把文件拖到里面,然后修改[GIAttackCommand]里的Sound=改成我们对应的文件名。以下是修改好的代码:
[GIAttackCommand]
Sounds= $60-n100 $60-n102 $60-n104;修改为要用的语音文件名
Control= random;不用改
Volume=85;不用改
改完保存,进入游戏,测试效果。
四、游戏音乐的修改
游戏音乐(Theme)是游戏的背景音乐(BGM)。
用记事本打开thememd.ini文件。
[Themes]字段是注册列表。你可以这里注册新增游戏音乐。
[Themes]
1=INTRO ;开场音乐
14=SCORE ;计分板播放的音乐
15=LOADING ;载入时播放的音乐
16=CREDITS ;制作人员界面播放的音乐
17=RA2Options ;设置播放的音乐
再往下是各音乐条目。
[音乐名称] ;与注册名称对应
Name=THEME:XXXXXX ;游戏播放器列表中显示的文本,由ra2md.csf里的文本内容决定,你需要修改项目类型为THEME里的项目名称内容。参看“”文本修改“”章节
Sound= ;填写使用的音频文件名,如果没有此项,默认使用与注册名相同的文件,但建议写上
Normal=yes/no ;该音乐是否显示在播放器列表,主要是防止一些特殊的音乐出现,这个后面会有说明,如果没有此项,默认yes
Repeat=yes/no ;是否自动单曲循环,这个也是用在特定音乐上的,如果没有此项,默认为no
Side= ;阵营名称,填写参数:盟军GDI,苏联Nod,尤里ThirdSide。如果没有本项,默认所有阵营都播放
Length= ;音乐长度,一般都要完整播放,所以可以没有此代码
Scenario=1/0 ;是否为任务剧情音乐,需要在你的任务中设置触发来播放这个音乐,默认0
游戏定死了开场音乐、载入音乐、计分音乐的文件名,由于这些音乐的特殊性,音乐条目字段中必须使用Normal=no,Repeat=yes,且无Side=项。
实操:准备一个采样频率为22050HZ的music.wav文件,放在游戏根目录下,用记事本打开thememd.ini文件。然后新增注册条目代码和新增音乐条目代码:
[Themes]
……
21=music
……
[Nekomimi]
Name=THEME:music
Sound=music
使用红警2语言编辑器在ra2md.csf新增对应的THEME:music条目,内容就填“测试音乐”。
测试效果:进入游戏关卡或对战时,按esc,在音乐设置中,你可以在播放器列表中找到“测试音乐” ,选中后播放,是你准备好的音乐文件声音即表示成功。
最后将music.wav文件打包进mix文件里。
视频制作
EA商标动画、游戏主界面动画、游戏过场电影的制作
游戏的视频文件格式是.bik,这种文件格式并不常见,你需要使用bik文件转换器Rad Video Tools将.mp4、.avi等常见的视频文件转化为游戏可以读取的.bik格式。
使用方法:
1.启动radvideo.exe,并选择想要转换的视频文件,并点击转换按钮。如下图:
注意:视频文件不能使用中文命名,否则会出现打开文件错误
2.之后会弹出一个对话框,必须按照图中的参数进行设置,否则即使文件转换成功进游戏视频也会没有声音。然后直接点击转换即可,如下图:
3.之后就是漫长的转换过程,耐心等待完毕后,会在输出目录中产生一个新的.bik视频文件。
EA商标动画ea_wwlogo.bik、游戏主界面动画ra2ts_l.bik、ra2ts_s.bik在language.mix或langmd.mix文件里。
WestWood商标画westlogo.bik在movies01.mix、movies02.mix文件里。
游戏过场电影在movies01.mix、movies02.mix、movmd03.mix里,分别对应红警2盟军、红警2苏联、尤里的复仇的任务关卡过场电影。
游戏过场电影文件的命名规则:
ls800(640)a(b、c、s)XX.shp
a(s)XX_f(p)YYe.bik
a表示盟军关卡,s表示苏联关卡
数字XX表示关卡数
f表示800×600的过场大电影,p表示140×110的游戏雷达窗口小电影
数字YY表示视频在任务关卡中的出场顺序
电影的注册位于art.ini或artmd.ini文件里的[Movies]字段。
电影的属性设置在rules.ini或rulesmd.ini文件里的[AudioVisual]字段。
电影的字幕写在subtitle.txt或subtitlemd.txt中,每部分字段的填写格式如下:
BeginMovie A01_P01E
Font=batang.ttc
< Time=00:00:00:30, Duration=00:00:03:00, Position=14:Center, Color=255:255:0,
Text="時間機器就在金門大橋南邊。">
EndMovie
BeginMovie加空格后填写影片文件名。
Font=batang.ttc;调用什么字体,游戏雷达窗口小电影使用的代码
Time=00:00:00:30;字幕出现的时间节点,格式是“时:分:秒:毫秒”
Duration=00:00:03:00;字幕显示的时间长度,格式是“时:分:秒:毫秒”
Position=14:Center;字幕显示的位置
Color=255:255:0;字幕使用的颜色
本章节介绍用户界面的制作。
2024年10月19日由fhy093编辑完成。
用户界面 目录:
用户界面的制作需要用到以下工具:
Photo Shop (以下简称PS )
绘图软件,用于绘制素材文件的图像,生成的图像一般使用256索引颜色的.png或者.pcx格式。
XCC Mixcer (以下简称XCC )
mix文件修改器,用于导入或导出素材文件,也用于生成.mix打包文件和.pal色盘文件。
SHP Builder (以下简称SB )
SHP文件制作软件,用于生成或编辑.shp、.sha这些shp类文件。
Rad Video Tools
bik文件转换器,用于将.mp4、.avi等常见的视频文件转化为游戏可以读取的.bik格式。
Load Screen Builder
红警2任务封面制作器,可仿造官方任务载入图制作简单的战役载入图。
红警2语言编辑器
csf文件编辑器,用于编辑.csf文本文件。
基础知识
基础知识
用户界面(User Interface,简称UI)在红警中包括启动游戏载入图、游戏主界面、任务载入图、遭遇战载入图、各阵营界面等。它们绝大部分是由.shp文件及其对应的.pal文件组成的,也有一小部分是.pax文件,如国家国旗图标。还有一部分是bik视频文件,如游戏主界面的雷达扫描视频。这些文件存放于ra2.mix、ra2md.mix、language.mix
及langmd.mix中,具体存放内容如下:
ra2.mix
conquer.mix
mouse.sha鼠标文件
load.mix
RA2关卡及遭遇战载入界面的载入图、RA2及YURI任务载入图进度条的.shp、.pal文件
local.mix
国家国旗.pcx文件
部分UI的.shp、.pal文件
neutral.mix
RA2主界面UI,包括背景、状态栏、按钮、对话框、计分屏的.shp、.pal文件
sidec01.mix
RA2及YURI进入游戏后,盟军阵营全套UI的.shp、.pal文件
sidec02.mix
RA2及YURI进入游戏后,苏联阵营全套UI的.shp、.pal文件
ra2md.mix
conqmd.mix
mouse.sha鼠标文件
loadmd.mix
YURI新增关卡及遭遇战载入界面载入图的.shp、.pal文件
localmd.mix
国家国旗.pcx文件
YURI新增部分UI的.shp、.pal文件
neutralmd.mix
YURI主界面UI的.shp、.pal文件,主要是背景图。其他部分,YURI会读取ra2.mix-neutral.mix中的内容
sidec02md.mix
YURI尤里阵营的背景图、雷达UI的.shp、.pal文件。其他部分,YURI会读取ra2.mix-sidec02.mix中的内容
language.mix
ra2ts_l.bik
RA2游戏主菜单视频(632×570)的.bik文件
ra2ts_s.bik
RA2游戏主菜单视频(472×450)的.bik文件
cameo.mix
RA2单位图标.shp文件
grfxtxt.shp
单人任务的任务完成/失败和遭遇战的您获胜了/游戏结束的.shp文件
langmd.mix
ea_wwlogo.bik
EA Logo的.bik文件
ra2ts_l.bik
YURI游戏主菜单视频(632×570)的.bik文件
cameomd.mix
YURI新增单位图标.shp文件
glsmd.pal
启动游戏时的载入画面的色盘.pal文件
glslmd.shp
启动游戏时的载入画面的.shp文件
用户界面制作
用户界面的制作
---------------------------------------------------------------
鼠标:
ra2(md).mix - conquer(conqmd).mix - mouse.sha
ra2(md).mix - conquer(conqmd).mix - mousepal.pal
---------------------------------------------------------------
遭遇战国家载入图位于ra2(md).mix - load(md).mix中,它们分别是:
美国:ls800ustates.shp - mplsu.pal
法国:ls800france.shp - mplsf.pal
德国:ls800germany.shp - mplsg.pal
韩国:ls800korea.shp - mplsk.pal
英国:ls800ukingdom.shp - mplsuk.pal
苏俄:ls800russia.shp - mplsr.pal
古巴:ls800cuba.shp - mplsc.pal
伊拉克:ls800iraq.shp - mplsi.pal
利比亚:ls800libya.shp - mplsl.pal
尤里:ls800yuri.shp - mpyls.pal
---------------------------------------------------------------
战役任务载入图位于ra2(md).mix - load(md).mix中,文件格式为:
ls800(640)a(s)xx.shp
ls800(640)a(s)xx.pal
ls代表载入图,800代表载入图大小为800*520,600代表载入图大小为600*400,
a代表盟军战役,s代表苏联战役,xx代表关卡数。
-------------------------------------------------------------------------------------------------------------
实操教学:做一个YURI启动游戏时的载入图
YURI启动游戏时的载入图文件对应关系:
glslmd.shp - langmd.mix - glsmd.pal
注意:这两个文件的文件名差了一个字母“l”,别搞错。
第一步,准备一张源图片,并打开PS,修改图像大小为800*600,然后转成索引颜色,保存为“glslmd 0000.png”(这是因为SHP Builder只识别“xxxx 0000”格式的.png文件),保存在游戏根目录。
第二步,用XCC Mixer浏览找到“glslmd 0000.png”,鼠标右键后点击“复制为 PAL(RA2格式)”,此时根目录会出现一个“glslmd 0000.pal”的文件。
如果找不到这个文件,你需要点击XCC工具栏中的查看(V),再点击目录设置,就可以查找到存放文件的目录。
第三步,“glslmd 0000.pal”的文件名修改为“glsmd.pal”。
第四步,打开SHP Builder,点击工具栏中的Palette(色盘),再点击“Load Ctrl+P”,弹出一个名为“打开”的对话框。将“glsmd.pal”复制或拖拽到“YR”文件夹中,然后关闭SHP Builder。
第五步,再次打开SHP Builder,点击工具栏中的File(文件),再点击“Import>Image->SHP”,弹出一个名为“Import Image as SHP”的对话框。
第六步,在“Main(主要)”选项卡中点击“Browse(浏览)”按钮打开“glslmd 0000.png”,在“Colours”选项卡中的“Palette(色盘):”中选择“glsmd.pal”。点击“Ok(确定)”按钮后弹出正确载入图画面。如果你的画面是花屏,那说明你选择的色盘文件不对。
第七步,取代0号色。如果你的画面出现很多小黑点,那说明你需要取代0号色。点击“Tools”下的第五个按钮,弹出一个名为“Repalce Colour”对话框。在“Repalce Colour”下,用PS打开原图比照画面,将0号色替换为原图中真实的颜色,然后点击“Ok(确定)”按钮。
第八步,保存文件。点击“Save Ctrl+S(保存)”后,弹出一个名为“另存为”的对话框,将文件保存为“glslmd.shp”。
第九步,将“glslmd.shp”和“glsmd.pal”放在游戏根目录,或者替换打包进langmd.mix里。注意不能打包进扩展mix里,否则游戏不会读取。
第十步,启动游戏,测试效果。
作者fhy093,师承蜘蛛星云、戴子玲,在此向感谢两位大佬致以崇高敬意。
前言
红警地形修改很少有moder去研究,这主要是因为修改地形是一项非常繁重的工程,它是个苦力活,你想完成整套地形,是需要付出大量心血的,没有坚定的信心和毅力就不要去做这件事。网上提供的教程是蜘蛛星云提供的远古教程,该教程有很多地方说的不是明白,导致一些领悟力差的学习者一头雾水。所以为防红警地形制作失传,有必要将此教程发扬光大。当然此教程编写仓促,难免有一些错误,还请各位mod大佬和学习者批评指正。
教程包含基础知识、地形制作、地形动画制作、地形对象制作,还附有实操教学。
有红警mod制作基础的学者可以较快入门,对于初学者可以按照实操教学进行操作。
这里以红色警戒2尤里的复仇平台 (以下简称YURI )为例,红色警戒2原版平台 (以下简称RA2 )与YURI 大同小异,有区别的地方在于两者对文件的命名规则差异。YURI 比RA2 多了“md”两个字母,如Ra2md.mix文件在RA2 对应Ra2.mix文件。
红警地形实操制作教程 目录:
红警地形的制作需要用到以下工具:
TMP Builder (以下简称TMP )
地形文件制作软件,用于制作地形文件。
Photo Shop (以下简称PS )
绘图软件,用于绘制地形图像。
XCC Mixcer (以下简称XCC )
mix文件修改器,用于导入或导出地形、ini文件。
Final Alert 2 (以下简称地编 )
红警地图编辑器,用于绘制地图和测试地形。
SHP Builder (以下简称SB )
SHP文件制作软件,用于生成地形动画和地形对象文件。
一个合格的moder应能基本掌握后四种软件的使用,而能驾驭高级绘图工具软件的moder是再好不过。
一、基础知识
红警地图的地形分为六大类型:TEMPERATE(温带)、SNOW(雪地)、URBAN(城市)、NEWURBAN(新城市)、LUNAR(月球)、DESERT(沙漠) 。前三种为RA2 、YURI 都能使用的地形,后三种为YURI 专用地形。
温带地形: 例如RA2 盟军第7、9、11关,RA2 苏联第2、6、10关,YURI 苏联第5、7关
雪地地形: 例如RA2 盟军第2、5、10、12关,RA2 苏联第4、7、11、12关,YURI 盟军第7关,YURI 苏联第2关
城市地形: 例如RA2 盟军第1、3、4、6、8关,RA2 苏联第1、3、5、8、9关,YURI 盟军第5关
新城市地形:例如YURI 盟军第1、2、3、6关,YURI 苏联第1、3关
月球地形: 例如YURI 苏联第6关
沙漠地形: 例如YURI 盟军第4关,YURI 苏联第4关
红警平台限制,定死了这6种类型,你无法新增第7种类型。所以我们制作地形的方向有两种:第一种是直接修改替换原版地形,如著名的TX地形。第二种是扩充原版地形,如YURI 盟军第7关南极冰川地形是YURI 平台扩充的,但类型仍为雪地。
每种地形类型又可细分为Clear、Road、Water、Rock、Wall、Tiberium、Beach、Rough、Ice、Railroad、Tennel、Weeds 共12种类型。
Clear:水泥地、土泥地、草地等
Road:高速公路、小路等
Water:水面
Rock:岩石、悬崖
Wall:墙体
Tiberium:泰伯利亚平台类型,红警平台弃用
Beach:海滩
Rough:人行道、停车场、农场、足球场等
Ice:冰
Railroad:铁路
Tennel:隧道
Weeds:草地
每种地图的地形类型都对应不同的地形文件,这些文件会被游戏加载,游戏里的地形是由这些文件图像的组合拼接而成的。使用XCC 打开Ra2md.mix ,这些文件藏在Ra2md.mix 里的一堆形如iso***md.mix 的子mix文件里。RA2 的地形文件藏在Ra2.mix 里的一堆形如iso***.mix 的子mix文件里。两种平台使用同样的文件类型和色盘文件。
文件名的格式形如****XX.tem(温带)、****XX.sno(雪地)、****XX.urb(城市)、****XX.ubn(新城市)、****XX.lun(月球)、****XX.des(沙漠) 。
每种文件对应的色盘文件分别是:isotem.pal(温带)、isosno.pal(雪地)、isourb.pal(城市)、isoubn.pal(新城市)、isolun.pal(月球)、isodes.pal(沙漠) 。
每种地形的文件命名规则及一部分属性是由对应的temperatmd.ini(温带)、snowmd.ini(雪地)、urbanmd.ini(城市)、urbannmd.ini(新城市)、lunarmd.ini(月球)、desertmd.ini(沙漠) 来决定的。RA2 对应的是temperat.ini、snow.ini(雪地)、urban.ini(城市) 。
使用XCC 打开Ra2md.mix ,再打开localmd.mix 可以找到并释放这6种地形ini文件。RA2 是打开Ra2.mix ,再打开local.mix 找到并释放RA2 的3种地形ini文件。
以NEWURBAN(新地形)的地形ini文件urbannmd.ini为例,用记事本 打开后可以看到很多类似的段落:
[TileSetXXXX]
SetName = Alien Shooter Wall
FileName = aswa
TilesInSet = 30
ToSnowTheater = 37
LowRadarColor = 128,128,192
HighRadarColor = 192,192,255
MarbleMadness=65
AllowBurrowing=false
RequiredForRMG = true
每个段落决定了这种地形的部分属性和地形文件的命名规则。
二、替换原版地形
接下来的章节RA2 不再赘述,方法与YURI 一样。
编辑地形要用到TMP 。以NEWURBAN(新城市)地形为例,这里也建议大家修改NEWURBAN地形,因为NEWURBAN的色盘色彩比较丰富,做出的地形更真实多彩。
准备工作:使用XCC 找到“iso***md.mix”里的“****XX.ubn”,然后选择你喜欢的地形文件并释放出来。
安装TMP 后,双击TMP_Builder.exe 启动软件进入编辑界面。
在菜单栏File(文件)选项里找到Open(打开,快捷键Ctrl+O),然后打开刚才释放出来的.ubn文件。此时屏幕中央的预览窗口会显示出地形图像,就和你游戏里、地编里和XCC预览里 看到的一样。
不管是平地还是悬崖,这些图像都可以分为两种:
Normal Image(普通图像,或称水平图像)和Extra Image(额外图像,或称垂直图像)。
Normal Image(普通图像):与水平面一致、几乎没有倾斜的图像
Extra Image(额外图像):悬崖等的额外图像与水平面有一定夹角的图像,往往接近90度
Normal Image图像呈上下窄,左右宽的标准菱形。Extra Image呈上下长,左右窄的平行四边形。
这两种图像基本呈现以上说明的情况,但也有例外:
Normal Image的例外,比如修改过Ramp Type的草地斜坡、水泥地斜坡、沙漠斜坡等。
Extra Image的例外,比如山脉、山脉斜坡等复杂的悬崖。
不管哪种地形一定会有Normal Image,但是可以没有Extra Image。简单的地形,如草地,道路等只有Normal Image;悬崖、隧道等一定是同时拥有Normal Image和Extra Image;所以Extra Image只是Normal Image的从属图像。悬崖斜坡是两种Image最复杂的拼合,做出一个合格的悬崖斜坡是衡量TMP 操作的金标准。你可以打开各种原版的地形文件观察他们两种图像的特点。
地形文件预览窗口下方的操作栏是对地形文件的分解,操作栏会将地形文件分解为Normal Image和Extra Image。假如地形被分解的部分同时有Normal Image和Extra Image,则它一定是同时显示在同一个区域,并且每个区域右上角上角会标有:
Number 被分解部分的序号
X= Y= 地形位置的XY坐标
Height= 地表高度
Terrain Type 地形类型,基本知识里讲过
Z 暂不了解此含义,好像没什么用
这些参数指定了Normal Image的属性,可以在图像显示区域左边属性栏“Properties”里的选项编辑,我们现在要学的是修改原版地形文件,在你没有充分了解软件之前不要随意修改这些参数。
1.对地形所有图像的整体修改。
在菜单栏Tools(工具)选项里,Export Title Image:
一次性把所有Normal Image和Extra Image都提取出来,你可以逐个进行修改,比较繁琐,不推荐
在菜单栏Tools(工具)选项里,Export Template:
将整个地形图像变为一整张图片拿出来用PS 修改,这个对于改大面积的地表非常便利
在菜单栏Tools(工具)选项里,Import Template:
插入整张图片,图片大小有限制,根据地形类型而定,如果尺寸不对,软件会提示你正确的大小
在菜单栏Edit(编辑)选项里,Paste Normal Image:
从你的剪贴板图像截取一部分作为Normal Image贴进去,PS 做好图像后再用这个功能有时可以提高效率。
2.对图像分解部分的局部修改。
鼠标右键点击操作栏里的其中一块被分解部分,会出现一些选项:
Edit Normal Image:出现一个可以手绘画图的编辑窗口,鸡肋功能,微调时偶尔用用,还不如用PS
Auto Color:全自动色彩,没什么用
Export Normal Image:输出普通图像,可以把Normal Image提取保存便于PS 修改,格式为PNG
Export Extra Image:输出额外图像,可以把Extra Image提取保存便于PS 修改,格式为PNG
Import Normal Image:插入普通图像,插入一个PS 修改后新图像替换原来的Normal Image,格式为PNG
Import Extra Image:插入额外图像,插入一个PS 修改后的新图像替换原来的Extra Image,格式为PNG
Delete Extra Image:删除额外图像
Delete Tiles:同时删除Normal Image和Extra Image
3.地形文件的常用修改流程:
先用Export Template把原版地形图像导出,使用PS 将图像修改好。再用Import Template将修改好的图像导入,此时,Normal Image已经替换完毕,但像悬崖这类的地形的Extra Image还需要你重新插入来替换掉原版的Extra Image。注意:如果你的Extra Image有白边或者透明这些不需要的部分,你还需要用PS 使用色盘的0号色(ubn文件为深蓝色)替换掉,不然游戏里会显示为白色。你可以随便找一个Normal Image鼠标右键,打开Edit Normal Image里的图像编辑器,颜色列表左上角第一个颜色就是你需要的颜色。这个0号色相当于透明的效果。
Export Template,Import Template是地形制作的灵魂所在,这里提供一个批量制作技巧:
你可以先用PS 画一张图(你不会真的手绘一张完整地形的图吧?聪明的人都先找素材,然后尽可能大的截图,例如戴子玲大佬对RA3地形的复刻)。再用图片批量截取或者图片平均分切功能将图片划分为该地形需求的大小,最后再用Import template功能一导入,一张完美拼接的图就出来了。如果你要做几张可以拼接的地形,你得稍微用一下数学知识了。
地形制作完成后,在菜单栏File(文件)找到Save(保存,快捷键Ctrl+S)或Save As...(另存为...),将文件保存好。最后把文件用XCC 拖进原来的iso***md.mix文件里(否则地编 无法读取)。此时就可以打开地编 和游戏查看替换地形后的效果了。
三、地形的扩充与注册
以NEWURBAN(新城市)地形为例,用记事本 打开urbannmd.ini。首先注册一个地表,就仿照原版的地形注册新地形。
[TileSetXXXX] 地形注册代号,XXXX是数字,必须跟之前是相连的,否则游戏和地编无法读取
SetName = Alien-Shooter-Wall 对应地编里的名字,随意写
FileName = aswa 地形文件名,使用英文字母,与地形文件命名有关
TilesInSet = 30 这个地形选项卡包含的地形数量,与地形文件命名有关
ToSnowTheater = 37 不用改
LowRadarColor = 128,128,192 地编小地图的颜色,可以无视
HighRadarColor = 192,192,255 地编小地图的颜色,可以无视
MarbleMadness=65 地编框架模式下,选用框架地形的序号
AllowBurrowing=false 不用改
RequiredForRMG = true 不用改
注册好后,将你在第二章学习并制作好的地形文件保存为特定的文件格式。
基础知识里讲到地形文件的格式为****XX.tem(温带)、****XX.sno(雪地)、****XX.urb(城市)、****XX.ubn(新城市)、****XX.lun(月球)、****XX.des(沙漠) 。
**** 是英文字母,写的是FileName =**** 的内容。
XX 是数字,从01命名到TilesInSet = XX 里的数字,XX 原则上不大于99。
**** 和XX 总位数不可超过8位,否则游戏可能弹框。
地形命名方式又可细分为2种:
1、单样式地形
这种地形命名为
aswa01、aswa02、aswa03……
例如原版的停车场地形、道路。地编画图和游戏显示的时候,只会使用你选的那个地形。
2、多样式地形
这种地形命名为
aswa01、aswa01a、aswa01b、aswa01c……
asfloor02、asfloor02a、asfloor02b、asfloor02c……
例如原版的深色草地地形。地编画图和游戏显示的时候,会随机使用你选的同种地形。
例如你选取了asfloor01,他绘制时会随机使用asfloor01、asfloor01a、asfloor01b……的其中一个。
这种地形你是无直接法用TMP 制作的,你需要复制一个原版的这种地形,
然后再用TMP 修改,否则编辑器不会在绘制时随机选取。
将做好的文件保存好,然后把文件用XCC 拖进mix文件里(可以不是iso***md.mix,否则地编 无法读取)。并将urbannmd.ini放在游戏目录以便于修改测试,此时就可以打开地编 用上新的扩充地形制作地图了,做好后在游戏中检查拼接问题反复测试,等地形稳定后将ini文件也拖进mix。打包进mix文件时要注意mix文件的优先级,expandmdXX.mix,表示数字,XX不能超过99,数字越大优先级越高,里面的文件会优先被地编 和游戏读取。
实操教学:做一个孤胆枪手墙壁
第一步,注册孤胆枪手墙壁。
在urbannmd.ini里注册一个新地形。
[TileSet0122];0112是地形注册代号,必须跟之前是相连的,这里接着原版的[TileSet011]后面写
SetName=Alien-Shooter-Wall;对应地编 里的名字,取名为孤胆枪手墙壁英文
FileName=aswa ;地形文件名,使用英文字母,建议系统命名:as表示孤胆枪手,w表示墙,a表示第一种墙
TilesInSet=45 ;这个地形选项卡包含的地形数量,一套完整的悬崖差不多需要做30-50种地形。
ToSnowTheater=37;不用改
LowRadarColor=128,128,192;地编 小地图的颜色,可以无视
HighRadarColor=192,192,255;地编 小地图的颜色,可以无视
MarbleMadness=65;不用改
AllowBurrowing=false;不用改
RequiredForRMG=true;不用改
第二步,制作地形文件。
我们先做第一个地形文件aswa01.ubn。孤胆枪手墙壁的本质是悬崖,悬崖地形有Normal Image和Extra Image两种图像,制作难度适中。熟练者可在十分钟内完成一个文件,初学者可能需要半小时以上。
首先我们需要在孤胆枪手游戏里寻找墙壁素材,万能方法是进入孤胆枪手游戏,然后对游戏截屏,用PS 的多边形套索、魔棒、仿制图章工具将需要的素材抠出来,然后用将其改成红警对应的角度。这里我使用的方法是使用孤胆枪手地图编辑器提取单个墙壁,将背景改为黑色,然后用PS 魔棒工具提取墙壁图像后改为红警相应的角度和大小,因为我需要的素材较多,我一般会把多个素材放在一张图里批量将素材修改为红警相应的角度和大小,比对物是红警的1x1水面和孤胆枪手的1x1地砖,找一个参照物作比对是很有用的。当然像帝国时代2这种与红警相机角度一致的素材就没有必要这么做。
用XCC 提取一个YURI 的高地悬崖.ubn文件,用TMP 打开文件,用Export Template将地形的整个图像导出,用PS 打开这个图像,将做好的素材以另一个图层粘进去,通过比对修改做出TMP 里能使用的图像。用Import Template将做好的图片导入,然后右键点击分解部分的区域,导入Extra Image图像,这时可能需要裁剪,需要填的裁剪参数从左到右依次为:图像左上角起始X坐标(一般写0,30,60),图像左上角起始Y坐标(一般写0,15,30,45),图像宽度(一般为30),图像高度(一般为75)。裁剪后在图像预览里检查拼接问题和白图问题,有问题还需要重新导入裁剪或用0号色修图。然后将做好的地形文件保存为aswa01.ubn,同理做其他地形文件,一直做到aswa45.ubn。
第三步,测试。
进入地编 ,正常地编 地形列表里应该有Alien Shooter Wall这个选项,里面应该有45种地形。如果不显示新地形选项,先保证你建的地图类型是NEWURBAN,然后检查ini文件里地形的注册无误并确保放在游戏根目录,还要检查地形文件格式是否为.ubn、命名是否正确,并且确保将他们打包在优先级较高的mix里。
在地图里把一圈墙壁画出来,检查拼接和显示问题,有问题还要用PS 重新修正和用TMP 重制。
四、地形对象的制作
地形对象的本质是shp,制作方法与shp素材一样,区别在于要使用对应地形的色盘,文件格式不是.shp而是相应地形后缀名。
需要使用SB 软件,用该地形的色盘制作一个shp
原图1帧
影子1帧
做好后保存为相应地形后缀名【.tem(温带)、.sno(雪地)、.urb(城市)、.ubn(新城市)、.lun(月球)、.des(沙漠)】。
实操教学:做一个孤胆枪手电脑桌
第一步,注册孤胆枪手电脑桌和填写孤胆枪手电脑桌的Rules
在Rulesmd.ini文件里的[TerrainTypes]注册孤胆枪手电脑桌,并新建一个[ASTABLE01]项目填写孤胆枪手电脑桌的Rules
[TerrainTypes];注册孤胆枪手电脑桌
...
XX=ASTABLE01
[ASTABLE01];填写孤胆枪手电脑桌的Rules
Name=Ailen Shooter Table 01;随便写,无实际意义
IsFlammable=no
RadarColor=255,255,255
TemperateOccupationBits=4
SnowOccupationBits=7
Imunue=yes;根据需要写,加了这句该地形对象就是无敌不可破坏的
在Artmd.ini文件里填写孤胆枪手电脑桌的Art
[ASTABLE01]
Theater=yes
Foundation=1x1;电脑桌的长X宽
第二步,制作地形对象文件
使用SB 软件,用该地形的色盘isoubn.pal制作一个shp
原图1帧
影子1帧
做好后保存,要在NEWURBAN地形里用,就命名为astable01.ubn,然后打包进mix。
第三步,进入地编 测试。
正常地编 地形对象列表里应该有ASTABLE01这个选项,你可以把它安置在地图上。如果不显示ASTABLE01选项,先保证你建的地图类型是NEWURBAN,然后检查ini文件里地形对象是否注册无误并确保放在游戏根目录,还要检查地形文件格式是否为.ubn、命名是否正确,并且确保将他们打包在优先级较高的mix里。
第四步,检查地形对象的位置和高度。
SB 提供的RA2 Grids网格是做建筑素材用的,按照SB 提供的RA2 Grids网格做出来的地形对象,其高度在地编 里显示为实际高度,但在游戏里实际显示是要低3个像素左右的,你在做shp的时候要把整个图像抬高3个左右像素,然后再保存。此时,地编 里显示会高出来,但在游戏里显示是正确的。
五、地形动画的制作
原版地形里的瀑布地形是动态的,而且还有水声。这就涉及到地形动画的制作,是一种高级技巧。
地形动画的本质是shp动画,制作方法与shp动画一样,区别在于要使用对应地形的色盘,文件格式不是.shp而是相应地形后缀名。
需要使用SB 软件,用该地形的色盘制作一个shp。
原图1帧
影子1帧
做好后保存为相应地形后缀名【.tem(温带)、.sno(雪地)、.urb(城市)、.ubn(新城市)、.lun(月球)、.des(沙漠)】。
实操教学:制作一个孤胆枪手墙壁上的动态灯光
第一步,注册孤胆枪手动态灯光
我们还是用在urbannmd.ini里注册的孤胆枪手墙壁。
[TileSet0122]
SetName = Alien-Shooter-Wall
FileName = aswa
TilesInSet = 45
ToSnowTheater = 37
LowRadarColor = 128,128,192
HighRadarColor = 192,192,255
MarbleMadness=65
AllowBurrowing=false
RequiredForRMG = true
这里的SetName是关键,我们再用SetName里的“Alien-Shooter-Wall”在urbannmd.ini里注册一个动态灯光动画项,TilesInSet决定了墙壁地形的个数,假设我们要给第1个墙壁地形配上动画,则这么写:
[Alien-Shooter-Wall]
Tile01Anim=aslight;动画的文件名
Tile01XOffset=0;动画的X坐标
Tile01YOffset=0;动画的Y坐标
Tile01AttachesTo=0
Tile01ZAdjust=-10;动画的Z坐标,Z坐标代表动画层的遮盖位置
此时,urbannmd.ini里已经注册完毕,再在Rulesmd.ini里注册墙壁灯光动画:
[Animations]
...
X=aslight
最后在在Art.ini里写入aslight的Art:
[aslight]
Theater=yes
Normalized=yes
Loopstart=0;开始帧
LoopEnd=1;结束帧
LoopCount=-1;循环次数,-1表示无限循环
Rate=320;播放速度
Flat=yes
Layer=
;DetailLevel=2
DemandLoad=true
ShouldUseCellDrawer=true
StartSound=lightsound;可以定义地形周围的环境声音
如果你要在一个地表选项卡里面加入多个地形动画,你可以将Tile01改为Tile02,Tile03,Tile04然后接着写参数,如果动画位置相同就无需再改参数了。
第二步,制作地形动画文件。
使用SB 软件,用该地形的色盘isoubn.pal制作一个动态灯光的动画,做好后保存为aslight.ubn,然后打包进mix。
这里说一个高级技巧:想让地形只带环境声音,不需要动画的话可以把动画改成1帧1像素的,尤其是这个像素你使用了和地形一样的颜色后在游戏里几乎看不见动画,典型的障眼法。
第三步,进入游戏测试。
正常游戏里第一个aswa01地形就应该带有动画了,如果你添加了声音还能听见声音。
如果不显示动画,先保证你建的地图类型是NEWURBAN,然后检查ini文件里地形对象是否注册无误并确保放在游戏根目录,还要检查地形文件格式是否为.ubn、命名是否正确,并且确保将他们打包在优先级较高的mix里。
如果听不到声音,那就要检查sound.ini文件里是否注册了lightsound且无误,并确保sound.ini放在游戏根目录,然后检查声音文件格式是否为.wav、命名是否正确、频率是否为22050Hz,并且确保将声音文件打包在优先级较高的mix里。
六、高级修改
1.某种地形在多种地图类型中的使用:
有时候,我们需要一种地形在多个地图类型里使用,比如让温带地形使用停车场,让新城市地形使用农场、小土路。这其实也很简单,需要的是大量的批量化操作。
第一种方法,随便打开一个该地图类型的地形文件,然后将Normal Image和Extra Image保存为对应的地形文件格式。
第二种方法,在TMP 里的Palette(色盘)里的Load...(载入)导入相应地形的色盘文件,然后将Normal Image和Extra Image保存为对应的地形文件格式。
第三种方法,由于月球色盘颜色较为单一,几乎是灰白的。所以可以直接导入月球的色盘文件isolun.pal,保存为****XX.lun就可以了。
2.如何让单位走到悬崖下
原版红警悬崖地形文件悬崖的底部是Rock(岩石)属性,所以单位不能走,拥有这样属性的地形还有铁丝网。
你需要修改悬崖地形文件的Normal Image属性,TMP 打开悬崖地形文件后,点击一下悬崖地形被分解的底部部分,在左侧的Terrain Type将Rock(岩石)改为Road(道路),顶部可以不用改,还是Rock(岩石)属性,因为感觉单位走到悬崖边怪怪的。
3.如何制作沼泽地形
根据让单位走到悬崖下原理,你可以把水面改成Rock(岩石),让所有单位都不能走,比如原版地形的水中礁石。也可以把草地改为Water(水)属性变为沼泽地。
4.太空地形的制作
前辈蜘蛛星云其实已经做过太空地形了,这里给点提示,太空站改为Road,太空站的边缘改为Rcok,太空改为Rock或Water,这样陆地单位和两栖单位就只能在空间站活动,同时不影响空中单位的活动。太空改为Rock或Water各有优缺点,Rock属性空中单位可以在纯太空活动,但是从空间站往太空走就走不了。Water属性可以解决这个问题,但是炮击水面的时候可能会穿帮。
七、地形色盘的修改
原版色盘色彩表现力差,如果你制作的地形有很多颜色与原版地形不匹配,可以将所有做好的地形图片用PS合并为一张图,改为索引颜色后保存。用XCC将保存的文件转化生成为pal色盘文件,然后把文件命名为ISO***.PAL,***代表地形类型。然后把这个色盘文件替换原版的,在TMP里也需要在它的安装目录plaettes文件夹里替换为新的色盘文件,然后用新色盘制作你的地形。
需要注意的是,一旦使用新色盘就要把原版此类型的所有地形都重新用新色盘做一遍,文件的数量是成百上千个,这个工作量是非常巨大的,所以就如前言里所说,做地形是个苦力活,你想完成整套地形,是需要付出大量心血的,没有坚定的信心和毅力就不要去做这件事。
红警地形实操制作教程
作者fhy093
2022年05月30日
本章节为成品Mod实操教学,是对之前所有Mod修改知识的综合应用。作者fhy093将手把手带你做一个成品Mod:
————复刻《孤胆枪手1》
成品教学 目录:
复刻一代《孤胆枪手》的制作除了Mod制作全套工具还需要:
Alien Shooter (以下简称地编 )
一代《孤胆枪手》(Alien Shooter )是一款由Sigma Team开发制作的ACT系列游戏,由CDV发行,2006年9月发售于PC平台。该游戏采用在PC平台为数少见的45°俯视射击模式。每一作都延续黑暗、血腥的画面风格,使玩家感到压抑感。该游戏将是成品所有Mod素材的来源。
Han-MapEdit
一代《孤胆枪手》地图编辑器,用于孤胆枪手素材的提取。
SHP单位制作
制作SHP单位
VXL单位制作
制作VXL单位
本章节的主要内容来自红警diy论坛,作者fhy093对代码词典进行了梳理与校正。
代码词典 目录:
Rules词典
Rules代码分条目词典
Art词典
Art代码分条目词典
关于教程
关于教程目录
联系作者
与游戏作者取得联系
作者丰采(B站ID:fhy093)
可以加fhy093红警交流群:825398333 ,群主就是作者。
作者是B站的一名红警UP主fhy093 。作者也在B站 里投稿红警视频。喜爱红警视频的朋友也可以关注一下fhy093的哔哩哔哩投稿 。
作者作品
fhy093的Mod作品和红警修改实操教程
选择以下任意一种下载更新fhy03的Mod作品或红警修改实操教程。
1.加丧尸领地粉丝QQ群825398333 (QQ群文件)。
2.前往作者个人主页fhy093.ys168.com (百度网盘)。
红色警戒2Mod《丧尸领地》
中文名称:《丧尸领地》
英文名称:《Zland》
游戏类别:生化危机、末世生存
游戏平台:红色警戒2尤里的复仇Ares3.0
游戏制作:fhy093
游戏简介:
海豹特战队员卡洛斯(Carlos)休假期间想去看望同在部队服役的姐姐谭雅(Tanya)。
但卡洛斯在去往谭雅部队驻地的高速路上遇到了一些大麻烦,驻地所在的城市里布满了生化怪物。
险象环生之中,他终于找到了姐姐,与谭雅并肩作战抵抗丧尸,并一直寻找生化灾变的原因。
本Mod额外任务关卡包含了对由Sigma Team开发制作的《孤胆枪手1》80%的复刻、以及腾讯网游《穿越火线》元素的加入。
红色警戒2Mod《丧尸领地》主要由fhy093制作完成。
于2024年09月08日完成正式版发布,可能依然存在很多BUG,但作者不会继续更新。
红色警戒2Mod《孤胆枪手1》
中文名称:《孤胆枪手1》
英文名称:《Alien Shooter 1》
游戏类别:异形危机、个人生存
游戏平台:红色警戒2尤里的复仇Ares3.0
游戏制作:fhy093
游戏简介:
在黑暗阴森的地下综合实验室里,这里已经被各种各样恐怖的异形怪物所占领,玩家必须拿起武器,
勇敢消灭血腥的怪物,才能取得最后的胜利。
本Mod关卡包含了在红警引擎机制下,对由Sigma Team开发制作的《孤胆枪手1》的完全复刻。
红色警戒2Mod《孤胆枪手1》由fhy093独立策划及制作。
于2024年12月31日完成发布,可能依然存在很多BUG,但作者不会继续更新。
红色警戒2Mod《1937特种兵》
中文名称:《1937特种兵》
英文名称:《The Mission 1937》
游戏类别:抗日题材、铭记历史
游戏平台:红色警戒2尤里的复仇(手机端)/Ares3.0、DTA客户端(电脑端)
游戏制作:fhy093
游戏简介:
二战时期,亚洲最大的战场在中国,最大的胜利在中国,历史上最具传奇色彩的敌后战斗也发生在中国。
作为这片土地的后代,我们没有理由拒绝这样一个充满民族激情的题材。
但是市面上几乎没有关于抗日题材的红警Mod,所以fhy093着手了对《1937特种兵》的复刻过程。
但要强调的是,这绝对不是《1937特种兵》的翻版,除了复刻里面的单位和任务设计外,本Mod还会融入
更多带有红警特色的创新。
本Mod关卡包含了在红警引擎机制下,对由无限幻境工作室开发制作的《1937特种兵》复刻。
红色警戒2Mod《孤胆枪手1》由fhy093独立策划及制作。
于2025年发布测试版,并会持续更新。
红色警戒2修改实操教程
游戏平台:红色警戒2原版/红色警戒2尤里的复仇
教程制作:fhy093
教程简介:
目前网上流传的红警修改教程都比较零碎、不够系统,也没有实操教程,
对于初学者来说无人指导就很难快速入门。而像红警地形制作这种教程更是难得一见。
但是当你看到这个教程后绝对会眼前一亮,这简直是一部红警修改百科全书!
这是一部关于《红色警戒2》及其资料片《红色警戒2尤里的复仇》的修改实操教程。
红色警戒2实操修改教程由fhy093独立策划及制作。
于2025年发布,并会持续更新。
特别鸣谢
对教程提供过帮助的人员
本教程编写工作由作者fhy093 独立完成,但要感谢曾经教授过我红警修改的朋友:
红警diy论坛
Mod理论支持
脱脂脱
Mod理论指导;单人任务制作指导
戴子玲
Mod理论指导;地形制作指导
竹蜻蜓
单人任务制作指导
蜘蛛星云
地形制作理论支持
Repeater_c
空爆武器及武器切换的理论指导
网上的教程大佬
制作Mod是一个长期学习的过程,很多在网上学习过的教程因为年代久远,实在无从知晓这些教程的原作者了,在此一并感谢!
感谢这些朋友在教程制作过程中给予的无私帮助!
最后,向投身于红警修改的Moders 致以崇高的敬意!你们是为红警续命的希望!