天使归来 发表于 2003-12-12 15:49:52

谁帮我做个AI?

所有士兵会攻击追踪视野附近(包括视野外部)的敌军
包括城墙/门~!~!
打包车在用不动时候总是只打掉箭塔/排在后面的车都不上来攻击

天使归来 发表于 2003-12-14 11:47:04

谁来帮我啊?

尼克 发表于 2003-12-14 21:18:50

sorry啦......................

我是新手,幫你不到..................

我不懂弄AI.............

卧龙先生 发表于 2003-12-15 11:36:08

你象是在作战役的?
这里包括的内容比较大,下面提供一些内容你先参考一下:

要使士兵们一发现敌人就全都蜂拥而来的进攻敌人可以做,但是视野外的敌人士兵们
并不会去打击他们,因为士兵们都不知道敌人在哪儿;
要使打包车进攻敌人所属的所有东东(包括敌人的士兵),必须是在AI语句的"进攻动作"
发起时才会的,

所以可以这样解决(你参考一下先):
在没有发现敌人的位置之前就派几个兵去侦察,发现了敌人的所在地之后就让全部士兵
都去进攻敌人(这样子,打包车也就会打击敌人的所有东东了),另外,进攻方式也可以分
两种,一种是先让士兵们集合成一大队,然后一块儿进攻;第二中,进攻发起后,所有士兵
分为一盘散沙去进攻目的地.

所以你还要提供内容--是不是要在游戏的某一时间后才开始以上内容.如果需要
可以用你的触发发送一个"AI信息",让AI接收并开始调用上面的内容(动作).

天使归来 发表于 2003-12-20 14:12:18

3Q
即使不大懂AI
但是也听懂了大半....谢谢咯...

卧龙先生 发表于 2003-12-21 01:33:46

有需要吗?如果真,就让我帮你写一个试试看啦!

天使归来 发表于 2003-12-21 09:58:22

要使打包车进攻敌人所属的所有东东(包括敌人的士兵),必须是在AI语句的"进攻动作"
发起时才会的

可以用你的触发发送一个"AI信息",让AI接收并开始调用上面的内容(动作).



这两个效果不会做
你写上来一下好不?

卧龙先生 发表于 2003-12-23 11:17:55

要使打包车进攻敌人所属的所有东东(包括敌人的士兵),必须是在AI语句的"进攻动作"
发起时才会的

我用AI模块制造者作一个给你看:
----------------------
;当游戏进行了多少秒的时间后发起第一次进攻,同时从该次进攻的发起时间算起,相隔
;多少秒的时间后发起第二次的进攻,然后又从第二次进攻的发起时间算起,以后的时间每隔
;多少秒就进攻一次。另外,从第二次进攻开始算起,在达到发起进攻的时间的的时候还必须检查士兵的人口有没有达
;到需要的数目,只有达到了指定的士兵数目才发起进攻。
(defrule
(game-time > 10)
=>
(attack-now)
(enable-timer 0 10)
(disable-self)
)
(defrule
(timer-triggered 0)
(defend-soldier-count >= 1)
=>
(attack-now)
(disable-timer 0)
(enable-timer 0 10)
)
---------------------------
可以用你的触发发送一个"AI信息",让AI接收并开始调用上面的内容(动作)

是:
触发一(开启):
条件一:定时器=25
效果一:发送AI信息=2

以下作一个完整一些的你看看:
一个战役:
      触发方面:
            触发一(开启):
            条件一:定时器=25
            效果一:发送AI信息=2
       AI 方面:
                  (defrule
                     (event-detected trigger 2)    ;接受到AI信息=2
                     (defend-soldier-count >= 1)    ;军事人口 >= 1
                  =>
                     (attack-now)    ;进攻
                   )

shavy 发表于 2003-12-29 12:19:11

不懂!!本人初学AI,关于计时器和触发信息等不是很懂,可否解释详细点?

比如,
(defrule                      ;假如
(game-time > 10)      ;    游戏时间>10
=>                            ;则
(attack-now)            ;    发动攻击
(enable-timer 0 10)   ;    开始计时器(计时器代号为0计时间隔10秒 )
(disable-self)             ;    注销以上动作
)
(defrule                                 ;假如
(timer-triggered 0)                ;    接受到代号为0的计时
(defend-soldier-count >= 1)   ;    并且士兵数目>=1
=>                                        ;则
(attack-now)                        ;    开始进攻
(disable-timer 0)                  ;    注销计时器0
(enable-timer 0 10)               ;    开始计时器0(计时器代号为0计时间隔10秒 )
)

是这样理解吗?(刚开始不是很懂,现在边翻资料边解释好像懂了:P)

[此贴子已经被作者于2003-12-29 0:20:04编辑过]

shavy 发表于 2003-12-30 05:03:49

关于进攻是否有什么方法可以控制得好一点?要不就只有attack-now和防守与进攻比例这几个语句,感觉战争自己根本无法控制,只能盲目地告诉它,“冲啊”,又没办法告诉它大家要集合起来冲,要冲到哪个地方,先干掉哪些东西,等等

shavy 发表于 2003-12-30 05:11:02

偶用的是AI编辑器0.99a版,还有模块制造者1.1,很好用呵呵,谢谢各位高手的不懈努力:)。
    可惜就是AI编辑器没有汉化完全,好多语句不知道什么意思(CPSB我又看不懂,英文不是很好),并且有些汉化了的也没解释,不知道怎么用。希望各位高手再接再厉!!(我是没那个水平了呵呵)

卧龙先生 发表于 2004-1-7 09:35:47

以下是引用shavy在2003-12-30 5:03:49的发言:
关于进攻是否有什么方法可以控制得好一点?要不就只有attack-now和防守与进攻比例这几个语句,感觉战争自己根本无法控制,只能盲目地告诉它,“冲啊”,又没办法告诉它大家要集合起来冲,要冲到哪个地方,先干掉哪些东西,等等

在模块制造者的进攻项目里有一个高级的进攻项目,里面有一般的进攻
设置可用。
另外,有一个参数我忘记了加入,它可以设置进攻敌人的那各地方,如
进攻敌人的城镇中心:
(defrule
        (players-building-type-count any-enemy town-center > 0)
=>
        (set-strategic-number sn-special-attack-type1 town-center) ;进攻目的地
        (attack-now)
)
下一次改动一定加入这个东东。
页: [1]
查看完整版本: 谁帮我做个AI?