XGM Forum
Сайт - Статьи - Проекты - Ресурсы - Блоги

Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Вернуться   XGM Forum > Warcraft> Академия: форум для вопросов> Jass
Ник
Пароль
Войти через VK в один клик
Сайт использует только имя.

Закрытая тема
 
Kapa6acvlk

offline
Опыт: 151
Активность:
Вызывает ли TextTag утечки?
Подскажите, вызывает ли данный код утечки:

Код:
function TextTag takes unit u, string s, integer r, integer g, integer b returns nothing
   local texttag t = CreateTextTag()
    call SetTextTagText(t, s, .0253)
    call SetTextTagPos(t, GetUnitX(u), GetUnitY(u), 0)
    call SetTextTagVelocity(t, 0, .032)
    call SetTextTagColor(t, r, g, b, 255)    
    call SetTextTagLifespan( t, 5.00 ) //Меня эта функция смущает
    call SetTextTagFadepoint( t, 3.50 )
    call SetTextTagPermanent( t, false )
    set t = null
endfunction


Или лучше сделать так:

Код:
function TTDestroy takes nothing returns nothing
    local timer t = GetExpiredTimer()
    call DestroyTextTag(LoadTextTagHandle(udg_Hash,GetHandleId(t),0))
    call FlushChildHashtable(udg_Hash, GetHandleId(t))
    call DestroyTimer(t)
    set t = null 
endfunction

function TextTag takes unit u, string s, integer r, integer g, integer b returns nothing
    local texttag tt = CreateTextTag()
    local timer t = CreateTimer()
    call SetTextTagText(tt, s, .0253)
    call SetTextTagPos(tt, GetUnitX(u), GetUnitY(u), 0)
    call SetTextTagVelocity(tt, 0, .032)
    call SetTextTagColor(tt, r, g, b, 255)    
    call SetTextTagLifespan( tt, 5.00 )
    call SetTextTagFadepoint( tt, 3.50 )
    call SetTextTagPermanent( tt, false )
    call SaveTextTagHandle(udg_Hash,GetHandleId(t),0,tt)
    call TimerStart(t,5.00,false,function TTDestroy)
    set t = null
    set tt = null
endfunction
Старый 02.05.2011, 21:13
DotaMaster666
Silenced by GadenbIsh
offline
Опыт: 1,259
Активность:
Первый вариант правильный, set tt = null не нужно.

Отредактировано ShadoW DaemoN, 03.05.2011 в 07:07.
Старый 02.05.2011, 21:26
agentex

offline
Опыт: 34,834
Активность:
лайфспан убирает тексттаг вообще из игры по истечению времени. проверено.
Старый 02.05.2011, 21:36
Hanabishi
COOL STATUS
offline
Опыт: отключен
set tt = null не нужно
возможно я туплю, но почему?

Отредактировано ShadoW DaemoN, 03.05.2011 в 07:07.
Старый 02.05.2011, 21:47
DotaMaster666
Silenced by GadenbIsh
offline
Опыт: 1,259
Активность:
Так надо. Нет, просто у texttag нет счетчика ссылок из переменных на него самого.
Старый 02.05.2011, 21:52
Doc

offline
Опыт: 63,163
Активность:
вопрос исчерпан ятп.
Старый 02.05.2011, 23:37
Закрытая тема

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы можете скачивать файлы

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 21:19.