寒冰绝对零度 发表于 2020-12-1 09:58:50

被攻击提系

有什么可以提示某单位或某玩家正在被攻击的办法?

troytroytroy 发表于 2020-12-1 17:52:30

用AI語句:
up-get-object-data
檢測單位是否被攻擊,參數為:
(defconst object-data-under-attack 35)
剩下的請自己參考新桶的up 1.5腳本編寫參考。

newtonerdai 发表于 2020-12-2 16:37:40

楼上指的是这个文档↓。
《UserPatch 1.5 脚本编写参考 - 2020.11.19》



下面是一段简单的示例代码↓
(defconst object-data-under-attack 35)
(defrule
    ; 设定目标单位为地图ID为1000的那个单位
    (up-set-target-by-id c: 1000)
    ; 检测目标单位,其“正被攻击”属性是否为1,若为1,表明正被攻击
    (up-object-data object-data-under-attack c:== 1)
=>
    (chat-to-all "地图ID为1000的那个单位正被攻击")
)
(object-data-under-attack、up-set-target-by-id、up-object-data这些语句的详解都可以在上面的“脚本编写参考”里查到。defrule和chat-to-all的详解则去本版置顶帖“帝国时代II征服者 官方AI参考教程中文版”(也就是我们常说的CPSB.doc)的文档里找。)

地图ID可以通过以下途径获知:
1、使用AOKTS打开场景,到“单位”选项卡里找到你想要检测的单位,它左边的数字就是其地图ID


2、使用AI语句来在地图上查找单位。教程: 搜索并报告场景里某个单位的地图ID的AI



至于玩家正被攻击。

1、可以到CPSB.doc里查找“town-under-attack”这一语句。这个语句可以检测AI己方的城镇范围内是否有物件正被攻击。

2、可以到UP1.5脚本编写参考里查找“up-get-threat-data”这一语句。这个语句可以检测AI己方 最近一次威胁离上次威胁过去的时间(也就是检测最近一次遭受攻击是在多少ms之前)
页: [1]
查看完整版本: 被攻击提系