翔鹰帝国网|帝国时代论坛|帝国时代系列|神话时代
 找回密码
 注册翔鹰会员(昵称)
搜索
查看: 2495|回复: 7

[战役AI] Advanced Immobile AI 2017 改良版不动AI 2017版本

[复制链接]

21

主题

3

精华

2万

积分

征服者

耕战
4311
鹰币
22971
天龙币
0
回帖
330

第十二届火箭筒杯最佳新人

附庸关系3
发表于 2017-5-7 20:13:03 | 显示全部楼层 |阅读模式
本帖最后由 Oracle_Ameth 于 2017-5-7 20:28 编辑

Advanced Immobile AI 2017 改良版不动AI 2017版本 下载地址




本AI改良的契机是我在制作战役的时候发现了一个问题:

为电脑玩家使用不动AI,当使用密铺将资源单位和电脑玩家的城镇中心重叠时,电脑的村民居然都会动起来,去采集那个和城镇中心重叠的资源单位。以前也有战役制作者遇到过相同的问题,只是没有深究并选择妥协,将和城镇中心重叠的用作装饰的资源单位删去。

后来,我提出了这个问题,经过 狂~劇情狂 与 tryotryotryo 两位的讨论和研究,发现了问题的原因和解决的办法,于是我制作出了这个改良版的不动AI。以下贴出改良过后的AI的内容供复制粘贴,并讲解出现问题的原因和解决的办法。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册翔鹰会员(昵称)

x

评分

参与人数 1耕战 +20 鹰币 +100 收起 理由
troytroytroy + 20 + 100 耕战之功

查看全部评分

回复

使用道具 举报

21

主题

3

精华

2万

积分

征服者

耕战
4311
鹰币
22971
天龙币
0
回帖
330

第十二届火箭筒杯最佳新人

附庸关系3
 楼主| 发表于 2017-5-7 20:13:09 | 显示全部楼层
; Advanced immobile AI 2017
; 改良版不动AI 2017版本

; This AI can be used in any scenario
; 本AI可以在任何自定义场景中使用

; By Oracle_Ameth
; May 2017
; 由 Oracle_Ameth 于2017年5月制作
; 该AI改进为 狂~劇情狂 与 tryotryotryo 的研究成果

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;





; 本不动AI相对于之前版本的不动AI做出的改进:
; 电脑村民不再会试图采集场景中那些和城镇中心或者伐木场等重叠放置的资源单位。




;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;





; Civil Sets
; 村民设置

(defrule
    (true)
=>
    (set-strategic-number sn-maximum-food-drop-distance -2)
    (set-strategic-number sn-maximum-wood-drop-distance -2)
    (set-strategic-number sn-maximum-gold-drop-distance -2)
    (set-strategic-number sn-maximum-stone-drop-distance -2)
    (set-strategic-number sn-maximum-hunt-drop-distance -2)
    (set-strategic-number sn-food-gatherer-percentage 0)
    (set-strategic-number sn-stone-gatherer-percentage 0)
    (set-strategic-number sn-gold-gatherer-percentage 0)
    (set-strategic-number sn-wood-gatherer-percentage 0)
    (set-strategic-number sn-cap-civilian-explorers 0)
    (set-strategic-number sn-percent-civilian-explorers 0)
    (disable-self)
)



; Military Sets
; 军队设置

(defrule
    (true)
=>
    (set-strategic-number sn-percent-enemy-sighted-response 100)
    (set-strategic-number sn-hits-before-alliance-change 25)
    (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 10)
    (set-strategic-number sn-total-number-explorers 0)
    (set-strategic-number sn-relic-return-distance 0)
)



(defrule
    (true)
=>
    (set-difficulty-parameter ability-to-maintain-distance 100)
    (set-difficulty-parameter ability-to-dodge-missiles 0)
    (disable-self)
)
回复

使用道具 举报

21

主题

3

精华

2万

积分

征服者

耕战
4311
鹰币
22971
天龙币
0
回帖
330

第十二届火箭筒杯最佳新人

附庸关系3
 楼主| 发表于 2017-5-7 20:14:02 | 显示全部楼层
本帖最后由 Oracle_Ameth 于 2017-5-7 20:15 编辑

问题的原因:




首先看看以前的不动AI的“村民设置”部分的写法:

(defrule
    (true)
=>
    (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-stone-drop-distance 0)
    (set-strategic-number sn-maximum-hunt-drop-distance 0)

    (set-strategic-number sn-food-gatherer-percentage 0)
    (set-strategic-number sn-stone-gatherer-percentage 0)
    (set-strategic-number sn-gold-gatherer-percentage 0)
    (set-strategic-number sn-wood-gatherer-percentage 0)
    (set-strategic-number sn-cap-civilian-explorers 0)
    (set-strategic-number sn-percent-civilian-explorers 0)
    (disable-self)
)




乍一看好像没有什么问题,最大的采集距离都是0。但是,这是以前密铺还没有普及,且我们无法使用直观密铺编辑地图时才绝对有效的写法。因为直观密铺的出现,我们可以在地图编辑器中将资源单位放置在资源收集建筑上,导致电脑检测到的“事实”上,这个资源单位距离资源收集建筑的距离是小于1的。而在帝国时代2的算法中,不满1的小数部分会被舍去,“小于1”就被电脑看作了“0”,这样就符合了村民采集该资源的条件,导致了不动AI中的村民动了起来。
回复

使用道具 举报

21

主题

3

精华

2万

积分

征服者

耕战
4311
鹰币
22971
天龙币
0
回帖
330

第十二届火箭筒杯最佳新人

附庸关系3
 楼主| 发表于 2017-5-7 20:14:14 | 显示全部楼层
本解决办法为 狂~劇情狂 与 tryotryotryo 两位研究出来的成果。




解决的办法:

既然最大采集距离设置为0村民还是会动起来,那么将最大采集距离设置为负的不就好了?

没错, 策略sn-food-gatherer-percentage 的策略值不光可以是自然数,还可以设为负数!

但是并没有“只是设为负数就好”那么简单,因为当策略 sn-food-gatherer-percentage 的策略值为-1时,代表着村民在采集食物的距离上没有任何限制,即可以全地图采集,相当于将策略值设为255。

所以,作为解决的办法,我们将这些采集资源相关的策略的策略值设为-2,这样就解决了村民会在特殊的情况下动起来的问题。

回复

使用道具 举报

2

主题

0

精华

27

积分

骑士

耕战
0
鹰币
1370
天龙币
0
回帖
30
附庸关系0
发表于 2018-4-13 23:37:15 | 显示全部楼层
萌新问几个问题

不动AI是什么程度上的不动?只有敌人进入攻击范围才动吗?还是像席德那样完全不动?
下载之后怎么用?qwq谢谢大佬
回复

使用道具 举报

2

主题

0

精华

27

积分

骑士

耕战
0
鹰币
1370
天龙币
0
回帖
30
附庸关系0
发表于 2018-4-14 20:59:30 | 显示全部楼层
抱歉 我还要再问一下 因为有点着急。。。
我玩的是HD 下载之后 具体应该放在AI的哪个文件夹里?我放在ai里 游戏并没有变化
是否我还需要改代码?
回复

使用道具 举报

3

主题

0

精华

10

积分

骑士

耕战
0
鹰币
10
天龙币
0
回帖
7
附庸关系0
发表于 2018-9-1 09:32:31 | 显示全部楼层
请问steam版可以用这个AI吗?
回复

使用道具 举报

0

主题

0

精华

77

积分

骑士

耕战
0
鹰币
5
天龙币
0
回帖
94
附庸关系0
发表于 2019-3-11 01:50:32 | 显示全部楼层
支持,下载来试一试
回复

使用道具 举报

本版积分规则

排行榜|小黑屋|翔鹰帝国

GMT+8, 2024-12-28 04:32 , Processed in 0.343876 second(s), 100 queries , File On.

Powered by Hawk Studio  QS Security Corp.® Licensed

Copyright © 2001-2023, Hawkaoe.net All Rights Reserved

快速回复 返回顶部 返回列表