张赎金 发表于 2021-10-29 18:11:24

最近尝试编写自己的战役AI,但是由于不是很会想问一下

1、金冠和银冠代码是啥?
2、草枪的升级代码是什么,hd里好像没找到?
3、我设定只招募枪兵,骑士和弩手,但是他会自己生产民兵这是为什么?
我由于自己不会又不是很想看那种教程就直接找了一个官方给的标准AI改,但是他是个2000年的,很多新的东西他是没有的,所以想来问问

kingzhang1017 发表于 2021-10-30 12:33:44

帝国2的年代改过AI,建议还是要了解下基本的AI命令,语法之类的。比如 Train Militia就是招募民兵的命令,貌似还有一个Line的概念,意思是一个系列的兵种

love371482 发表于 2021-10-31 02:45:10

DE里面,要让AI研究金银冠,最简单的是这个:

金冠:(defrule
    (can-research-with-escrow my-unique-research)
=>
    (research my-unique-research)
)

银冠:(defrule
    (can-research-with-escrow my-second-unique-research)
=>
    (research my-second-unique-research)
)

如果想让本文明研究其它文明的金银冠,你就需要填科技ID

举例:(defrule
    (can-research-with-escrow 123)
=>
    (research 123)
)




love371482 发表于 2021-10-31 02:45:15

DE里面,要让AI研究金银冠,最简单的是这个:

金冠:(defrule
    (can-research-with-escrow my-unique-research)
=>
    (research my-unique-research)
)

银冠:(defrule
    (can-research-with-escrow my-second-unique-research)
=>
    (research my-second-unique-research)
)

如果想让本文明研究其它文明的金银冠,你就需要填科技ID

举例:(defrule
    (can-research-with-escrow 123)
=>
    (research 123)
)




love371482 发表于 2021-10-31 02:46:55

草枪的研究是这个:(defrule
    (can-research-with-escrow ri-elite-steppe-lancer)
=>
    (research ri-elite-steppe-lancer)
)

当然,写科技的ID也是一样的。

love371482 发表于 2021-10-31 02:48:25

如果是训练枪兵骑士和弩手,则是这些:
(defrule
    (unit-type-count-total spearman-line < 1)
    (can-train spearman-line)
=>
    (train spearman-line)
)


(defrule
    (unit-type-count-total knight-line < 1)
    (can-train knight-line)
=>
    (train knight-line)
)


(defrule
    (unit-type-count-total archer-line < 1)
    (can-train archer-line)
=>
    (train archer-line)
)

后面的数字写好多,就训练好多,写10,就会训练10个,同样的,在训练的单位后面写ID也可以,比如想训练某些英雄或者特殊单位。

love371482 发表于 2021-10-31 02:49:30

若在训练语句后面写ID,只能写这个兵种最低等级的ID号,比如想让AI训练弩手,写ID的话是“4”,写成别的就无法训练。

张赎金 发表于 2021-10-31 15:10:55

love371482 发表于 2021-10-31 02:49
若在训练语句后面写ID,只能写这个兵种最低等级的ID号,比如想让AI训练弩手,写ID的话是“4”,写成别的就 ...

多谢,我去试试
页: [1]
查看完整版本: 最近尝试编写自己的战役AI,但是由于不是很会想问一下