红色警戒2ai教程

更新时间:2023-07-05 16:25:33 阅读: 评论:0

TS平台AI(MD).ini教程(LH_Mou版)
声明:此教程为我个人的独力完成,其内容凝结着我近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,<all>,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分别代表第四、五、六阵营。
   基地防御  :已废弃,改为使用作战小队中的IsBaDefen参数。此处建议使用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                        ; !  降低反应速度,作用不明
  Hou=<none>                        ; ! x 创建小队成员时的所属作战方
  Recruiter=no                        ;    强制重组优先级较低的小队的成员,如果它们是可以重组的
  Autocreate=yes                        ; !  自动建造
  Prebuild=no                                ; !  预先建造,作用不明
  Reinforce=no                        ; ! x 增援部队
  Droppod=no                                ; ! x 使用空降舱进入战区
  UTransportOrigin=no                ; !  使用原始的运载工具
  Whiner=yes                                ; !  哀叫效果,作用不明
  LooRecruit=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        ;    小队成员是否允许重组
  IsBaDefen=no                        ;    基地防
御小队
  OnlyTargetHouEnemy=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处永久暂停而无法继续。

本文发布于:2023-07-05 16:25:33,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/89/1068995.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:小队   触发   单位   敌方   允许   作用   作战
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图