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

[求助] 求同一建筑依次训练不同兵种的语句

[复制链接]

21

主题

3

精华

1万

积分

征服者

耕战
3476
鹰币
2316
天龙币
0
回帖
220

第十三届火箭筒杯季军

附庸关系9
 楼主| 发表于 2020-7-6 18:14:01 | 显示全部楼层 |阅读模式
本帖最后由 HudsonLee 于 2020-7-6 18:16 编辑

现在用计时器的写法,有没有更高明的方法?
  1. ;训练步弓手
  2. (defrule
  3.   (timer-triggered 6)
  4.   (housing-headroom > 0)
  5. =>
  6.   (disable-timer 6)
  7.   (enable-timer 7 2)
  8.   (train 4)
  9. )

  10. ;训练藤甲弓兵
  11. (defrule
  12.   (timer-triggered 7)
  13.   (housing-headroom > 0)
  14. =>
  15.   (disable-timer 7)
  16.   (enable-timer 8 2)
  17.   (train 1129)
  18. )

  19. ;训练骑射手
  20. (defrule
  21.   (timer-triggered 8)
  22.   (housing-headroom > 0)
  23. =>
  24.   (disable-timer 8)
  25.   (enable-timer 9 2)
  26.   (train 39)
  27. )

  28. ;训练火枪手
  29. (defrule
  30.   (timer-triggered 9)
  31.   (housing-headroom > 0)
  32. =>
  33.   (disable-timer 9)
  34.   (enable-timer 6 2)
  35.   (train 5)
  36. )
复制代码



![/url]
回复

使用道具 举报

14

主题

0

精华

1165

积分

伯爵

耕战
100
鹰币
320
天龙币
0
回帖
30
附庸关系0
发表于 2020-7-6 19:46:34 | 显示全部楼层
配合运算结果控制训练顺序
回复

使用道具 举报

15

主题

0

精华

1033

积分

伯爵

耕战
175
鹰币
580
天龙币
0
回帖
188
附庸关系0
发表于 2020-7-6 22:07:04 | 显示全部楼层
本帖最后由 blazefires 于 2020-7-6 22:42 编辑

(defconst gl-train-flag 100)

(defconst archer-flag 1)
(defconst rattan-flag 2)
(defconst cavalry-archer-flag 4)
(defconst hand-cannoner-flag 8)

(defrule
    (true)
=>
    (up-modify-flag gl-train-flag c:+ archer-flag)
    (enable-timer 1 0)
    (disable-self)
)

(defrule
    (up-timer-status 1 == 2)
=>
    (up-jump-rule 5)
)

(defrule
    (true)
=>
    (up-full-reset-search)
    (up-find-local c: archery-range c: 1)
    (disable-timer 1)
    (enable-timer 1 2)
)

(defrule
    (up-set-target-object search-local c: 0)
    (up-object-data object-data-train-count c:< 15)
    (up-compare-flag gl-train-flag c:== archer-flag)
=>
    (up-target-point 0 action-train c: 4)
    (up-modify-flag gl-train-flag c:- archer-flag)
    (up-modify-flag gl-train-flag c:+ rattan-flag)
    (up-jump-rule 3)
)
(defrule
    (up-set-target-object search-local c: 0)
    (up-object-data object-data-train-count c:< 15)
    (up-compare-flag gl-train-flag c:== rattan-flag)
=>
    (up-target-point 0 action-train c: 1129)
    (up-modify-flag gl-train-flag c:- rattan-flag)
    (up-modify-flag gl-train-flag c:+ cavalry-archer-flag)
    (up-jump-rule 2)
)
(defrule
    (up-set-target-object search-local c: 0)
    (up-object-data object-data-train-count c:< 15)
    (up-compare-flag gl-train-flag c:== cavalry-archer-flag)
=>
    (up-target-point 0 action-train c: 39)
    (up-modify-flag gl-train-flag c:- cavalry-archer-flag)
    (up-modify-flag gl-train-flag c:+ hand-cannoner-flag)
    (up-jump-rule 1)
)
(defrule
    (up-set-target-object search-local c: 0)
    (up-object-data object-data-train-count c:< 15)
    (up-compare-flag gl-train-flag c:== hand-cannoner-flag)
=>
    (up-target-point 0 action-train c: 5)
    (up-modify-flag gl-train-flag c:- hand-cannoner-flag)
    (up-modify-flag gl-train-flag c:+ archer-flag)
)

只用去一个goal和一个计时器而已
另外请你先确定藤弓射手能在靶场训练






回复

使用道具 举报

15

主题

0

精华

1033

积分

伯爵

耕战
175
鹰币
580
天龙币
0
回帖
188
附庸关系0
发表于 2020-7-7 01:18:21 | 显示全部楼层
(defconst some-goal 100)
(defrule
    (true)
=>
    (set-goal some-goal 666)
)

这指的是你仍然可以在其他地方使用100号goal,与训练规则互不干扰
如果再把1号计时器去掉,这样就完全没有使用到任何 1.计时器 2.goal ,即完成结果,手法最高明。
回复

使用道具 举报

21

主题

3

精华

1万

积分

征服者

耕战
3476
鹰币
2316
天龙币
0
回帖
220

第十三届火箭筒杯季军

附庸关系9
 楼主| 发表于 2020-7-7 10:50:55 | 显示全部楼层
blazefires 发表于 2020-7-6 22:07
(defconst gl-train-flag 100)

(defconst archer-flag 1)

我试了下你的方法,可他只训练藤甲弓,不训练其他三种兵,忘了说我用的是决定版....

本帖子中包含更多资源

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

x
![/url]
回复

使用道具 举报

15

主题

0

精华

1033

积分

伯爵

耕战
175
鹰币
580
天龙币
0
回帖
188
附庸关系0
发表于 2020-7-7 11:13:20 | 显示全部楼层
(defconst gl-train-flag 100)

(defconst archer-flag 1)
(defconst rattan-flag 2)
(defconst cavalry-archer-flag 4)
(defconst hand-cannoner-flag 8)

(defrule
    (true)
=>
    (up-modify-flag gl-train-flag c:+ archer-flag)
    (disable-self)
)

(defrule
    (true)
=>
    (up-full-reset-search)
    (up-find-local c: archery-range c: 1)
)

(defrule
    (up-set-target-object search-local c: 0)
    (up-object-data object-data-train-count c:< 15)
    (up-compare-flag gl-train-flag c:== archer-flag)
=>
    (up-target-point 0 action-train c: 4)
    (up-modify-flag gl-train-flag c:- archer-flag)
    (up-modify-flag gl-train-flag c:+ rattan-flag)
    (up-jump-rule 3)
)
(defrule
    (up-set-target-object search-local c: 0)
    (up-object-data object-data-train-count c:< 15)
    (up-compare-flag gl-train-flag c:== rattan-flag)
=>
    (up-target-point 0 action-train c: 1129)
    (up-modify-flag gl-train-flag c:- rattan-flag)
    (up-modify-flag gl-train-flag c:+ cavalry-archer-flag)
    (up-jump-rule 2)
)
(defrule
    (up-set-target-object search-local c: 0)
    (up-object-data object-data-train-count c:< 15)
    (up-compare-flag gl-train-flag c:== cavalry-archer-flag)
=>
    (up-target-point 0 action-train c: 39)
    (up-modify-flag gl-train-flag c:- cavalry-archer-flag)
    (up-modify-flag gl-train-flag c:+ hand-cannoner-flag)
    (up-jump-rule 1)
)
(defrule
    (up-set-target-object search-local c: 0)
    (up-object-data object-data-train-count c:< 15)
    (up-compare-flag gl-train-flag c:== hand-cannoner-flag)
=>
    (up-target-point 0 action-train c: 5)
    (up-modify-flag gl-train-flag c:- hand-cannoner-flag)
    (up-modify-flag gl-train-flag c:+ archer-flag)
)

这样就好,还是得有一个goal变量要消耗掉才行

回复

使用道具 举报

21

主题

3

精华

1万

积分

征服者

耕战
3476
鹰币
2316
天龙币
0
回帖
220

第十三届火箭筒杯季军

附庸关系9
 楼主| 发表于 2020-7-7 12:32:40 | 显示全部楼层
blazefires 发表于 2020-7-7 11:13
(defconst gl-train-flag 100)

(defconst archer-flag 1)

可以了,谢谢

本帖子中包含更多资源

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

x
![/url]
回复

使用道具 举报

183

主题

9

精华

2万

积分

教皇

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

翔鹰建站十周年纪念章

附庸关系3
发表于 2020-7-8 02:19:29 | 显示全部楼层
本帖最后由 newtonerdai 于 2020-7-8 02:21 编辑
blazefires 发表于 2020-7-7 01:18
(defconst some-goal 100)
(defrule
    (true)

我自己测试发现(UP1.5):
先(up-modify-flag some-goal c:+ 1),然后(set-goal some-goal 666),结果会是set-goal把二进制位给覆盖掉了。



而如果是先 set-goal 再 up-modify-flag ,则普通goal会被+1,而同时标志flag也能正常储存二进制数位

本帖子中包含更多资源

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

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

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

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

使用道具 举报

21

主题

3

精华

1万

积分

征服者

耕战
3476
鹰币
2316
天龙币
0
回帖
220

第十三届火箭筒杯季军

附庸关系9
 楼主| 发表于 2020-7-9 15:18:50 | 显示全部楼层
blazefires 发表于 2020-7-7 11:13
(defconst gl-train-flag 100)

(defconst archer-flag 1)

现在有一个情况,这份AI单独测试没问题,但我把他塞到我的战役AI里就报错了

本帖子中包含更多资源

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

x
![/url]
回复

使用道具 举报

本版积分规则

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

GMT+8, 2024-3-28 20:27 , Processed in 0.136395 second(s), 105 queries , File On.

Powered by Hawk Studio  QS Security Corp.® Licensed

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

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