Не впервые сталкиваюсь с подобного рода проблемой, однако эта меня удивила.
После недавнего создания бекапа карты я обнаружил, что на следующий день карта просто перестала запускаться (саму карту я скачал с удалённого сервера). То есть триггеры, я уверен, рабочие, поскольку ещё недавно карта с ними запускалась, но сейчас оно просто не инициализируется.
Я попробовал такие вещи:
  • Залить триггеры с копии карты по одной штуке. - Карта не запускалась даже из-за самых простых триггеров (см. 1 скрин)
  • Импортировать старые версии сборок триггеров - Результат такой же
  • Откатить версию карты на более старую, как я уверен, рабочую (так же скачал с сервера) - результат абсолютно такой же
И я в растерянности, поскольку, объективно, как таковых ошибок нет, однако карта не работает.
Прикрепил последнюю сборку триггеров. Правда, там все триггеры не на своих местах, ибо пока я пытался всё исправить, раскидал их по разным папкам

Вроде работает, но не знаю, так ли у тебя работало ранее. Проверь. Касательно проблем с триггерами не уверен, но вроде бы видел триггеры с одинаковым названием на русском. На всякий случай изменил все названия триггеров с кириллицей на латиницу, так как проблемы с этим уже упоминали. В триггере инициализации было два события, что в итоге приводило бы к двойному срабатыванию, одно из них удалил. Также удалил несколько ретурнов, чтобы с одной стороны увидеть работоспособность триггеров, так удалил ретурн перед постановкой заданий в инициализации, с другой сомневался, что они корректно работают, а проверять было некогда, например, в цикле от 1 до 350 ретурн мог не пустить выполнение цикла дальше первого элемента. Но главное в том, что ты вводишь лишнии глобальные переменные вместо указателей (Triggering unit) или (Item being manipulated), причём их порой даже не используешь, просто устанавливаешь сначала, а в конце обнуляешь. Так не надо делать, пользуйся стандартными указателями на юнитов, типа (Triggering unit) или (Attacking unit), не удаляя или обнуляя их, а то только лишнюю нагрузку создаёшь для памяти, процессора и очереди операций. Обычно (Triggering player) по умолчанию является владельцем (Triggering unit), тоже используй сразу, а не плоди переменные. После удаления точки, не обнуляй её. А ещё попробуйте использовать какие-то оптимизаторы для карты, потому что её загрузка просто жесть - более 50 тысяч переменных для объектов редактор показывал) Только после оптимизации карта будет годна лишь для игры, а в редакторе не будет открываться.

Печатал уточнение и заснул)
Не указал, что вроде бы видел два триггера Безымянный триггер 002 или Безымянный триггер 005, одинаковые имена как раз могли быть причиной проблемы.

Самым лучшим комментарием считаю 17 от Hate.
`
ОЖИДАНИЕ РЕКЛАМЫ...
23
Похожие вопросы:

ответ
nvc123:
Nyanta, для начала дебаг сделать как написано в статье
Сделал. Триггер работает как нужно. При входе всегда пишет "Вход!", при выходе - "Выход!". Порядок текста не меняется.
В общем, проблема, почему-то, была в названии анимации. Открыл модель через MdlVis и назвал анимации "родными" словами Stand, Walk, Death. Стало работать как надо.
Спасибо Rare за
Rare:
ставь скорость анимации на 0%
И nvc123 за то, что натолкнул на мысль этим)
nvc123:
конфликт триггеров,неправильный проигрыш анимаций
ответ
скорее всего ты при инициализации проверяешь статус слота игрока, а этого делать нини ))) ибо это частенько может приводить к десинку, вот эти игроки и получают его благополучно во время инициализации)))
ответ
Свиборг:
Fakov, насчёт фризов... Имеются ввиду фризы во время загрузки карты или же непосредственно в ходе игры? А нюансы, например, какие? Сама по себе система работает, главное, чтоб не фризило-крашило.
от большого кол-ва забитых массивов не должно лагать, т.к по сравнению с реальной нагрузкой - это копейки
Свиборг:
UrsaBoss, я все эти переменные делал на гуи, не на жассе.
и учти, тебе придется сделать отдельный поток для инициализации твоих массивов, это чтобы исключить вероятность того, что завершится поток main из за лимита операций
Вот инструкция если ты не шаришь в jass:
На скриншоте 1, там где
call ExecuteFunc("Trig_MyTrig_Actions")
Это Custom Script, а MyTrig - это название нужного тебе триггера
На скриншоте 2 уже твой триггер с инициализацией массива, главное в событиях ничего не ставь
ответ
~8gabriel8:
Есть в триггерах категория Видимость, там создаёшь модификатор видимости для области (прямоугольник) или радиуса (круг), которому ставишь значение Видимость, потом, например, ставишь действие Wait (ждать) 5 секунд, потом отключаешь этот модификатор видимости. Если всё равно будет видимость, то создай на том месте ещё модификатор со значением Туман войны.
Чёрная маска-когда почти ничего не видно.
Туман войны-когда место разведано, но просто затемнено, так как юнитов твоих рядом нет.
Видимость-когда почти всё видно.

12
Ну разве что методом тыка потрошить код. Также как вариант включить проверку синтаксиса из jpng. Также проверь другие данные. Может быть РО повредилось. У меня частенько из-за сломанных РО переставали работать карты. Ну и нестандартный код проверь на всякий случай, иногда там может происходить смещение функций. Попробуй РО выгрузить на отдельную карту, если РО рабочее, то карта запуститься. Проверять на карте с пустыми скриптами.
3
Ikobot:
Ну разве что методом тыка потрошить код. Также как вариант включить проверку синтаксиса из jpng. Также проверь другие данные. Может быть РО повредилось. У меня частенько из-за сломанных РО переставали работать карты. Ну и нестандартный код проверь на всякий случай, иногда там может происходить смещение функций. Попробуй РО выгрузить на отдельную карту, если РО рабочее, то карта запуститься. Проверять на карте с пустыми скриптами.
Я уже попытался методом тыка потрошить код. И я, по большому счёту, могу переписать код, ведь он в мапе простейший. Но зачем делать это, не зная первопричины поломки?
В РО ничего не повреждено, ибо без триггеров мапа прекрасно запускается. Я первым делом проверил её без триггеров)
26
А почему на скрине у тебя стандартные функции в виде custom script?
3
Ikobot:
Ну разве что методом тыка потрошить код. Также как вариант включить проверку синтаксиса из jpng. Также проверь другие данные. Может быть РО повредилось. У меня частенько из-за сломанных РО переставали работать карты. Ну и нестандартный код проверь на всякий случай, иногда там может происходить смещение функций. Попробуй РО выгрузить на отдельную карту, если РО рабочее, то карта запуститься. Проверять на карте с пустыми скриптами.
Ещё раз повторюсь что до недавнего времени код работал отлично. А те триггеры, которые я кинул в приложение, взяты из бекапа "рабочей" версии проекта

8gabriel8:
А почему на скрине у тебя стандартные функции в виде custom script?
Во-первых, потому что я, когда писал эти методы, хотел в скором времени писать чистый код и, так скажем, "готовился" к этому.
Во-вторых, потому что мне это кажется более логичным, чем использовать стандартные функции. Так скажем, чтобы откладывалось это в голове
12
AllChosen:
Ещё раз повторюсь что до недавнего времени код работал отлично. А те триггеры, которые я кинул в приложение, взяты из бекапа "рабочей" версии проекта
Даже тогда подсказать не смогу. Разве что как вариант спрошу, ты модифицировал вар или редактор? Я знаю что некоторые скрипты сверх-чувствительны к версии pjass.exe, но это как правило в 3,5 случаев из 100. Может быть что-то в конфигах в реестре слетело.
26
Ну вот ты говорил, что поторошил код. Как понимаю, отключал и включал по очереди триггеры в поисках проблемного. И к чему это привело?

И как понимать, что карта перестала запускаться? При запуске из редактора появляется ошибка или во время загрузки виснет?
3
Ikobot:
AllChosen:
Ещё раз повторюсь что до недавнего времени код работал отлично. А те триггеры, которые я кинул в приложение, взяты из бекапа "рабочей" версии проекта
Даже тогда подсказать не смогу. Разве что как вариант спрошу, ты модифицировал вар или редактор? Я знаю что некоторые скрипты сверх-чувствительны к версии pjass.exe, но это как правило в 3,5 случаев из 100. Может быть что-то в конфигах в реестре слетело.
К сожалению я никак не модифицировал вар

8gabriel8:
Ну вот ты говорил, что поторошил код. Как понимаю, отключал и включал по очереди триггеры в поисках проблемного. И к чему это привело?

И как понимать, что карта перестала запускаться? При запуске из редактора появляется ошибка или во время загрузки виснет?
Я обнулил все триггеры/переменные. И начал по одному триггеру перетаскивать из копии карты. Каждый второй триггер оказывался "не рабочим".
"Карта перестала запускаться" - при инициализации карты вместо загрузочного экрана выкидывает в главное меню. При попытке загрузить карту из папки "maps" так же ничего не происходит, карта не запускается
26
А ты случайно не редактируешь на 1.26, а потом запускаешь в 1.31-1.32?
3
8gabriel8:
А ты случайно не редактируешь на 1.26, а потом запускаешь в 1.31-1.32?
Нет, запускаю так же на 1.26
26
вылет в главное меню = не скомпилированный код/ошибки при компиляции
26
Пробовал и в JNGP, и в стандартном редакторе делать перенос триггеров? И какая история этой карты, ты её создал с нуля или вскрыл защищённую и переделал, а может вместе с кем-то над ней работаете?
3
8gabriel8:
Пробовал и в JNGP, и в стандартном редакторе делать перенос триггеров? И какая история этой карты, ты её создал с нуля или вскрыл защищённую и переделал, а может вместе с кем-то над ней работаете?
В стандартном редакторе я не смогу открыть карту, к сожалению. Слишком большая.
Создал карту с нуля, чужого кода там нет. Я занимаюсь над с несколькими товарищами, однако они в код не лезут

8gabriel8:
Пробовал и в JNGP, и в стандартном редакторе делать перенос триггеров? И какая история этой карты, ты её создал с нуля или вскрыл защищённую и переделал, а может вместе с кем-то над ней работаете?
Я могу вам скинуть в лс саму карту. Быть может, у вас она внезапно начнёт работать, но, честное слово, меня очень удивляет эта ситуация с триггерами
26
Hate, кстати, да. Думал об этом тоже спросить, если в лобби карты отображает игроков, то ошибки компиляции, если не отображает, то файл не скомпилирован. Только смысл от этой информации, если решать такие узкоспециализированные задачи не смогу)
3
Hate:
вылет в главное меню = не скомпилированный код/ошибки при компиляции
Понимаю это, однако, повторяюсь, я взял код из сборки, которая работала у меня очень долгое время. К тому же не компилируется код самых простых триггеров
26
AllChosen, скидывай, только лучше не в ЛС, а сюда. Так как нет гарантии, что у меня получится, а здесь другие смогут попробовать. Есть предположение, что могла возникнуть какая-то ошибка во время редактирования, ведь карта большая и работа ведётся несколькими людьми, но вариантов таких ошибок бесчисленное множество.
26
как очевидные варианты - юзаешь жнгп, но карту скачал по пути с кириллицей, в итоге ничего не компилится и соответственно не загрузится
3
8gabriel8:
AllChosen, скидывай, только лучше не в ЛС, а сюда. Так как нет гарантии, что у меня получится, а здесь другие смогут попробовать. Есть предположение, что могла возникнуть какая-то ошибка во время редактирования, ведь карта большая и работа ведётся несколькими людьми, но вариантов таких ошибок бесчисленное множество.
Остальные работают разве что над РО и декором) Но в любом случае окей, кинул карту.
На самом деле, у меня подозрения что действительно в моём ПО есть какие-то дефекты, из-за которых карта не запускается. Потому что, в общем-то, не бывает такого, чтобы рабочий продукт ни с чего переставал работать.

Hate:
как очевидные варианты - юзаешь жнгп, но карту скачал по пути с кириллицей, в итоге ничего не компилится и соответственно не загрузится
Так, а как эту проблему можно пофиксить? Я, честно, не особо представляю, как это. Или ссылочку на подобную проблему, пожалуйста
Загруженные файлы
26
не юзать кириллицу ни в пути до жнгп, ни до папки с вариком, ни до карты, и в названии карты тоже
рабочий стол это тоже не вариант зачастую
3
Hate:
не юзать кириллицу ни в пути до жнгп, ни до папки с вариком, ни до карты, и в названии карты тоже
рабочий стол это тоже не вариант зачастую
Да, подобное я тоже вижу впервые. Учту, спасибо. Да, путь у меня был на кириллице. А как вообще с точки зрения техники вредит?
12
AllChosen:
Hate:
не юзать кириллицу ни в пути до жнгп, ни до папки с вариком, ни до карты, и в названии карты тоже
рабочий стол это тоже не вариант зачастую
Да, подобное я тоже вижу впервые. Учту, спасибо. Да, путь у меня был на кириллице. А как вообще с точки зрения техники вредит?
Некоторые программы неккоректно декодируют кириллицу в пути, из-за чего индексирование упарывается. Если коротко...
3
Ikobot:
AllChosen:
Hate:
не юзать кириллицу ни в пути до жнгп, ни до папки с вариком, ни до карты, и в названии карты тоже
рабочий стол это тоже не вариант зачастую
Да, подобное я тоже вижу впервые. Учту, спасибо. Да, путь у меня был на кириллице. А как вообще с точки зрения техники вредит?
Некоторые программы неккоректно декодируют кириллицу в пути, из-за чего индексирование упарывается. Если коротко...
Интересное замечание)
Жаль, что не помогло, но тем не менее)
26
Грубо выражаясь, компилятор получает файл по пути с кириллицей, не понимает её и заменяет символы знаками нижнего подчёркивания, делает компиляцию и возвращает файл со скомпилированным кодом по этому пути со знаками нижнего подчёркивания, а пути нет, потому скомпилированный код никуда не поступает.
P. S. Очень долго карта грузится в редакторе и игре. Вот только запустил.
3
8gabriel8:
Грубо выражаясь, компилятор получает файл по пути с кириллицей, не понимает её и заменяет символы знаками нижнего подчёркивания, делает компиляцию и возвращает файл со скомпилированным кодом по этому пути со знаками нижнего подчёркивания, а пути нет, потому скомпилированный код никуда не поступает.
P. S. Очень долго карта грузится в редакторе и игре. Вот только запустил.
Да, карта у многих грузится долго, мы с ребятами напридумывали много чего, а потом столкнулись с проблемой реализации этого. Из-за этого вышло это нечто монструозное)
26
Да, не работают триггеры, поищу сейчас, что может быть причиной.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.