jayly15 发表于 2011-10-27 10:12:37

如何用ai 改变士兵属性,如由探索改为进攻?

如何用ai 改变士兵属性,如由探索改为进攻?
谢谢!

lws735 发表于 2011-10-27 17:07:02

本帖最后由 lws735 于 2011-10-27 17:08 编辑

回复 jayly15 的帖子

(defrule
    (true)
=>
    (set-strategic-number sn-number-explore-groups 100)
    (disable-self)
)
(defrule
    (players-building-type-count any-enemy town-center > 0)
=>
    (set-strategic-number sn-number-explore-groups 0)
)
(defrule
    (players-building-type-count any-enemy town-center > 0)
=>
    (set-strategic-number sn-percent-attack-soldiers 100)
    (attack-now)
)
上面一段语句设置默认生产出来的士兵全部探索地图。(注意后面加了(disable-self),只生效一次)。
中间一段语句设置只要发现任何敌人的城镇中心,士兵全部停止搜索。
下面一段语句设置只要发现任何敌人的城镇中心,士兵全部进攻。

此外www.lws735.ys168.com有AI制作工具包,里面有详细教程。

jayly15 发表于 2011-10-27 17:34:35

回复 lws735 的帖子

谢谢了!
还有个想法:能不能让它循环呢?
例如:探索--攻击--探索---攻击……

lws735 发表于 2011-10-27 17:56:08

完全可以。
(defrule
    (players-building-type-count every-enemy town-center < 1)   
=>
    (set-strategic-number sn-number-explore-groups 100)
)
把最上语句改为上面的就行了。只要发现敌人城镇中心就进攻,找不到就搜索

jayly15 发表于 2011-10-28 12:11:46

回复 lws735 的帖子

你的网盘上的教程我也有,就是看不太明。
请你帮忙看看下面的ai , 是否有错。

(defrule
    (players-building-type-count every-enemy town-center < 1)   
=>
    (set-strategic-number sn-number-explore-groups 100)
)
(defrule
    (players-building-type-count any-enemy town-center > 0)
=>
    (set-strategic-number sn-number-explore-groups 0)
)
(defrule
    (players-building-type-count any-enemy town-center > 0)
=>
(set-strategic-number sn-number-attack-groups 2)
(set-strategic-number sn-percent-attack-soldiers 100)
(set-strategic-number sn-task-ungrouped-soldiers 0)
(set-strategic-number sn-group-form-distance 200);
(set-strategic-number sn-enemy-sighted-response-distance 220)
(attack-now)
)

我用它做了一个AI,发现它只会探索,不会攻击。
测试过程:
1、我用我方的城镇围住敌骑兵3人,他们经过城镇中心也没有反应,有时会有一个进行攻击。
2、就算遭到攻击也不反抗。
页: [1]
查看完整版本: 如何用ai 改变士兵属性,如由探索改为进攻?