Не впервые сталкиваюсь с подобного рода проблемой, однако эта меня удивила.
После недавнего создания бекапа карты я обнаружил, что на следующий день карта просто перестала запускаться (саму карту я скачал с удалённого сервера). То есть триггеры, я уверен, рабочие, поскольку ещё недавно карта с ними запускалась, но сейчас оно просто не инициализируется.
Я попробовал такие вещи:
  • Залить триггеры с копии карты по одной штуке. - Карта не запускалась даже из-за самых простых триггеров (см. 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. Может быть что-то в конфигах в реестре слетело.
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.