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

验证器如何验证单位是否被地堡装载?

[复制链接]
发表于 2013-1-23 19:41:37 | 显示全部楼层 |阅读模式
试图使用单位类型来检测施法者外层,但是失败了。设置如下:
名称:单位被地堡装载
查找:已启用
单位:施法者外层(也测试了外层,同样失败)
值:地堡

  1. <CValidatorUnitType id="ZDBN">
  2. <WhichUnit Value="Outer"/>
  3. <Value value="Bunker"/>
  4. </CValidatorUnitType>
  5. <CValidatorUnitType id="ZDBW">
  6. <WhichUnit Value="Outer"/>
  7. <Value value="Bunker"/>
  8. <Find value="0"/>
  9. </CValidatorUnitType>
复制代码

点评

为啥是两个验证器?主要是没看懂这个验证器是用来做啥的。不知道能不能再描述一下。 要不你把<WhichUnit Value="Outer"/>改成<WhichUnit Value="CasterOuter"/>试试?  发表于 2013-1-24 20:04
 楼主| 发表于 2013-1-23 21:23:30 | 显示全部楼层
变相解决了,使用枚举区域,如果在地堡内,枚举范围0也能找到地堡。不过据说枚举区域效率低下,不知道有没有更好的。
回复

使用道具 举报

发表于 2013-1-24 10:54:11 | 显示全部楼层
地堡的装载技能可以给被装载体添加行为。
然后使用验证器判断被装载的目标身上有没有行为!
就可以得出目标是否被装载。
我没试过,只是思路。仅供参考!

点评

开始我看错了,我以为你是说在加载时利用应用行为效果添加一个行为上去。现在仔细看了下,原来说的是地堡自带的那个加载行为,这个确实比较实用。 另外延伸一下,其实不必判断行为,再去做什么。因为我想做的换武器  详情 回复 发表于 2013-1-25 23:21
回复

使用道具 举报

 楼主| 发表于 2013-1-25 21:14:54 | 显示全部楼层
两个验证器,一个是在地堡内,一个是在地堡外。CasterOuter是施法者外层吧,测试了没用,目标外层也测试了,同样没用。因为理论上来讲,施法者、源、和目标都是指的被装载物本身,所以他们的外层也应该都指代地堡。但是都无效,不知道为什么。
另外楼上的方法应该是可行的,但是需要加载一个行为,不知道有没有无需特殊设置,直接判断是否被地堡装载的验证器。
回复

使用道具 举报

发表于 2013-1-25 21:41:49 | 显示全部楼层
这里使用单位类型验证器明明是正确的。

你多半是用的时候用错了啊。

[codes=xml]
    <CValidatorUnitType id="InBunker">
        <WhichUnit Value="Outer"/>
        <Value value="Bunker"/>
    </CValidatorUnitType>


    <CEffectSet id="Test">
        <ValidatorArray value="InBunker"/>
    </CEffectSet>
[/codes]


这样一来,单位只有在地堡里才能使用Test这个效果了。顺便一说,这里的Outer指的是施法者的Outer,不要搞错。
回复

使用道具 举报

 楼主| 发表于 2013-1-25 22:17:56 | 显示全部楼层
本帖最后由 yxxiaobin 于 2013-1-25 22:31 编辑

我自己再次测试了一下,还是找不出问题所在,我把验证器用在行为上,希望做到如下效果,给单位添加一个行为,该行为禁用原有武器,添加一个个新武器,这个行为只在地堡内有效。实际效果就是,当单位进入地堡时,会换一种武器来使用。其中陆战队员使用了单位类型来判断,而幽灵使用了搜索区域。
代码如下:@麦德三世
  1. <CUnit id="Ghost">
  2. <BehaviorArray Link="01"/>
  3. </CUnit>
  4. <CUnit id="Marine">
  5. <BehaviorArray Link="00"/>
  6. </CUnit>
复制代码
  1. <CBehaviorBuff id="00">
  2. <EditorCategories value="AbilityorEffectType:Units"/>
  3. <Modification>
  4. <WeaponArray Link="PhotonCannon"/>
  5. <WeaponDisableArray value="GuassRifle"/>
  6. </Modification>
  7. <DisableValidatorArray value="000"/>
  8. </CBehaviorBuff>
  9. <CBehaviorBuff id="01">
  10. <EditorCategories value="AbilityorEffectType:Units"/>
  11. <Modification>
  12. <WeaponArray Link="PrismaticBeam"/>
  13. <WeaponDisableArray value="C10CanisterRifle"/>
  14. </Modification>
  15. <DisableValidatorArray value="001"/>
  16. </CBehaviorBuff>
复制代码
  1. <CValidatorUnitType id="000">
  2. <WhichUnit Value="Outer"/>
  3. <Value value="Bunker"/>
  4. </CValidatorUnitType>
  5. <CValidatorLocationEnumArea id="001">
  6. <AreaArray Count="1"/>
  7. <SearchFilters value="Structure;Ally,Neutral,Enemy"/>
  8. </CValidatorLocationEnumArea>
复制代码
运行测试,幽灵成功更换武器,陆战队员无效。
回复

使用道具 举报

 楼主| 发表于 2013-1-25 22:31:13 | 显示全部楼层
本帖最后由 yxxiaobin 于 2013-1-25 23:16 编辑

刚刚又测试了一下,像头目那样把验证器应用于效果:为陆战队员的电磁枪直接加载一个集合效果,利用该效果集合电磁枪原有效果和虚空辉光舰的武器效果,然后分别为效果使用在地堡内和在地堡外验证器,验证成功。
奇怪的是行为却不行,不知道为什么。
------------------------------------------------------------
猜测了一下,加载和卸载并不会引起行为验证器的重新判断,所以即使条件已经发生变化,仍然不会更新行为。而使用搜索验证器可能是因为有单位靠近导致的验证器重新判断,所以行为被启用了。以上纯属猜测,请各位大侠指点。
回复

使用道具 举报

 楼主| 发表于 2013-1-25 23:21:40 | 显示全部楼层
xhang 发表于 2013-1-24 10:54
地堡的装载技能可以给被装载体添加行为。
然后使用验证器判断被装载的目标身上有没有行为!
就可以得出目 ...

开始我看错了,我以为你是说在加载时利用应用行为效果添加一个行为上去。现在仔细看了下,原来说的是地堡自带的那个加载行为,这个确实比较实用。
另外延伸一下,其实不必判断行为,再去做什么。因为我想做的换武器本身就是行为做的,直接在这个行为上添加更换武器的设置就可以了(行为默认效果是射程加一,直接添加启用禁用武器效果即可),而且它的好处是当单位被卸载时行为会自动失效,真是非常方便呀。
谢谢你的提醒。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-29 08:15 , Processed in 0.136722 second(s), 28 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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