XGM Forum
Сайт - Статьи - Проекты - Ресурсы - Блоги

Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Вернуться   XGM Forum > Warcraft> Барахолка
Ник
Пароль
Войти через VK в один клик
Сайт использует только имя.

Ответ
 
NETRAT

offline
Опыт: 83,712
Активность:
MuH3gPAB редактировать карту, обработанную в slk таблицы с удаленными триггерами в полном смысле слова не получится. На данный момент знаю три варианта частичного редактирования:
1. Как есть - редактировать SLK таблицы в MS Excel
2. Запихнуть все slk таблицы и текстовые файлы в архив war3patch.mpq (перед этим эго нужно забэкапить
3. На данный момент ведутся работы по созданию утилиты/скрипта для восстановления файлов обьектов. Вообще говоря, на этапе завершения
* Редактировать триггеры aka j файл можно только ручками, в WE это сделать не получится. Насколько скоро эта трабла будет разрешена - пока не знаю
ВЫВОД: Если тебе нужно поправить данные по обьектам - то это не сложно. Если хочешь изменить триггеры, то понадобится знание JASS'a

NETRAT добавил:
MuH3gPAB попробуй скачать более новую версию утилиты и убедись что все делаешь правильно - сначала грузишь карту, потом файллист, а потом сканируешь. Кстати говоря сканировать можно несколько раз (есть шанс что появятся новые файлы). Если не проканает, пришли карту
Старый 04.02.2006, 06:08
MuH3gPAB

offline
Опыт: 20
Активность:
NETRAT
TNK, попробую!

ЗЫ: Есть DotA v.6.28b
Только не прикрепляется в форуме.
Могу на мыло скинуть
Старый 04.02.2006, 11:10
NETRAT

offline
Опыт: 83,712
Активность:
MuH3gPAB у меня тоже есть, набери в поиске по форуму "Dota Filelist" - дурную работу по восстановлению файллиста доты я уже выполнил - с ней особых проблем нет
Старый 04.02.2006, 11:36
N.Sy.Prophet
Йа Байан
offline
Опыт: 13,122
Активность:
Извеняюсь, конешно, но вам не кажется, что взламывать доту - глупо. Имхо, все кто видал, как сделаны спеллы, говорят, что они сделаны по нубски, рельеф можно и варке посмотреть, а реализация остальных триггеров (почти всех) отнять не хитрая.

Nimensy добавил:
NetRat Первый пост - зач0т!
Старый 04.02.2006, 12:57
NETRAT

offline
Опыт: 83,712
Активность:
Nimensy частично согласен, однако спрос диктует предложение...
Старый 04.02.2006, 13:07
ArchWorm
Матрица незалежности
offline
Опыт: 4,675
Активность:
NETRAT, я попробовал вытащить файлы из карты FF Epic RPG и вставить их в скопированный архив. И вроде бы всё получилось, и файлы в архиве есть, но на месте файлов - пустота. Что мне делать?
Старый 27.03.2006, 22:06
NETRAT

offline
Опыт: 83,712
Активность:
ArchWorm12612 не совсем понял - файллист ты восстановил хоть частично? что дальше делал, какая версия WinMPQ?
Старый 27.03.2006, 22:13
ArchWorm
Матрица незалежности
offline
Опыт: 4,675
Активность:
Файллист восстановил. У меня не WinMPQ, а Warcraft Viewer. Кстати, насчёт WinMPQ. Ты не мог бы дать ссылку, где его скачать?
Старый 28.03.2006, 15:00
ArchWorm
Матрица незалежности
offline
Опыт: 4,675
Активность:
И в целом, я не врубился: как вытаскивать файлы с помощью имеющегося файллиста. Объясните такому тупенькому, plz.
Старый 28.03.2006, 19:04
NETRAT

offline
Опыт: 83,712
Активность:
ArchWorm12612 используя утилиты WinMPQ или MPQ Master - скачать их можно на сайте www.xgm.guru в разделе утилит для варкрафта
Старый 29.03.2006, 02:10
ArchWorm
Матрица незалежности
offline
Опыт: 4,675
Активность:
Ага, спасибо.

ArchWorm12612 добавил:
И всё-таки я не врубился, куда вставлять сгенерённый файллист???
Старый 30.03.2006, 16:24
NETRAT

offline
Опыт: 83,712
Активность:
Можно в карту вписать - там есть кнопочка SaveMPQ, если она сможет, то вставит, если нет, то сохраняй в отдельный txt файл и потом подключай его в WinMPQ Options -> FileLists -> AddFileList
Старый 30.03.2006, 17:11
ArchWorm
Матрица незалежности
offline
Опыт: 4,675
Активность:
Вот ещё один элемент: в игре файлы есть, но MPQ recover их не находит, вследствие их не вытащишь MPQ master'ом. При попытке Deep MPQ scan программа вылетает в трубу. Что мне сделать. Карта: Sacred War Revolution.
Старый 02.04.2006, 12:20
NETRAT

offline
Опыт: 83,712
Активность:
ArchWorm12612 вероятно, это баги библиотеки storm.dll, дай ссылку на карту, попробую что-нибудь сделать

_Duke не так все просто. Файллист доты лежит где-то в барахолке, но его недостаточно чтобы открыть карту в редакторе. Частично согласен насчет защиты, но в доте используется защита-оптимизация, поверь, без нее карта грузится в 3 раза дольше и сильнее лагает во время игры. Это факт. Возможно, в ближайшем будущем появится инструмент для восстановления карты, но пока что его нет в доступном пользовании
Старый 03.04.2006, 18:16
NETRAT

offline
Опыт: 83,712
Активность:
Это не поможет =)
Старый 04.04.2006, 13:20
Алексей
Где кошачья мята?!
offline
Опыт: 26,303
Активность:
Провёл стресс-тестирование программы и выяснил:
I. Файлы, которые она не способна распознать.
Тестирование проводилось на ролике «Бегство», откуда я предварительно стёр лист. И выяснилось, что программа не способна распознать файлы, на которые нет явных ссылок (естественно!):
  1. Файлы портретов модели (идут с суффиксом “_Portrait” и на них нигде нет явных ссылок – подразумевается, что War, встретив модель, проверит наличие портретного файла. Точно то же самое происходит и с другими «суффиксными» файлами – например, если в карте присутствует несколько вариаций одной модели [декорации, к примеру]).
  2. Файлы спецэффектов. Тут вообще нечто странное, т.к. в принципе спецэффекты вешаются триггерно и ссылки на них, видимо, должны быть. А уж если имена файлов спецэффектов формируются динамически (JASS), так отыскать их и не удастся.
  3. Файлы замещённых моделей и текстур. Т.е., к примеру, хочу я, чтобы у Артеса волосы были чёрными, импортирую нужную текстуру (но не модель!) и просто прописываю требуемый путь. Ссылок на этот файл нет, и программа его не находит.
В общем, немного повозившись, можно сделать такую карту, что MPQ Recover не распознает ни единого имени импортированных файлов.
.
II. Линковка.
В экзешнике программы я обнаружил свыше 700Кб (!) какой-то графики, причём в bmp и tga-форматах. Спрашивается – а почему бы не использовать gif и JPEG, ведь тогда бы программа слегка «похудела»?
.
III. Скорость.
Как показал эксперимент (см. скриншоты), почти 50% времени уходит не на сканирование архива, а на вывод информации о ходе этого процесса и постоянную перерисовку окна. Нельзя ли обновлять индикатор прогресса пореже (и получить двукратное увеличение скорости работы)?
Далее – в процессе самого сканирования большую часть тактов процессор тратит на 2 машинные инструкции (см. скриншот – «горячие точки» программы):
lock xadd [eax],ecx
и
lock xadd [eax],edx
Удивительно – ведь префикс lock захватывает шину и заставляет весь конвейер процессора простаивать в ожидании завершения инструкции. Похоже, тут имеет место неоптимизированный цикл, обрабатывающий большое количество переменных и «гоняющий» числа из одной переменной в другую. Только это могло заставить компилятор сгенерировать настолько неоптимальный код.
Старый 04.04.2006, 14:01
NETRAT

offline
Опыт: 83,712
Активность:
Алексей
1. Странно, про портреты я не забыл... Надо глянуть. Вариации - верно, забыл =\
2. Тоже странно, ибо если статическая ссылка, то распознавать ее должна, динамические вообще не представляется возможным получить
3. Вообще-то для этого нужно подключать файллист War3(x).mpq
4. В последней версии(которая у меня на компе) все заменено PNG файлами, ибо JPEG качество не хранит - например цвет прозрачности, а читать GIF - геморр
5. Перерисовка потоковая, и, кстати говоря, вышеупомянутый баг библиотеки storm не даст значительно уменьшить время обработки. В реальности чем больше времени даешь, тем больше шансов. Верно, суть в том что под регион я выделил все окно(чтоб не мучаться), поэтому перерисовывается оно полностью каждый раз когда я перерисовываю рект с сообщением(ON_ERASE_BACKGROUND).
6. Ты уверен что этот код из блока моего модуля? Теоретически возможно... Там в программе вообще есть двойные проверки существования - вначале цикла и в конце - для надежности. В данном случае, я считаю, что процент обнаружения важнее скорости работы


Что ж, Димон был прав - лучше ставить хук на вар для этой цели =) только проблема в том что ресурсы грузятся в момент их использования(вроде бы) так что карту придется погонять
Старый 04.04.2006, 15:54
Алексей
Где кошачья мята?!
offline
Опыт: 26,303
Активность:
Проверил идею DimonT’а – насчёт перехвата обращений War’а к MPQ-архивам. Боюсь, что ничего не выйдет – War очень странно работает с MPQ.
  1. Он почти не вызывает SFileOpenArchive – только в самом начале и для war3.mpq. Как уж он открывает всё остальное – это просто тайна. Но кое-какие соображения есть.
  2. По-видимому, SFileOpenFileEx используется и для открытия MPQ-архивов! Во всяком случае, их имена то и дело подставляются в эту функцию.
  3. War иногда вызывает SFileOpenFileEx с «ненормальными» параметрами. Например, подставляет NULL вместо хэндла MPQ. А ведь в документации по Storm.dll написано, что «SFileOpenFileEx will fail or crash if this is NULL». Затем, иногда NULL идёт вместо имени открываемого файла! Более того, вместо того же имени часто подставляются какие-то ординалы, которым и строк-то никаких не соответствует.
  4. War постоянно «подгружает» файлы. Например, *.mp3 грузятся, похоже, КАЖДЫЙ РАЗ, когда их нужно проиграть (например, если на карте пошла мочиловка с кучей звуковых эффектов, то лог будет содержать километры подгрузок wav и mp3. У меня есть страшное подозрение, что именно этим объясняются тормоза при массовках, а вовсе не прорисовкой моделей). То же самое относится и к спецэффектам.
На всякий случай выкладываю программку – mpqlog.exe, благо она небольшая. Если её запустить в папке War’а, то War запустится автоматически. А по завершению его работы в том же каталоге окажется лог-файл (mpqlog.log), содержащий список всех файлов, которые War подгружал из MPQ (любых MPQ. К сожалению, отследить, из какого MPQ грузится файл, не удаётся – см. выше). Поэтому вы сами сможете убедиться, что приемлемого лога не выходит, мешанина дикая…
(Хе, зато если лог скормить MPQ Recover под видом листа, он распознаёт все файлы - по крайней мере, на моей тест-карте ;)).
Старый 06.04.2006, 18:58
NETRAT

offline
Опыт: 83,712
Активность:
Возможно вар умеет обращаться к файлу по его идентификатору, типа хендля... Ноль вместо мпку - это нечто
Гм, как я и ожидал - файлы грузятся далеко не все
Старый 07.04.2006, 05:03
ArchWorm
Матрица незалежности
offline
Опыт: 4,675
Активность:
NETRAT, саму ссылку я не помню, но карту загрузил с www.wc3sear.ch Вбей название в поиск. Вот только с сёрча уже месяц ничего из карт не грузится, так что давай я её на мыло скину.
Старый 21.04.2006, 18:29
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы можете скачивать файлы

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 12:23.