Помните мой вопрос про детектор урона? Так вот, оказалось что утечка шла не из плавающего текста, а из действия указанного в заголовке. Как устранить эту утечку и насколько она страшна? Скрин функции прилагается.

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

Alexey103:
PT153, Вау, а я не знал. Этот вопрос был создан как раз для того чтоб найти способ избежать утечек из-за добавления события, а не для того чтоб вы писали очевидные вещи. Но пока, альтернативы ни на гуи ни на джасс никто не предоставил.
дык заноси их в группу, если юнит уже в группе то не добавляешь событие
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
0
32
6 лет назад
0
А зачем тебе плодить ивенты? Это события - юнит получает урон, события никак не удаляются, можно удалить лишь триггер, да и то не в гуи.
Вовсе не надо в гуи делать все что связано с детектом урона, это сложно для уровня гуи и стоит явно переходить на jass.
0
17
6 лет назад
0
quq_CCCP, Ну так тогде помогите мне сделать простую систему отображения урона. Мне всего-то нужно.
Событие (Юнит атакован/получил повреждение)
условие (он находится в области "тренировка")
Действие (Отобразить над головой атакованного юнита полученный урон в виде плавающего текста)
Можно и джасс, только не предлагайте готовые системы на 5000 строчек кода vJass, cJass, которые требуют жнгп, а потом установку особой библиотеки, а потом оказывается что в них не настраиваемые параметры, и ты выкидываешь это гуано из своей карты проклиная того кто тебе это посоветовал. Нужно простое и полезное решение, кто может его дать?
0
15
6 лет назад
0
Alexey103:
quq_CCCP, Ну так тогде помогите мне сделать простую систему отображения урона. Мне всего-то нужно.
Событие (Юнит атакован/получил повреждение)
условие (он находится в области "тренировка")
Действие (Отобразить над головой атакованного юнита полученный урон в виде плавающего текста)
Можно и джасс, только не предлагайте готовые системы на 5000 строчек кода vJass, cJass, которые требуют жнгп, а потом установку особой библиотеки, а потом оказывается что в них не настраиваемые параметры, и ты выкидываешь это гуано из своей карты проклиная того кто тебе это посоветовал. Нужно простое и полезное решение, кто может его дать?
Если тебе нужно простенькое отображение урона в одной области на карте, то можно попробовать сделать в лоб.
По таймеру сохранять значения хп юнитов в области в массив/хэш, считать разницу с предыдущим значением, и если разница больше определенного значения, то делать всплывающией текст.
Этот вариант очень глупый, но как по мне для одной области на карте норм. Но Jass все равно надо будет использовать.
0
17
6 лет назад
0
AlexSan, Таймеры и в гуи есть, ну и мне как бы нужно чтоб система была устойчива к высокой скорости атаки, а тут получается дпс метр. + Я использую манекенных юнитов с бешенной регенерацией здоровья, так что придётся менять и их механику тоже.
0
15
6 лет назад
Отредактирован Cheezie
0
Alexey103:
AlexSan, Таймеры и в гуи есть, ну и мне как бы нужно чтоб система была устойчива к высокой скорости атаки, а тут получается дпс метр. + Я использую манекенных юнитов с бешенной регенерацией здоровья, так что придётся менять и их механику тоже.
Вместо регенерации, можешь просто сделать им много хп, и каждое срабатывание таймера устанавливать хп на 100%. Высокая скорость атаки будет нормально работать если у тебя будет таймер с малым периодном. И вот тут уже нужен JASS что бы оптимизировать все это дело и устранить утечки.
+ таймеры в гуи недостаточно гибкие как по мне.
0
17
6 лет назад
0
AlexSan, Я так понял чтоб применить всю эту фигню нужно будет ещё и добавлять в группу всех юнитов в области? Ну и таймер то один, на одногоюнита, я и так могу задетектить урон, там даже событие есть юнит получает урон.
0
15
6 лет назад
0
Alexey103:
AlexSan, Я так понял чтоб применить всю эту фигню нужно будет ещё и добавлять в группу всех юнитов в области? Ну и таймер то один, на одногоюнита, я и так могу задетектить урон, там даже событие есть юнит получает урон.
Если у тебя детектить урон нужно только по манекенам, то можно упростить немного, но по сути да.
Событие я не предлагаю использовать так как ты говоришь что оно вызывает у тебя утечку, а в таймерах с малым периодом это плохо.
2
28
6 лет назад
Отредактирован PT153
2
Мда.
Триггер Init.
События - Юнит входит в Вся карта.
Условия - Тип юнита равно Манекен.
Действия - Добавить событие в триггер Maneken Боевая единица Вошедший юнит получает урон.
Триггер Maneken.
События - ИХ НЕТ.
Условия - Атакованный юнит находится в области (какая нужна).
Действия - Создать плавающий текст над Атакованный юнит (и прочее).
То, что делаете Вы, будет работать ужасно, так как событие будет добавляться каждый раз, когда юнит атакован, и триггер по созданию текста будет срабатывать столько раз, сколько событий.
Всё это можно сделать на ГУИ.
0
17
6 лет назад
0
PT153, Вау, а я не знал. Этот вопрос был создан как раз для того чтоб найти способ избежать утечек из-за добавления события, а не для того чтоб вы писали очевидные вещи. Но пока, альтернативы ни на гуи ни на джасс никто не предоставил.
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.