怎样判断与敌方陆地是否连接?而且我设置了城镇范围255为什么没用?
本帖最后由 12345677 于 2015-2-11 17:29 编辑(defrule
(game-time > 0)
(defend-soldier-count >= 200)
=>
(enable-timer 10 61)
(disable-self)
)
(defrule
(timer-triggered 10)
(defend-soldier-count >= 200)
=>
(set-strategic-number sn-maximum-town-size 255)
(set-goal g-garrison-soldiers 0)
(up-gather-inside c: barracks c: 0) ;放出军队
(up-gather-inside c: stable c: 0)
(up-gather-inside c: archery-range c: 0)
(set-strategic-number sn-number-attack-groups 6)
(chat-to-all "Fuck!")
(disable-timer 10)
(enable-timer 10 61)
)
(defrule
(game-time > 0)
(defend-soldier-count < 51)
=>
(enable-timer 10 61)
(disable-self)
)
(defrule
(timer-triggered 10)
(defend-soldier-count < 51)
=>
(set-strategic-number sn-maximum-town-size 32)
(set-goal g-garrison-soldiers 1)
(up-gather-inside c: barracks c: 1) ;让部队留守军事建筑物
(up-gather-inside c: stable c: 1)
(up-gather-inside c: archery-range c: 1)
(set-strategic-number sn-number-defend-groups 6)
(chat-to-all "Shit!")
(disable-timer 10)
(enable-timer 10 61)
)
這段是修改Lazarus教程代碼的吧,但TSA攻擊本身就是無法應對海上攻擊的(同一教程的進攻方法部分也有提到此一點),沒有反應可能就是因為隔海的緣故。
其餘像 sn-percent-enemy-sighted-response、 sn-enemy-sighted-response-distance、sn-task-ungrouped-soldiers 等策略值也會對TSA效能有一些影響,至於sn-percent-attack-soldiers 及 sn-number-attack-groups 也不能過高,否則 AI 根本無兵可派。
針對此段代碼,也有可能是因為計時器生效後防守軍隊數未滿 200 而令新訓練部隊一直留在建築物裡,又或軍隊人數始終處於 51 與 200 之間而讓代碼從未生效。
有關TSA還可以看看以下二帖:
https://www.hawkaoe.net/bbs/forum.php?mod=viewthread&tid=26411
https://www.hawkaoe.net/bbs/forum.php?mod=viewthread&tid=40076 狂~劇情狂 发表于 2015-2-11 22:02
這段是修改Lazarus教程代碼的吧,但TSA攻擊本身就是無法應對海上攻擊的(同一教程的進攻方法部分也有提到此 ...
表示这段代码中单位驻扎功能无效。。。 狂~劇情狂 发表于 2015-2-11 22:02
這段是修改Lazarus教程代碼的吧,但TSA攻擊本身就是無法應對海上攻擊的(同一教程的進攻方法部分也有提到此 ...
这两贴我都看得审美疲劳了。。另外怎样能让新生产出来的单位全部聚集在靠近地图中间的区域呢??? 狂~劇情狂 发表于 2015-2-11 22:02
這段是修改Lazarus教程代碼的吧,但TSA攻擊本身就是無法應對海上攻擊的(同一教程的進攻方法部分也有提到此 ...
sn-gather-idle-soldiers-at-center
这个集中闲置士兵默认是开启的 但貌似对攻城武器无效? sn-gather-idle-soldiers-at-center 默認是不開啟吧,否則正常遊戲部隊都到地圖正中央了。。而且它調用的是閒置防守部隊,所以召集到中央時最好一起打開 sn-gather-defense-units ,同時也要留意 TSA 發動途中大多數防守部隊都不會閒置,自然也不會回應 sn-gather-idle-soldiers-at-center 了。
up-gather-inside 是 Userpatch 本身新增的動作代碼,效果就直接是開關訓練單位自動駐守,如果沒反應的話應該是規則事實未符合吧。 狂~劇情狂 发表于 2015-2-12 04:05
sn-gather-idle-soldiers-at-center 默認是不開啟吧,否則正常遊戲部隊都到地圖正中央了。。而且它調用的是 ...
有没有办法通过高级数据修改器让所有玩家在黑暗时代就自动获得间谍(可见敌人)的效果?我用设置资源183(可见敌人)=1的方法直接导致游戏崩溃。。。 唔,你這個不是AI問題吧。。。你的意思似乎是直接將相關文明的起始資源給改了?如果是這樣的話的確可能會出現問題,最好還是透過新增別的科技來代為研發間諜,或將城鎮中心建築物自帶的研發科技改成間諜也行。
另外回到地圖中央的問題,恐怕你需要提供更多資料才能知道為什麼攻城武器不受影響,順帶一提如果你是弄戰役或固定地圖的話不妨在中央設一個隱形單位,以後用 retreat-to 指令來讓部隊集結到它身邊。 狂~劇情狂 发表于 2015-2-12 04:22
唔,你這個不是AI問題吧。。。你的意思似乎是直接將相關文明的起始資源給改了?如果是這樣的話的確可能會 ...
有没有办法写一条代码让电脑吧受伤的高级兵(通常是比较昂贵的作战单位)拖回城堡里休息 直到满血再出来啊?? 狂~劇情狂 发表于 2015-2-12 04:22
唔,你這個不是AI問題吧。。。你的意思似乎是直接將相關文明的起始資源給改了?如果是這樣的話的確可能會 ...
已经不需要地图中央集合了 因为考虑到在多人对战中会出现各种作死的情况 对Ai的发展极为不利 我做的是常规对战 配合自制Mod的Ai 撤退或進駐是用 up-garrison 、 up-retreat-to 進行,不過它們都是針對玩家所有同類單位下達指令,故不能鎖定個別受傷的單位。相反,檢查傷害要用 up-find-local 找到該類單位,再用 up-set-target-object 將找到的其個單位變成目標物件,然後用 up-get-object-data 得到其 object-data-hitpoints 儲存進目標……可是 up-set-target-object 祇能針對單一物件且必須為搜尋結果首項, up-find-local 的次序亦係隨機描選(導致無法簡單法保證全數該類單位生命值都被檢查一番,複雜點的話可以預留與部隊數相同多的目標來儲存每次目標物件的 object-data-id ……不過這樣運算次數與代碼量會很驚人),所以它們很難配合前面二個指令動作做出將個別受重傷單位拖回城堡休息的契合效果,頂多祇能做到定期有單位重傷時全隊後撤這種程度而已。
此外,如果攻擊行動完全依賴 up-retreat-to ,那麼應該也可以做到某類單位出戰一定時間後回城。
UP AI 對 MOD 的支援度其實有限,最大原因在於物件類別是從 900 (弓兵類)開始,但遊戲原數據庫已經有 866 種單位,換句話說就是不讓設計者增加超過 34 種單位。
狂~劇情狂 发表于 2015-2-12 05:57
撤退或進駐是用 up-garrison 、 up-retreat-to 進行,不過它們都是針對玩家所有同類單位下達指令,故不能鎖 ...
没事 我不增加新单位。。
页:
[1]