Может кто сталкивался с подобным или имеет варианты, почему такое может произойти. Суть:
Играю примерно 10 минут (время почти одинаковое, +-минута), и во время боя варик зависает.
Бои идут в виде дуэлей между игроками отрядами.
  1. Юниты всегда спавнятся рандомные (поэтому можно исключить, что багает какая-то способка или особый юнит).
  2. Баг не зависит от кол-ва юнитов. Я тестил как с лимитом в 10 еды, так и в 150 еды. Время зависания все такое-же, через 10 минут.
  3. Баг не зависит от кол-ва игроков. Хоть 2 игрока играют хоть 8 (максимум).
  4. Баг не зависит от длительности раундов (если насильно их обрывать раньше и выбирать победителя автоматически, то пройдем больше раундов но все равно игра зависнет)
  5. Баг не зависит от кол-ва использования способностей игроком. Тестил активно все подряд юзая, так и вообще ничего не юзая вовсе. Одинаково.
Баг очень напоминает какое-то зацикливание, когда срабатывает бесконечный цикл, но я не нашел ничего такого, от чего игра могла зациклится.
Тестил так-же старую версию, которая отлично работала на 1.26а давно - на рефе и она ТОЖЕ зависает. В коде использую джасс, но по большей части гуи. Карта изначально разрабатывалась на 1.26а.
Единственные зацепки за многочасовые тесты - время примерно 10 мин и происходит во время боя (даже вначале боя при первом ударе или в середине боя и даже под конец боя)
Есть идеи?
Скачать старую версию карты
(В ней меньше намешано тригов)

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

Итак, спустя 30 часов тестов по 10 минут каждый я нашел проблему.
После 10 минуты при юза огненного столба (его юзали компы, если не я) зависает варкрафт. РЕФАНДЕД спасибо! Инфа сотка, такая проблема оказалась не только у меня в проекте.
Спасибо всем, кто пытался помочь, вы лучшие! :)
Тема закрыта.
`
ОЖИДАНИЕ РЕКЛАМЫ...
1
24
4 года назад
1
Этой конкретики мало, думаю, сейчас будут просить саму карту....
0
32
4 года назад
0
konvan5, зависание в рефордже полное.. вызывают теже причины, что и фаталы
А ещё в формате луа (даже в гуишных картах не обрывается поток), скорее всего тут и есть зависание
Проверяй функции Урона в триггере урона..
Выход за пределы карты
Если время одно и тоже, проверяй все периодики большого значения 10+ секунд
Для малых считай каждый 1000 вызов
0
23
4 года назад
0
koloff:
Этой конкретики мало, думаю, сейчас будут просить саму карту....
По поводу карты - вот загрузил старую версию, которая не вылетала и не зависала. В ней есть косяки геймплейные, но без крашей.
Загруженные файлы
0
24
4 года назад
0
konvan5, Прикрепи её в топик-то, мне самому она ни к чему, я по синематикам специализируюсь, там в приоритете совсем другие вещи, бесполезные для тебя.
0
23
4 года назад
Отредактирован konvan5
0
Bergi_Bear:
konvan5, зависание в рефордже полное.. вызывают теже причины, что и фаталы
А ещё в формате луа (даже в гуишных картах не обрывается поток), скорее всего тут и есть зависание
Перейти в луа режим пока не вариант...
Проверяй функции Урона в триггере урона..
Таких триггеров всего 2 и то они настолько элементарные что вызвать краш не могут... Да и завязаны они на способках юнитов. Если играть только этими юнитами, наняв их сотню вначале игры - не зависает.
Выход за пределы карты
Понимаю, тоже может вызывать краш, не находил перемещения за пределы. Все раунды одинаково воспроизводятся.
Если время одно и тоже, проверяй все периодики большого значения 10+ секунд
Работает только один таймер. Типа 60 секунд - битва. Потом 15 секунд передышка. Потом 60 снова битва и тд. Я его заменял уже на свою систему с wait, но причина остается.
Для малых считай каждый 1000 вызов
Таких нет. Единственное, что вызывается часто - это смерть юнита. Такие триггеры есть, я их чекал, везде конкретные условия на тип юнита и тд. Но зависание происходило даже тогда, когда еще никто не умер! Что и удивляет...

Есть предположение, что зависание происходит при касте способностей (тоже есть триггеры, которые чекают такие моменты). Но при тестах я пробовал как МНОГО юзать способки так и ВООБЩЕ не юзать способки - все равно зависало примерно в одно и то-же время.
(допишу-ка я это в пост)
0
32
4 года назад
0
надо больше тестов
очень много тестов
0
23
4 года назад
0
Bergi_Bear:
надо больше тестов
очень много тестов
Тестил 8 часов

Я отключил все триггеры, связанные со способностями юнитов. Все равно зависает. По сути осталась голая система организации раундов О_О

кроме инициализации оставил тока 3 рабочих триггера:
Начало раунда
Конец раунда
Смерть юнита
Все. Больше ничего не пашет. И все равно зависает на 10 минуте во время боя. Ооооооченль логично, что виноват триггер смерти юнита... но что там такого...
0
27
4 года назад
Отредактирован MpW
0
konvan5, попробуй отключать некоторые триггеры и проверять, что происходит.

попробуй не выводить тексты, мб дело в строках? все тексты надо хранить в глобалках, а именно в массивах, и выводить, вызывать функции через ExecuteFunc, или строковые названия эффектов с помощью переменных. в варе там одна строка, и чем больше текстов вызываешь, тем длиннее строка становится. просто со временем лаги случаются. Вообще то это не критично для вара 1.26, но я сам как-то на это натолкнулся ранее, очень много дебага выводил. А потом чем больше вызываешь, тем больше подвис, в конец очень хреново. Анимации моделек юнитов совсем тупят: анимация ходьбы запаузена, и юнит смещается в таком положении.

смотрел старую карту. в триггере UnitDeathAtArena у вас много циклов. много чего не понятно, просто надо логику понять

konvan5, а раньше не было подвисании до рефорджа?
0
23
4 года назад
Отредактирован konvan5
0
Steal nerves:
konvan5, а раньше не было подвисании до рефорджа?
До рефа такого не было. Я как раз по действиям удаляю и тестирую щас и все больше шокируюсь, от чего зависает... Мб вреале и от текста, а может и из-за вычислений. Пробую

Вооот, своими действиями я дошел до этого условия. Без него все ок. А вот с ним зависает. Как я помню, эти числа всегда правильны и не меняются в течении всей игры (то есть вначале установил и все). То есть если работало в 1 раунде - то и в 10 будет работать абсолютно так-же. Странно... Попробую вывести, что там хранится вообще...

Steal nerves:
попробуй не выводить тексты, мб дело в строках?
На самом деле текста у меня мало в этой карте. Раньше подобной проблемы не наблюдал. Кхм.

Еще потестил с этой функцией - и нет! Код даже не доходит до нее как варик зависает :(
До нее может дойти, если любой из игроков проиграет (то есть группа юнитов останется пустой). Но у меня зависло (как и раньше бывало в общем-то) когда бой тока начался и только пару юнитов умерло. Я вообще ничего не понимаю, как так то о_О
Триггер, что на скрине выше - единственный, который имеет события во время боя, пока идет таймер. Все остальное отключено...
Загруженные файлы
0
27
4 года назад
Отредактирован MpW
0
konvan5, что означает это условие? остаток от деления? необычное применение. Мб стоит заменить чем то?

эх ладно вряд ли чем могу помочь, это надо реально тестить, но 10 мин играть на пустой карте

konvan5, ну поиграй с остатком mod, в дебаг выводи. иногда тупит эта функция

konvan5, чтобы проверить пуста ли группа есть легкий метод:
FirstOfGroup(group) == null
сравнению юнитов, первый юнит в группе равен null, значит группа пуста. А вот та функция на гуи вызывает перебор посредством ForGroup, что совсем не нужна
0
23
4 года назад
0
Steal nerves:
konvan5, чтобы проверить пуста ли группа есть легкий метод:
FirstOfGroup(group) == null
сравнению юнитов, первый юнит в группе равен null, значит группа пуста. А вот та функция на гуи вызывает перебор посредством ForGroup, что совсем не нужна
Спасибо за информацию, вполне логично)
0
28
4 года назад
0
konvan5, есть триггеры с периодическим событием в 0 секунд?
0
23
4 года назад
0
PT153:
konvan5, есть триггеры с периодическим событием в 0 секунд?
нет.
0
27
4 года назад
Отредактирован MpW
0
konvan5, у тебя мультиборд на гуи? там вроде утекает (на рефордже неизвестно). Может быть когда умирает юнит, у вас обновляются данные в мультиборде или выключается таймер. есть ли побочные триггеры вызываемые от смерти?

Steal nerves, лучше завести счетчик на каждую арену, в начале подсчитываешь всех на арене. А при смерти убираешь -1.
0
23
4 года назад
Отредактирован konvan5
0
Итак, спустя 30 часов тестов по 10 минут каждый я нашел проблему.
После 10 минуты при юза огненного столба (его юзали компы, если не я) зависает варкрафт. РЕФАНДЕД спасибо! Инфа сотка, такая проблема оказалась не только у меня в проекте.
Спасибо всем, кто пытался помочь, вы лучшие! :)
Тема закрыта.
Принятый ответ
0
23
4 года назад
0
konvan5, стандартный способность?
0
24
4 года назад
0
Я, кстати, проблемы с огненным столбом еще на 1.26 ловил, но это была карта, в которой огненным столбом делалось все...
2
23
4 года назад
2
pro100master:
konvan5, стандартный способность?
Вообщем в ней поля HalfDamage были обнулены все, чтобы не было половинного урона. На 1.26а все было ок. Но на рефе из-за обнуленного интервала (HalfDamageInterval) как-то зацикливалось в итоге. Поэтому поставил его большим просто
0
23
4 года назад
0
ты поставил на 0 интвервал у данного абилку который наносит овер урона за 1 тик поэтому и завис

который вышел за предел

0.03 является минимальный ниже не рекомендую ставить
0
28
4 года назад
Отредактирован PT153
0
На 1.26а все было ок. Но на рефе из-за обнуленного интервала (HalfDamageInterval) как-то зацикливалось в итоге.
Потому-то я и спросил про это.
PT153:
есть триггеры с периодическим событием в 0 секунд?
В 1.31 наличие триггера с таким событием вызывало зависание через 5-10 минут.

Между прочим, странно, что в 1.26 это не крашит игру. В 1.26 если поставить интервал периодического урона в 0 секунд для способности "Отравленный нож", при её попадании игра закроется.

Если периодический урон 0, то лучше поставить большой интервал периодического урона. По идее, это должно меньше нагружать игру, ибо я не думаю, что в спелах есть условие "если урон периодический урон 0, то не наносить его вовсе".
0
32
4 года назад
0
В 1.26 некоторые поля при установке нуля, сбросятся в дефолт. Вероятно это должно быть у всех таких способностей, чтобы защититься от ошибки, но не сделали.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.