找回密码
 点一下
查看: 940|回复: 7

这触发里为什么单位会中止巡逻?

[复制链接]
发表于 2011-8-30 14:29:21 | 显示全部楼层 |阅读模式
SG02
    事件
        时间 - 每 5.00 秒触发事件
    条件
    动作
        如果所有条件成立则做动作1,否则做动作2
            If - 条件
                ((A01 <预设> 内属于 玩家1(红色) 的所有单位) 中的单位数量) 大于或等于 1
            Then - 动作
                无动作
            Else - 动作
                单位 - 对 ((A01 <预设> 内属于 中立敌对 的所有单位) 中随机选取的一个单位) 发布 巡逻 命令到目标点: (A01 <预设> 内的随机点)


按理说这样写法当我的单位进入A01后,正在巡逻的敌对单位应该还在巡逻才对,我不能理解的就是为什么我的单位进入A01之后敌对单位就回到自己的岗位上去停止巡逻了。
难道触发还会额发一条命令让巡逻的单位中止动作?
仍然没有好的解决办法呀。。。。
原贴作废:http://bbs.islga.org/read-htm-tid-283470.html仍可参考
发表于 2011-8-30 14:48:11 | 显示全部楼层
SG02
    事件
        时间 - 每 5.00 秒触发事件
    条件
    动作
        如果所有条件成立则做动作1,否则做动作2
            If - 条件
               ((A01 <预设> 内属于 Ⅰ: 玩家1(红色) 的所有单位) 中的单位数量) 大于或等于 1
            Then - 动作
                无动作
            Else - 动作
                单位 - 对 ((A01 <预设> 内属于 Ⅱ:中立敌对 的所有单位) 中随机选取的一个单位) 发布 巡逻 命令到目标点: (A01 <预设> 内的随机点)

  大概是单位组没有被清除导致的

你只需要加上一个局部或者全局单位组检查就可以 然后离开区域移除这个出去的家伙
回复

使用道具 举报

发表于 2011-8-30 16:53:20 | 显示全部楼层
中立敌对有自己的ai,关闭那个单位的警戒点就好了
回复

使用道具 举报

 楼主| 发表于 2011-8-30 17:28:40 | 显示全部楼层
回楼上,关闭后敌对生物依然会回到原地,而同样中止了巡逻。

引用第1楼uoer于2011-08-30 14:48发表的  :
SG02
    事件
        时间 - 每 5.00 秒触发事件
    条件
    动作
.......

这一点我觉得不是问题,关键应该是在事件那里,因为事件是周期性的。至于这个单位组是没有用到变量的,所以,无动作的话单位组就不存在了
回复

使用道具 举报

发表于 2011-8-30 20:58:32 | 显示全部楼层
已经在研究巡逻了,发现没有想象的那么简单……你能发下你的地图或者演示么?
回复

使用道具 举报

 楼主| 发表于 2011-8-30 21:29:17 | 显示全部楼层
地图传上来了,这是我专门用来测试触发的地图,所以就那么几条触发,巡逻兵的区域A01在有水的区域那里,那里是放了一个小兵的。 测试地图[触发].w3x (123 KB, 下载次数: 5)
回复

使用道具 举报

 楼主| 发表于 2011-8-30 23:42:30 | 显示全部楼层
完成了,虽然还是有那么一点不理想,不过呢,这下被子攻击的单位不会乱跑了。
以下触发,看看还能不能改进一下吧:

SG03    事件
        时间 - 每 5.00 秒触发事件
    条件
    动作
        设置 Unit01 = (A01 <预设> 内属于 中立敌对 的所有单位)
        单位 - 对 (Unit01 中随机选取的一个单位) 发布 巡逻 命令到目标点: (A01 <预设> 内的随机点)
        单位 - 对 (Unit01 中随机选取的一个单位) 发布 巡逻 命令到目标点: (A01 <预设> 内的随机点)
        单位 - 对 (Unit01 中随机选取的一个单位) 发布 巡逻 命令到目标点: (A01 <预设> 内的随机点)


SG04    事件
        单位 - 中立敌对 的单位 被攻击
    条件
    动作
        如果所有条件成立则做动作1,否则做动作2
            If - 条件
                (SG03 <预设> 处于开启状态) 等于 TRUE
            Then - 动作
                单位组 - 把 (触发单位) 从 Unit01 移除
                触发器 - 关闭 SG03 <预设>
            Else - 动作
                单位组 - 添加 (触发单位) 到 Unit01
                触发器 - 开启 SG03 <预设>
                触发器 - 运行 SG03 <预设> (检查条件)
回复

使用道具 举报

发表于 2011-8-31 23:28:56 | 显示全部楼层
想到可以用新建矩形區域來限制他的移動範圍
之後再刪除這區域就好了...

不知道這樣會不會對系統造成負擔呢?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 点一下

本版积分规则

Archiver|移动端|小黑屋|地精研究院

GMT+8, 2024-11-24 05:38 , Processed in 0.034306 second(s), 21 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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