Здравствуйте. Обращаюсь достаточно, может быть, необычной проблемой. Видите ли, я нашёл "опен сорс" карты, время которой уже прошло. Castle Fight, как известно руссифицированная версия не обладает защитой. А поскольку последующие версии после 1.22а меня перестали удволетворять, да и я сам хотел что-то в кф добавить, чисто для себя, что-то изменить, я давно хотел найти опен сорс версию. Нашёл-то я её давно, но проблема в том, что не смотря на то, что исходник работает, при сохранении его через редактор, даже ничего не меняя, появляется ошибка компиляции "Function redeclared". Тогда давно для меня подобные ошибки были крестом. Я сразу забивал, так как Jass меня отпугивал. Но сейчас я попытался разобраться в проблеме. И переназвал функции, чтобы не было дублирующих названий. И тут собственно возникла проблема, не смотря на то, что теперь карта сохранялась без ошибок Jass, а так же в меню выбора она имела панель с игроками, меня смутило то, что поиск не показал никаких других функций дубликатов, то есть функции были единственные в своё роде. Да и автар бы не смог сохранить карту у себя с наличием явных дубликатов. А запуск лишь подтвердил опасения - карта запустилась, но привычной игры не было, был лишь затемнённый пустой рельеф, видимо переназвание функции просто "исключило" её, она нигде не участвовала и не была после этого с чем-то связана, и собственно не участвовала в работе карты.
Внимание вопрос!
Что делать с подобной ошибкой, function redeclared, если функция существует в единственном роде(её название уникально), и при этом сама карта в исходнике с таким же кодом работает, в отличии от того, если открыть в своём Jass и просто сохранить отдельно? Я в Jass только начал разбираться, поэтому решил обратиться к знающим людям.

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

DarkRaven Best, в картах есть 2 файла с кодом
j и wct
wct содержит тот код который отображается в редакторе
j файл содержит окончательный код который и работает в игре(с переменными, генерируемыми функциями и результатом гуи)
проги для взлома карт тупо перемещает код из j файла в wct (в том числе и генерируемые функции наподобие main)
при попытке сохранения карты код из wct перемещается в j и генерируются системные функции (например main)
но т.к. генерируемые функции уже перенеслись в j из wct получается повторение функций( например main из wct + сгенерированный main)
если же удалить/переименовать лишние функции в редакторе то функции будут сгенерированны не правильно (например в main будет отсутствовать инициализация библиотек)
для того чтобы всё нормально работало надо открыть карту в mpq редакторе и ручками править wct файл вычищая из него всё лишнее
для этого надо хорошо знать джасс
0
13
7 лет назад
0
Сможешь найти эту функцию и скинуть сюда? Может хотя бы название.
К слову, JNGP скачал?
1
27
7 лет назад
1
где карта то?
0
15
7 лет назад
0
Здравствуйте, извините за задержку. Конечно я запускал через JPNG. Прикладываю вам карту на рассмотрение.
Загруженные файлы
0
14
7 лет назад
0
Это взломанная версия карты. Никакой не "open source".
Обфусцированные имена переменных, весь код в одной куче.
Еще и читы вставлены.
Ты не сможешь нормально редактировать эту карту.
0
13
7 лет назад
0
Ты конечно можешь вручную править этот код, почему бы и нет. Уйдет у тебя на это месяца три (просто рандомная цифра), лол, учитывая твои знания тем более. Проще почитать статьи и начать писать код самому, быстрее будет.
0
28
7 лет назад
0
DarkRaven Best, в картах есть 2 файла с кодом
j и wct
wct содержит тот код который отображается в редакторе
j файл содержит окончательный код который и работает в игре(с переменными, генерируемыми функциями и результатом гуи)
проги для взлома карт тупо перемещает код из j файла в wct (в том числе и генерируемые функции наподобие main)
при попытке сохранения карты код из wct перемещается в j и генерируются системные функции (например main)
но т.к. генерируемые функции уже перенеслись в j из wct получается повторение функций( например main из wct + сгенерированный main)
если же удалить/переименовать лишние функции в редакторе то функции будут сгенерированны не правильно (например в main будет отсутствовать инициализация библиотек)
для того чтобы всё нормально работало надо открыть карту в mpq редакторе и ручками править wct файл вычищая из него всё лишнее
для этого надо хорошо знать джасс
Принятый ответ
0
15
7 лет назад
0
Удивительно. Это вроде была просто руссифицированная версия. И я бы не сказал, что скачивал её там, где были взломанные карты. Тогда ситуация с тем, что она криво взломана достаточно странная. Зачем? Но всё-равно, спасибо за ответы.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.