写了一个分大小波进攻的AI,顺便提出几个问题,望高手解答,不胜感激
;分大小波进攻的AI:(defconst G_YES 1) ;定义'是'
(defconst G_NO 2) ;定义'否'
(defconst if-attack-big 6) ;定义是否为大进攻
(defrule ;初始化
(true)
=>
(set-strategic-number sn-task-ungrouped-soldiers 1)
(set-strategic-number sn-number-explore-groups 1)
(set-strategic-number sn-percent-attack-soldiers 50) ;初始化电脑的进攻部队为50%
(chat-to-all "有作用了" )
(enable-timer 1 2400)
(disable-self)
)
(defrule ;小波进攻规则(兵力50%)
(goal if-attack-big G_NO)
(timer-triggered 1)
(not (town-under-attack))
=>
(attack-now)
(set-goal if-attack-big G_YES)
(enable-timer 2 300)
(disable-timer 1)
(enable-timer 1 900)
)
(defrule
(timer-triggered 2)
=>
(set-strategic-number sn-percent-attack-soldiers 90)
(disable-timer 2)
)
(defrule ;大波进攻规则(兵力90%)
(goal if-attack-big G_YES)
(timer-triggered 1)
; (not (town-under-attack))
=>
(attack-now)
(set-goal if-attack-big G_NO)
(enable-timer 3 300)
(disable-timer 1)
(enable-timer 1 900)
)
(defrule
(timer-triggered 3)
=>
(set-strategic-number sn-percent-attack-soldiers 50)
(disable-timer 3)
)
以上就是鄙人写的分大波小波循环进攻的AI。
现在有个几问题,请各位老师指教:
问题一:我(P1)有一个电脑同盟(P2),和一个电脑敌人(P3);把上面的AI代入P3后,P3不进攻P1而优先进攻P2,这就与我的设计原意违背了。要如何才能让P3优先进攻P1呢?(或者说,指定其进攻特定的玩家)
问题二:(与上面AI无关的问题)有些战役的主ai(即直接与玩家X关联的AI)用load语句导入其副ai文件,但AOKTS却只能导主ai,而导不了副ai。问:用什么工具导出副ai?
问题三:(也与上面AI无关)鄙人想对帝国默认的ai进行小修改,要如何导出帝国的默认ai?
利用策略值sn-attack-winning-player及sn-attack-winning-player-factor決定是否攻擊分數較高的玩家; 如果是場景, 還可以為電腦玩家放置地圖啟示者/領航員打開視野, 協助其判斷敵人所在地
AOKTS執行時, 同一目錄下會有已經解壓的scendata.tmp, 打開該文件即可見到AI內容
遊戲默認AI位於gamedata.drs 谢狂兄,开某之愚窍{:155:}
页:
[1]