AI文件说明

0000 1月前 117

开个贴随便写点东西。

欢迎一起讨论。

1

[未完成]

如果有萌新的话。。。先熟悉一下代码的样子好了。

1.1

<模块 内容../>

1.2

<模块>

  内容

  ..

</模块>

2

这里不考虑加新阵营的情况。

AI是分开放在许多文件里的,文件内容主要有

AIPersonalityDefinition

AIBudgetStateDefinition

SkirmishOpeningMove

AIBuildStateDefinition

AIStrategicStateDefinition

AITargetingHeuristic

AIMicroManagerData

如果有其他东西以后再加。

更新。

单位文件的SkirmishAIInformation会影响AI出兵。建筑摆位也在这个SkirmishAIInformation里调。

2.1

AI使用单位技能的设置在LogicCommand里的AISpecialPowerInfo中。

切换武器的技能同理,在ToggleState加入SkirmishAiInfo模块来调整AI使用技能。




添加AI用到的是AIPersonalityDefinition

AI的资金分配AIBudgetStateDefinition

AI开局SkirmishOpeningMove

AI出兵和操作

AIBuildStateDefinition

AIStrategicStateDefinition

AITargetingHeuristic

AIMicroManagerData

2.2

AI文件的位置。和说明。

SageXml\SkirmishAI

这里可以看到原版AI的代码。

Schemas\xsd

这里也有个SkirmishAI文件夹。可以当作教程看。

2.3

屏蔽原版AI

Data\AdditionalMaps\MapMetaData_Mod

加入类似这样的东西,总共9个

<AIPersonalityDefinition

id="1AlliedBalanced"

PersonalityType="1AlliedBalanced">

<CountAsStructureForBuildPurposesFilter/>

</AIPersonalityDefinition>

3.0AI的摆放结构。

什么东西放在什么位置看xsd就知道了,不需要特别说明。

这里是说明一下原版的AI的分层。

比如一个盟军AI从BasePersonality

到AlliedBalanced

后一个文件inheritFrom前一个文件。

BasePersonality

CoopBasePersonality

AlliedCoopBasePersonality

AlliedCoopBaseSkirmishPersonality

AlliedBalanced


根据我的经验,可以把他们放在同一个文件里,但是只少要有2个AIPersonalityDefinition,

并且其中一个inheritFrom另一个。

自己做AI的时候根据自己喜好摆放吧方便阅读。


3.1.0

AIPersonalityDefinition内容简介。

看过原版的AI之后,我们知道

AIBuildStateDefinition

AIStrategicStateDefinition

都是要放进这个AIPersonalityDefinition里的。比如这样

    <BuildState id="awsl" State="awsl" Difficulty="MEDIUM HARD BRUTAL"/>

    <StrategicState id="zlyp" State="xxhg" Difficulty="MEDIUM HARD BRUTAL"/>

注意为了方便阅读最好让id和State保持一致,上一个StrategicState的id和State不同这样是不合适的。

还有AI播放的电影,声音也在这里。其他的看xsd好了不列举了。

id

不解释

PersonalityType

排序用的。重复会导致崩溃或其他不明bug。(1)

[未完待续]

3.1.1添加一个空AI。

先加一个带有CountAsStructureForBuildPurposesFilter

的AIPersonalityDefinition

(就像原版的BasePersonality那样),

然后加另一个AIPersonalityDefinition

并且inheritFrom之前的那个,并且SkirmishPersonality="true"

设置AI阵营。

<Side></Side>

后加的那个AIPersonalityDefinition就算是得到一个新AI了,带有CountAsStructureForBuildPurposesFilter的那个只是作为基础文件。

3.1.2 给之前的空白AI设置PersonalityUIName。然后就可以显示AI的名字啦。(记得勾选。复制额外文件。)

3.1.3 添加充数的复读AI。inheritFrom一个原有的可以正常玩的AI,PersonalityType改新的。完成。


3.2 AIBuildStateDefinition

这个东西可以用来出建筑。

那么。来一个让AI出多个出兵建筑的模块吧。

首先找几个原版的AIBuildStateDefinition看看里面都有啥。也许你注意到了类似这样的东西。

<BuildEntry Build="SovietFighterAircraft" Heuristic="BEST_UNIT_EXPECTED"/>

那么我们在xsd搜索一下这个BEST_UNIT_EXPECTED吧。

然后我们就找到了一大坨类似的选项,之后注意到一个比较特别的东西BUILD_TEST。

于是我们把它装到盟军机场上。就得到了一个不停出机场的模块。


4.1

没想好。


0.1

注意事项

(1)PersonalityType

排序用的。重复会导致崩溃或其他不明bug。

(2)CountAsStructureForBuildPurposesFilter

总之看看xsd,需要什么能用什么。

最后于 1天前 被0000编辑 ,原因:
最新回复 (4)
  • 0 引用 2
    听说困难ai的智商是最聪明的,这是真的吗?
  • zyb123 1月前
    1 引用 3
    Czarguard 听说困难ai的智商是最聪明的,这是真的吗?
    差不多吧 反正其实都差不多。。
  • Ngen 28天前
    0 引用 4
    这是什么编辑器?叼哇!
  • 0000 28天前
    0 引用 5
    Ngen 这是什么编辑器?叼哇!
    Microsoft Visual Studio
    • RAT红警社区
      6
        登录 注册 QQ登录(不可用)
返回