找回密码
 点一下
查看: 844|回复: 6

关于选取单位组的函数效率问题

[复制链接]
发表于 2012-3-15 22:48:10 | 显示全部楼层 |阅读模式
之前在别的地方看到说GetUnitsInRangeOfLocAll函数效率低,就是T里那个选取单位组做动作的,J里有什么效率比较高的同样功能的函数吗?
具体点说的话,如果用channel做了个无目标的技能,对周围单位造成效果,怎么选取单位才能使效率比较高?
另外,GetEnumUnitsInRange是怎么用的?
发表于 2012-3-16 05:32:30 | 显示全部楼层
去函数列表里找,然后看参数

效率高就用最原始的函数,就是CJ那些
GetEnumUnitsInRange就是

要进一步提高效率的话,把动作写条件里,就是选取的时候所使用的条件里直接做动作,在动作中使用GetEnumUnit来获取被选单位,条件里用GetFilterUnit,然后条件函数返回nothing,这样的话实际就没有任何单位加入过单位组,之后也不用排泄

具体可以搜索下红狼的某篇帖子,专门写的这个,搜帖子搜不到可以直接翻他发过的主题
回复

使用道具 举报

 楼主| 发表于 2012-3-16 12:55:42 | 显示全部楼层
好的,了解了,谢谢
回复

使用道具 举报

 楼主| 发表于 2012-3-16 23:42:43 | 显示全部楼层
哦还有一个问题,如果在动作函数里有TimerStart的话,怎么在计时器到期运行的函数里选取到匹配单位?是不是只能用单位数组?
回复

使用道具 举报

发表于 2012-3-17 05:31:59 | 显示全部楼层
神奇老太太:哦还有一个问题,如果在动作函数里有TimerStart的话,怎么在计时器到期运行的函数里选取到匹配单位?是不是只能用单位数组? (2012-03-16 23:42)
LZ说的话略有歧义……

如果是指计时器到期然后对某个单位组做动作的话
那么就要事先把单位加单位组里,然后时间到了遍历目标单位组

如果是指遍历单位的时候才开启计时器,那么个人认为最简单的就是将单位与计时器绑定,时间到了从到期的计时器里读取绑定的单位
回复

使用道具 举报

发表于 2012-3-17 13:12:11 | 显示全部楼层
如果我想选取目标点周围r范围内的所有敌方活着的英雄单位,
然后对每个单位判断小于n%则造成伤害,
可以求列位给一段jass我看一下么。

我能写新建单位组并选取一定范围,但是匹配活着的敌方英雄不会唉。
回复

使用道具 举报

发表于 2012-3-17 21:25:32 | 显示全部楼层
LS可以用T做出来然后转换了看~
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-23 22:00 , Processed in 0.036151 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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