条件Can-Train的含义是判断是否有这项科技还是足够建造的资源?可以不要这个条件吗?
(defrule(unit-type-count-total villager < 1)
(can-train villager)
=>
(train villager)
) 樓主近來發問各項代碼的具體用法其實在本人翻譯的官方人工智慧教程已有提及,文件可於本版置頂主題下載。
can-train <單位>
可生產單位:
這個事實檢查電腦遊戲者有否足夠資源生產該類 <單位> 。
這個事實檢查電腦遊戲者文明科技樹狀圖有否該類 <單位> 。
這個事實檢查電腦遊戲者在當時該類 <單位> 的相關研發項目要求達到與否。
這個事實檢查電腦遊戲者有否空閒建築物生產該類 <單位> 。
這個事實檢查電腦遊戲者有否足夠可容納之單位餘額生產該類 <單位> 。
這個事實不會計算電腦遊戲者的貢品資源。
這個事實允許使用 <單位> 百搭參數。
狂~劇情狂 发表于 2015-2-17 07:21
樓主近來發問各項代碼的具體用法其實在本人翻譯的官方人工智慧教程已有提及,文件可於本版置頂主題下載。
...
可否在不检查的情况下直接生产? 如果你想玩家進行作弊生產行動,那就應該在訓練動作時加入與其成本對應的 cc-add-resource 作弊資源動作確保其有足夠資源,但要注意此種帶有 cc- 系列作弊人工智慧的代碼並不為主流玩家接納。 狂~劇情狂 发表于 2015-2-17 07:59
如果你想玩家進行作弊生產行動,那就應該在訓練動作時加入與其成本對應的 cc-add-resource 作弊資源動作確 ...
额。也就是说 不管加不加这条检查 只要资源不够 都造不出来?但是不加这条检查 就可以在资源足够 但没有该单位科技的情况下 非法建造出该单位来? 不作弊資源無法讓 train 或其他動作進行非法操作,超越科技狀況與建築物限制更是絕無可能。
這裡不厭其煩再說一次,你的問題其實絕大多數都在官方人工智慧教程已有解答,例如:
train <單位>
生產單位:
這個動作使電腦遊戲者生產該類 <單位> 。
為了避免作弊情況出現,這個動作將會自動進行等同於事實「can-train」的檢查。
這個動作允許使用 <單位> 百搭參數。
例子:
(defrule
(food-amount greater-than 100)
=>
(train villager)
(train swordsman)
)
狂~劇情狂 发表于 2015-2-17 08:10
不作弊資源無法讓 train 或其他動作進行非法操作,超越科技狀況與建築物限制更是絕無可能。
這裡不厭其 ...
也就是说Can Train完全无意义了? can-train 事實應用範圍是整條規則,與 train 動作的內建判定無直接關連,例如你可以用 (can-train cannon-galleon-line) 事實來控制玩家對其他遊戲者叫囂說:「我可以建造火砲戰船了,等著我拆掉你們沿岸的建築物吧!」,而這條對話規則就毋須用到 train 動作-因為實際訓練必須是在另一條規則,否則就會造成循環發出訊息。
另外,官方教程也有利用 (not (can-train villager) ) 作為棄權條件之一,這也是與 train 的動作無關。
页:
[1]