Утекает.Code
scope EffectTest {
private constant hashtable Hash = InitHashtable();
define private REMOVE = false;
callback onInit() {
TimerStart(CreateTimer(), .01, true, \
lambda void() {
unit u = CreateUnit(Player(0), 'hfoo', .0, .0, .0);
timer t = CreateTimer();
#if REMOVE
SaveAgentHandle(Hash, GetHandleId(t), 1, \
AddSpecialEffectTarget( \
"Abilities\\Spells\\Human\\Thunderclap\\ThunderclapCaster.mdl", \
u, "origin"));
#else
AddSpecialEffectTarget( \
"Abilities\\Spells\\Human\\Thunderclap\\ThunderclapCaster.mdl", \
u, "origin");
#endif
SaveAgentHandle(Hash, GetHandleId(t), 0, u);
TimerStart(t, .5, false, \
lambda void() {
timer t = GetExpiredTimer();
RemoveUnit(LoadUnitHandle(Hash, GetHandleId(t), 0));
#if REMOVE
DestroyEffect(LoadEffectHandle(Hash, GetHandleId(t), 1));
#endif
DestroyTimer(t);
FlushChildHashtable(Hash, GetHandleId(t));
t = null;
}
);
u = null; t = null;
}
);
}
}