策霸霸 发表于 2013-10-23 19:15:44

像武士道和黑发王子哈夫当的那种AI是怎么做的

最开始的时候士兵都像不动的ai一样,冻结。
而后来就开始发展,生兵。

策霸霸 发表于 2013-11-8 20:23:07

我爱桃花村 发表于 2013-11-8 20:12 static/image/common/back.gif
那不是AI,那是地图编辑器里的触发效果。

你别逗我好么,
触发效果让兵营自己产兵?
随机进行进攻?

策霸霸 发表于 2013-11-8 21:16:17

我爱桃花村 发表于 2013-11-8 20:12 static/image/common/back.gif
那不是AI,那是地图编辑器里的触发效果。

怎么不说话了呢?
嗯?
不知道怎么回事就别乱说。

策霸霸 发表于 2013-11-8 22:33:13

我爱桃花村 发表于 2013-11-8 22:31 static/image/common/back.gif
刚才在忙,不好意思。你可以用不动的AI,后来又通过触发让电脑动起来。

   太逗了,啥也不会就别说了。

聊发少年狂 发表于 2013-11-8 23:02:19

我爱桃花村 发表于 2013-11-8 22:31 static/image/common/back.gif
刚才在忙,不好意思。你可以用不动的AI,后来又通过触发让电脑动起来。

你犯了什么错了?你可是我见过扣耕战功勋最多了。

我了个丢丢 发表于 2013-11-8 23:46:23

我也正在找……其实貌似是用AI信号来实现的吧,编辑AI的时候如果AI接受到信号一的话,那么就会执行以下的AI行动

条顿武士 发表于 2013-11-9 02:49:25

(defrule
      (true)
      =>
      (set-goal 1 0)//设定变量1初始值为0
      (set-goal 2 0)//设定变量2初始值为0
      (disable-self)
)

(defrule
      (gold-amount >= 2000)//如果玩家黄金大于等于2000
      (goal 1 0)//如果变量1为0(即处于不动状态)
      =>
      (set-goal 2 1)//变量2的值变成1 (开启单位进攻)
      (set-goal 1 2)//变量1的值变成2 (开始多次进攻)
)

(defrule
      (goal 2 1)//如果变量2的值是1(即黄金>2000),则设定策略值,先开始一次进攻,之后进行循环进攻。=>
      (set-strategic-number sn-total-number-explorers 0)
      (set-strategic-number sn-percent-enemy-sighted-response 100)
      (set-strategic-number sn-enemy-sighted-response-distance 15)
      (set-difficulty-parameter ability-to-maintain-distance 0)
      (set-difficulty-parameter ability-to-dodge-missiles 0)
      (set-strategic-number sn-number-attack-groups 10)
      (set-strategic-number sn-minimum-attack-group-size 1)
      (set-strategic-number sn-percent-attack-soldiers 100)
      (attack-now)
      (enable-timer 1 10)
      (set-goal 2 0)//变量2的值变成0以免无限循环
)

(defrule
      (goal 1 0)//如果变量1的值是0(即黄金<2000)则设定村民不动=>
      (set-strategic-number sn-maximum-food-drop-distance 0)
      (set-strategic-number sn-maximum-wood-drop-distance 0)
      (set-strategic-number sn-maximum-gold-drop-distance 0)
      (set-strategic-number sn-maximum-hunt-drop-distance 0)
      (set-strategic-number sn-maximum-stone-drop-distance 0)
      (set-strategic-number sn-food-gatherer-percentage 0)
      (set-strategic-number sn-wood-gatherer-percentage 0)
      (set-strategic-number sn-gold-gatherer-percentage 0)
      (set-strategic-number sn-stone-gatherer-percentage 0)
      (set-strategic-number sn-cap-civilian-explorers 0)
      (set-strategic-number sn-percent-civilian-explorers 0)
      (disable-self)
)

(defrule
      (goal 1 0)//如果变量1的值为0(即黄金<2000)则设定士兵不动=>
      (set-strategic-number sn-percent-enemy-sighted-response 100)
      (set-strategic-number sn-hits-before-alliance-change 25)
      (set-difficulty-parameter ability-to-maintain-distance 100)
      (set-difficulty-parameter ability-to-dodge-missiles 100)
      (set-strategic-number sn-number-explore-groups 0)
      (set-strategic-number sn-percent-attack-soldiers 0)
      (set-strategic-number sn-task-ungrouped-soldiers 0)
      (set-strategic-number sn-number-attack-groups 0)
      (set-strategic-number sn-enemy-sighted-response-distance 7)
      (set-strategic-number sn-total-number-explorers 0)
      (set-strategic-number sn-relic-return-distance 0)
      (disable-self)
)

(defrule
      (goal 1 1)//如果变量1的值是1(从进攻状态恢复的时候)则设定部队能力策略值为不动状态的,与上面的一样。
=>
      (set-strategic-number sn-percent-enemy-sighted-response 100)
      (set-strategic-number sn-hits-before-alliance-change 25)
      (set-difficulty-parameter ability-to-maintain-distance 100)
      (set-difficulty-parameter ability-to-dodge-missiles 100)
      (set-strategic-number sn-number-explore-groups 0)
      (set-strategic-number sn-percent-attack-soldiers 0)
      (set-strategic-number sn-task-ungrouped-soldiers 0)
      (set-strategic-number sn-number-attack-groups 0)
      (set-strategic-number sn-enemy-sighted-response-distance 7)
      (set-strategic-number sn-total-number-explorers 0)
      (set-strategic-number sn-relic-return-distance 0)
      (set-goal 1 0)//改变变量1的值为0(恢复初始不动状态)
)

(defrule
      (goal 1 2)//如果变量1的值是2(处于进攻状态)
      (gold-amount >= 2000)//如果玩家的黄金大于2000(处于进攻状态)
      (timer-triggered 1)//经过定时器1的时间(10s)则再次组织进攻
      =>
      (set-strategic-number sn-total-number-explorers 0)
      (set-strategic-number sn-percent-enemy-sighted-response 100)
      (set-strategic-number sn-enemy-sighted-response-distance 15)
      (set-difficulty-parameter ability-to-maintain-distance 50)
      (set-difficulty-parameter ability-to-dodge-missiles 50)
      (set-strategic-number sn-number-attack-groups 10)
      (set-strategic-number sn-minimum-attack-group-size 1)
      (set-strategic-number sn-percent-attack-soldiers 100)
      (attack-now)
      (disable-timer 1)
      (enable-timer 1 10) //开启一个计时器1,他的时间是10s,用于10s循环组织进攻)

(defrule
      (goal 1 2)//如果变量1的值是2(处于进攻状态)
      (gold-amount < 2000)//如果玩家的黄金小于2000
      =>
      (disable-timer 1)//禁用循环进攻的定时器
      (set-goal 1 1)//变量1回到不动状态
)




以上为我正在使用的一个攻防转换的AI,该玩家黄金数量小于2000时不动,大于2000开始列队攻击,可多次循环。
可以以此为模版,将简单的发展AI(如BOOMII中特定民族的一段)加入进来,可以实现效果。
具体还是建议参考一下狂熊汉化的AI教程,学习一下具体的AI语句,并且用战役管理器和AOKTS配合将问题中两个战役的scx和AI提取出来,然后拆开看看它是怎么实现的。


AI知识是成为一个顶级战役制作者的必备基础,加油。

聊发少年狂 发表于 2013-11-9 08:36:18

我爱桃花村 发表于 2013-11-9 08:29 static/image/common/back.gif
呃,被扣分一怒之下骂了管理员。于是。。。

冲动是魔鬼,这要费多大劲才能挣回来,教训啊。还好,管理员还是宽容的,没有封号。努力吧,有东西到外部资源区发布可以很快挣到耕战。

爱德华先生 发表于 2013-11-9 10:14:29

条顿武士 发表于 2013-11-9 02:49 static/image/common/back.gif
以上为我正在使用的一个攻防转换的AI,该玩家黄金数量小于2000时不动,大于2000开始列队攻击,可多 ...

好高深...感兴趣,但无力学习。

策霸霸 发表于 2013-11-9 12:21:28

我爱桃花村 发表于 2013-11-9 08:28 static/image/common/back.gif
你这种人就懵想别人帮你了,别人好心帮你你不信还骂别人。

你太逗了
你哪只眼睛看到我骂你了
我也没让你帮我
自己骂人骂成那样还好意思说别人
触发的问题我至于在ai版发 呵呵

策霸霸 发表于 2013-11-9 12:33:32

我爱桃花村 发表于 2013-11-9 12:24 static/image/common/back.gif
你暗骂骂得好啊,表面上看起来没脏话,全是在骂我HB SB 有种你就别躲躲藏藏的骂,一堆“你太逗了”啥也不 ...

笑尿了
孩子你多大了
无视你

策霸霸 发表于 2013-11-9 12:33:43

我爱桃花村 发表于 2013-11-9 12:24 static/image/common/back.gif
你暗骂骂得好啊,表面上看起来没脏话,全是在骂我HB SB 有种你就别躲躲藏藏的骂,一堆“你太逗了”啥也不 ...

笑尿了
孩子你多大了
无视你

策霸霸 发表于 2013-11-9 12:35:00

我了个丢丢 发表于 2013-11-8 23:46 static/image/common/back.gif
我也正在找……其实貌似是用AI信号来实现的吧,编辑AI的时候如果AI接受到信号一的话,那么就会执行以下的AI ...

嘿嘿
英雄所见略同。

我了个丢丢 发表于 2013-11-9 12:35:54

本帖最后由 我了个丢丢 于 2013-11-9 12:37 编辑

策霸霸 发表于 2013-11-9 12:35 static/image/common/back.gif
嘿嘿
英雄所见略同。
- -最后发现我错了……还是要用TT的方法……貌似卧龙老师有一个AI生成器……你可以去搜索看看

策霸霸 发表于 2013-11-9 12:36:00

我爱桃花村 发表于 2013-11-9 12:24 static/image/common/back.gif
你暗骂骂得好啊,表面上看起来没脏话,全是在骂我HB SB 有种你就别躲躲藏藏的骂,一堆“你太逗了”啥也不 ...

笑尿了
朋友你几岁了
无视你

策霸霸 发表于 2013-11-9 12:37:43

我了个丢丢 发表于 2013-11-9 12:35 static/image/common/back.gif
- -最后发现我错了……还是要用TT

其实开始我也是那么想的
页: [1]
查看完整版本: 像武士道和黑发王子哈夫当的那种AI是怎么做的