Добавлен
Я знаю что существуют множество видов утечек, но у меня вопрос. Могут ли просто автоатаки с эффектами дальнего боя вызывать утечки? Но тогда как избавиться от них?

Порождать утечку может только объект, чей тип наследует тип handle.
Такие типы как:
  • boolean
  • integer
  • real
  • string
являются базовыми и утечек не порождают. Все остальные типы (unit, group, timer, multiboard и т.д.) являются наследниками типа handle и могут вызывать утечки.
Подробнее тут:
и тут:
Исключением из правил является тип player. Так как игроки существуют на протяжении всей игры, так как они не уничтожаются и не удаляются, являются постоянным объектом существующим на протяжении всей игры, утечек они не порождают.
`
ОЖИДАНИЕ РЕКЛАМЫ...
18
От спецэффектов способностей не должно быть утечек. Только от триггерных. Поправьте, если ошибаюсь.
Да и время "жизни" спецэффекта от способности вроде как прописано где-то в игровых константах - удаляются они сами.
16
И еще вопрос, создают ли утечки Текст, всмысле всплывающий текс как например Подсказка в компаниях? Если да то как их удалить? В статьях нету про это.
13
bazeba:
И еще вопрос, создают ли утечки Текст, всмысле всплывающий текс как например Подсказка в компаниях? Если да то как их удалить? В статьях нету про это.
Обычный игровой текст или плавающий? Обычный - нет.
15
Автоатаки утечек не создают. Текстаги могут, но обычное системное сообщение - нет.
16
NekoriDes:
bazeba:
И еще вопрос, создают ли утечки Текст, всмысле всплывающий текс как например Подсказка в компаниях? Если да то как их удалить? В статьях нету про это.
Обычный игровой текст или плавающий? Обычный - нет.
Ну если это нет тогда проблема с плавающим. Вот у меня допустим юнит подходит к барьеру и взрывается (тут утечки быть не должно уже поправили) И над барьером весит ее прочность в виде плавающего текста, при контакте с юнитом значение меняется, это нужно устранять тут есть утечка?, Если что я могу триггер скинуть
13
bazeba:
NekoriDes:
bazeba:
И еще вопрос, создают ли утечки Текст, всмысле всплывающий текс как например Подсказка в компаниях? Если да то как их удалить? В статьях нету про это.
Обычный игровой текст или плавающий? Обычный - нет.
Ну если это нет тогда проблема с плавающим. Вот у меня допустим юнит подходит к барьеру и взрывается (тут утечки быть не должно уже поправили) И над барьером весит ее прочность в виде плавающего текста, при контакте с юнитом значение меняется, это нужно устранять тут есть утечка?, Если что я могу триггер скинуть
Ну если плавающий текст там постоянно и ты просто меняешь его значение, то все ок. Но триггер можешь и скинуть.
16
Если что вот 3 триггера отвечающие за этот барьер
Отвечает за изменение прочности
Создание плавающего текста
Изменение текста на значение
13
Ну он у тебя в глобалке и постоянно висит => ничего очищать не надо, все ок.
Утечка - это когда ты что-то удалил, а оно у тебя все еще висит в памяти. Тут же ты просто поменял значение.
16
NekoriDes:
Ну он у тебя в глобалке и постоянно висит => ничего очищать не надо, все ок.
Утечка - это когда ты что-то удалил, а оно у тебя все еще висит в памяти. Тут же ты просто поменял значение.
странно но почемуто именно в этом месте увеличивается количество утечек. У меня детектор стоит. Когда юнит подходит он взрывается как в триггере написано и количество утечек увеличивается, может чтото упустили?
22
А не проще было бы сделать на JASS и не делать танцев с бубном?
16
Bornikkeny:
А не проще было бы сделать на JASS и не делать танцев с бубном?
Умный блин такой, Проще не проще, если знаешь джасс так помоги а не делай умные советы.
15
Порождать утечку может только объект, чей тип наследует тип handle.
Такие типы как:
  • boolean
  • integer
  • real
  • string
являются базовыми и утечек не порождают. Все остальные типы (unit, group, timer, multiboard и т.д.) являются наследниками типа handle и могут вызывать утечки.
Подробнее тут:
и тут:
Исключением из правил является тип player. Так как игроки существуют на протяжении всей игры, так как они не уничтожаются и не удаляются, являются постоянным объектом существующим на протяжении всей игры, утечек они не порождают.
Принятый ответ
15
bazeba, все, что не касается редактора триггеров, скрипта и тд и тп не будет вызывать утечек. А если и будет, то нам какая разница? Этого не избежать. Это значит кривота в движке вара. Все что зависит от тебя- оптимизация кода. Ничего более этого ты не в силах сделать. Про оптимизацию кода, как ни один уже раз в подобных вопросах отписывал nvc123: xgm.guru/p/wc3/optimisations Прочитай это и делай по этим правилам. И все будет окей. А если работаешь на гуи - библиотка ALL. Все!
А ну GetLocalPlayer меня опередил. Ну а вообще, по-моему, тебе хватит моего и предыдущего комментария, чтобы разобратся
GetLocalPlayer, но переменную player как и любую другую нужно обнулять, если она локальная
15
GetLocalPlayer, но переменную player как и любую другую нужно обнулять, если она локальная
Не нужно, ни локальную, ни глобальную, вообще никакую. Обнуление необходимо при удалении объекта из игры, Player же существует от начала и до конца игры.
NekoriDes:
Ну он у тебя в глобалке и постоянно висит => ничего очищать не надо, все ок.
К слову, глобальные переменные обнулять тоже нужно, но этим пренебрегают, так как ее содержимое регулярно перезаписывается.
16
Такс я окончательно запутался, я не владею триггерами (особенно Джасс, ибо это просто не мое, лучше модельки клепать:D) Мне конечно помогали с триггерами и именно он смог оптимизировать от утечек но он не работает на джасс, а на гуи, В общем скажите что не так с этими 3мя триггерами и мы сами постараемся исправить этот косяк. (От вас нормальной помощи почти не добьшься, вам бы лишь ао статьям за нос поводить, Бомбануло:D)
15
GetLocalPlayer, в смысле? Под player так же выделяется память (о переменной). А глобальные, если они в постоянном пользовании, зачем обнулять-то?!
28
EnergyFrost, обнуление переменной не освобождает память под неё а просто заполняет нулями
обнуление используется только в том случае чтобы не было ссылок на удалённый объект (ибо тогда объект останется в памяти)
обнуление имеет смысл если мы собираем удалять объект
игрока ты не удалишь никак
тоже самое и с переменными триггеров/таймеров (за исключением динамических но их не стоит юзать)
в общем всё что будет жить до конца игры обнулять ненужно
15
nvc123, хм. Сорь за дезинформацию. Я почему-то был уверен, что player надо обнулить, иначе будет висеть
28
bazeba, а ты прочти статьи и не задавай вопросов в стиле "работайте вместо меня, рабы, иначе я на вас обижусь"
на первый взгляд в этих 3 триггерах ничего такого нету
мб дебаг чтото и покажет
но я не вижу
16
nvc123:
bazeba, а ты прочти статьи и не задавай вопросов в стиле "работайте вместо меня, рабы, иначе я на вас обижусь"
на первый взгляд в этих 3 триггерах ничего такого нету
мб дебаг чтото и покажет
но я не вижу
Рабы, забавно звучит. Ну да ладно. Ладно забыли о проблеме, задам последний вопрос. При каких значениях утечек карта начинает виснуть если использовать детектор утечек. До помощи у меня на 10 сек. с 8 игроками уже было порядком 10000 утечек или даже больше, теперь ну гдето 1500
15
bazeba, зависит от мощности компьютера, на котором играют.
28
bazeba, зависит от того что это за утечки (точки, юниты или чтото другое) и от количества оперативной памяти(не более 2 гигов)
Чтобы оставить комментарий, пожалуйста, войдите на сайт.