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

【JASS】为什么这样写可以顺利运行?有泄露吗?

[复制链接]
发表于 2009-7-23 13:37:22 | 显示全部楼层 |阅读模式
udg_JZcon 是全局触发条件变量

function o1o takes nothing returns boolean
//一些动作
。。。。。。。。。
call DestroyTrigger( GetTriggeringTrigger() )
return false
endfunction

//     动态注册受伤害事件
function jizhong takes unit b returns nothing
    local trigger tr
    if (not(IsUnitInGroup(b, udg_jz))) then
       set tr = CreateTrigger(  )
       call TriggerRegisterUnitEvent( tr, b, EVENT_UNIT_DAMAGED )
       set udg_JZcon = TriggerAddCondition( tr, Condition( function o1o) )
set udg_JZcon = null                //注意这里

       call GroupAddUnit( udg_jz, b )
    endif
    set tr = null
endfunction



我刚学不久希望大家帮忙看看,在线等啊
发表于 2009-7-23 13:42:02 | 显示全部楼层
这样写貌似没什么问题啊?你高亮的那句话很正常,把局部变量赋值为空而已
回复

使用道具 举报

 楼主| 发表于 2009-7-23 13:45:01 | 显示全部楼层
udg_JZcon  是全局变量啊,,这样有泄露吗?
回复

使用道具 举报

发表于 2009-7-23 13:51:34 | 显示全部楼层
全局变量设null也很正常,代码风格和习惯而已,而且其实设null比较好

泄露的话,照以前的做法可能触发条件也要销毁,不过westwood同学的某研究表明这是不需要的
传送门
回复

使用道具 举报

 楼主| 发表于 2009-7-23 14:02:45 | 显示全部楼层
明白了 谢了啊
回复

使用道具 举报

发表于 2009-8-2 13:00:23 | 显示全部楼层
全局变量设置不设置没关系的
回复

使用道具 举报

发表于 2009-8-2 13:27:48 | 显示全部楼层
恩,设一下么可以立刻清除引用,而不用等到下次赋值的时候吧
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-4 12:00 , Processed in 0.062437 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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