Пытался устранить утечку плавающего текста в счётчике урона, но пишет отсутствует оператор кода, делал всё по статье про изучение джасса.

Принятый ответ

Впервой вижу, чтоб так издевались над плавающем текстом...
Как пишет г-н Maniac_91, нет нужды в сохранении texttag, ибо при строчке
call SetTextTagLifespanBJ( GetLastCreatedTextTag(), 0.50 )
или (вариант получше)
call SetTextTagLifespan(GetLastCreatedTextTag(), 0.50)
Ваш texttag, как умненький мальчик, сам уберется, когда он сделал своё дело ;)
Правда есть один нюанс... Если Вы добавили строчку
call SetTextTagPermanent(GetLastCreatedTextTag(),true)
то этот мальчик будет стоять подле Вас до конца сабантуя и ждать команды на уничтожение ;)

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
0
17
6 лет назад
Отредактирован ledoed
0
ну да конечно а в чём проблемма
а зачем в глобалку заносить плавующий текст
0
17
6 лет назад
0
ledoed, Только не пойму, почему дестрой ласт флоатинг текст не устраняет утечку даже без ожидания, это странно, как будто дело не в этом.
2
17
6 лет назад
Отредактирован ledoed
2
ааа ты локалку необнуляешь
короче все локалки кроме типа float и int нужна обнулять типо
unit u = GetTriggerUnit()
u=null
0
17
6 лет назад
Отредактирован Alexey103
0
ledoed, Это правильно, я уже сделал обнуление локалки, поэтому ставлю +, и спасибо за то что сказал какие не нужно обнулять. Но как я сказал проблема уже не в этом, Сначала нужно найти почему растёт handle, а потом уже исходя из причины убирать её, логично? Так вот я уменьшил скорость атаки юнита с 1 сек до 2.20 и всё стало удалятся нормально. Но почему ведь я ставил время жизни текста:
call SetTextTagLifespanBJ( GetLastCreatedTextTag(), 0.50 )
call SetTextTagFadepointBJ( GetLastCreatedTextTag(), 0.30 )
Это если конвертировать гуи.Следовательно если время жизни текста меньше секунды а за этим идёт:
call DestroyTextTagBJ( GetLastCreatedTextTag() )
Утечки должны расти только при скорости атаки 0.80. В чём я ошибаюсь? Мне же нужно понимание чтоб не иметь проблем с этим в будущем.
0
17
6 лет назад
0
Wait он не точный ты можешь поставиь 0.8 а выполниться через 1.2 вариант использовать таймеры для точности
0
32
6 лет назад
0
Что за идиотия? Описано во всех статьях по jass локалки объявляются в начале функции, вейты - зло, и так далее.
0
17
6 лет назад
0
ledoed, Да, да похоже только они, иду читать по ним статью.
quq_CCCP, Ну так я же нуб, в статье ненаглядный пример к тому-же.
quq_CCCP, Не знаешь как удалить все тексты в массиве?
4
18
6 лет назад
4
Если плавающему тексту правильно задать время жизни, то он сам удалится, то есть ожидание и уничтожение тут на фиг не нужно.
Локальная переменная пишется первым действием. Дальше вместо последнего созданного нужно использовать её (придётся перевести в JASS и скопировать в Custom Script, если делать через GUI).
И после всех действий нужно обнулить переменную (set t = null).
4
4
6 лет назад
4
Впервой вижу, чтоб так издевались над плавающем текстом...
Как пишет г-н Maniac_91, нет нужды в сохранении texttag, ибо при строчке
call SetTextTagLifespanBJ( GetLastCreatedTextTag(), 0.50 )
или (вариант получше)
call SetTextTagLifespan(GetLastCreatedTextTag(), 0.50)
Ваш texttag, как умненький мальчик, сам уберется, когда он сделал своё дело ;)
Правда есть один нюанс... Если Вы добавили строчку
call SetTextTagPermanent(GetLastCreatedTextTag(),true)
то этот мальчик будет стоять подле Вас до конца сабантуя и ждать команды на уничтожение ;)
Принятый ответ
0
17
6 лет назад
0
DazzleFirst, Я забил на всё это давно, и пытался убирать текст в попытке убрать утечки, хотя их там и не было, нуб, же, так или иначе держи лайк.
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.