找回密码
 点一下
查看: 2062|回复: 9

循环整数的排泄和等待问题

[复制链接]
发表于 2010-8-14 17:29:58 | 显示全部楼层 |阅读模式
高手请看,我这个T里面的排泄有没有问题?或者说有没有更高效的写法?
另外就是我听说循环整数中最好不要用等待.我想问问为什么,如果像我这样用了,可能会出现什么问题?
如果不能用循环整数来做这个效果的话,那么该用什么功能来代替呢?
请高手赐教~~
[trigger]
fltz
    事件
        单位 - 伊利丹 0000 <预设> 开始施放技能
    条件
        (施放技能) 等于 通魔2
    动作
        设置 ui = (施法单位)
        设置 jpoint = (ui 的位置)
        循环动作[循环整数A]从 1 到 10, 运行 (Loop - 动作)
            Loop - 动作
                等待 0.10 秒
                循环动作[循环整数B]从 1 到 17, 运行 (Loop - 动作)
                    Loop - 动作
                        设置 jpointf = (从 jpoint 开始,距离 (100.00 x (转换 (循环整数A) 为实数)) ,方向为 (20.00 x (转换 (循环整数B) 为实数)) 度的位移处)
                        特殊效果 - 在 jpointf 创建特效: Abilities\Spells\Human\ThunderClap\ThunderClapCaster.mdl
                        特殊效果 - 删除 (最后创建的特效)
                        特殊效果 - 在 jpointf 创建特效: Abilities\Spells\Undead\DarkRitual\DarkRitualTarget.mdl
                        特殊效果 - 删除 (最后创建的特效)
                        特殊效果 - 在 jpointf 创建特效: Abilities\Spells\Other\Monsoon\MonsoonBoltTarget.mdl
                        特殊效果 - 删除 (最后创建的特效)
                        特殊效果 - 在 jpointf 创建特效: Abilities\Spells\Orc\LiquidFire\Liquidfire.mdl
                        特殊效果 - 删除 (最后创建的特效)
                        点 - 清除 jpointf
[/trigger]
我也不知道.gif
发表于 2010-8-14 18:53:47 | 显示全部楼层
很明显没有排到...
建议多加上一个点变量 或者给之前的点变量加上索引

还有就是最好残留下那个魔法效果是正常的,因为存在时间很长。
回复

使用道具 举报

发表于 2010-8-14 22:57:34 | 显示全部楼层
在循环里面用等待,非常容易引起变量冲突。
比如:如果你在使用这个技能后,又触发了另一个使用了“循环整数A”的触发。
那么在这个触发还需要“循环整数A”时,另一个触发已经修改了“循环整数A”,这时候两个触发就都得不到正常运行。。。
当然,你可以使用“局部变量”或“自定义循环整数”来防止冲突。

至于排泄,除了“jpoint”在循环完毕之后并没有被删掉外,就可以说没有泄露了。
至于更高效的写法:
①直接用坐标代替点,这样就不需要排泄点了。
②直接使用“删除特效(新建特效XXXX在XX坐标)”会高效很多。

另外,事件应该使用“发动技能效果”而不是“开始释放技能”,因为这样可以S掉。
回复

使用道具 举报

 楼主| 发表于 2010-8-15 00:55:30 | 显示全部楼层
感谢LS和LSS.

另外想问LZ.就是为什么jpoint 没有被删除掉? 我在循环B 的LOOP末尾写的那句 清除jpoint点 没有用么? 那么是不是写错了地方,不需要在写在这个位置,而要写在LOOP之外呢?

使用坐标点的而不需要排泄,是不是可以理解为,使用X,Y那样的坐标点时不会创建点呢?
回复

使用道具 举报

发表于 2010-8-15 01:34:28 | 显示全部楼层
你在循环B最后删除的是点jpointf,这个清楚干净了没有错,但是前面定义的jpoint没有被删除,如你所说,写在所有循环的外面就可以了。

第二个问题,是(但是不要通过一个点来获取此X Y)。
回复

使用道具 举报

 楼主| 发表于 2010-8-15 02:57:15 | 显示全部楼层
引用第4楼cccty1l于2010-08-15 01:34发表的 :
你在循环B最后删除的是点jpointf,这个清楚干净了没有错,但是前面定义的jpoint没有被删除,如你所说,写在所有循环的外面就可以了。

第二个问题,是(但是不要通过一个点来获取此X Y)。



非常感谢.....不过环环相扣的问题.......我很不理解.如何不通过一个点来获得X,Y呢? 我有点想不明白~~
请高手赐教............
回复

使用道具 举报

发表于 2010-8-15 05:58:48 | 显示全部楼层
你的触发里面有两类点,第一个是
jpoint = (ui 的位置)

那么你可以使用 (单位)所在X坐标 和 (单位)所在Y坐标 来获取X,Y

另外一类是jpointf ,你在例子中是使用向量将jpoint 计算而来,同样的,新的X‘ , Y' 你可以使用三角函数将X,Y转化一下。

不够LZ你得注意一下,希瓦  提到  ”直接用坐标代替点“ 的时候,是强调这是一个高效的做法,你之前的方法除了少一个点没删除外,也没有什么不对的。
回复

使用道具 举报

发表于 2010-8-15 08:55:12 | 显示全部楼层
某些动作是需要ui支持的……
回复

使用道具 举报

发表于 2010-8-15 09:03:02 | 显示全部楼层
啊  是吗?
我发刚才的帖子的时候时候只检查了获取单位的X,Y坐标,UI中是有动作的,剩下的没有注意...
回复

使用道具 举报

 楼主| 发表于 2010-8-15 09:26:48 | 显示全部楼层
感谢楼上诸位.不胜感激.
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-6-24 00:27 , Processed in 0.117542 second(s), 21 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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