找回密码
 点一下
查看: 2593|回复: 15

CEffectCreateHealer中效果旗标的一个疑问

[复制链接]
发表于 2011-11-14 15:27:57 | 显示全部楼层 |阅读模式
今天想用EnumArea做一个恢复泉水的效果,设想是这样的,做个Buff每1.5秒一跳,调用EnumArea,再由EnumArea调用CEffectCreateHealer恢复生命,实现是实现了,不过遇到一个比较怪异的问题,如果勾选Healer中效果旗标中的“被引导”(默认是勾选的),那么回血回的奇慢,但不勾选的话,回血速度就会越来越快,不明白是怎么回事儿,后来我用“修改单位属性”的效果又做了个泉水,但这个还是没弄明白,向大家求教,附地图~~
泉水.SC2Map (44 KB, 下载次数: 33)
 楼主| 发表于 2011-11-14 15:32:35 | 显示全部楼层
我觉得应该是我对“引导”或者“Healer”理解不够深入造成的问题,向大家求教了~~
回复

使用道具 举报

发表于 2011-11-14 16:06:16 | 显示全部楼层
这不是显而易见的么?

CEffectCreateHealer本身就一持续效果。你再用个buff来每秒调用一次,它当然就会无限叠加,最后层数越来越多,加血越来越快。


而引导以后就不叠加了,就这么回事儿。


你没发现医疗船的技能都是用Marker来限每个单位只能被一个效果治疗的么?


我改了个用marker的结果,你看看是不是和引导状态一样,加血很慢了?

泉水.SC2Map

44 KB, 下载次数: 46

回复

使用道具 举报

发表于 2011-11-14 16:09:20 | 显示全部楼层
另外,如果你想模拟war3的泉水的话。这个思路是不对的。


war3的泉水和光环其实是靠周期性给周围的单位附加buff来做到的。这个周期一般是2秒一次。

而buff的持续时间很短,所以出了范围很快就没了。一般周期是1秒,buff就是2秒。周期2秒的,buff就3秒或4秒。



而且使用buff来限制层数比用marker来做容易许多,毕竟marker是一个比较难学会的东西。
回复

使用道具 举报

 楼主| 发表于 2011-11-14 16:26:51 | 显示全部楼层

回 3楼(麦德三世) 的帖子

麦德三世:另外,如果你想模拟war3的泉水的话。这个思路是不对的。


war3的泉水和光环其实是靠周期性给周围的单位附加buff来做到的。这个周期一般是2秒一次。

....... (2011-11-14 16:09) 
我功力实在是不够,多谢头目的指点,我再研究研究。
marker之前看过,不过没看懂,根据这个例子我再学习一遍,不懂再回来问~~
回复

使用道具 举报

 楼主| 发表于 2011-11-14 16:33:16 | 显示全部楼层

回 3楼(麦德三世) 的帖子

麦德三世:另外,如果你想模拟war3的泉水的话。这个思路是不对的。


war3的泉水和光环其实是靠周期性给周围的单位附加buff来做到的。这个周期一般是2秒一次。

....... (2011-11-14 16:09) 
还有关于Healer本身有个问题,healer的回复量按照翻译是“周期性回复量”,但这个周期是怎么算的呢?我不太了解这个值的含义……
回复

使用道具 举报

发表于 2011-11-14 16:39:04 | 显示全部楼层
这个“周期性回复量”是跟“抽取关键指标消耗系数”有关联的。

如果“抽取关键指标消耗系数”等于0,则该Healer效果 就是每秒为轰击单位恢复 “周期性回复量” 的值。

如果“抽取关键指标消耗系数”大于0,则该Healer效果 就是每秒为发射单位消耗 “周期性回复量” 的值(用于治疗轰击单位)。
回复

使用道具 举报

 楼主| 发表于 2011-11-14 16:47:05 | 显示全部楼层

回 6楼(cccty1l) 的帖子

cccty1l:这个“周期性回复量”是跟“抽取关键指标消耗系数”有关联的。

如果“抽取关键指标消耗系数”等于0,则该Healer效果 就是每秒为轰击单位恢复 “周期性回复量” 的值。

如果“抽取关键指标消耗系数”大于0,则该Healer效果 就是每秒为发射单位消耗 “周期性回复量” 的值(用于治 .. (2011-11-14 16:39) 
多谢指点,不过还是有些问题,我把“周期性回复量”设置为10,同时设置“抽取关键指标消耗系数为0,按理说应该每次回复10点Hp,但实际的效果只有一点每秒左右
回复

使用道具 举报

发表于 2011-11-14 17:45:38 | 显示全部楼层
嗯,这个我刚刚测试了一下,每秒有一点的恢复量其实还是算上了雷兽自身的恢复,实际值比这个更低一些。

问题出在marker这块,需要同时勾选 匹配标旗 的链接 和 不匹配旗标 的Id。

地图我修改了,你看下效果吧。

泉水.SC2Map

44 KB, 下载次数: 21

回复

使用道具 举报

 楼主| 发表于 2011-11-14 23:36:21 | 显示全部楼层

回 8楼(cccty1l) 的帖子

cccty1l:嗯,这个我刚刚测试了一下,每秒有一点的恢复量其实还是算上了雷兽自身的恢复,实际值比这个更低一些。

问题出在marker这块,需要同时勾选 匹配标旗 的链接 和 不匹配旗标 的Id。

地图我修改了,你看下效果吧。
....... (2011-11-14 17:45) 
好用了,十分感谢指教,但还得再麻烦你一下,这个是什么原理呢?marker这部分知识我认识比较浅薄,不是太理解
回复

使用道具 举报

发表于 2011-11-15 09:44:56 | 显示全部楼层
具体原理我不是很清楚,这个问题可能和 “创建治疗者” 这个效果有很大关系。

之前因为雷兽可以回血,可以推测 Healer 生效了,但是回血速度与 添加该Healer的行为 周期有关联,那么推测可能为该 Healer 在生效后又被删除掉了。于是推测为是 Healer 的验证器 “无标记” 在Healer 生效后再次触发了,是 “无标记” 验证器导致了 Healer 被删除。

那么有这个推测的话就可以做一个试验了,我们知道War3当中泉水是有影响范围的,那么我为 Healer 再添加一个验证器,用于验证 雷兽 与 陆战队员 之间的距离是否小于5,进入地图,移动雷兽,然后你可以发现,Healer 的验证器确实会导致 Healer 被删除的。这个演示我附上了。

那么 “无标记” 为什么会导致 Healer 被删除呢?这个问题有点复杂,首先要了解 marker 被添加/删除的时机,还有Id、单位、链接、玩家的作用范围,以及匹配与不匹配的叠加问题。特别是和 Healer 联系起来,这个情况变得很复杂,我试着简单说下这个流程吧。

假设只勾选了 匹配标旗 的链接,验证器仅有 “无标记”,则:
  1,HealEnumArea 查找到目标,要添加 Healer,执行 Healer验证器(通过则执行2,不通过执行4)。
  2,验证器通过,Healer 被添加。该单位 marker 变为1。
  3,Healer生效,但之后 验证器 再次验证,marker 为1,不通过,于是被删除,marker 变为 0。
  4,验证器不通过,Healer 未被添加。

而如果勾选了 匹配标旗 的链接 和 不匹配标旗 的Id,验证器仅有 “无标记”,则:
  1,HealEnumArea 查找到目标,要添加 Healer,执行 Healer验证器(通过则执行2,不通过执行4)。
  2,验证器通过,Healer 被添加。该单位 marker 变为1(匹配标旗 链接 生效),但对此 实例 ,marker 减1,变为0(不匹配链接 Id 生效)。
  3,Healer生效,但之后 验证器 再次验证,此 实例 marker 为0,通过,于是继续生效。(若干周期后,继续执行3。这个周期很可能为1个周期)直到越过 Healer 的边界检查,然后 Healer 被删除,marker 变为 0。

  4,验证器不通过,Healer 未被添加。

泉水.SC2Map

44 KB, 下载次数: 27

回复

使用道具 举报

发表于 2011-11-15 09:59:08 | 显示全部楼层
不知道 Healer 会重复验证 验证器 会不会是bug呢
回复

使用道具 举报

 楼主| 发表于 2011-11-15 14:18:18 | 显示全部楼层

回 11楼(cccty1l) 的帖子

cccty1l:不知道 Healer 会重复验证 验证器 会不会是bug呢 (2011-11-15 09:59)
太感谢了!但还有几个知识点我没理解,我总结一下,你看我说的对不对:

1、刚开始的时候,我认为Healer是一个一次性加血的效果,结果用EnumArea反复的给搜索到的单位加Healer,导致效果不断叠加,回血速度越来越快,后来经过头目指正,我了解到Healer是一个持续性效果,应该想办法不让Healer被叠加。

2、然后是Healer的旗标“被引导”、“引导中”的问题。我推测这个如果勾选了其中之一的话,就像后来用Marker不选择“不匹配旗标”中的Id一样,刚给单位加上Healer,然后由于判断这个单位不符合“引导”这个条件,就把Healer删掉了……然后由于Healer在被删掉之前回了一点儿Hp,所以看上去像是在缓慢回血。由于我对技能的“引导”这个状态了解的不多,所以只能先这么判断,验证要等以后把这个学会才行了……

3、之后是关于验证器的。关于这点我有个疑问,验证器条件不符合的时候,到底是把效果移除呢?还是暂时让它不能发挥作用等条件符合的时候再次发挥作用呢?因为行为Buff里的验证器可以填两种,一个是不符合的时候移除行为,另一个是不符合的时候禁用行为,而效果里没写……看起来持续性效果都是被直接移除了,不知道我理解的对不对

4、最后是关于Marker的。我还是觉得你这个既能让Healer的Nomarker验证器为真,同时能阻止EnumArea不停的向这个单位上加Healer的Marker用法很神奇……难道说Nomarker判断的是Healer这个效果的Count是不是0,而你之前把链接的Marker选上意味着把链接和Id都设置为1了,然后再把MisMatch里面的Id选上,让Id这个归零,这是不是意味着Marker这个东西实际上是在Id、链接、释放玩家、进行施法的单位这四个层面上同时进行标记,然后不同层面上的Marker可以不同?就想这个例子里,Id是0,然后NoMarker判断效果可以继续存在,同时Link上的Marker是1,EnumArea判断不能继续加Healer了?

请指点!
回复

使用道具 举报

发表于 2011-11-15 14:38:09 | 显示全部楼层
这个我很难回答,我对marker的理解不深,说出来可能是错的。

另外,如果结合Healer来理解 “无标记” 验证器的话,可能会有误导。 我的印象中,验证器应该是在效果生效前进行判断的,如果不通过,则效果不执行。但是Healer明显不是这样,所以我对验证器的理解可能也是不完全的。

所以现在只好把这个实例记下来,为以后研究做一个备注。
回复

使用道具 举报

 楼主| 发表于 2011-11-15 15:06:08 | 显示全部楼层

回 13楼(cccty1l) 的帖子

cccty1l:这个我很难回答,我对marker的理解不深,说出来可能是错的。

另外,如果结合Healer来理解 “无标记” 验证器的话,可能会有误导。 我的印象中,验证器应该是在效果生效前进行判断的,如果不通过,则效果不执行。但是Healer明显不是这样,所以我对验证器的理解可能也是不完全的。
.. (2011-11-15 14:38) 
好的,多谢你之前的细心解答,实在太感谢了!
回复

使用道具 举报

发表于 2014-1-4 17:27:55 | 显示全部楼层
mark
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-30 07:52 , Processed in 0.046684 second(s), 22 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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