首页>安卓游戏>mod模组>红警AI增强补丁
红警AI增强补丁
红警AI增强补丁

红警AI增强补丁

高速下载 普通下载
39
详情 同类热门 热门攻略
  • 红警AI增强补丁
  • 红警AI增强补丁
  • 红警AI增强补丁
详情

红警AI增强补丁是用于增强游戏中电脑 AI(人工智能)表现的补丁程序。加强电脑智商,使其可以双坦克场造战车,增加遭遇战的难度。下载补丁后,将 ai.ini 及 rules.ini 解压到红色警戒 2 共和国之辉的游戏目录内,启动游戏后即可体验电脑增强后的效果。

玩法攻略

红警设置教学

特别说明:游戏中一定要选中国,才会触发 AI 增强效果。

不同的 AI 增强补丁可能会有不同的功能和特点,具体的效果和使用方式可能会有所差异。有些补丁可能会强化电脑的建造、出兵策略、资源管理等方面的能力,使游戏更具挑战性。

在选择和使用 AI 增强补丁时,需要注意以下几点:

补丁的兼容性:确保补丁与你所使用的红警游戏版本兼容,否则可能会出现问题。

来源可靠性:从可信赖的来源下载补丁,以避免潜在的安全风险或不兼容问题。

游戏平衡性:虽然增强补丁可以增加难度,但过度强大的 AI 可能会导致游戏过于困难,失去原本的乐趣。可以根据自己的游戏水平和喜好选择合适的补丁。

如果你想进一步了解特定 AI 增强补丁的攻略,建议参考补丁的相关说明文档,或者在相关的游戏论坛、社区中与其他玩家交流,分享经验和技巧。

另外,如果你想自己修改红警 2 的 AI,这需要一定的技术知识和对游戏文件的了解。简单来说,需要涉及到修改游戏的相关配置文件(如 rules.ini 和 ai.ini 等),里面包含了各种游戏单位、建筑、AI 行为等的设置参数。例如,可以通过修改 AI 触发条件、部队组成、行动脚本等内容来改变电脑的行为模式。但修改游戏文件可能会导致游戏不稳定或出现问题,在进行修改之前,建议备份原始的游戏文件。

以下是一个简单的红警 2 修改 AI 的基本步骤示例(仅供参考,实际操作可能更为复杂):

找到红警 2 的安装目录。

使用相关工具(如 xcc mixer)提取 rules.ini 和 ai.ini 文件。

用文本编辑器打开这些文件。

在文件中找到与 AI 相关的部分,例如 taskforces(部队成员组)、scripttypes(命令组)、teamtypes(作战队伍)、aitriggertypes(AI 触发)等。

根据自己的需求修改相应的参数和设置,例如增加或修改电脑出兵的类型、数量、时间间隔等。

保存修改后的文件,并将其放回红警 2 的安装目录中,覆盖原文件。

红警多条件触发教程

那么原版的AI就简单的说到这里,首先我们要制作一款全新的AI就要从几个方面考虑:

1. 灵活性

2. 适应性

3. 合理性

首先把这几样东西弄清楚,后面编写AI的时候才好下手,我们先来一一的解说一下这些方面有什么用。

首先是第一点,什么是灵活性? 兵种的搭配,偷家的操作,场面的把控都是灵活性的体现,AI的灵活程度能决定AI编写的质量。

第二点是适应性,适应性顾名思义,就是这AI能适应在哪些场合,一般优质的AI补丁作品至少要能在大中型地图中能使用即稳定发挥,不会卡兵什么的。

第三点合理性,合理性是指AI触发的作战小队人数要合理,一般一支作战小队的单位数控制在12比较合理,步兵的话控制在30左右比较合理,这样的的话可以防止AI在一些稍微小一点的地图中出现卡兵的问题,另外还有不会给玩家疯狂爆兵的感觉,刚好输出的伤害也不低。

好说完了这些,接下来就可以开始简单的介绍如何编写AI程序,在这之前呢,我希望看的观众能先去了解一下编写AI的基本教程,在这里我推荐大家去看一下” MammamiaMadman”的AI教程下篇,了解一下AI最基本的四模块: 派遣部队, 脚本, 作战小队, 触发,在这里我就默认大家都会编写AI。

文章网址: https://www.bilibili.com/read/cv2592061?spm_id_from=333.999.0.0

首先是让AI如何变得”灵活”,想让AI变得像人那么灵活是不可能的,但我们可以让它相对的提升灵活度。

提升AI灵活度的设计思路:

1. 设计flag变量来达到多条件触发的逻辑

2. 拓展更多偷家套路

好,我们开始介绍如何来制作一个多条件触发系统,在这之前,大家要知道三个指令, 5号指令和31号指令以及58号指令,首先5号指令是原地等待指令。31号指令是自爆指令,只能用在flag更新上。58号指令是移动指令,移动到己方某个建筑上(需要用到红警内部建筑编号)

尤里的复仇全建筑编号表格文件链接: https://pan.baidu.com/s/113192ucrD70HFxGtOKFDlw?pwd=QWQI

提取码:QWQI

为了能够设计出“灵活的AI”多条件触发是必不可少的,我们需要认识一下二进制。

二进制: 一种只有0和1的进制 1011B == 11,【二进制1011对应着十进制中的11,其中B为二进制的后缀】如果对二进制感兴趣的话就自己去学学,在这里我们只需要掌握1,2,4,8就够用了。

现在我们来假设一下条件:

对手有盟军基地 == 1

我方有高科技 == 2

对手有巨炮 == 4

其他条件 == 8 【因为flag标志兵太多了,一般不启用】

当flag标志兵 == 1时表示着对手为盟军并且没巨炮我方无高科

当flag 标志兵 == 3 时 表示对手为盟军并且没巨炮我方有高科

当flag标志兵 == 7 时 表示对手为盟军并且有巨炮我方有高科

当flag标志兵 == 5 时 表示对手为盟军并且有巨炮我方无高科 【危!】

使用二进制当多条件触发有一点是无可替代的也是最容易出错的地方,就无论在什么情况下都记录都不会出错,但如果是多兵营的话记录分分钟就出错,因为只能每次+1不能加多了,所以要注意AI多建造厂或多兵营的情况,这个时候这一套就很容易出错了,但利大于弊,值得用这套。

在这里我解释一下上面的标志兵是什么,标志兵是一个假单位,在规则文件里存在,0元购,无声音,最好选套皮防空兵。

下面来解说一下:

;这是盟军标记巨炮的flag标志兵,注册名为AFG (Allied flag GTGCAN)

[AFG]

Image=GGI

UIName=Name:GuardianGI

Name=Guardian GI

Category=Soldier

Primary=M60

Secondary=MissileLauncher ;GEF New Guardian GI weapon

OpenTransportWeapon=1;defaults to -1 (decide normally) What weapon should I use in a Battle Fortress

Occupier=no;yes ; I can Occupy UC buildings

Prerequisite=GTGCAN002

CrushSound=InfantrySquish

Strength=100

Pip=white

Armor=none

TechLevel=2

Sight=6

Speed=3

Owner=British,French,Germans,Americans,Alliance

AllowedToStartInMultiplayer=no

Cost=0

Soylent=150

Points=10

IsSelectableCombatant=yes

Locomotor={4A582744-9839-11d1-B709-00A024DDAFD1}

PhysicalSize=1

MovementZone=Infantry

ThreatPosed=10 ; This value MUST be 0 for all building addons

ImmuneToVeins=yes

ImmuneToPsionics=no

Bombable=yes

Deployer=yes

DeployFire=yes

; DeployTime=.022 ; PCG; Unused for now. Was maybe going to make its way in if we did

; a more explicit state machine for deploying b/c of autodeploy.

VeteranAbilities=STRONGER,FIREPOWER,ROF,SIGHT,FASTER

EliteAbilities=SELF_HEAL,STRONGER,FIREPOWER,ROF

Size=1

Crushable=yes

DeployedCrushable=no

DeploySound=GuardianGIDeploy

UndeploySound=GIUndeploy

ElitePrimary=M60E

EliteSecondary=MissileLauncherE ;GEF New Guardian GI weapon

;EliteSecondary=ParaE

IFVMode=16

PixelSelectionBracketDelta=-6;gs higher number draws lower. Pixel difference from normal for selection bracket

仔细观察代码就会发现并没有声音的代码(因为被我删了)

注册表:

; use binary, 1 friend unit 0 enemy unit

; All flag updata wen N1 != N2 time-flag

; Refresh when the flag is False you can use 0,1 command to refresh every 5,128

66=SFA ; The flag is SvsA only enemy is A, 1: active, 2:1 NATECH!=0, 4: BFRT > 4, 8: 0 GTGCAN > 2

67=SFY ; The flag is SvsY only enemy is Y, 1: active, 2:1 NATECH!=0

68=SFS ; The flag is SvsS only enemy is S, 1: active, 2:1 NATECH!=0

69=AFA ; ······, 2:1 GATECH != 0, 4: 0 BFRT > 4, 8: 0 GTGCAN > 2

70=AFS ; ······, 2:1 GATECH !=0,

71=AFY ; ······, 2:1 GATECH != 0,

72=AFAK ; 72 ~ 74Allied SKY Arm only!

73=AFSK ;

74=AFYK ;

75=SFAG

76=FT ; Soviet exclusive check tank attack !

77=SFG ; Soviet flag GTGCAN! Hard Attack

78=AFG ; Allied flag GTGCAN! Hard Attack

我们就需要创建很多这样的假单位然后组织成队伍集合自爆循环达到实时战场检测的目的,flag更新的那段时段中,AI会自动的忽略那些不满足的标志兵触发[最好是连个条件作为一组触发这样就不容易出错],随后用一些通用部队来弥补空缺,比如偷家,防守什么的。

这是AI补丁已经写好的部分,如果有兴趣的话下载好后可以研究进行第二次开发。

这样小队的通用脚本为:

[flag-nop]

Name=标志兵站位防卡

0=58,131145

1=58,131137

2=5,512

3=49,0

4=31,0

[A-k-flag]

Name=偷袭环境监测集合

0=58,196608

1=58,9

2=5,256

3=31,0

[flag-tech]

Name=flag集结

0=58,6

1=58,10

2=5,512

3=31,0

他们最大的区别就是部队集合的地点不一样.。

至于怎么编写一个完整的触发就去看一下我的补丁文件中aimd.ini文件的内容吧,在这里我只提供思路,而且那段代码太长了不适合展示,能看到这里,相信你们也一定能看得懂。

最新版AI补丁链接:https://pan.baidu.com/s/19F0JOp6fTzfClcBApEzDgA?pwd=QWQI

提取码:QWQI

简单展示一下内容。

好,有了多条件触发思路后,剩下的就是对战时的方案了,首先就是不讲武德的偷家,这个只要直接判断对手有没有要偷的目标就好了。再然后就是对战时的细节以及AI的联动,首先我们用检测好的战场条件然后让AI自己去使用对应作战方案,如果敌人打进来了那我们想想会发生什么,首先会因为标志兵会被击杀而失效,这个时候AI会自动偏重那些直接判断的触发比如防御部队,或偷家什么的,或者其他什么情况下都能用的方案。显得AI做好了放手一搏的准备了。

接下来就是AI细节处理了,建议大家直接用我的规则文件,毕竟这里我全部设置好了,无需再动手设置,我在规则文件(Rulesms.ini)里做了一些中文注释,大家去文件里看看。

首先是CloseEnough=8192

这本是接近命令,但如果被赋予了一个很大的值AI就会认为自己时时刻刻都接近了,在aimd.ini中的有Suicide=yes的小队会无视此语句并贴脸目标位置 no则受到攻击或遇到敌人时移动指令会被中断进而执行接下来的指令。

一般接5、9,0、47、0 号指令等或者与6号指令形成一个闭环。

其次是Aggressive 与 Suicide这两个属性, 决定了部队能否进行走A(非锁定式)

在CloseEnough=8192下效果会非常显著,最显著的就是AI辐射遇到敌人会蹲下来,当然是要写到脚本进行循环的。

[S-deso-nahand]

Name=辐射蹲苏军兵营

0=58,9

1=14,0

2=43,0

3=53,0

4=47,131083

5=8,2

6=9,0

7=5,32

8=47,131083

9=9,0

10=5,32

11=6,9

这个是非绝对性蹲下脚本

[S-deso-nahand]

Name=辐射蹲苏军兵营

0=58,9

1=14,0

2=43,0

3=53,0

4=47,131083

5=8,2

6=9,0

7=5,32

8=47,131083

9=9,0

10=5,32

11=6,9

这个是绝对性蹲下脚本

他们的区别就是一个5,2命令(集合并原地等待2帧)可以理解为集体集合延时。这样的话可以丝毫执行下一条指令,如果没有的话,辐射不一定会蹲下来,那个时候就是计算对手的威胁值了,大的话就会蹲,小的话就会原地罚站32帧。配合履带车,就可以实现履带车遇到敌人就立马下辐射原地蹲了,其中一定要有延迟不然刚蹲下就起来了。

本教程到此结束,感谢大家的观看,如果遇到什么不明白的不要问我,我是不会回答的,因为本AI的更新到此结束,在这里我只是把我的AI设计思路分享一下,更多的还是与其他的教程结合吧。

最后的最后补一下我与测试员之间的问答(精简过,不是自夸!):

最主观的感受: 被盟军飞机卡科技,发育不起来,慢慢的守不住了。其他的不足为惧。如果玩苏军或尤里还有戏。

灵活度: 比大多AI补丁好多了,确实是这样。

电脑进攻的猛烈程度: 能接受 1v2轻松, 1v3困难,刚刚好。

电脑整体作战方案触发合不合理: 合理,没啥不明显不对的地方,挺流畅的。

电脑在劣势的情况下白给的多不多: 电脑毕竟是电脑,期望不能和人一样,不太多。还行。

电脑有没有反复用同一个战术白给: 基本不会有。

电脑盟军给不给力: 可以,和对面一样的猛烈。

电脑基地内堵塞的情况严不严重: 中、大地图不严重,小地图没办法。

红警

制作主要分四步去写

1) [TaskForces] [特遣部队]=指定一支队伍里都由哪些单位组成

2) [ScriptTypes] [脚本] =指定一支队伍将要进行的作战行动

3) [TeamTypes] [作战小队] =指定一支队伍的基本设置编成

4) [AITriggerTypes] [AI触发] =设置当达到某些条件时电脑就会出这组部队

*******************************************************

制作详解:

第1步:如果你要添加AI设置,首先要在AIMD.INI里找到 [TaskForces]

在其后面添加你要写的名称,官方一般为:0=05C60C4C-G,为16进制

其实我们完全可以不按官方的格式,如:132=ZGLJGJ-G[注册完成]

第2步:写特遣部队的组成部分,也就说该部队由哪些单位组成的

[ZGLJGJ-G];这儿必须用你注册的名称

Name=1 ZGB2-1;注释作用,可以随意写

0=10,E2;必须要从0=开始,10表示单位数量,E2是单位名称[和RULES里注册名保持一致]

Group=-1;缺省,所有的后面都应该有此句

好啦,这样一个由10个动员兵组成的部队就完成了,那如果你还想添加其它单位怎么办?

晕!0以后当然是1,按顺序下去,你可以添加很多单位进去的

第3步:最关键部分,也就是为部队写动作脚本,命令部队去干些什么

找到[ScriptTypes],在后面添加你的脚本名称如:ZGJFJ-G[实际也就是注册]

然后就是写脚本啦:

看:[ZGJFJ-G];注册名

Name=JFJ-1;注释作用,可以随意

0=54,0;在自己阵地集合

1=53,0;集团冲锋去敌方阵地

2=0,1;见到什么就攻击什么

3=0,6;攻击敌重工

4=0,9;攻击敌电站

5=49,0;重复以上动作,直到任务完成

6=0,5;攻击机动部队

*********************************

**这里的0=54,0

54=在自己阵地集合,0为默认值

**6=0,5

0=攻击,5=机动部队

脚本完成!

第4步:作战小队设置

找到[TeamTypes],在后面添加你的小队名称

如:AAAAAA-G[实际是注册]

[AAAAAA-G];和注册名一样

Name=ZG01-A;可以随意

Name ;这个仅仅是作为注释用 没有实际意义

VeteranLevel=1 ;经验等级 1=无级 2=一级 3=三级 任务地图里才能设为2或3

MindControlDecision=0 ;在YURI游戏里电脑的尤里方控制别人后会把俘虏怎么样。

0 = 无法心灵控制别人 (也就是部队里根本就没有能控制别人的单位,就得是0)

1 = 加入另外需要的队伍

2 = 放进部队回收站

3 = 放进生化反应堆

4 = 前去攻击敌人

5 = 就在原地

Loadable=no=;部队攻击完后撤退,待会再攻击(一般使用在像飞机那样需要补充弹药的部队里)

Full=no=;完整小队 AI(MD)INI里得设为=no

Annoyance=no=烦恼效果(任务地图)AI(MD)INI里得设为=no

GuardSlower=no=防卫减缓 NO代表部队在基地中作出还击时不会变慢

House= 就NONE 除非是单个国家的特殊攻击模式

Recruiter=no=AI会动用现有的单位去组成队伍,优于

去建造新的单位来组成队伍

Autocreate=yes=没有达到触发条件电脑也会生产这支部队,只不过部队将不会去执行任何命令

Prebuild=no=电脑在还没需要时预先建造此队伍

Reinforce=no=这是增援部队,一般用在防御部队。

Droppod=no=这是空降部队(任务地图)AI(MD)INI里得设为=no

UseTransportOrigin=no=使用存在的运输工具(当前一运输型部队是TransportsReturnOnUnload=no=运输单位在完成卸载后返回基地)

Whiner=no=哀叫效果(任务地图)AI(MD)INI里得设为=no

LooseRecruit=no=当前的部队完成任务后将会被解散,而不会加入另一队中

Aggressive=yes=该部队将按Script=所使用的命令组里的命令去执行。

Suicide=no=这是将进行自杀攻击的部队

Priority=5 建造部队时的优先权。通常为整数,数字越小,AI建造的可能性越大

Max=1 共生产几组这样的部队

TechLevel=0 指定可以制造此队伍的最低科技水平,通常设为0

Group=-1 分组

OnTransOnly=no=这是传送部队(任务地图)AI(MD)INI里得设为=no

AvoidThreats=yes=部队会忽略任何攻击继续前进. no=在遇到敌人时就会开火,在被攻击时就会停下还火

IonImmune=no 默认NO 不要更改

TransportsReturnOnUnload=no=运输单位在完成卸载后返回基地

AreTeamMembersRecruitable=no=可以为该组部队补充队伍中被消灭的成员

IsBaseDefense=no=这是在基地里防御的部队

OnlyTargetHouseEnemy=no=只对付敌对玩家的单位,而不攻击中立的单位

Script=ZGJFJ-G 所使用的命令组[即脚本]

TaskForce=ZGLJGJ-G 所使用的部队成员组[即特遣部队]

注意:这里你完全可以根据你的需要去进行修改

好啦!小队完成!

第5步:也是最后一步,即触发条件设置

找到[AITriggerTypes],注意这里不需要注册

你直接在它后面写上你的就可以啦

如:10RBHMG-G=ZG01-A,AAAAAA-G,Russians,1,0,GAPILE,0000000003000000000000000000000000000000000000000000000000000000,70.000000,40.000000,70.000000,1,0,2,0,,1,1,1

10RBHMG-G;没实际意义的,但必须得写

ZG01-A;注释作用

AAAAAA-G;作战小队注册名称

Russians;所属国家

1,0**1=单位的科技等级,0=有9个值:

-1: 普通触发

0: 敌人拥有物品

1: 自己拥有物品

2: 敌人电量黄

3: 敌人电量红

4: 钞票超过数量

5: 铁幕完成超过AIMinorSuperReadyPercent= 数量

6: 超时空完成超过AIMinorSuperReadyPercent= 数量

7: 中立拥有物品

GAPILE;拥有物品或是单位

0000000003;这里的3表示大于或等于的意思,总共有以下六个值:

0=小于

1=小于等于

2=等于

3=大于或等于

4=大于

5=不等于

70.000000,40.000000,70.***触发比重,通常这样的为最高比重

1,0,2,0*****1表示为遭遇战可用,0=???,2表示是苏军阵营使用它[1为盟军,3为尤里],0表示是攻击部队[1为基地防御部队]

;填关联触

触发名称,没有就照这个写

1,1,1分别表示简单,中等,困难,如果数值为0时,表示在那个游戏级别里此触发不会触发

全部完成!

*******************************************************

整个连起来解释:

1,我设置一个由10名动员兵组成的作战小队

2,此小队开始在自己基地集合,再集体冲锋去敌军基地,见到什么就攻击什么

然后就攻击敌军兵工厂,接着再攻击敌军电站,一直到所指令的任务完成为止

最后是攻击敌军的机动部队

3,触发:此小队为苏俄独有,当盟军方拥有盟军兵站的数量大于或是等于零时

此小队开始成立,此小队的触发在简单.中等.困难三级,游戏中都会出现

………………………………分割线…………………………………………

自创国家

打开Rulesmd.ini

第一步是找到国家注册表[Countries]这一段落。

[Countries]

;盟军(GDI派别国)

0=Americans

1=Alliance

2=French

3=Germans

4=British

;苏军(NOD派别国)

5=Africans

6=Arabs

7=Confederation

8=Russians

;尤里(THIRD派别国)

9=YuriCountry

;你自己添加的国家(FOURTH派别国)

10=GDI

11=Nod

12=Neutral

13=Special

正如你所见,总共有14个国家,包括5个盟军国,4个苏军国,1个尤里国,后面还有被官方屏蔽,不能出现在国家选择表里的GDI、NOD、Neutral 、Special。

通过破解后,你可以简单地往国家注册表里增加国家,要注意一点,新增加的国家必须注册在原有国家后面,即从14号开始注册。

比如,你想新增加一个苏军国,一个尤里国以及一个FOURTHSIDE的独立派别国,那么在[General]段里,你需要添加上一个标签:NewPlayableCountries=#,其中#表示你添加了的新国家的数量,本例中,数量为3。

不需要(其实也应该尽量避免)重新调整国家的注册顺序,否则将会影响到任务里的国家属性,结果导致任务出现异常。建议最好是先将GDI和NOD这两个名额用掉,因为它们与任务无关,不会对任何地方产生影响,并且能够正常被“随机选取国家”选中。但如果添加的国家数量超过了2个,也就是说,不光用掉了GDI和NOD,还自己新注册了国家,则多半会在对战中出错。(原因:平台里每个国家都有相关的资源调用语句,你新注册了国家,却找不到相关语句,自然无法调用图象资源,也不会被平台认为是对战中的一个有效产战方)

调整一下第10条到第13条的注册顺序,使13=Neutral,14=Special,15=GDI,16=NOD。而10到13则让它留空,等下面有用。

把你打算新添加的国家从10开始注册,占据满10到12这三个名额,即10=YuriC2, 11=SovietC5, 12=FourthCountry

最后看看,一定要保证13=Neutral, 14=Special, 15=GDI and 16=Nod。GDI和NOD要注册在最后,这是关键点。对照下面看看你改对了没有

[Countries]

0=Americans

1=Alliance

2=French

3=Germans

4=British

5=Africans

6=Arabs

7=Confederation

8=Russians

9=YuriCountry

10=YuriC2

11=SovietC5

12=FourthCountry

13=Neutral

14=Special

15=GDI

16=Nod

国家注册表改完后,到派别[Sides]段去,将你新添加的国家赋予到相关的派别里去。比如SovietC5就该放到NOD派里,YuriC2放到THIRDSIDE派里,但原版的RULES并没有FOURTHSIDE这个派别,怎么办?没关系,平台只要有相关代码,我们就能往RULES里添加,这个先等一下再说

然后寻找到国家定义[YuriCountry]的位置,在它后面补充上你新增加的那3个国家的相关定义和设置。不用我说了吧,属于哪个派别,复制同派的国家代码再作细微修改就行了。

;比如将RUSSIANS俄罗斯的代码复制到这里,来给SovietC5设置,注意修改这些细微的地方

[SovietC5]

UIName=Name:SovietC5 ;UINAME是用于CSF作翻译用的,相关内容要填入CSF,才能把SovietC5这个代码翻译成中文字,到底叫什么名字,你自己决定。

Name=Soviets 5th Country ;NAME是个没什么用的语句,不会对任何东西造成影响,随便你写好了

Suffix=Soviet ;当玩家选用该国家时,调用的界面为黄色界面

Prefix=B ;没弄懂这个B代表什么,反正照着写就是了

Color=DarkRed ;用于任务时,该国家的默认颜色为深红色。深红色的苏联的默认颜色

Multiplay=yes ;能否在对战中被玩家直接选择。注意,即使不能直接选择的国家也能被随机选中

Side=Nod ;派别属于NOD,这个是决定了任务继承性的效果,只有同属于NOD,才能相互继承任务,否则就出现“无法载入地图”

SmartAI=yes ;使用灵巧AI,没弄懂什么叫灵巧AI,反正照着填就OK了

[YuriC2]

UIName=Name:YuriC2

Name=Yuris 2nd Country

Suffix=Soviet ;由于平台只有蓝、黄两套界面,所以尤里也不得不使用黄色界面,因为他用蓝色界面就不好看了

Prefix=B

Color=Purple ;默认颜色为紫色

Multiplay=yes

Side=ThirdSide

SmartAI=yes

;its a tweaked clone too.

[FourthCountry]

UIName=Name:FourthCountry

Name=Country for the 4th side

Suffix=Soviet ;其实本人建议第四派别应该用蓝色界面,这样才对称

Prefix=B

Color=Gold

Multiplay=yes

Side=FourthSide ;终于看到第4派别了

SmartAI=yes

上面都做完了,现在就要给新国家制作新的国旗、载入画面、雷达图,以及常常被人遗忘的的EVA解说音。我们在这里就用现成的,就是把

游戏中原有的相关文件提取出来改成新国家的所需的文件。我们用XccMixer提取,在游戏目录下提取路径如下:

国旗:ra2.mix\local.mix\中的pcx格式文件

查找到国旗图片,释放出来,比如我们要用苏联的国旗rusi.pcx作为新国家的国旗,就把这个文件释放出来。

载入画面:ra2md.mix\laodmd.mix\中的SHP(TS)格式文件

在这里我们用ls800oraq.shp作为载入画面,同时把它相对应的调色板文件mplsi.pal一起提取出来。尤里版本的要在ra2md.mix中找载入画面。

不然画面不对称。

调色板小技巧:如何知道所要提取的图片是对应那个调色板呢?在XccMixer软件中如此操作----查看\调色板\自动选择或Ctrl+Q,这样就调好

正确的调色板,如还是不对,点多几次“自动选择”。再----查看\调色板\Red Alert 2\看看这里勾选了那项pal,那么就是这个SHP的调色板

回到XccMixer的ra2md.mix\laodmd.mix\目录下找到这个pal,释放出来。

那么我们要的国旗和载入画面都找来了,现在就把提取的三个文件改名,新国家在游戏里的相关图象资源调用的命名规则如下:

国家的国旗的图像rusi.pcx=c##_flag.pcx

国家的载入图像ls800oraq.shp= c##_ls.shp

国家的载入调色板mplsi.pal=c##_ls.pal

##表示我们在rules.ini文件中的[Countries]新国家注册段下所注册国家的序号,如果我们注册如下:

10=CHN;注册新的国家

11=FourthCountry;注册新的国家

如果你的国家是10号注册的,那么相应建立文件就是c10_flag.pcx ,c10_ls.shp ,c10_ls.pal

如果你的国家是11号注册的,那么相应建立文件就是c11_flag.pcx ,c11_ls.shp ,c11_ls.pal

以此类推,它们是新建的文件,不是什么代码!

在这里,我们注册的是10号,所以文件改成如下:

c10_flag.pcx

c10_ls.shp

c10_ls.pal

改好名字后复制这三个文件到游戏目录下,这样国旗和载入画面就完成了。你也可以自己做新的国旗和载入画面。接下来我们要做雷达图,

雷达图就是右上角的那个小地图,它有雷达站时有一个磁磁响从黑屏变可见小地图的SHP动画,在这里我们也是用原游戏中的材料。提取

ra2.mix\下的sidec01.mix或sidec02.mix,将整个sidec02.mix释放出来,并改名为sidec04.mix,复制到游戏目录下。至此,载入画面,国旗

和雷达图完成。

要在游戏显示中文要用语言编辑器RA2CStrEditor添加,规则如下:

Name:Country## ;国家名称翻译

Name:Country##SW ;该国家的特殊单位名称翻译

LoadBrief:Country## ;载入时该国家的说明语(比如“幻灵坦克是一种非常令人头痛的战车,它能在你不备之时摧毁你的部队,

然后又不声不响地消失”)

STT:Country## ;对战选择国家时,界面最下端显示的相关国家情况说明语(比如“解放联盟由第三世界联合军队与DA师组成,特

殊单位有钢铁战士和幻灵坦克)

前期工作就做完了,但还不能进入游戏,因为没有基地车和建造厂(即基地车展开后的建筑),一进入游戏就会结束并退出,要想能进入

游戏,起码要有新兵种和基地车两种东东,现在我们来注册新基地车,这里我们依然用原有的东西来搞,在rulesmd.ini中查找AMCV(盟军基

地车),选搜到BaseUnit=AMCV,SMCV,PCV 这是注册基地车语句, 新基地车需要注册到BaseUnits=语句中,否则游戏将不认为它是基地车,

那么电脑一旦有了这个基地车,它就不会主动展开。在这里我们把新基地车命名为CHCV,注册进去 BaseUnit=AMCV,SMCV,PCV,CHCV 往下

查找,找到

******* Vehicle Type List 战车类列表*******

[VehicleTypes]

1=AMCV;Allied MCV

2=HARV

3=APOC

4=HTNK

、、、、、、

83=AMBU

84=CIVP

在最后84=CIVP下我们注册基地车为战车类中去85=CHCV,如下:

[VehicleTypes]

1=AMCV;Allied MCV

2=HARV

3=APOC

4=HTNK

、、、、、、

83=AMBU

84=CIVP

85=CHCV

再往下搜,找到盟军基地车的代码:

[AMCV]

UIName=Name:AMCV

Name=Allied Construction Vehicle

Image=MCV

Prerequisite=GAWEAP,GADEPT

Strength=1000

Category=Support

Armor=heavy

DeploysInto=GACNST

TechLevel=10

Sight=6

Speed=4

Owner=British,French,Germans,Americans,Alliance

、、、、、、

把这些复制一份到任何地方,注意修改这几个地方:

[CHCV] ;改成我们起的名称

UIName=Name:CHCV ;游戏中显示的名字

Image=CHCV ;对应的VXL文件或SHP动画文件,基地车动画不能和其他三个基地车用同一个文件,所以新名命一个

Prerequisite= ;建造前提,填我们等下注册好的建筑

Owner=CHN ;拥有这个车的国家

DeploysInto=GACNSTCHN;展开后变成的建筑,即是新基地建造厂,这个很重要。

、、、、、、

其它个人喜欢可以改,出了问题自己决解,保存下rulesmd.ini文件,这样我们的基地在rulesmd.ini文件中就注册完了,用同样的方

法,我们把美国大兵E1代码复制过来注册成我们的新兵种,我们就起这个名字E1CHN,到这里时我们可能把其余的建筑、兵种和坦克都

不用注册先。接下来就是要提取原红警中的兵种SHP图、建造厂建筑SHP图片和基地车VXL文件,这三个SHP图集在如下路径:

美国大兵

ra2.mix\conquer.mix\gi.SHP

建造厂建造动画

ra2.mix\isotemp.mix\gacnstmk.shp

建造厂损毁动画

ra2.mix\generic\ggcnst.shp

ra2.mix\generic\ggcnst_a.shp

ra2.mix\generic\ggcnst_b.shp

ra2.mix\generic\ggcnst_c.shp

ra2.mix\generic\ggcnstdm.shp

基地车

ra2.mix\local.mix\mcv.vxl

ra2.mix\local.mix\mcv.hav

好了,图片已提取,先把文件改成我们新国家专用名,你也可以自己另取名字,名字要和上面注册的名字要一样,比如上

面我们注册了基地车是CHCV,兵注册为E1CHN。按规则改成如下:

giCHN.SHP

gacnstCHNmk.shp

ggcnstCHN.shp

ggcnstCHN_a.shp

ggcnstCHN_b.shp

ggcnstCHN_c.shp

ggcnstCHNdm.shp

CHCV.hav

CHCV.vxl

最好的这样子命名,其他方式没有试过。

接下来我们就要把这些注册到游戏中的rulesmd.ini和art.ini中去,到下面指定的地方去注册:

在rulesmd.ini文件中只注册那三个_a、_b、_c、动画。

找到如下地方

; *** Animation List 动画列表***

; This is the complete list of animations available. There are

; internal tables that rely on this exact order. Additional

; animations should be appended to the end.

[Animations];动画注册

1=TWLT100

3=ELECTRO

、、、、、、

1071=YAPOWR_CD

在后面加:

1072=GACNSTCHN_A

1073=GACNSTCHN_B

1074=GACNSTCHN_C

注意第二个字母G要改成A,关于大小写好像不分的,我都是按原版名字加入字母修改的新名称,自己也可以改另外的,不过要有规则的改,

自己去研究下吧。

接下来到art.ini中去注册了,在art.ini注册也要像开头那样,找到相应的代码复制一分到别的地方,改成上面新起的名字:

[GICHN];新兵种,美国那个大兵

Cameo=GIICON;图标我们照用原来的

AltCameo=GIUICO;

Sequence=GISequence

Crawls=yes

Remapable=yes

FireUp=2

PrimaryFireFLH=80,0,105

SecondaryFireFLH=80,0,90

[GACNSTCHN];新基地(建造厂)

Remapable=yes

Foundation=4x4

Height=4

AnimActive=0,26,3

Buildup=gacnstCHNmk;建造动画

DemandLoadBuildup=true

FreeBuildup=true

NewTheater=yes

ActiveAnim=GACNSTCHN_A;损毁动画

ActiveAnimDamaged=GACNSTCHN_AD损毁动画

ActiveAnimZAdjust=-130

ActiveAnimYSort=362

ProductionAnim=GACNSTCHN_B;损毁动画

ProductionAnimDamaged=GACNSTCHN_BD损毁动画

、、、、、、

相应注册那几个损毁动画:

[GACNSTCHN_A];新基地损毁动画注册

Normalized=yes

Start=0

、、、、、、

[GACNSTCHN_AD];新基地损毁动画注册

Image=GACNSTchina_A

Normalized=yes

Start=3

、、、、、、

[GACNSTCHN_B];新基地损毁动画注册

Normalized=yes

Start=0

LoopStart=0

、、、、、、

[GACNSTCHN_BD];新基地损毁动画注册

Image=GACNSTCHN_B

Normalized=yes

Start=20

、、、、、、

基地车VXL注册,这里是复制盟军基地车MCV的代码:

[CHCV]

Cameo=MCVICON ;图标指定为盟军那个图标

Remapable=yes

Voxel=yes

好了。把rulesmd.ini和art.ini及我们刚才提取并改好名的所有文件都复制到游戏目录下,现在可以进入游戏试看看了,呵呵只有兵和

基地,什么也不能造,还等什么,用上面的方法,把自己想要的东西一样一样注册好,一个国家后就建成了。

还要在以下地方对应相应的建筑注册:

PrerequisitePower=GAPOWR,NAPOWR,NANRCT,YAPOWR 注册电场

PrerequisiteFactory=GAWEAP,NAWEAP,YAWEAP 注册战车工厂

PrerequisiteBarracks=NAHAND,GAPILE,YABRCK 注册兵营

PrerequisiteRadar=GAAIRC,NARADR,AMRADR,NAPSIS 注册雷达

PrerequisiteTech=GATECH,NATECH,YATECH 注册高科

PrerequisiteProc=GAREFN,NAREFN,YAREFN 注册矿山

PrerequisiteProcAlternate=SMIN 注册可展开矿车之名

BuildConst=GACNST,NACNST,YACNST 基地注册

BuildPower=NAPOWR,GAPOWR,YAPOWR 电场注册

BuildRefinery=NAREFN,GAREFN,YAREFN 矿山注册

BuildBarracks=NAHAND,GAPILE,YABRCK 兵营注册

BuildTech=NATECH,GATECH,YATECH 高科注册

BuildWeapons=GAWEAP,NAWEAP,YAWEAP 战车工厂注册

BuildRadar=GAAIRC,NARADR,AMRADR,NAPSIS 雷达注册

ConcreteWalls=GAWALL,NAWALL,GAFWLL 墙注册

AlliedBaseDefenses=GAPILL,ATESLA,NASAM 盟军防御建筑注册

SovietBaseDefenses=NALASR,NABNKR,TESLA,NAFLAK 苏军防御建筑注册

ThirdBaseDefenses=YAGGUN,YAPSYT,NATBNK 尤里防御建筑注册

FourthBaseDefenses= 新国家防御建筑注册

RepairBay=GADEPT,NADEPT,CAOUTP 定义修理厂

BaseUnit=AMCV,SMCV,PCV 定义基地车

HarvesterUnit=HARV,CMIN 定义矿车

PadAircraft=ORCA,BEAG 定义需要在机场降落的飞机

该国家已经做完整了,拥有自己的独立军队和建筑,并且能够正常使用。

呵呵,不要光顾着人类玩家的定义,[AI]段里也需要同样这样定义,否则电脑选该国家将什么都不会造。

找到:

[AI]

BuildConst=GACNST,NACNST,YACNST

BuildPower=GAPOWR,NAPOWR,YAPOWR,NANRCT

BuildBarracks=GAPILE,NAHAND,YABRCK

BuildRefinery=GAREFN,NAREFN,YAREFN

BuildWeapons=GAWEAP,NAWEAP,YAWEAP

BuildRadar=GAAIRC,NARADR,NAPSIS

BuildTech=GATECH,NATECH,YATECH

ConcreteWalls=GAWALL,NAWALL,GAFWLL

BuildNavalYard=GAYARD,NAYARD,YAYARD

BuildDummy=GAPILL,NALASR,YAGGUN

在后面相应项注册自己新的东东。大功告成。一个国家就出来了。呵呵、、、、、、这些只是本人的小小经验,会有很多不足的。有不对的

自己慢慢研究了。

下面是网上教程的一些有用的文章节选。我没有做AI.INI的写认,也没有去看过AI.INI教程,一个完整的MOD是少不了AI.INI设计的。呵呵

以下这些语句是第四派别的相关特殊语句

国家定义[YuriCountry]的位置可以添加以下几项到新国家注册栏中,一个派别只能有一种围墙,一种基础电厂,一种高能电厂,一种残兵。

FourthPowerPlant= ;填电厂

FourthBaseDefenseCounts= ;后填3个数,用逗号隔开,控制第四阵营简易,中等,困难三种级别AI的防御设施数

FourthCrew= ;后填士兵名,控制第四阵营的残兵(建筑被摧毁或变卖后跑出来)

FourthSurvivorDivisor= ;后填数,控制第四阵营的建筑残兵商数(建筑价格除以这个数即得出现的残兵数)

BaseDefenses= ;后填建筑名,让电脑认得第四阵营的防御建筑(我猜的)

以上代码大多可以从原RULES里找到相应的原型,从旁边的说明里就看得出是啥意思了

还值得一提的是,你可以给第三派和第四派指定独立的载入色,也就是在[Colors]里添加上以下语句:

ThirdLoad=

FourthLoad=

还剩下资源和其他一些小问题

在开始之前,你得明确各个派别分别是什么编号。也就是在[Sides]段里定义的上下顺序。Allies为0,soviets为1, 3rdside为2,

4thside为3。这个数字最大的作用是指定对应派别的资源包命名规则sidec##.mix中该用哪个数字,比如allies是sidec01.mix, 那

4thside就该是sidec04.mix。

AIBasePlanningSide=3。这个语句是用在建筑上的(如建造厂,在其代码中可找到),一般情况下看起来似乎没什么作用,但当你同时拥

有多种基地时你就知道厉害了,没有这个语句,你的建筑将杂乱地堆在一起,让你找半天找不到你想建的建筑,叫你恨不得把基地卖了。因

此AIBasePlanningSide就是把各个派别的建筑分类放置的语句,盟军建筑用了0,苏军建筑用了1,尤里建筑用了2,那第四派就用3吧,其实

这4个顺序是可以改的,你完全可以把盟军改成3,把第四派改成0。这个语句似乎也能用在单位代码里,估计也能让单位分类排列。

一般的单位就不需要像基地车那样分得那么清楚,你完全可以把Owner写上所有国家也没事。要是你分得像基地车那么明显的话,那中国的

战车就决不能从盟军工厂里出来了,即使两种工厂都有。按道理来说,只要满足了建造条件,只要是工厂就应该能出任何派别的战车才对。

下面这个是个非常重要的步骤,你需要给第四派别做一个GUI,GUI是什么都不知道?我晕,GUI就是界面,也就是该派别调用的图象资源包

里的图象文件组成的游戏操作界面,,里面包含了SHP、调色板等等图象方面的资源文件,命名规则是sidec##.mix,对于第四派别来说,就

该命名成sidec04.mix。具体做法有两中,一是自己用MIX EDITOR自己建立,另一种是先从ra2.mix里提取出sidec01或02.mix,再改名称,

并把需要换的换成第四派别的文件。需要注意的是,盟军和苏军的GUI不同,很多图象的尺寸都有不同,前者是蓝色风格,后者是黄色风格,

官方照搬了黄色风格作为尤里的截面,你完全可以照搬其中一种作为第四派别国的界面。

最后要做的是给第四派别国写独立AI,这个麻烦事的确非常麻烦。

展开全部
同类热门