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

Порождать утечку может только объект, чей тип наследует тип handle.
Такие типы как:
  • boolean
  • integer
  • real
  • string
являются базовыми и утечек не порождают. Все остальные типы (unit, group, timer, multiboard и т.д.) являются наследниками типа handle и могут вызывать утечки.
Подробнее тут:
и тут:
Исключением из правил является тип player. Так как игроки существуют на протяжении всей игры, так как они не уничтожаются и не удаляются, являются постоянным объектом существующим на протяжении всей игры, утечек они не порождают.
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
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 надо обнулить, иначе будет висеть
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.