像武士道和黑发王子哈夫当的那种AI是怎么做的
最开始的时候士兵都像不动的ai一样,冻结。而后来就开始发展,生兵。 我爱桃花村 发表于 2013-11-8 20:12 static/image/common/back.gif
那不是AI,那是地图编辑器里的触发效果。
你别逗我好么,
触发效果让兵营自己产兵?
随机进行进攻? 我爱桃花村 发表于 2013-11-8 20:12 static/image/common/back.gif
那不是AI,那是地图编辑器里的触发效果。
怎么不说话了呢?
嗯?
不知道怎么回事就别乱说。 我爱桃花村 发表于 2013-11-8 22:31 static/image/common/back.gif
刚才在忙,不好意思。你可以用不动的AI,后来又通过触发让电脑动起来。
太逗了,啥也不会就别说了。 我爱桃花村 发表于 2013-11-8 22:31 static/image/common/back.gif
刚才在忙,不好意思。你可以用不动的AI,后来又通过触发让电脑动起来。
你犯了什么错了?你可是我见过扣耕战功勋最多了。 我也正在找……其实貌似是用AI信号来实现的吧,编辑AI的时候如果AI接受到信号一的话,那么就会执行以下的AI行动 (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:29 static/image/common/back.gif
呃,被扣分一怒之下骂了管理员。于是。。。
冲动是魔鬼,这要费多大劲才能挣回来,教训啊。还好,管理员还是宽容的,没有封号。努力吧,有东西到外部资源区发布可以很快挣到耕战。 条顿武士 发表于 2013-11-9 02:49 static/image/common/back.gif
以上为我正在使用的一个攻防转换的AI,该玩家黄金数量小于2000时不动,大于2000开始列队攻击,可多 ...
好高深...感兴趣,但无力学习。 我爱桃花村 发表于 2013-11-9 08:28 static/image/common/back.gif
你这种人就懵想别人帮你了,别人好心帮你你不信还骂别人。
你太逗了
你哪只眼睛看到我骂你了
我也没让你帮我
自己骂人骂成那样还好意思说别人
触发的问题我至于在ai版发 呵呵 我爱桃花村 发表于 2013-11-9 12:24 static/image/common/back.gif
你暗骂骂得好啊,表面上看起来没脏话,全是在骂我HB SB 有种你就别躲躲藏藏的骂,一堆“你太逗了”啥也不 ...
笑尿了
孩子你多大了
无视你 我爱桃花村 发表于 2013-11-9 12:24 static/image/common/back.gif
你暗骂骂得好啊,表面上看起来没脏话,全是在骂我HB SB 有种你就别躲躲藏藏的骂,一堆“你太逗了”啥也不 ...
笑尿了
孩子你多大了
无视你 我了个丢丢 发表于 2013-11-8 23:46 static/image/common/back.gif
我也正在找……其实貌似是用AI信号来实现的吧,编辑AI的时候如果AI接受到信号一的话,那么就会执行以下的AI ...
嘿嘿
英雄所见略同。 本帖最后由 我了个丢丢 于 2013-11-9 12:37 编辑
策霸霸 发表于 2013-11-9 12:35 static/image/common/back.gif
嘿嘿
英雄所见略同。
- -最后发现我错了……还是要用TT的方法……貌似卧龙老师有一个AI生成器……你可以去搜索看看 我爱桃花村 发表于 2013-11-9 12:24 static/image/common/back.gif
你暗骂骂得好啊,表面上看起来没脏话,全是在骂我HB SB 有种你就别躲躲藏藏的骂,一堆“你太逗了”啥也不 ...
笑尿了
朋友你几岁了
无视你 我了个丢丢 发表于 2013-11-9 12:35 static/image/common/back.gif
- -最后发现我错了……还是要用TT
其实开始我也是那么想的
页:
[1]