Алексей
Где кошачья мята?!
offline
Опыт:
26,543Активность: |
[Tool] Mod Launcher
Что это за монстры? Мэв Огненная и лучники-ящеры громят Ашенваль!
А если серьёзно, то это я просто испытываю ModLauncher – программу, позволяющую дополнить War новым архивом. Я создал архивчик, где содержится пара самопальных текстур, прописал им пути – и запустил стандартную кампанию за эльфов. Эта мозаика составлена из фрагментов стандартного кинематика. Но после загрузки дополнительного MPQ многое перестаёт быть стандартным ;). В отличие от всех аналогичных программ-пускателей, моя прога не заменяет war3patch.mpq, а ДОПОЛНЯЕТ war ещё одним, совершенно самостоятельным архивом. Так что порядок поиска файлов и их загрузки из MPQ становится таким:
Между прочим, 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. Так что дерзайте! ;) |
19.07.2006, 22:23 | #1
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
GadenbIsh
Просто Гад
offline
Опыт:
70,430Активность: |
вот легендарный лаунчер и вышел. Многим облегчит работу, так что респект=) |
19.07.2006, 22:36 | #2
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Trok-Ferot
Silenced by Trok-Ferot
offline
Опыт:
80,759Активность: |
жжжжжжжуткие текстуры... но сама прога... наконец-то! |
19.07.2006, 22:38 | #3
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Алексей
Где кошачья мята?!
offline
Опыт:
26,543Активность: |
Да, а если TONIC увидит лого, которое я сваял в Photoshop'е для этого Launcher'а, он повесится ;).
Ибо отстой НЕМЕРЯНЫЙ, он такого отстоя и не видел никогда. |
19.07.2006, 22:56 | #4
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
WarCrafter
Покидаю вместе с форумом
offline
Опыт:
28,980Активность: |
так, я качать разумеется не стал, это дело эксплодера, но заранее респект огрмнейший! |
20.07.2006, 03:57 | #5
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
tysch_tysch
Работаем
online
Опыт: отключен
|
Алексей можно ламерский вопрос? как задать экзешнику ланчера свою иконку?
|
20.07.2006, 04:13 | #6
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
senatus
тихий и скромный...
offline
Опыт:
7,023Активность: |
У меня уже сто лет дома такая хрень валяется... Знал бы что нужно - написал бы уже давно))) Можно запустить вар со своим мпку - полностью (почти) изменить его. |
20.07.2006, 09:36 | #7
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
WarCrafter
Покидаю вместе с форумом
offline
Опыт:
28,980Активность: |
вот блин, а модмэйкеры сидели и тупо ждали Алексея =)
мда...
как же она может не понадобиться в модмэйкерстве? на таком то форуме... |
20.07.2006, 09:52 | #8
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
senatus
тихий и скромный...
offline
Опыт:
7,023Активность: |
Цитата:
Да хз. Сглупил... У меня вообще много чего дома лежит... так и до мембера недалеко...) гм. Объявляю неделю археологии |
|
20.07.2006, 09:54 | #9
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
exploder
iOS zealot
offline
Опыт:
19,394Активность: |
Аaaa! Алексей респектище! Качаю тестирую!
|
20.07.2006, 10:11 | #10
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Алексей
Где кошачья мята?!
offline
Опыт:
26,543Активность: |
ZlaYa1000: Естественно, перекомпиляцией ;). В RadASM используем меню Project->Resource, жмём Add, добавляем иконку и перекомпилируем проект. Для этого исходники и выложены. Можно попробовать всякие программы типа ResHacker, позволяющие добавлять ресурсы в exe, но я не уверен, что они могут работать с flat exe-форматом.
senatus: Таких программ много, но все они заменяют war3patch.mpq собственным архивом (пусть даже на время работы мода). А эта программа ДОПОЛНЯЕТ war ещё одним архивом. Т.е. моду доступно и всё то, что лежит в war3patch.mpq, и то, что лежит в доп. архиве ОДНОВРЕМЕННО. Если у тебя тоже есть аналогичная программа - выкладывай. Возможно, она окажется лучше моей (хотя почти наверняка больше по размеру). |
20.07.2006, 12:01 | #11
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
senatus
тихий и скромный...
offline
Опыт:
7,023Активность: |
Цитата:
в том то и дело, что не заменяет. А запускает игру и использованием своего мпку. Я точно помню. Но не помню размера. могу глянуть. Тебе зачот. Я и забыл, что занимался этим когда-то... |
|
20.07.2006, 12:16 | #12
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
exploder
iOS zealot
offline
Опыт:
19,394Активность: |
Цитата:
В laucherwe.exe вставляются, а в основной екзешник нет... Цитата:
Нифига, аналогов насколько я знаю нет. Так что ты первый! Цитата:
Это мягко сказано... слово зач0т здесь не уместно, здесь уместно слово: "ПЯДЬ!"... =)) Алексей, очень жаль что редактор импорта не пашет... |
|||
20.07.2006, 13:59 | #13
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Алексей
Где кошачья мята?!
offline
Опыт:
26,543Активность: |
Редактор импорта пашет, просто не выводит список уже импортированных файлов. Соответственно, прописать пути в нём не выйдет. А вот импортировать что-то - вроде бы позволяет.
Алексей добавил: Просто в launcherwe.exe нет секции ресурсов, и сторонние программы могут её создать. А в launcher.exe ресурсы есть, а секции под них нет (это только ASM так может - очень память экономит!). Соответственно, Res-программы сбиваются. |
20.07.2006, 16:34 | #14
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
tysch_tysch
Работаем
online
Опыт: отключен
|
Алексей а нет ли возможности научить его из файла конфига адрес иконки прочих вещей, которые могут пригодиться мододелу, читать?
|
20.07.2006, 16:34 | #15
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
exploder
iOS zealot
offline
Опыт:
19,394Активность: |
Алексей, странно у меня по-моему вообще ничего нельзя было импортровать, щас перепроверю...
|
20.07.2006, 16:35 | #16
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Алексей
Где кошачья мята?!
offline
Опыт:
26,543Активность: |
Давай иконку - вставлю. Только размер exe возрастёт на размер этой самой иконки. Ну и, конечно же, можешь перекомпилировать самостоятельно (если не хочешь высылать) - исходники есть, ссылку на компилятор я давал. П.С.: Хотелось бы выложить прогу на wc3c. Сейчас попробую перевести инструкцию на English. Правда, знаю я его плоховато... |
20.07.2006, 16:36 | #17
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
exploder
iOS zealot
offline
Опыт:
19,394Активность: |
Хм... У меня не импортит. Нажимаю импортировать и нифига, экран перерисовывается (мерцает) как бы видно что опендиалог открыватся и тутже исчезает...
exploder добавил: Алексей, нефиг буржуям такие фичи раздавать =)) Щучу... с английским могу помоч... |
20.07.2006, 16:38 | #18
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Алексей
Где кошачья мята?!
offline
Опыт:
26,543Активность: |
ZlaYa1000: Ну прочитает он адрес иконки, и что? Windows-то ищет иконку в недрах exe... Или нужно делать exe, который сам в себя иконку влинковывает? Это будет не так-то просто (самомодифицирующийся код - вообще большая проблема под Windows).
exploder: Возможно, зависит от версии WE. У меня-то до сих пор старая, т.е. я свой War не патчил со времён 1.18. Вероятно, в новых версиях Blizzard'ы ещё сильнее намутили ;). Вообще, в этом менеджере импорта - баг на баге, он ОЧЕНЬ глючный даже сам по себе, без доп. прог. Алексей добавил: exploder: "Буржуи" как раз и разработали сам War. Да и компилятор ASM - отнюдь не отечественное достижение ;). |
20.07.2006, 16:48 | #19
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
exploder
iOS zealot
offline
Опыт:
19,394Активность: |
Вот перевод. Пытался не писать "руссизмами". Пусть кто-нибудь еще прочитает, возможно я допустил логические ошибочки...
exploder добавил: Алексей, launcherWE.exe конкретно поглюкивает =)) У меня он вообще не дает эдитору открывать какие либо стандартные диалоги, следовательно, я не могу СОХРАНИТЬ мапу! ЗЫ. Не мог бы ты еще дабавить в launcherWE.exe фишечку - чтобы при нажатии кнопки Test Map (Ctrl+F9), запускался не обычный Вар, а launcher.exe, который уже и запустит Вар, с теми же параметрами... exploder добавил: Object Editor, тоже кстати глючит. Он не прорисовывает правую часть - там где все поля данных о юнитах... |
21.07.2006, 11:26 | #20
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|