红色警戒2AI人工智能编辑教程
红色警戒2使用了 “脚本化” 的人工智能(指一个系统只对预知的行动和脚本作出反应而非启发式的人工智能 – 对一个动作作出反应并且根据一个动作而预测下个动作,普遍的一个脚本化的系统是这样工作的
计算机使用一个对象,或一组对象,称做 [TaskForces] 中文名 [使命部队],[使命部队] 按照他们的基本属性被控制并归类为 [TeamTypes] 中文名 [组类],当进行行动,或系列行动时,[组类] 被 [ScriptTypes] 中文名 [脚本类] 控制,[脚本类] 可能会或者可能不会被预先定义的事件叫做 [AITriggerTypes] 中文名 [人工智能撞针] 激活。
打开 AI.ini 文件
[TaskForces] 使命部队项
这项用来列出基本上所有红警2的 [TaskForces] 使命部队, 列表从 0 号开始,号随着这个使命部队包括的单位的数量增加而增加。如果你想人工智能造新单位或使用更多的单位你就必须改这项。
在这里每个使命部队所对应的条目都是用十六进制数值来表示的(你实际上可以用其它的,但是我建议你保持十六进制的传统)。 下面举个详细例子。
在[TaskForces] 使命部队项下
[某使命部队的十六进制代码]
Name=
a=x,UNIT
b=x,UNIT
c=x,UNIT
...
Group=
[某使命部队的十六进制代码] – 这是用来查找相应的使命部队用的,就像在[vehicletypes] 加了新单位后你必须也有相应的项。
Name=这个是专门给你用写注释的, 对游戏毫无作用, 你可以随便写什么。
n=x,UNIT – 用来定义有那些单位在使命部队里,每定义一个新的使命部队你必须新起一行,你沿用的使命部队的名称必须和 Rules.ini 里[BuildingTypes],[InfantryTypes],[VehicleTypes] 或 [AircraftTypes] 列表里部队的名字一样,记住,使命部队必须从0号开始. 例子, 定义一个有 5 个 美国大兵和 2 个灰熊坦克的部队
[使命部队的十六进制代码]
Name=5 GI's and 2 Grizzly Tanks
0=5,E1
1=2,MTNK
Group=-1
Group= -n 当使命部队被造出来或被选择完时,这个会使使命部队造成形成某种特殊的集结,-1 是缺省值,它的功能是使这个使命部队所有的单位移动当这些单位被遗留下来时(如果使命部队包含了运输类单位你就应该用 -1,关于怎么把一些单位装上运输类单位请看[组类]). 如果你不使用 -1的话可能造成问题(请看[脚本类] ‘换组’一节专门关于这个的描述)。
[ScriptTypes] 脚本类项
这项用来列出基本上所有红警二的 [ScriptTypes] 脚本类, 列表从 0 号开始,号随着这个脚本类的数量增加而增加。
在这里每个脚本类所对应的条目都是用十六进制数值来表示的(你实际上可以用其它的,但是我建议你保持十六进制的传统)。 下面举个详细例子。
在[ScriptTypes] 脚本类项项下
一个例子
[脚本类的十六进制代码]
Name=
a=x,y
b=x,y
c=x,y
...
[脚本类的十六进制代码] – 这个必须和你在 [ScriptTypes] 脚本类项 定义的名称一样
Name=这个是专门给你用写注释的, 对游戏毫无作用, 你可以随便写什么。
n=x,y – 这个定义一个使命部队将做的行动,每做一个新行动,你必须在写的时候新起一行,第一个行动从0号开始,行动总数可以无限的沿长或非常的复杂。这就是红警系列人工智能的关键所在
在这里,第一个值,x, 代表将做的行动,有些行动需要一个辅助数,这就是我们的 y(假设 x 代表抽烟,但抽烟可以站着抽也可以坐着抽,y就起到区分的作用)
下面举个例子。第一行(0=0,5)使计算机攻击任何遭遇的敌方车辆,第二行使计算机当完成第一行的任务后攻击任何目标。
[脚本类的十六进制代码]
Name=Attack any vehicle then attack anything
0=0,5
1=0,1
下面将给出脚本 x,y 值详细列表, 这是编辑红二人工智能最繁琐的地方,朋友们可要有点耐心了。
当 x 等于 0 时
0,y = 攻击目标, y = 将被攻击的目标的种类
在这里做的任何修改将指令[组类]去使用相对应的使命部队并使部队进攻被 y 值指定的敌方部队
下面是 x 等于0 时可以使用的 y 值。(大家不要高兴, x 总共有58个值,而且 y 值都不一样)
0什么都不做取消攻击
1任意攻击攻击任何它们遭遇的东西
2建筑任何属于[BuildingTypes] 的建筑类
3矿车任何属于[VehicleTypes] 的有 Harvester=yes 这项的车辆
4士兵任何属于[InfantryTypes] 的士兵
5车辆任何属于[VehicleTypes]的车辆
6工厂 任何属于[BuildingTypes] 的有 Factory=yes 的建筑如战车工厂
7基地防御类任何属于[BuildingTypes] 的有 IsBaseDefense=yes 的建筑