у вас в коде используется cjass, а вы его отрубуили, конечно ругается, в жасее нету такого "||", вместо него используется "or", если чо локалки в жассе обьявлять можно лишь вначале функции. То что я скинул с сижасом работать должно.
Исходя из ваших комментариев, я попытался заменить синтаксис в карте, дабы при отключении cjass можно было спокойно сохранять карту. К сожалению, это привело к тотальному краху и я вынужден вернуться сюда и продолжить просить помощи.
Вы упоминали, что в этой сборке мемхака нет комментариев перед строчками, отключающими проверку кода. Комментарии были, я разобрался и убрал их. По итогу получились примерно такие строчки (скидываю скрин, поскольку не уверен в правильности моих действий).
Однако при сохранении карты теперь выдаёт следующую ошибку (скрин 2). Для включения этой функции необходимы какие-либо дополнительные надстройки?
Добрый день! Исходя из тестов редактора у меня получилось выяснить следующую вещь - при отключении пункта "EnableAdicOptimizer" редактор перестаёт ругаться на эти 11 ошибок и может спокойно работать с мемхаком, но при переносе мемхака в свою карту и последующем сохранении вылетает следующая ошибка:
В данный момент я пытаюсь импортировать скинутый вами мемхак. Причём редактор ругается на любой символ, сколько бы я триггеров не удалил. По моему опыту могу сказать что такое случалось, когда в коде были ошибки, который редактор по тем или иным причинам не находил. И данная ситуация ставит меня в тупик, ибо если поставить галочку на "AdicParser", то редактор спокойно сохраняет код, но не может сохранить мемхак. А если галочку убрать, то редактор спокойно сохраняет мемхак, но не может сохранить код.
Наверное, из_за дамми юнита, который не сразу удаляется, а лишь после полного разложения трупа. Я бы не рекомендовал создавать столько даммиков, а использовал бы одного, если, конечно, способность мгновенная.
К сожалению, такой скрипт должен действовать на все способности и не всегда они будут мгновенными
Можете, пожалуйста, рассказать подробнее?
Если в данном случае крашит из-за использования directX, то запуск при помощи OpenGl должен помочь в данном случае, если я правильно понял?
Вроде работает, но не знаю, так ли у тебя работало ранее. Проверь. Касательно проблем с триггерами не уверен, но вроде бы видел триггеры с одинаковым названием на русском. На всякий случай изменил все названия триггеров с кириллицей на латиницу, так как проблемы с этим уже упоминали. В триггере инициализации было два события, что в итоге приводило бы к двойному срабатыванию, одно из них удалил. Также удалил несколько ретурнов, чтобы с одной стороны увидеть работоспособность триггеров, так удалил ретурн перед постановкой заданий в инициализации, с другой сомневался, что они корректно работают, а проверять было некогда, например, в цикле от 1 до 350 ретурн мог не пустить выполнение цикла дальше первого элемента. Но главное в том, что ты вводишь лишнии глобальные переменные вместо указателей (Triggering unit) или (Item being manipulated), причём их порой даже не используешь, просто устанавливаешь сначала, а в конце обнуляешь. Так не надо делать, пользуйся стандартными указателями на юнитов, типа (Triggering unit) или (Attacking unit), не удаляя или обнуляя их, а то только лишнюю нагрузку создаёшь для памяти, процессора и очереди операций. Обычно (Triggering player) по умолчанию является владельцем (Triggering unit), тоже используй сразу, а не плоди переменные. После удаления точки, не обнуляй её. А ещё попробуйте использовать какие-то оптимизаторы для карты, потому что её загрузка просто жесть - более 50 тысяч переменных для объектов редактор показывал) Только после оптимизации карта будет годна лишь для игры, а в редакторе не будет открываться.
Печатал уточнение и заснул)
Не указал, что вроде бы видел два триггера Безымянный триггер 002 или Безымянный триггер 005, одинаковые имена как раз могли быть причиной проблемы.
Самым лучшим комментарием считаю 17 от Hate.
Спасибо что объяснили возможные причины неполадки. Впредь буду стараться не косячить с этим. Спасибо огромное за помощь)
AllChosen, в менеджере объектов посмотри, там указано, что их 187. И они некрасиво сделаны, считаю. Закончу, проверю и оставлю комментарий, что не так с ними.
если триггеров очень много, то вполне вы напоролись на лимит)
Триггеров очень мало. Всего штук 30-50. Я старался минимизировать свой поток идей, предполагая что в будущем с триггерами может приключиться такая ситуация.
В прошлом у меня случались такие проблемы, что триггеры не импортировались в готовую мапу. Но тогда я просто импортировал их второй раз или скачивал другую версию карты, таким образом всё исправлялось
если триггеров очень много, то вполне вы напоролись на лимит)
Триггеров очень мало. Всего штук 30-50. Я старался минимизировать свой поток идей, предполагая что в будущем с триггерами может приключиться такая ситуация.
В прошлом у меня случались такие проблемы, что триггеры не импортировались в готовую мапу. Но тогда я просто импортировал их второй раз или скачивал другую версию карты, таким образом всё исправлялось
Грубо выражаясь, компилятор получает файл по пути с кириллицей, не понимает её и заменяет символы знаками нижнего подчёркивания, делает компиляцию и возвращает файл со скомпилированным кодом по этому пути со знаками нижнего подчёркивания, а пути нет, потому скомпилированный код никуда не поступает.
P. S. Очень долго карта грузится в редакторе и игре. Вот только запустил.
Да, карта у многих грузится долго, мы с ребятами напридумывали много чего, а потом столкнулись с проблемой реализации этого. Из-за этого вышло это нечто монструозное)
AllChosen, скидывай, только лучше не в ЛС, а сюда. Так как нет гарантии, что у меня получится, а здесь другие смогут попробовать. Есть предположение, что могла возникнуть какая-то ошибка во время редактирования, ведь карта большая и работа ведётся несколькими людьми, но вариантов таких ошибок бесчисленное множество.
Остальные работают разве что над РО и декором) Но в любом случае окей, кинул карту.
На самом деле, у меня подозрения что действительно в моём ПО есть какие-то дефекты, из-за которых карта не запускается. Потому что, в общем-то, не бывает такого, чтобы рабочий продукт ни с чего переставал работать.
вылет в главное меню = не скомпилированный код/ошибки при компиляции
Понимаю это, однако, повторяюсь, я взял код из сборки, которая работала у меня очень долгое время. К тому же не компилируется код самых простых триггеров
Пробовал и в JNGP, и в стандартном редакторе делать перенос триггеров? И какая история этой карты, ты её создал с нуля или вскрыл защищённую и переделал, а может вместе с кем-то над ней работаете?
В стандартном редакторе я не смогу открыть карту, к сожалению. Слишком большая.
Создал карту с нуля, чужого кода там нет. Я занимаюсь над с несколькими товарищами, однако они в код не лезут
Пробовал и в JNGP, и в стандартном редакторе делать перенос триггеров? И какая история этой карты, ты её создал с нуля или вскрыл защищённую и переделал, а может вместе с кем-то над ней работаете?
Я могу вам скинуть в лс саму карту. Быть может, у вас она внезапно начнёт работать, но, честное слово, меня очень удивляет эта ситуация с триггерами
Ещё раз повторюсь что до недавнего времени код работал отлично. А те триггеры, которые я кинул в приложение, взяты из бекапа "рабочей" версии проекта
Даже тогда подсказать не смогу. Разве что как вариант спрошу, ты модифицировал вар или редактор? Я знаю что некоторые скрипты сверх-чувствительны к версии pjass.exe, но это как правило в 3,5 случаев из 100. Может быть что-то в конфигах в реестре слетело.
Ну вот ты говорил, что поторошил код. Как понимаю, отключал и включал по очереди триггеры в поисках проблемного. И к чему это привело?
И как понимать, что карта перестала запускаться? При запуске из редактора появляется ошибка или во время загрузки виснет?
Я обнулил все триггеры/переменные. И начал по одному триггеру перетаскивать из копии карты. Каждый второй триггер оказывался "не рабочим".
"Карта перестала запускаться" - при инициализации карты вместо загрузочного экрана выкидывает в главное меню. При попытке загрузить карту из папки "maps" так же ничего не происходит, карта не запускается
Ну разве что методом тыка потрошить код. Также как вариант включить проверку синтаксиса из jpng. Также проверь другие данные. Может быть РО повредилось. У меня частенько из-за сломанных РО переставали работать карты. Ну и нестандартный код проверь на всякий случай, иногда там может происходить смещение функций. Попробуй РО выгрузить на отдельную карту, если РО рабочее, то карта запуститься. Проверять на карте с пустыми скриптами.
Ещё раз повторюсь что до недавнего времени код работал отлично. А те триггеры, которые я кинул в приложение, взяты из бекапа "рабочей" версии проекта
А почему на скрине у тебя стандартные функции в виде custom script?
Во-первых, потому что я, когда писал эти методы, хотел в скором времени писать чистый код и, так скажем, "готовился" к этому.
Во-вторых, потому что мне это кажется более логичным, чем использовать стандартные функции. Так скажем, чтобы откладывалось это в голове
Ну разве что методом тыка потрошить код. Также как вариант включить проверку синтаксиса из jpng. Также проверь другие данные. Может быть РО повредилось. У меня частенько из-за сломанных РО переставали работать карты. Ну и нестандартный код проверь на всякий случай, иногда там может происходить смещение функций. Попробуй РО выгрузить на отдельную карту, если РО рабочее, то карта запуститься. Проверять на карте с пустыми скриптами.
Я уже попытался методом тыка потрошить код. И я, по большому счёту, могу переписать код, ведь он в мапе простейший. Но зачем делать это, не зная первопричины поломки?
В РО ничего не повреждено, ибо без триггеров мапа прекрасно запускается. Я первым делом проверил её без триггеров)
AllChosen, ты пока что не понимаешь, что делаешь.
ты должен вместо цикла с вэйтом использовать "периодичный" таймер и сдвигать координаты, но пока что советуют посмотреть примеры xgm.guru/p/wc3/spellmaker-stomp-spell-creation
есть таймер одноразовый и периодичный, это все один и то же таймер, просто запускает разные режимы. через TimerStart
Спасибо вам) Теперь хоть буду понимать в чем стоит дальше разбираться)
AllChosen, у тебя триггер то и простой. Но не понятный, должен работать, у тебя же нет задержек (ни вэйтов, ни таймеров). Что не работает?
Что у тебя за условие с "CharsList", не проще ли номера сравнивать чем id?
if number==1 then
elseif number ==2 then
endif
еще мб юнит не может кастовать, тк ты даймика создаешь слишком далеко от точки каста?
Извиняюсь, я немного неправильно скинул код. Та способность, которую я перекинул, подразумевает wait в конце каждой итерации цикла, чтобы эффекты появлялись плавно. В этом вся проблема, поскольку этот триггер перекрывается другими. Не могли бы вы мне объяснить - как конкретно в этой ситуации может помочь таймер? А лист там нужен для рандомизации спавна даммиков. Т.е, грубо говоря, в листе записываются значения координат +- (т.е. x будет положительным, а y - отрицательным) и т.д. для того, чтобы определить - на какой части должен заспавниться даммик. (К примеру x = 110 (число создаётся рандомно) / y = -90 и т.д.)
NazarPunk, скорее всего так. меня другое интересует. а я давно уже пробовал с вэйтами тест, где разные в разных потоках GetTriggerUnit() имеет разных юнитов. И короче GetTriggerUnit() и пр константы вара это никак не обычная глобалка, которая хранит лишь одно значение
Безусловно, проблем в моих триггерах много. Однако во всём приходится разбираться потихоньку, ибо без практики никак) Но вот таймеры меня заинтересовали. По ссылочкам из вашего документа я увидел лишь эту цитату "Создать поток можно запуском одноразового таймера с минимальной задержкой", но, признаться, не особо её понял. А код у меня такой вот, достаточно простенький, что ж поделать)
» WarCraft 3 / Проблема с мемхаком
Ред. AllChosen
» WarCraft 3 / Проблема с мемхаком
» WarCraft 3 / Утечка при массовом касте
Ред. AllChosen
» WarCraft 3 / Критическая ошибка в карте
Если в данном случае крашит из-за использования directX, то запуск при помощи OpenGl должен помочь в данном случае, если я правильно понял?
» WarCraft 3 / Проблема инициализации карты
» WarCraft 3 / Проблема инициализации карты
» WarCraft 3 / Проблема инициализации карты
» WarCraft 3 / Проблема инициализации карты
Путь до карты - C:\Instruments For War3\Maps
Путь до редактора - C:\Program Files (x86)\Jass New Gen Pack Rebuild
» WarCraft 3 / Проблема инициализации карты
В прошлом у меня случались такие проблемы, что триггеры не импортировались в готовую мапу. Но тогда я просто импортировал их второй раз или скачивал другую версию карты, таким образом всё исправлялось
» WarCraft 3 / Проблема инициализации карты
» WarCraft 3 / Проблема инициализации карты
Жаль, что не помогло, но тем не менее)
» WarCraft 3 / Проблема инициализации карты
» WarCraft 3 / Проблема инициализации карты
» WarCraft 3 / Проблема инициализации карты
» WarCraft 3 / Проблема инициализации карты
Создал карту с нуля, чужого кода там нет. Я занимаюсь над с несколькими товарищами, однако они в код не лезут
» WarCraft 3 / Проблема инициализации карты
» WarCraft 3 / Проблема инициализации карты
"Карта перестала запускаться" - при инициализации карты вместо загрузочного экрана выкидывает в главное меню. При попытке загрузить карту из папки "maps" так же ничего не происходит, карта не запускается
» WarCraft 3 / Проблема инициализации карты
Во-вторых, потому что мне это кажется более логичным, чем использовать стандартные функции. Так скажем, чтобы откладывалось это в голове
» WarCraft 3 / Проблема инициализации карты
В РО ничего не повреждено, ибо без триггеров мапа прекрасно запускается. Я первым делом проверил её без триггеров)
» WarCraft 3 / Расстояние от рудника до ратуши
» WarCraft 3 / Расстояние от рудника до ратуши
Ред. AllChosen
» WarCraft 3 / Расстояние от рудника до ратуши
» WarCraft 3 / Многопоточность триггеров
Ред. AllChosen
» WarCraft 3 / Многопоточность триггеров
» WarCraft 3 / Многопоточность триггеров