Добавлен
Если таймер не периодический, его все равно нужно уничтожать по истечении? Или он делает это сам?

avuremybe, не обращай на него внимание
он сам не понимает что пишет
avuremybe, можешь впихнуть в карту счётчик утечек и проверить
или создать 100500 таймеров и посмотреть как изменился объём затраченной оперативы
`
ОЖИДАНИЕ РЕКЛАМЫ...
23
Похожие вопросы:

ответ
Происходящее здесь напомнило мне один случай из моего далекого прошлого. В те времена я еще только начинал осваивать редактор. Одна из тем, которая меня заинтересовала и по которой мне не удалось найти достаточно полной информации - утечки. Тогда я пошел на один форум и задал простой вопрос о том, как определить наличие и степень серьезности утечек в карте, не перебирая весь код. В результате я получил тонну флуда и "ответ от профи", с которым все в итоге согласились - фрагмент кода с ценным указанием "если это число растет быстро - утечек много, если медленно - мало или нет вовсе". Код представлял из себя таймер с малым периодом, который создавал объект, брал его хендл, писал в чат и удалял объект, но был один нюанс - создаваемый объект утекал на каждой итерации таймера.
ответ
Kirill_Wolkov, ну ты редкостный растыка....
Что я вижу в его карте - плоская пустая карта с натыканными рудниками и войсками, что к чему и триггеры на гуях, скопированные откуда то, дальше самое интересное - у чувака расширенное гуи, событие триггера Таймер Истекает( CreateTimer() ) условие нет, дейтсвие создать костяной завод нежити в такой то точки, и таких триггеров с десяток для каждого здания.
Нет рили, это уже зашквар - учить гуишников че им делать, неужели так сложно почитать статьи и подумать?
Чтобы таймер истек его нужно не только создать но еще и запустить, не надо делать 1000 триггеров, можно создать всех юнитов в одном, потом нужно создать переменную типа - таймер, потому что гуи, тут динамического создания триггеров\таймеров нет для вас, забудьте про все рус. и расширенные гуи, на нормальном как делали близзарды научитесь делать мили карты...
Простите, но у меня бомбит...
Потом блин ну вы хоть одну карту из кампании смотрели? кто спауни здания то? Создают изначально всю базу на карте, потом если нужно чтобы она появилась в процессе игры её скрывают и паузят.
Ужас.
ответ
  1. Не используй GUI таймеры
  2. Перед тем как запустить таймер нужно его создать
set udg_BuferTimer[2] = CreateTimer()
  1. Не забывай удалять таймеры
ответ
дык вы периодический таймер делайте, и каждые N секунд меняйте текст, пока не истечет время.
о том что время должно быть в переменной я надеюсь вы знаете
ответ
~8gabriel8:
Пока нет желания разбираться, что у тебя так, а что не так. Но вижу, что переменная Window не назначена окну, а ещё как бы создаются в цикле одновременно 10 окон, которые потом все одновременно ждут 50 секунд. Вот скрин действий триггера вместо двух твоих, секунда ожидания поставлена для того, чтобы увидеть пропадание окна таймера.

17
Нужно удалять вручную. И отсчет времени до удаления,через - ждать.
13
Absolute, не обязательно через ждать. Можно в функции, в которой вызывается таймер сделать так DestroyTimer(GetExpiredTimer()).
24
отсчет времени до удаления,через - ждать.
бред.
17
avuremybe:
отсчет времени до удаления,через - ждать.
бред.
Тем не менее, функцию удаления нужно создавать вручную, иначе окно так и останется висеть.
28
avuremybe, не обращай на него внимание
он сам не понимает что пишет
avuremybe, можешь впихнуть в карту счётчик утечек и проверить
или создать 100500 таймеров и посмотреть как изменился объём затраченной оперативы
Принятый ответ
24
Absolute:
avuremybe:
Absolute, какое окно? оО
Окно таймера, если ты об этом.
У таймеров нет окна.
nvc123:
avuremybe, можешь впихнуть в карту счётчик утечек и проверить
или создать 100500 таймеров и посмотреть как изменился объём затраченной оперативы
Хорошая мысль! Вечером протестирую.
17
avuremybe:
Absolute:
avuremybe:
Absolute, какое окно? оО
Окно таймера, если ты об этом.
У таймеров нет окна.
nvc123:
avuremybe, можешь впихнуть в карту счётчик утечек и проверить
или создать 100500 таймеров и посмотреть как изменился объём затраченной оперативы
Хорошая мысль! Вечером протестирую.
Там выше есть функция "запустить таймер" однократный или многократный. Думаю это бы и ответило на все твои вопросы. Да и вообще проверить такой триггер можно меньше чем за минуту, а ты судя по всему обладаешь опытом пользования редактором. Не за чем задавать такие простые вопросы.
Загруженные файлы
28
Absolute:
У самого таймера нет окна, окно таймера и сам таймер разные объекты.

По поводу вопроса. Да, любой таймер надо уничтожать (если это нужно) по истечению его действия. А можно создать 1 таймер и постоянно его перезапускать.
17
PT153:
Absolute:
У самого таймера нет окна, окно таймера и сам таймер разные объекты.

По поводу вопроса. Да, любой таймер надо уничтожать (если это нужно) по истечению его действия. А можно создать 1 таймер и постоянно его перезапускать.
Да да, стакан с водой и вода разные вещи. Великая мудрость...
24
Absolute, я не специалист в ГУИ, но полагаю что функция с Вашего скрина создает лидерборд, и выводит на него отсчет?
К сабжу это не имеет никакого отношения, поэтому заканчивайте флудить в моем тикете.
17
avuremybe:
Absolute, я не специалист в ГУИ, но полагаю что функция с Вашего скрина создает лидерборд, и выводит на него отсчет?
К сабжу это не имеет никакого отношения, поэтому заканчивайте флудить в моем тикете.
Нет, она создает таймер, который через 1 секунду истекает и выводит сообщение clear.
28
Absolute, функция на твоём скрине это бж которая создаёт timerdialog для указанного таймера
сам по себе таймер не имеет никакого окна и вообще эти окна нафиг не нужны в большинстве случаев
т.к. главные задачи таймера это двигать объекты и переносить выполнение кода в другой поток
вопрос же был про объект timer который создаётся через TimerStart
и про то происходит ли очищение одноразового таймера из памяти после его использования
и я тебе уже вроде бы говорил чтобы ты не нёс всякую фигню в темах в которых ничего не понимаешь
17
nvc123:
Absolute, функция на твоём скрине это бж которая создаёт timerdialog для указанного таймера
сам по себе таймер не имеет никакого окна и вообще эти окна нафиг не нужны в большинстве случаев
т.к. главные задачи таймера это двигать объекты и переносить выполнение кода в другой поток
вопрос же был про объект timer который создаётся через TimerStart
и про то происходит ли очищение одноразового таймера из памяти после его использования
и я тебе уже вроде бы говорил чтобы ты не нёс всякую фигню в темах в которых ничего не понимаешь
Насколько я понял, вопрос был в том нужно ли вручную отключать таймер или он отключается сам. В скрине ниже показано, что если выставить таймер "однократно", то он исчезает сам: если "многократно", то не исчезает, а повторяется по истечению. Если же речь идет о каком-то мистическом таймере, который не имеет отношение к описанному, то нужно было конкретнее задавать вопрос.
28
Если таймер не периодический, его все равно нужно уничтожать по истечении
Absolute, спрашивается необходимо ли уничтожать однократный таймер или нет
про отключение речь вообще не шла
если что, то объекты уничтожают дабы избежать утечки памяти
24
Если же речь идет о каком-то мистическом таймере, который не имеет отношение к описанному, то нужно было конкретнее задавать вопрос.
Мистическая тут только BJ-дичь с какими-то окнами, которую Вы сюда на своих скринах завезли.
В заголовке и самом вопросе четко указано - ТАЙМЕРЫ.
К сабжу это не имеет никакого отношения, поэтому заканчивайте флудить в моем тикете.
я тебе уже вроде бы говорил чтобы ты не нёс всякую фигню в темах в которых ничего не понимаешь
Сколько еще людей должно намекнуть Вам, что Ваш флуд никому не интересен?
28
avuremybe, кстати, если проверил то напиши тут результаты теста
24
nvc123, тест показал, что счетчик хэндлов из этой статьи xgm.guru/p/wc3/triggers-and-jass-optimization не работает.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.