翔鹰帝国网|帝国时代论坛|帝国时代系列|神话时代
 找回密码
 注册翔鹰会员(昵称)
搜索
查看: 9767|回复: 38

[教程] AI攻击的第二种方式——TSA!

  [复制链接]

78

主题

13

精华

2万

积分

圣徒

耕战
2683
鹰币
182
天龙币
0
回帖
1957

二级皇家勋章一级嘉禾勋章二级帝国勋章十字军勋章雄鹰勋章活跃者使者勋章

附庸关系0
发表于 2010-1-9 13:31:33 | 显示全部楼层 |阅读模式
今天闲来无事,手有点痒,就写下了这篇东西,11!这MS是我的第二篇教程,希望大家喜欢。

大家看到标题可不要误会,这TSA可不是全港性系統評估 (Territory-wide System Assessment),而是town-size-attack的缩写。

那么,什么是town-size-attack呢?

也许你看别的AI的时候,会觉得有的地方很奇怪:

明明没有attack-now语句(或者进攻兵力只是百分之一),却还会进攻?

而且对方的进攻好强啊!一个个兵都是单独控制,整体又好像潮水一般涌过来!(没见过?去下一个ARFFI_05_Eyries看看?下载地址https://aok.heavengames.com/blacksmith/getfile.php?id=10020&dd=1&s=e739aa577baec814e2531a378020910e 只能用AZTEC)

而为什么我的AI进攻只是一队队的上去呢?而且还老是卡住?而对方的几乎不会?

如果你有这个疑问,就应当看看本文章了。

====================================================================以下开始解释========================================================================

顾名思义,所谓town-size-attack 就是城镇范围攻击。


不知你们有没有注意到,当敌人入侵的时候,AI可是会毫不留情地攻击进入它城镇范围的敌人!而且那时候的攻击丝毫没有停顿。那可是相当厉害啊!

咦?如果把这一个应用在进攻的时候,岂不是很好吗?这样就可以轻松地干掉别人了!

如果你想到了这一点,你离成功已经近了一步了。

如果把城镇范围设大一点,那么本来的敌人的建筑,在AI看来也是入侵者,AI就会给予痛击啦!哈哈!

所以,我们只要不断扩大城镇范围,进行攻击就可以啦!

那么,具体的语句是怎么样的呢?

请看下列代码:

(defrule
;定义规则,每个规则都要用到。
  (goal attack-goal attacking-now)                                                               

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

(sn-maximum-town-size == 40)
;这一行的意思是,当策略值sn-maximum-town-size的值是40的时候
;sn-maximum-town-size 是TSA的灵魂 ,它是一个重要的策略值,决定了最大城镇规模
;我们就是通过不断扩大他来达到TSA
  (not(enemy-buildings-in-town))

;这一行也是TSA的灵魂,它的意思是,敌人的建筑物不在最大城镇规模的范围里。
;其实这行很好理解,最大城镇规模里没有敌人建筑物,当然打不到啦!就要继续扩大开打。
=>

;这个箭头是条件和结果的分界。上面为条件,下面为结果,当条件成立就会触发下面的结果。
  (set-strategic-number sn-maximum-town-size 45)

;把最大城镇范围设置成45,也就是说当城镇范围是40,然后又找不到人打,就扩大范围
  (chat-to-all "Town-size-attack: 45")

;对全部人说"Town-size-attack: 45",可以无视
)

;关闭规则,每个规则都要有

;下面语句的作用等同,也是不断扩大规模。

(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")
)


(defrule
  (goal attack-goal attacking-now)
  (strategic-number sn-maximum-town-size == 50)
  (not(enemy-buildings-in-town))
=>
  (set-strategic-number sn-maximum-town-size 55)
  (chat-to-all "Town-size-attack: 55")
)


(defrule
  (goal attack-goal attacking-now)
  (strategic-number sn-maximum-town-size == 55)
  (not(enemy-buildings-in-town))
=>
  (set-strategic-number sn-maximum-town-size 60)
  (chat-to-all "Town-size-attack: 60")
)



看,通过这样一弄,TSA就达成了!

============================================================================以下为注意事项===================================================================================

1.TSA并不是完美的,由于兵力分散,不太建议你用少数部队去冲击,容易被逐个击破。所以TSA往往要和ATTACK-NOW配合一起动作。就是又用TSA又用ATTACK-NOW,这样进攻可以更强大。因为ATTACK-NOW是可以集群冲击的。另外TSA最好也是兵多一点才用,几个兵的话完全是送死……如果兵的数量很多时候用TSA,将十分壮观……

2.由于建的建筑的位置也依赖TSA,所以尽量要在大体建设完成之后才发动TSA的进攻(封建MS也可以,推荐城堡,帝王的话太晚了。其实一般AI帝王时代的TS都已经三四十左右了)。其实这个倒也没有什么所谓的。

3.暂时想不到





就这些吧,到时候再补充。

谢谢大家的赏读,再见。

_Hawk_老胡

2009.1.9   13:30

评分

参与人数 1耕战 +200 收起 理由
尼克 + 200

查看全部评分

心烦意乱。静下来吧。
回复

使用道具 举报

229

主题

14

精华

11万

积分

圣徒

耕战
20973
鹰币
90387
天龙币
0
回帖
9213

特级翔鹰勋章一级嘉禾勋章一级帝国勋章雄鹰勋章第六届火箭筒杯最佳战役第七届火箭筒杯最佳战役

附庸关系0
发表于 2010-1-9 13:40:07 | 显示全部楼层
同楼上- -
唉,老胡辛苦了!:35:
ΙΚΑΡΟΣ ΣΕ ΟΡΑΙ
回复

使用道具 举报

78

主题

13

精华

2万

积分

圣徒

耕战
2683
鹰币
182
天龙币
0
回帖
1957

二级皇家勋章一级嘉禾勋章二级帝国勋章十字军勋章雄鹰勋章活跃者使者勋章

附庸关系0
 楼主| 发表于 2010-1-9 14:00:23 | 显示全部楼层
谢谢大家的鼓励……不辛苦不辛苦……
心烦意乱。静下来吧。
回复

使用道具 举报

132

主题

12

精华

5万

积分

圣徒

耕战
10009
鹰币
1090
天龙币
0
回帖
4763

特级翔鹰勋章一级帝国勋章第二届火箭筒杯最佳战役第三届火箭筒杯最佳战役雄鹰勋章

附庸关系0
发表于 2010-1-9 15:05:03 | 显示全部楼层
學到新東西了,謝謝老胡同志!:43:
You'll never walk alone!
回复

使用道具 举报

78

主题

13

精华

2万

积分

圣徒

耕战
2683
鹰币
182
天龙币
0
回帖
1957

二级皇家勋章一级嘉禾勋章二级帝国勋章十字军勋章雄鹰勋章活跃者使者勋章

附庸关系0
 楼主| 发表于 2010-1-9 16:29:30 | 显示全部楼层
。。。。
其实这个东西用在战役里很不好的……很容易出错
主要是用在对战AI
心烦意乱。静下来吧。
回复

使用道具 举报

36

主题

1

精华

8394

积分

国王

耕战
1457
鹰币
650
天龙币
0
回帖
542

三级嘉禾勋章十字军勋章

附庸关系0
发表于 2010-1-9 17:03:50 | 显示全部楼层
嗯,這個功能的確比單一的attack-now好多了,只attack-now會使電腦常常對敵人的兵視而不見
回复

使用道具 举报

2

主题

0

精华

160

积分

男爵

耕战
4
鹰币
150
天龙币
0
回帖
72
附庸关系0
发表于 2010-1-11 13:24:54 | 显示全部楼层
TSA在1VS是非常完美的,其最大的缺点,就是按照代码触发条件,只会攻击距离最近的敌人,造成在多人局中双方两两缠斗的现象,这在著名的AI对战时经常看到。
attack-now的好处是可以多家盟友联合起来打一家,缺点异界行者也说过了,在达到目的地前对受到的攻击视而不见,在4vs4时,经常出现电脑从一家敌人城镇中穿过去打另一家敌人,还没到攻击位置就已经损失惨重。我想到的改进方法是在执行attack-now后,把sn-enemy-sighted-response-distance调到最大(250),这样后续的攻击部队就以救援的方式来进攻,不知大家以为然否?
回复

使用道具 举报

78

主题

13

精华

2万

积分

圣徒

耕战
2683
鹰币
182
天龙币
0
回帖
1957

二级皇家勋章一级嘉禾勋章二级帝国勋章十字军勋章雄鹰勋章活跃者使者勋章

附庸关系0
 楼主| 发表于 2010-1-11 21:42:39 | 显示全部楼层
实际上个人觉得这个值不宜过大。否则有可能出现敌人进攻时候占优势,AI的兵不断冲上去送死的情况。而且有时执行ATTACK-NOW后如果前面兵被打可能会后面的兵不断冲上前线…(BTW,记得BOOM2就是有一些代码,当敌人兵多到一定程度,自己兵少到一定程度就把这个弄小以免兵送死)。总之我觉得这个不应该弄太大。
心烦意乱。静下来吧。
回复

使用道具 举报

78

主题

13

精华

2万

积分

圣徒

耕战
2683
鹰币
182
天龙币
0
回帖
1957

二级皇家勋章一级嘉禾勋章二级帝国勋章十字军勋章雄鹰勋章活跃者使者勋章

附庸关系0
 楼主| 发表于 2010-1-11 21:45:17 | 显示全部楼层
意思是如果占优势就好,但如果处于劣势就可能会造成白白损失
心烦意乱。静下来吧。
回复

使用道具 举报

63

主题

8

精华

5万

积分

教皇

耕战
9517
鹰币
8493
天龙币
1
回帖
2199

冒险家翔鹰建站十周年纪念章特级翔鹰勋章特级嘉禾勋章特级帝国勋章雄鹰勋章鹰之智者蛟龙勋章第一玩家翔一电影节冠军

附庸关系0
发表于 2010-1-11 21:50:52 | 显示全部楼层
TSA进攻过程中好像存在优先拆领地内建筑的问题。:40:

以我自己试验的TSA和ATTACK NOW对攻的效果来说,TSA的进攻性和目标性都强于ATTACK NOW,但是进攻效率非常差。
在1v1的近点中,只要能保证兵力充足,例如一波流,感觉response-distance攻击效果最好。

然后三者的共用缺点是在确立了自己的目标后,对于中途受到的打击都置之不理。
因为ATTACK NOW设置的攻击距离最长,所以最不利。RD则最好。但是超过200人左右时RD非常卡。

而据点防守来说,反而是反复ATTACK NOW似乎效果和RD不相上下。

不过无意于对战AI。时常想要是帝国有星际中产生单位巡逻一路A的功能就好了。

[ 本帖最后由 Ru43 于 2010-1-11 21:53 编辑 ]
回复

使用道具 举报

78

主题

13

精华

2万

积分

圣徒

耕战
2683
鹰币
182
天龙币
0
回帖
1957

二级皇家勋章一级嘉禾勋章二级帝国勋章十字军勋章雄鹰勋章活跃者使者勋章

附庸关系0
 楼主| 发表于 2010-1-11 22:53:47 | 显示全部楼层
TSA就是步步蚕食的,不断压榨对方生存空间,而取得胜利。这样进攻效率自然会低。但是敌人要反攻也不容易。RD的话个人觉得,如果兵力占较大优势,rd是比TSA和 ATTACK-NOW好一点。RD的特点就相当于进展加快的TSA吧,不过也有缺点就是面对反抗,如无法确立优势可能会被反推。一旦被对手反领先,就最好不要用rd吧。
心烦意乱。静下来吧。
回复

使用道具 举报

7

主题

0

精华

99

积分

骑士

耕战
11
鹰币
19
天龙币
0
回帖
17
附庸关系0
发表于 2010-2-1 21:13:11 | 显示全部楼层
ATTACK-NOW的缺点就是进攻时一顿一顿的
回复

使用道具 举报

78

主题

13

精华

2万

积分

圣徒

耕战
2683
鹰币
182
天龙币
0
回帖
1957

二级皇家勋章一级嘉禾勋章二级帝国勋章十字军勋章雄鹰勋章活跃者使者勋章

附庸关系0
 楼主| 发表于 2010-2-1 22:24:22 | 显示全部楼层
原帖由 guanguancan 于 2010-2-1 21:13 发表
ATTACK-NOW的缺点就是进攻时一顿一顿的


久仰前辈大名!

一顿一顿确实是ATTACT-NOW的缺点之一 此外还有死板不会变通 被打不还手等
心烦意乱。静下来吧。
回复

使用道具 举报

0

主题

0

精华

13

积分

骑士

耕战
0
鹰币
7
天龙币
0
回帖
5
附庸关系0
发表于 2010-2-13 10:28:26 | 显示全部楼层
请问这个代码如果在自定义地图使用会不会出现死机的情况,因为ARFFI_05_Eyries就是无法在自定义地图使用
回复

使用道具 举报

78

主题

13

精华

2万

积分

圣徒

耕战
2683
鹰币
182
天龙币
0
回帖
1957

二级皇家勋章一级嘉禾勋章二级帝国勋章十字军勋章雄鹰勋章活跃者使者勋章

附庸关系0
 楼主| 发表于 2010-2-13 12:21:18 | 显示全部楼层
应该不会吧
不能使用主要是因为ALB是主流
各种AI一般都是针对ALB上的资源位置确定采集距离 出兵类型 采集比例等等
所以换了地图也能运作 但是效果非常不好
心烦意乱。静下来吧。
回复

使用道具 举报

10

主题

0

精华

1074

积分

伯爵

耕战
89
鹰币
70
天龙币
0
回帖
325

活跃者

附庸关系0
发表于 2010-2-13 13:05:20 | 显示全部楼层
我还是喜欢直接在别人家开花- -马上给我消失
回复

使用道具 举报

2

主题

0

精华

240

积分

男爵

耕战
34
鹰币
50
天龙币
0
回帖
45
附庸关系0
发表于 2010-2-14 19:08:21 | 显示全部楼层
记得我没看这帖子的时候,我把MTS搞得很大,没有用build-forward,居然AI把塔建到敌人TC不足8格的距离,因为测试的时候进攻失利,所以也没在意.
回复

使用道具 举报

14

主题

0

精华

93

积分

骑士

耕战
12
鹰币
15
天龙币
0
回帖
21
附庸关系0
发表于 2010-6-19 15:15:30 | 显示全部楼层
城镇如果太大,建筑物岂不到处乱建?农民还没到可能就死了
回复

使用道具 举报

78

主题

13

精华

2万

积分

圣徒

耕战
2683
鹰币
182
天龙币
0
回帖
1957

二级皇家勋章一级嘉禾勋章二级帝国勋章十字军勋章雄鹰勋章活跃者使者勋章

附庸关系0
 楼主| 发表于 2010-6-19 17:21:32 | 显示全部楼层
可以建建筑物前暂时设置回来
当然发动TSA的时候一般都是建筑建造完了后的 所以不会发生这种问题
心烦意乱。静下来吧。
回复

使用道具 举报

156

主题

1

精华

4445

积分

公爵

耕战
441
鹰币
22
天龙币
0
回帖
2449

二级翔鹰勋章

附庸关系0
发表于 2010-6-19 17:42:19 | 显示全部楼层
强烈鄙视自加自精华的                                      .

评分

参与人数 1鹰币 +1 收起 理由
老胡V1 + 1 如果你写一篇教程我也可以给你加,写的好甚 ...

查看全部评分

回复

使用道具 举报

本版积分规则

排行榜|小黑屋|翔鹰帝国

GMT+8, 2024-11-23 09:09 , Processed in 0.289285 second(s), 217 queries , File On.

Powered by Hawk Studio  QS Security Corp.® Licensed

Copyright © 2001-2023, Hawkaoe.net All Rights Reserved

快速回复 返回顶部 返回列表