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

[教程] [UP1.5] 寻找并攻击血量最低的前几个单位的AI(简单版)

[复制链接]

183

主题

9

精华

2万

积分

教皇

耕战
3325
鹰币
15206
天龙币
0
回帖
1200

翔鹰建站十周年纪念章

附庸关系3
 楼主| 发表于 2020-5-20 23:50:36 | 显示全部楼层 |阅读模式
本帖最后由 newtonerdai 于 2020-5-20 23:53 编辑

如果不用考虑未找到任何单位的情况,可以只用一条规则:
(defrule
    (taunt-detected 1 9)            ;(测试用)发出数字9后开始运行。
    (up-timer-status 10 <= 1)       ;10 = 定时器10号。<=1 :禁用或已触发
=>
    (up-full-reset-search)          ;使用DUC前先完全重置
    (set-strategic-number sn-focus-player-number 1)
    (up-find-remote c: -1 c: 40)    ;-1 = 任何单位
    (up-clean-search 2 10 1)        ;2 = 远程搜索。10 = 当前HP。1 = 正序(血量最少排最前)
    (up-remove-objects 2 -1 c:> 1)  ;2 = 远程搜索。-1 = 索引。1 = 只保留前2个远程结果

    (up-find-local c: -1 c: 40)     ;-1 = 任何单位
    (up-target-objects 0 0 -1 -1)   ;第二个0 = 右键。
    (enable-timer 10 2)             ;10 = 定时器10号。2 = 两秒执行一次
)

如果需要考虑没有搜索到单位的情况,则加一条规则来检测:
(defconst gl-local-total 300)
(defconst gl-local-last 301)
(defconst gl-remote-total 302)
(defconst gl-remote-last 303)

(defrule
    (taunt-detected 1 9)            ;(测试用)发出数字9后开始运行。
    (up-timer-status 10 <= 1)       ;10 = 定时器10号。<=1 :禁用或已触发
=>
    (up-full-reset-search)          ;使用DUC前先完全重置

    (up-find-local c: -1 c: 40)     ;-1 = 任何单位
    (set-strategic-number sn-focus-player-number 1)
    (up-find-remote c: -1 c: 40)    ;-1 = 任何单位
   
    (up-get-search-state gl-local-total)    ;获取搜索计数
)

(defrule
    (taunt-detected 1 9)            ;(测试用)发出数字9后开始运行。
    (up-timer-status 10 <= 1)       ;10 = 定时器10号。<=1 :禁用或已触发
    (up-compare-goal gl-local-total c:> 0)  ;只有有单位时才执行排序和指派
    (up-compare-goal gl-remote-total c:> 0) ;同上
=>
    (up-clean-search 2 10 1)        ;2 = 远程搜索。10 = 当前HP。1 = 正序(血量最少排最前)
    (up-remove-objects 2 -1 c:> 1)  ;2 = 远程搜索。-1 = 索引。1 = 只保留前2个远程结果

    (up-target-objects 0 0 -1 -1)   ;第二个0 = 右键。
    (enable-timer 10 2)             ;10 = 定时器10号。2 = 两秒执行一次
)


索引:
Userpatch 实用技术贴索引←点击进入
决定版精品贴大索引←点击进入

战役:
《 兔与豹》——柔弱奴隶公主  猛兽口中求生←点击进入
《敛由国的统一》←点击进入

殊途战役制作群 QQ: 616317226
翔鹰帝国Ⅱ:决定版交流群 QQ: 112822759
回复

使用道具 举报

21

主题

0

精华

673

积分

伯爵

耕战
29
鹰币
591
天龙币
0
回帖
238
附庸关系0
发表于 2020-5-23 21:08:23 | 显示全部楼层
如果想改成攻击血量最多单位,需要改动哪里?改成什么数值?
回复

使用道具 举报

21

主题

0

精华

673

积分

伯爵

耕战
29
鹰币
591
天龙币
0
回帖
238
附庸关系0
发表于 2020-5-23 21:08:28 | 显示全部楼层
如果想改成攻击血量最多单位,需要改动哪里?改成什么数值?
回复

使用道具 举报

15

主题

0

精华

1033

积分

伯爵

耕战
175
鹰币
580
天龙币
0
回帖
188
附庸关系0
发表于 2020-5-24 03:23:04 | 显示全部楼层
chifeiyen 发表于 2020-5-23 21:08
如果想改成攻击血量最多单位,需要改动哪里?改成什么数值?

最好别用命令攻击,比如你AI弓兵选择到冲车血量最高,就会一直对冲车射箭射到冲车垮掉喔
这义味着过程中就算看见敌人一般部队或村民都会完全无视的,会一直射冲车
回复

使用道具 举报

21

主题

0

精华

673

积分

伯爵

耕战
29
鹰币
591
天龙币
0
回帖
238
附庸关系0
发表于 2020-5-24 05:27:10 | 显示全部楼层
blazefires 发表于 2020-5-24 03:23
最好别用命令攻击,比如你AI弓兵选择到冲车血量最高,就会一直对冲车射箭射到冲车垮掉喔
这义味着过程中 ...

我就是想要这个效果啊,这样我的冲车也能更好当肉盾掩护步兵。
回复

使用道具 举报

183

主题

9

精华

2万

积分

教皇

耕战
3325
鹰币
15206
天龙币
0
回帖
1200

翔鹰建站十周年纪念章

附庸关系3
 楼主| 发表于 2020-5-24 11:13:20 | 显示全部楼层
chifeiyen 发表于 2020-5-23 21:08
如果想改成攻击血量最多单位,需要改动哪里?改成什么数值?

(up-clean-search 2 10 1)改为 (up-clean-search 2 10 2)
1表示正序(从小到大)
2表示倒序(从大到小)
索引:
Userpatch 实用技术贴索引←点击进入
决定版精品贴大索引←点击进入

战役:
《 兔与豹》——柔弱奴隶公主  猛兽口中求生←点击进入
《敛由国的统一》←点击进入

殊途战役制作群 QQ: 616317226
翔鹰帝国Ⅱ:决定版交流群 QQ: 112822759
回复

使用道具 举报

21

主题

0

精华

673

积分

伯爵

耕战
29
鹰币
591
天龙币
0
回帖
238
附庸关系0
发表于 2020-5-24 12:05:51 | 显示全部楼层
newtonerdai 发表于 2020-5-24 11:13
(up-clean-search 2 10 1)改为 (up-clean-search 2 10 2)
1表示正序(从小到大)
2表示倒序(从大到小) ...

谢谢!我想把DE默认AI也改成这样,我看了下AI文件里的up-clean-search策略后没有参数,但有以下两个策略值参数:
        (up-target-objects 0 action-garrison -1 -1)
        (up-target-objects 1 action-default -1 -1)
请问大大这俩策略是不是影响这个问题的?这里的-1是代表什么?改成攻击血量最大单位应该改成什么?
回复

使用道具 举报

183

主题

9

精华

2万

积分

教皇

耕战
3325
鹰币
15206
天龙币
0
回帖
1200

翔鹰建站十周年纪念章

附庸关系3
 楼主| 发表于 2020-5-24 12:35:09 | 显示全部楼层
chifeiyen 发表于 2020-5-24 12:05
谢谢!我想把DE默认AI也改成这样,我看了下AI文件里的up-clean-search策略后没有参数,但有以下两个策略 ...

你可以试试用NotePad++来在整个文件夹的文件中搜索。找到挺多的。



修改思路是:找到up-target-objects action-default,在它之前用主楼第二个方法里的up-clean-和up-remove-来筛选。

不过前提是你得知道哪些up-target-objects action-default是用于攻击的,而且在攻击之前筛选得怎样。

-1是会被忽略的参数。你列举的两条语句里的第一个-1表示阵型,第二个表示攻击姿态。一般用不到。

另外,这个不叫“策略值”,叫“动作”或者“语句/指令”,策略值是sn-开头的那种

本帖子中包含更多资源

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

x
索引:
Userpatch 实用技术贴索引←点击进入
决定版精品贴大索引←点击进入

战役:
《 兔与豹》——柔弱奴隶公主  猛兽口中求生←点击进入
《敛由国的统一》←点击进入

殊途战役制作群 QQ: 616317226
翔鹰帝国Ⅱ:决定版交流群 QQ: 112822759
回复

使用道具 举报

21

主题

0

精华

673

积分

伯爵

耕战
29
鹰币
591
天龙币
0
回帖
238
附庸关系0
发表于 2020-5-24 13:05:12 | 显示全部楼层
本帖最后由 chifeiyen 于 2020-5-24 13:10 编辑
newtonerdai 发表于 2020-5-24 12:35
你可以试试用NotePad++来在整个文件夹的文件中搜索。找到挺多的。

好的,我研究一下,谢谢大大!
up-clean-search我倒是找到了,但它这里后面并不是1或2这种数字啊,这个也没法修改吧?
回复

使用道具 举报

183

主题

9

精华

2万

积分

教皇

耕战
3325
鹰币
15206
天龙币
0
回帖
1200

翔鹰建站十周年纪念章

附庸关系3
 楼主| 发表于 2020-5-24 14:02:56 | 显示全部楼层
chifeiyen 发表于 2020-5-24 13:05
好的,我研究一下,谢谢大大!
up-clean-search我倒是找到了,但它这里后面并不是1或2这种数字啊,这个也 ...

这个你可以去看看UserPatchConst.per(论坛就有,搜索即可),或者Promisary文件夹里似乎有个叫“const.per”的文件,里面定义了很多的常数(其实就是用一串英文来指代一个数字,比如action-default表示的就是数字0,这方面可以去看看“CPSB”官方教程,在本版块的置顶帖里就有)
索引:
Userpatch 实用技术贴索引←点击进入
决定版精品贴大索引←点击进入

战役:
《 兔与豹》——柔弱奴隶公主  猛兽口中求生←点击进入
《敛由国的统一》←点击进入

殊途战役制作群 QQ: 616317226
翔鹰帝国Ⅱ:决定版交流群 QQ: 112822759
回复

使用道具 举报

本版积分规则

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

GMT+8, 2024-4-25 06:45 , Processed in 0.139137 second(s), 115 queries , File On.

Powered by Hawk Studio  QS Security Corp.® Licensed

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

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