Делаю карту на выживание. но после очередного добавления фишек заметил, что карта начала вылетать, выдавая ошибку (скрин ниже). с таким раньше никогда не сталкивался, проверял кастомные модельки - дело в не них, отключал некоторые триггеры (Папки "пасхалка" и "Декорации") - все равно вылетает, прошу помогите, файл с картой можно скачать прямо здесь

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

Вранье, 1.26 самый стабильный патч, на нём ничего не вылетает.
А когда вылет происходит? Я запустил в карту, она работает.
`
ОЖИДАНИЕ РЕКЛАМЫ...
4
28
3 года назад
Отредактирован PT153
4
Вранье, 1.26 самый стабильный патч, на нём ничего не вылетает.
А когда вылет происходит? Я запустил в карту, она работает.
Принятый ответ
2
32
3 года назад
2
Ну обращение к не существующему объекту судя по скину ошибки, действия с дохлыми юнитам и и тому подобнон
2
32
3 года назад
2
Ну вот подобный код может как раз вызывать подобные фаталы, + ну очень хреновый гуи код с тоннами утечек, так что приводим код в порядок, не мешало бы почитать статьи про оптимизацию, исключаем вейты и ремув юнитов. Так же не делаем никаких махинаций с абилками дохлых юнитов.
Загруженные файлы
0
3
3 года назад
Отредактирован DESo3latorTro0pe
0
quq_CCCP:
Ну вот подобный код может как раз вызывать подобные фаталы, + ну очень хреновый гуи код с тоннами утечек, так что приводим код в порядок, не мешало бы почитать статьи про оптимизацию, исключаем вейты и ремув юнитов. Так же не делаем никаких махинаций с абилками дохлых юнитов.
всмысле исключаем вейты и ремувы? то есть вообще юнитов не удалять что-ли? или как, я не понял

PT153:
Вранье, 1.26 самый стабильный патч, на нём ничего не вылетает.
А когда вылет происходит? Я запустил в карту, она работает.
вылет происходит в разное время
2
32
3 года назад
2
DESo3latorTro0pe, юнита лучше скрывать (HideUnit) и убивать. Так же советую не плодить по 10 триггеров на перемещение юнитов, это мало того что глупая и неоправданная реализация, так еще и утечек море. GetPosition все эти функции создают обьект location которые не удаляются, хотябы посмотри конфетные войны близзардов.
0
3
3 года назад
Отредактирован Hanabishi
0
quq_CCCP:
DESo3latorTro0pe, юнита лучше скрывать (HideUnit) и убивать. Так же советую не плодить по 10 триггеров на перемещение юнитов, это мало того что глупая и неоправданная реализация, так еще и утечек море. GetPosition все эти функции создают обьект location которые не удаляются, хотябы посмотри конфетные войны близзардов.
посмотрю я конфетные войны, да только я ничего не пойму. Не понимаю, почему нельзя сразу сказать как можно сделать иначе?
1 пункт от Hanabishi: 1.1 (ненормативная лексика)
2
32
3 года назад
2
DESo3latorTro0pe, ну потому что я сразу сказал как надо, но намек раз не понятен, надо тыкать носом. Каждый триггер год разбирать будем, статей и примеров как делать надо и как избавится от утечек полно, про то что лучше не удалять юнитов (кроме редких исключений) и не пытатся ничего делать с мертвыми юнитами, никаких вручений абилок, изменений уровня. Вейты зло, после wait функция DyingUniy может вернуть уже и не того юнита который умер, ибо это разрыв потока выполнения, вовсе порой можно обойтись без вейтов, чтобы какой нить юнит умер не сразу а спустя мгновение - ему можно установить время жизни.
0
3
3 года назад
0
quq_CCCP:
DESo3latorTro0pe, ну потому что я сразу сказал как надо, но намек раз не понятен, надо тыкать носом. Каждый триггер год разбирать будем, статей и примеров как делать надо и как избавится от утечек полно, про то что лучше не удалять юнитов (кроме редких исключений) и не пытатся ничего делать с мертвыми юнитами, никаких вручений абилок, изменений уровня. Вейты зло, после wait функция DyingUniy может вернуть уже и не того юнита который умер, ибо это разрыв потока выполнения, вовсе порой можно обойтись без вейтов, чтобы какой нить юнит умер не сразу а спустя мгновение - ему можно установить время жизни.
одни говорят, что лучше удалять, другие что лучше не удалять. Я хоть могу попросить ссылки на статьи о которых ты говоришь? или это тоже слишком элементарно?
0
8
3 года назад
0
Я посмотрел карту, попробовал жасс спаем, не увидел ничего подозрительного.
Я посмотрел краш лог - тоже ничего не полян, возможно кто-то поймет больше.
Я получил стабильно критующий реплей и ничего не понял.

Возможно, что-то с аурами?
Загруженные файлы
2
32
3 года назад
2
DESo3latorTro0pe, ну для начла вот, еще вот
Тут ищем что конкретно интересует, ну есть статья про jass
Ибо полностью на гуи от утечек не избавится, да и будет масса неудобств, все твои пути крипов в 1 триггере можно было сделать. Потом нужно практиковатся, я и предложил для начала карту близардов конфетные войны.

хм, ntdll.dll - случаем никаких читов или прог не было включено?
0
3
3 года назад
0
quq_CCCP:
все твои пути крипов в 1 триггере можно было сделать.
вот тут можно поподробнее?
2
32
3 года назад
2
DESo3latorTro0pe, ну статью написать как можно управлять мобами?
У одного триггера может быть множество событий, причем разных, а юнитам можно поставить custom value (в гуях) и таким образом проверять какой чекпоинт он преодалел и в какой отправить его сейчас, ну и брать от областей GetCenterOfPos (или как там в гуях) тоже ненадо, делаем массив куда заносим все эти точки, и о чудо все в одном триггере, обьекты не создаются, и кода маньше в 10 раз.
Стоит только подумать или посмотреть как сделано у других.
0
8
3 года назад
0
хм, ntdll.dll - случаем никаких читов или прог не было включено?
ntdll - ключевая системная библиотека винды, она обязательно будет в адресном пространстве любого приложения.
2
32
3 года назад
2
goodlyhero, менеджер памяти, мне показалось многовато там подгружено, точно ниче такого нету вроде кеев или читов, они нагружают сам вар и еще и порой вызвают фаталы.
0
8
3 года назад
Отредактирован goodlyhero
0
quq_CCCP:
goodlyhero, менеджер памяти, мне показалось многовато там подгружено, точно ниче такого нету вроде кеев или читов, они нагружают сам вар и еще и порой вызвают фаталы.
Я пользовался WFE, но фатал воспроизводится в реплее и без него.
2
32
3 года назад
2
goodlyhero, ну ауры фаталят лишь когда им апгрейдят уровень или чето делают с их мертвых владельцев, при смерти юниту выключают ауры, но если он получит ауру или апгрейд уровня, игра схватится за событие - юнит получил источник ауры и вручит ему бафф без проверки, а юнит то мертв - сразу фатал. Второй случай явно не наш, связан с мемхаком.
0
8
3 года назад
Отредактирован goodlyhero
0
Расставил юнитов на карте. Теперь игра фаталит на старте, вроде, если убрать все абилки огненному кратеру фаталы прекращаются.
Загруженные файлы
0
16
3 года назад
0
ты в чат что-то отправляешь? вылет в районе обработки чата
0
8
3 года назад
Отредактирован goodlyhero
0
DracoL1ch:
ты в чат что-то отправляешь? вылет в районе обработки чата
Я дико извиняюсь, перепутал лог, там вылет был из-за меня.
Вот правильные, сделал их на полностью чистом варике:
Первый получен на полностью оригинальной карте, второй - на версии с расставленными мной юнитами, ошибки там разные, в первом случае - ошибка как у автора.

Во втором случае, фаталы прекращаются, если убрать в способности 'A01T' флаг действовать на структуры, но фаталы из первого случая это не прекращает.
Загруженные файлы
2
16
3 года назад
2
лвлап ауры на мертвом
0
3
3 года назад
0
DracoL1ch:
лвлап ауры на мертвом
как можно исправить?

goodlyhero:
DracoL1ch:
ты в чат что-то отправляешь? вылет в районе обработки чата
Я дико извиняюсь, перепутал лог, там вылет был из-за меня.
Вот правильные, сделал их на полностью чистом варике:
Первый получен на полностью оригинальной карте, второй - на версии с расставленными мной юнитами, ошибки там разные, в первом случае - ошибка как у автора.

Во втором случае, фаталы прекращаются, если убрать в способности 'A01T' флаг действовать на структуры, но фаталы из первого случая это не прекращает.
если я правильно понял, то надо у аур оггненного кратера просто убрать действие на здания?
0
8
3 года назад
0
DESo3latorTro0pe:
Я не до конца понял, что там происходит, но особого изменения уровня способностей в коде я не видел. Возможно, та абилка срабатывает или не срабатывает в неподходящий момент, а убирание из целей зданий решает это только частично, попробуй её пока убрать вообще с юнитов (возможно она там вообще не нужна?)... когда я смотрел - это помогало, но, возможно, я был невнимателен или что-то пропустил.
0
28
3 года назад
0
DESo3latorTro0pe, перед лвлапом проверять, жив ли юнит с помощью UnitAlive.
0
3
3 года назад
0
PT153:
DESo3latorTro0pe, перед лвлапом проверять, жив ли юнит с помощью UnitAlive.
понял, спасибо. А можно узнать как эта функция выглядит?
просто дело в том что уровень у способности по идее один, и повышаться он не может наверно
0
28
3 года назад
0
DESo3latorTro0pe, включаешь vJass и используешь это.
DESo3latorTro0pe:
просто дело в том что уровень у способности по идее один
А кстати да, DracoL1ch, в коде карты нет функций, которые меняют уровень способностей.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.