Тестирую свою карту (которая еще, конечно, не закончена), и вот иногда, чтобы проверить на утечность и другие траблы времени, оставляю ее на произвол и ухожу по делам. Но дважды, что я оставлял на ночь. Она переставала работать нормально ровно через 6000 сек (по таймеру времени карты). Второй раз я лично сам это наблюдал. То есть вначале юниты начинали бегать на месте, через 10 сек они телепортировались, а еще через 2-3 минуты экран в игре зависал, и даже не откликается. В диспетчере задач игра работает и отвечает, ресурсы не жрет чрезмерно. Утечек за все 6000 сек нет, но что не так, я не понимаю. Триггеров и таймеров или чего-то другого именно на 6000 сек - нет.
Есть идеи в чем проблема?

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

Возможно какой-либо переодический таймер на +- 0.7 сек, заполняющий массивы.
Массив в 8192 закончился, и при подборе свободных ячеек каждый раз уходит в бесконечный луп, который выдаёт лаг в 3 сек и обрывается на оп лимите.
Единственная идея, ибо сам сталкивался с этим
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
0
18
5 лет назад
0
Мб наслоились где-то таймеры, запускающие события. ИИ есть? И вообще, телепаты в отпуске
0
8
5 лет назад
Отредактирован pAxsIs
0
BrEd Pitt:
Мб наслоились где-то таймеры, запускающие события. ИИ есть? И вообще, телепаты в отпуске
Написал же, что утечек нет (таймеры\триггеры не плодятся и не висят). ИИ допотопный в духе беги и сражайся, когда появился. Войска обновляются каждые 30 сек сами, но и умирают в бою. (Можно бесконечно смотреть на эту битву). Юнитов не бывает на карте больше 60 для всех игроков +-100 нейтральные.
0
17
5 лет назад
0
Возможно какой-либо переодический таймер на +- 0.7 сек, заполняющий массивы.
Массив в 8192 закончился, и при подборе свободных ячеек каждый раз уходит в бесконечный луп, который выдаёт лаг в 3 сек и обрывается на оп лимите.
Единственная идея, ибо сам сталкивался с этим
Принятый ответ
0
8
5 лет назад
Отредактирован pAxsIs
0
PyCCKuu_4eJl:
Возможно какой-либо переодический таймер на +- 0.7 сек, заполняющий массивы.
Массив в 8192 закончился, и при подборе свободных ячеек каждый раз уходит в бесконечный луп, который выдаёт лаг в 3 сек и обрывается на оп лимите.
Единственная идея, ибо сам сталкивался с этим
Идея хорошая, но у меня стоит круговой счетчик записи на массивах (их всего парочка), при этом если оставлять карту на произвол (без взаимодействия с игроком), то в них ничего не записывается.
Есть Хэш таблица, с которой работаю относительно недавно, но все FlushChildHashtable() - производятся своевременно в порядке. Счетчик Handler-ов всегда на экране и колеблется от 5000 до 5200 выше и ниже не изменяется.

Золото растет, может это? Сейчас буду тестировать на предел золота.
Есть способности, которые создают триггеры и таймеры, но все это самоуничтожается (имеет таймаут после чего уничтожается), утечек тоже не вызывает, поскольку счетчик Handler-ов всегда колеблется в одном диапазоне. Триггеры удаляю правильно (читал как это делать и смотрел как сделаны в других картах, так что алгоритм верный).
Возможно ли, что даже при том, что триггеры уничтожаются и не висят, есть определенный лимит на создание триггеров на одну карту, даже с учетом уже уничтоженных, которых уже нет.

Золото дошло до 10^6 и все, оно тоже не вызвало такие проблемы (это было очевидно).
0
26
5 лет назад
0
А ты наблюдал баг тоже через 6000 секунд?
Просто у меня недавно тоже что-то странное произошло. Когда варик включён, то ноут не уходит в ждущий режим и всё такое, а тут начал игру, но по какой-то там причине лёг спать, не закончив её, утром ноут типа отключился, а когда включил, то там был варик. Вот гадаю, может Майкрософт что-то в винде обновили, что выключаться с игрой ноут стал, либо какая-то служба корректно не сработала, либо раньше корректно не срабатывала.
Короче, это к тому, что может винда что-то делает через 6000 секунд
0
8
5 лет назад
0
8gabriel8:
А ты наблюдал баг тоже через 6000 секунд?
Да, оба раза именно через этот промежуток времени. На ноуте стоит при работе от сети не уходить в ждущий режим и вообще куда-либо. Хотя при включенном warcraft 3 вообще не вырубается сам.
Просто ведь по сути зависает же не через 6000 сек после включения warcaft 3, а именно на карте. Хотя игра отвечает, то есть нет надписи (Не отвечает). Могу переключать окна на Windows.

Сейчас пока запустил карту в фоновом режиме. 500 секунд никаких подозрений.
(Кстати я был во второй раз за пару минут до 6000 сек и тоже никаких подозрений на лаги.)
0
26
5 лет назад
0
А были случаи, что и через 6000 секунд всё нормально было с картой?
0
8
5 лет назад
0
8gabriel8:
А были случаи, что и через 6000 секунд всё нормально было с картой?
Только 2 раза доходил до такой отметки. Обычно не провожу таких долгих тестов, ибо уже через 5-10 минут понятно есть ли утечки или нет. (По счетчику)
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.