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

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

Ответ
 
Алексей
Где кошачья мята?!
offline
Опыт: 26,543
Активность:
[Tool] Mod Launcher
Что это за монстры? Мэв Огненная и лучники-ящеры громят Ашенваль!

А если серьёзно, то это я просто испытываю ModLauncher – программу, позволяющую дополнить War новым архивом. Я создал архивчик, где содержится пара самопальных текстур, прописал им пути – и запустил стандартную кампанию за эльфов. Эта мозаика составлена из фрагментов стандартного кинематика. Но после загрузки дополнительного MPQ многое перестаёт быть стандартным ;).
В отличие от всех аналогичных программ-пускателей, моя прога не заменяет war3patch.mpq, а ДОПОЛНЯЕТ war ещё одним, совершенно самостоятельным архивом. Так что порядок поиска файлов и их загрузки из MPQ становится таким:
  1. Warcraft пытается найти некий файл в архиве карты (*.w3x, *.w3m).
  2. Если его там нет, он ищет его в ВАШЕМ архиве.
  3. Если нет и там, то в war3patch.mpq
  4. Затем - в war3xlocal.mpq
  5. war3x.mpq
  6. war3.mpq
Сам «пускатель» аттачу. В архиве launchers.zip содержится весь демо-пакет: launcher.exe (сам пускатель), launcherWE.exe (пускает WorldEditor, дополняя его новым архивом), launcher.mpq (демонстрационный архивчик – содержит две текстуры, Мэв и лучницы), а также launcher.sph (логотип пускателя. Помните, как при запуске TFT на экране появлялась рожа Артеса? Так вот, мой пускатель позволяет сделать то же самое. И это – пример такого логотипа). И, наконец, launchers.txt – более-менее подробная инструкция, объясняющая, как всеми этими пускателями пользоваться.
Между прочим, WorldEditor очень странно работает с MPQ-архивами: список импортированных файлов он строит по их хэндлам. Соответственно, когда в WE подгружен дополнительный MPQ-архив, его Менеджер Импорта начинает глючить, т.к. не может построить список импортированных файлов. Следовательно, придётся либо импортировать файлы в карту при выключенном пускателе, либо импортировать их вообще отдельно от WE – чем-нибудь вроде WinMPQ.
.
Пускатель написан на ASM, поэтому занимает всего 3Кб (та часть, которая пускает WE, ещё короче, ибо не содержит кода, выводящего лого, т.ч. весит всего 2Кб). Как говорится, asm рулит! Вы спросите, почему же тогда launchers.zip столько весит? Да просто там содержится демонстрационный MPQ, а они всегда весят порядочно.
Сам пускатель работает только на Windows линейки NT (NT/2000/XP и им подобные). На Win95/98/ME он работать не будет. Кроме того, в нём возможны баги, о которых вы можете сообщить мне.
Ещё один нюанс: всего через пару секунд после запуска war/WE через пускатель, exe самого пускателя исчезает из списка процессов, выводящегося по Ctrl+Alt+Del. Связано это с тем, что для экономии памяти пускатель освобождает собственное адресное пространство и завершается, предварительно скопировав небольшой фрагмент кода (сам загрузчик MPQ) непосредственно в память War. Это – довольно старый трюк, который широко используется вирусами (вернее, использовался, пока вирмейкеры не обленились окончательно и не начали писать вирусы на Visual Basic).
Также аттачу исходники пускателей (War и WE) – они лежат в файле launchsrc.zip. Т.к. статья «War: взгляд изнутри» почему-то не подвигла народ на изучение ассемблера, подробно комментировать принцип действия и детали реализации пускателей я не стану. Кому надо – откроют исходники и посмотрят. Кстати, открывать их можно только в RadASM (среда, которую иногда называют Visual Asm’ом), а компилировать – и с помощью fasm.
Исходники могут понадобиться ещё и для того, чтобы влинковать в exe фирменную иконку вашего мода (разумеется, нарисована она должна быть не в Paint’е, а в каком-нибудь спец. редакторе иконок, содержать тень, альфа канал и прочие XP-навороты).
П.С.: В принципе, программы-пускатели той же функциональности можно написать и на Си, и на Delphi. Так что дерзайте! ;)
Прикрепленные файлы
Тип файла: zip launchers.zip (248.4 Кбайт, 1017 просмотров )
Тип файла: zip launchsrc.zip (20.8 Кбайт, 1417 просмотров )
Старый 19.07.2006, 22:23
GadenbIsh
Просто Гад
offline
Опыт: 70,430
Активность:
вот легендарный лаунчер и вышел. Многим облегчит работу, так что респект=)
Старый 19.07.2006, 22:36
Trok-Ferot
Silenced by Trok-Ferot
offline
Опыт: 80,759
Активность:
жжжжжжжуткие текстуры...
но сама прога... наконец-то!
Старый 19.07.2006, 22:38
Алексей
Где кошачья мята?!
offline
Опыт: 26,543
Активность:
Да, а если TONIC увидит лого, которое я сваял в Photoshop'е для этого Launcher'а, он повесится ;).
Ибо отстой НЕМЕРЯНЫЙ, он такого отстоя и не видел никогда.
Старый 19.07.2006, 22:56
WarCrafter
Покидаю вместе с форумом
offline
Опыт: 28,980
Активность:
так, я качать разумеется не стал, это дело эксплодера, но заранее респект огрмнейший!
Старый 20.07.2006, 03:57
tysch_tysch
Работаем
online
Опыт: отключен
Алексей можно ламерский вопрос? как задать экзешнику ланчера свою иконку?
Старый 20.07.2006, 04:13
senatus
тихий и скромный...
offline
Опыт: 7,023
Активность:
У меня уже сто лет дома такая хрень валяется... Знал бы что нужно - написал бы уже давно)))
Можно запустить вар со своим мпку - полностью (почти) изменить его.
Старый 20.07.2006, 09:36
WarCrafter
Покидаю вместе с форумом
offline
Опыт: 28,980
Активность:
вот блин, а модмэйкеры сидели и тупо ждали Алексея =)
мда...
как же она может не понадобиться в модмэйкерстве? на таком то форуме...
Старый 20.07.2006, 09:52
senatus
тихий и скромный...
offline
Опыт: 7,023
Активность:
Цитата:
Сообщение от WarCrafter
как же она может не понадобиться в модмэйкерстве? на таком то форуме...

Да хз. Сглупил... У меня вообще много чего дома лежит... так и до мембера недалеко...) гм. Объявляю неделю археологии
Старый 20.07.2006, 09:54
exploder
iOS zealot
offline
Опыт: 19,394
Активность:
Аaaa! Алексей респектище! Качаю тестирую!
Старый 20.07.2006, 10:11
Алексей
Где кошачья мята?!
offline
Опыт: 26,543
Активность:
ZlaYa1000: Естественно, перекомпиляцией ;). В RadASM используем меню Project->Resource, жмём Add, добавляем иконку и перекомпилируем проект. Для этого исходники и выложены. Можно попробовать всякие программы типа ResHacker, позволяющие добавлять ресурсы в exe, но я не уверен, что они могут работать с flat exe-форматом.
senatus: Таких программ много, но все они заменяют war3patch.mpq собственным архивом (пусть даже на время работы мода). А эта программа ДОПОЛНЯЕТ war ещё одним архивом. Т.е. моду доступно и всё то, что лежит в war3patch.mpq, и то, что лежит в доп. архиве ОДНОВРЕМЕННО. Если у тебя тоже есть аналогичная программа - выкладывай. Возможно, она окажется лучше моей (хотя почти наверняка больше по размеру).
Старый 20.07.2006, 12:01
senatus
тихий и скромный...
offline
Опыт: 7,023
Активность:
Цитата:
Сообщение от Алексей
senatus: Таких программ много, но все они заменяют war3patch.mpq собственным архивом (пусть даже на время работы мода). А эта программа ДОПОЛНЯЕТ war ещё одним архивом. Т.е. моду доступно и всё то, что лежит в war3patch.mpq, и то, что лежит в доп. архиве ОДНОВРЕМЕННО. Если у тебя тоже есть аналогичная программа - выкладывай. Возможно, она окажется лучше моей (хотя почти наверняка больше по размеру).

в том то и дело, что не заменяет. А запускает игру и использованием своего мпку. Я точно помню. Но не помню размера. могу глянуть. Тебе зачот. Я и забыл, что занимался этим когда-то...
Старый 20.07.2006, 12:16
exploder
iOS zealot
offline
Опыт: 19,394
Активность:
Цитата:
Для этого исходники и выложены. Можно попробовать всякие программы типа ResHacker, позволяющие добавлять ресурсы в exe, но я не уверен, что они могут работать с flat exe-форматом.

В laucherwe.exe вставляются, а в основной екзешник нет...
Цитата:
Если у тебя тоже есть аналогичная программа - выкладывай. Возможно, она окажется лучше моей (хотя почти наверняка больше по размеру).

Нифига, аналогов насколько я знаю нет. Так что ты первый!
Цитата:
Тебе зачот

Это мягко сказано... слово зач0т здесь не уместно, здесь уместно слово: "ПЯДЬ!"... =))
Алексей, очень жаль что редактор импорта не пашет...
Старый 20.07.2006, 13:59
Алексей
Где кошачья мята?!
offline
Опыт: 26,543
Активность:
Редактор импорта пашет, просто не выводит список уже импортированных файлов. Соответственно, прописать пути в нём не выйдет. А вот импортировать что-то - вроде бы позволяет.

Алексей добавил:
Просто в launcherwe.exe нет секции ресурсов, и сторонние программы могут её создать.
А в launcher.exe ресурсы есть, а секции под них нет (это только ASM так может - очень память экономит!). Соответственно, Res-программы сбиваются.
Старый 20.07.2006, 16:34
tysch_tysch
Работаем
online
Опыт: отключен
Алексей а нет ли возможности научить его из файла конфига адрес иконки прочих вещей, которые могут пригодиться мододелу, читать?
Старый 20.07.2006, 16:34
exploder
iOS zealot
offline
Опыт: 19,394
Активность:
Алексей, странно у меня по-моему вообще ничего нельзя было импортровать, щас перепроверю...
Старый 20.07.2006, 16:35
Алексей
Где кошачья мята?!
offline
Опыт: 26,543
Активность:
Давай иконку - вставлю. Только размер exe возрастёт на размер этой самой иконки.
Ну и, конечно же, можешь перекомпилировать самостоятельно (если не хочешь высылать) - исходники есть, ссылку на компилятор я давал.
П.С.: Хотелось бы выложить прогу на wc3c. Сейчас попробую перевести инструкцию на English. Правда, знаю я его плоховато...
Старый 20.07.2006, 16:36
exploder
iOS zealot
offline
Опыт: 19,394
Активность:
Хм... У меня не импортит. Нажимаю импортировать и нифига, экран перерисовывается (мерцает) как бы видно что опендиалог открыватся и тутже исчезает...

exploder добавил:
Алексей, нефиг буржуям такие фичи раздавать =)) Щучу... с английским могу помоч...
Старый 20.07.2006, 16:38
Алексей
Где кошачья мята?!
offline
Опыт: 26,543
Активность:
ZlaYa1000: Ну прочитает он адрес иконки, и что? Windows-то ищет иконку в недрах exe... Или нужно делать exe, который сам в себя иконку влинковывает? Это будет не так-то просто (самомодифицирующийся код - вообще большая проблема под Windows).
exploder: Возможно, зависит от версии WE. У меня-то до сих пор старая, т.е. я свой War не патчил со времён 1.18. Вероятно, в новых версиях Blizzard'ы ещё сильнее намутили ;). Вообще, в этом менеджере импорта - баг на баге, он ОЧЕНЬ глючный даже сам по себе, без доп. прог.

Алексей добавил:
exploder: "Буржуи" как раз и разработали сам War. Да и компилятор ASM - отнюдь не отечественное достижение ;).
Старый 20.07.2006, 16:48
exploder
iOS zealot
offline
Опыт: 19,394
Активность:
Вот перевод. Пытался не писать "руссизмами". Пусть кто-нибудь еще прочитает, возможно я допустил логические ошибочки...

exploder добавил:
Алексей, launcherWE.exe конкретно поглюкивает =)) У меня он вообще не дает эдитору открывать какие либо стандартные диалоги, следовательно, я не могу СОХРАНИТЬ мапу!
ЗЫ. Не мог бы ты еще дабавить в launcherWE.exe фишечку - чтобы при нажатии кнопки Test Map (Ctrl+F9), запускался не обычный Вар, а launcher.exe, который уже и запустит Вар, с теми же параметрами...

exploder добавил:
Object Editor, тоже кстати глючит. Он не прорисовывает правую часть - там где все поля данных о юнитах...
Прикрепленные файлы
Тип файла: rar launchers_en.rar (1.4 Кбайт, 212 просмотров )
Старый 21.07.2006, 11:26
Ответ

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

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

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

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



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