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

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

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