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

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

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