不科学的小默默 发表于 2014-7-18 21:11:24

求助下关于TSA的应用

本帖最后由 不科学的小默默 于 2014-7-19 09:29 编辑

前些天,我发了一个帖子求助AI问题,源建议我用TSA,今天又和RU大谈了很久,RU也建议我用TSA,我地看了一下老胡的帖子
https://www.hawkaoe.net/bbs/forum ... ad&tid=26411&ctid=9
其中谈到语句:
(defrule
(goal attack-goal attacking-now)
(strategic-number sn-maximum-town-size == 45)
(not(enemy-buildings-in-town))
=>
(set-strategic-number sn-maximum-town-size 50)
(chat-to-all "Town-size-attack: 50")
)
于是我就整段复制下来了,但是却弹出了这样的错误窗口:

对于一个AI白痴来说,只能通过论坛求助才能解决问题= =,故@Ru43 @老胡V1 @条顿武士 @Tak_小源 @枫叶の飘零 @狂~劇情狂
请问此问题出在哪儿呢,难道是1.4版本对AI的影响?

条顿武士 发表于 2014-7-18 22:12:28

默默~

首先按照英文的意思,你应该可以看懂AI报错的说明,它说第二行有一个不明的变量定义“attack-goal”

那么到AI第二行,这句话是什么意思呢?参见原帖中的说明可知:

(goal attack-goal attacking-now)                                                               
;这代码的意思是 目标编号为(attack-goal的值)的目标,它的值为 (attacking-now的值)的时候
;其实你可以无视掉这一行,反正只要知道,要攻击的时候,这一行就会成立。如果想了解更多关于goal的可以看我的另外一篇文章。      

在这里,编号为(attack-goal的值)的目标你没定义,当然不会被识别,同样, (attacking-now的值)你也没有定义,所以即便是前面的删掉后面也会出错。

这里这句话…对于你的战役来说,可以不要…因为它的意思就是“满足进行攻击的条件”。这里可以自由替换成自己想要的条件,比如电脑玩家的黄金大于2000,那么就开始攻击,这里就替换成 gold-amount > 2000,然后就可以用触发设定攻击的时机了。

如果你想让AI直接攻击,这句直接删了就行了。

枫叶の飘零 发表于 2014-7-19 08:15:05

如果不是1.4特定的或者特别苛刻的AI建议https://www.hawkaoe.net/bbs/forum.php?mod=viewthread&tid=110382用卧龙大神的AI生成器

不科学的小默默 发表于 2014-7-19 09:20:16

条顿武士 发表于 2014-7-18 22:12
默默~

首先按照英文的意思,你应该可以看懂AI报错的说明,它说第二行有一个不明的变量定义“attack-goal ...

开篇先谢谢组长{:173:},AI的报错问题已经解决了,我把那句直接删了。

但是接下来的实际效果问题,我确实无法理解{:168:}

我的AI如下写法:
(defrule
(strategic-number sn-maximum-town-size == 45)
(not(enemy-buildings-in-town))
=>
(set-strategic-number sn-maximum-town-size 50)
(chat-to-all "Town-size-attack: 50")
)

然后很奇怪的是敌人并没有做出攻击动作,为了试验我不明白的所谓的 “范围”,我曾把45和50改为250和255,、0和255,貌似都没有效果,然后我在地图正中央、战场正中央先后放置了此AI对应的TC,6次试验的时候都没有出现对应的TSA聊天语句。

请问这个又是什么原因?该怎么解决?

不科学的小默默 发表于 2014-7-19 09:22:40

枫叶の飘零 发表于 2014-7-19 08:15
如果不是1.4特定的或者特别苛刻的AI建议https://www.hawkaoe.net/bbs/forum.php?mod=viewthread&tid=110382 ...

用过了,确实简单易懂,但是我设置之后貌似没什么具体有用的效果= =,不知道是不是我设置错了,其实我只想要一个不断进攻、有士兵就进攻、中途会停下来攻击攻击他的敌人的这样一个AI。不过编辑器貌似无法实现?

不科学的小默默 发表于 2014-7-19 09:24:00

本帖最后由 不科学的小默默 于 2014-7-19 09:28 编辑

如果能够帮忙改成成品的TSA,当然是最好的了~~~{:173:}最近这个问题困扰了我很久了,测试的一半时间都在纠结AI的问题。

枫叶の飘零 发表于 2014-7-19 12:33:00

不科学的小默默 发表于 2014-7-19 09:20
开篇先谢谢组长,AI的报错问题已经解决了,我把那句直接删了。

但是接下来的实际效果问题,我 ...

你有没有控制敌人的视野,如果敌人看不见他要进攻的单位他肯定不进攻

不科学的小默默 发表于 2014-7-19 12:38:08

枫叶の飘零 发表于 2014-7-19 12:33
你有没有控制敌人的视野,如果敌人看不见他要进攻的单位他肯定不进攻

已经用地图其启示者全部打亮了=。=应该不是视野的问题

枫叶の飘零 发表于 2014-7-19 13:14:21

不科学的小默默 发表于 2014-7-19 12:38
已经用地图其启示者全部打亮了=。=应该不是视野的问题

启示者不靠谱,用单位或者让他研究间谍

条顿武士 发表于 2014-7-19 13:44:27

你没有编写攻击分组的设置啊= =


(defrule
        (true)
=>
            (set-strategic-number sn-maximum-town-size 255)
            (set-strategic-number sn-number-attack-groups 200)
            (set-strategic-number sn-maximum-attack-group-size 200)
            (set-strategic-number sn-minimum-attack-group-size 1)
            (set-strategic-number sn-percent-attack-soldiers 100)
            (set-strategic-number sn-attack-intelligence 1)
            (set-strategic-number sn-enemy-sighted-response-distance 200)
)


就这些就可以了= =

老胡的帖子是按照联机AI来写的,做战役的话直接把TSA范围改到255就行了= =

不科学的小默默 发表于 2014-7-19 15:49:34

条顿武士 发表于 2014-7-19 13:44
你没有编写攻击分组的设置啊= =



{:340:}困扰了我半个月的问题终于被解决了,T组愛してる!!!{:331:}

看来有时间的确要研究下AI才行= =,不然总是这样麻烦大家真的不好意思……
@条顿武士 @枫叶の飘零感谢百忙之中来帮忙{:331:}
页: [1]
查看完整版本: 求助下关于TSA的应用