找回密码
 点一下
查看: 910|回复: 10

结论:Timer中设置了false依然要Destroy

[复制链接]
发表于 2009-9-24 18:50:28 | 显示全部楼层 |阅读模式
timer 有个false参数,如果false了,还有必要Destroy吗

另:
如果某个触发器被删了,存储在hash中的它还能被提取吗
发表于 2009-9-24 18:58:39 | 显示全部楼层
false只是运行一次,如果需要的话同样要destroy
回复

使用道具 举报

 楼主| 发表于 2009-9-24 19:07:54 | 显示全部楼层
真是悲情的timer,现在timer挂了,那么我在hash中对应的位置提取东西用到它的handle整数值,还能用到它么
回复

使用道具 举报

发表于 2009-9-24 19:25:10 | 显示全部楼层
…………timer都挂了…………你再用这玩意去读hash……
除非BLZ排错机制够好……要不你就等着弹出魔兽/代码失灵……什么的吧
回复

使用道具 举报

 楼主| 发表于 2009-9-24 19:57:35 | 显示全部楼层
我真笨...我的图明明有现成的代码可以试的...

试验报告:
如果触发器挂了,从hash中提取它得到的handle值就是0,使用它也就是使用0,这不会造成问题...最多地图作者不要随便用0存东西...有个得到玩家索引的东西,貌似玩家一的索引是0?

如果触发器内部Destroy了,那么后续代码中GetTriggeringTrigger()依然能够获取它的存在,结束后无法获取

如果GetTriggeringTrigger()事先存储在变量中,Destroy了,后续代码也能获取它的存在,结束后无法获取
回复

使用道具 举报

发表于 2009-9-24 20:01:08 | 显示全部楼层
………………所以BLZ排错机制还是可以的。
回复

使用道具 举报

 楼主| 发表于 2009-9-24 20:13:58 | 显示全部楼层
所以BLZ的星际2地图编辑器快点出来吧> <

loop
exitwhen Iscomplete  (StarCraftⅡWorldEdit) == true
call BJDebugMsg("星际2地图编辑器快点出来吧> <")
endloop
回复

使用道具 举报

发表于 2009-9-24 20:19:45 | 显示全部楼层
loop
exitwhen Iscomplete  (StarCraftⅡWorldEdit) == true
call BJDebugMsg("星际2地图编辑器快点出来吧> <")
endloop
你忘了加东西了。
[jass]
loop
exitwhen Iscomplete  (StarCraftⅡWorldEdit) == true
call BJDebugMsg("星际2地图编辑器快点出来吧> <")
call TriggerSleepAction(0.0)
endloop
[/jass]
回复

使用道具 举报

 楼主| 发表于 2009-9-24 20:22:10 | 显示全部楼层
"TriggerSleepAction" 等待0秒真的是0秒么

timer的0秒,如果为true会怎么样...

就让我死机吧,我要在等待星际二的过程中华丽的死机
回复

使用道具 举报

发表于 2009-9-24 20:41:01 | 显示全部楼层
很不幸的告诉你,不管是Wait或是Timer。
数据为0,可实际上还是不是0.
回复

使用道具 举报

 楼主| 发表于 2009-9-24 20:52:19 | 显示全部楼层
timer 的内容:

call DestroyComputer(MyComputer)

我自重=-=
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-7-22 04:20 , Processed in 0.032716 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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