Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: STK Builds Unpacker 3436\3813\3844
GAMEINATOR forums > S.T.A.L.K.E.R. > Мастерская: создание модов для S.T.A.L.K.E.R.
Rezzoxe
STK Builds Unpacker



Разработчик: Rezzoxe.
Версия программы: 0.1 от 7.06.2015.
Среда разработки: NeoBook 5.8.5b.
Платформа: Windows XP\Vista\7\8\8.1\10.
Разрядность ОС: X64 & X86 (32-bit).
Тип распространения: Бесплатный.


Что это и как пользоваться?
Утилита предназначена для полной распаковки 3 сборок: 3436\3813\3844. Решил просто немного по-репетировать перед глобальным обновлением и ребрендингом того, что у меня в подписи. Кому пригодится - пользуйтесь на здоровье. Интерфейс до безобразия прост, хотя пару нюансов рассказать стоит. В распаковку не включены mp-карты, если надо включу. Распаковка архивов сторонних локализаций производится в отдельные папки, к примеру: \gamedataX\!localization\GER\. Переменная output автоматически берёт путь от входной папки и добавляет "gamedataX". Если не понравится такой подход, то после указания корневой директории никто вам не запрещает сменить путь распаковки. В программе куча условий, вплоть до сравнение размера одного из архивов по-байтово... так что корневую директорию указывайте верно. Если вы считаете что в программу необходимо добавить ещё сборок - сообщите об этом в теме.

Ссылка на загрузку (Яндекс.Диск)



P.S. Утилита основана на converter.exe, никаких фреймворков и прочего не требуется. Ещё утилита воспитанная, в реестр не гадит, и всегда убирает за собой.
P.P.S. Возможны мелкие недочёты - сообщайте...
HikeR
Цитата(Rezzoxe @ 08.06.2015, 00:55) *
Возможны мелкие недочёты - сообщайте...

сообщаю об огромном недочете, "запускаем от имени администратора...".
Rezzoxe
Цитата(HikeR @ 08.06.2015, 08:07) *
сообщаю об огромном недочете, "запускаем от имени администратора...".

Ок... не запускаем от имени администратора, программа в начале сама его потребует если включён UAC.
Просьба к модераторам... удалить эту красную строчку...
Neo][
Цитата(Rezzoxe @ 08.06.2015, 10:31) *
Ок... не запускаем от имени администратора, программа в начале сама его потребует если включён UAC.

Rezzoxe, я думаю HikeR имел ввиду, что для подобного рода программ требование админских прав по умолчанию - лишнее. Можно же обрабатывать ошибки доступа и выдавать соотв. сообщение.
Rezzoxe
Neo][, я как-то сталкивался с тем, что converter.exe не мог распаковаться из гуишки если был включен uac, и доступ в настройках проекта был по умолчанию "as invoker".
И после этого я теперь всегда в настройках выставляю "требовать администратора". Может чего путаю. Сейчас перепроверю.
Rezzoxe
Перепроверил на системном диске включив UAC... странно, скинул куда надо converter.exe распаковал, и удалил консольку. Всё как и положено.
В общем перекомпилил с доступом "as invoker"... доступно по той же ссылке...
Neo][
Цитата(Rezzoxe @ 08.06.2015, 20:22) *
Neo][, я как-то сталкивался с тем, что converter.exe не мог распаковаться из гуишки если был включен uac

Rezzoxe, ну, единственный возможный вариант с конвертёром - IO операции, но к ним же можно прикрутить проверку результата и только в случае необходимости повышать права, либо поиграться с автоматическим повышением прав и т.п.

https://technet.microsoft.com/ru-ru/magazin...uac(en-us).aspx
User_X.A.R26
Rezzoxe, можно немного, м-м-м... неуместный вопрос? Почему не разрабатываешь софт в классических IDE (например, VS)?
Rezzoxe
Цитата(User_X.A.R26 @ 08.06.2015, 19:23) *
Rezzoxe, можно немного, м-м-м... неуместный вопрос? Почему не разрабатываешь софт в классических IDE (например, VS)?


Пытался несколько раз браться и за делфи и за прочие, но я ни разу не усидчивый, да и в принципе мне пока достаточно возможностей NB smile.gif
User_X.A.R26
Цитата(Rezzoxe @ 08.06.2015, 20:25) *
Цитата(User_X.A.R26 @ 08.06.2015, 19:23) *
Rezzoxe, можно немного, м-м-м... неуместный вопрос? Почему не разрабатываешь софт в классических IDE (например, VS)?

Пытался несколько раз браться и за делфи и за прочие, но я ни разу не усидчивый, да и в принципе мне пока достаточно возможностей NB smile.gif

Попробуй VB .NET. Довольно лёгкий и простой. Интерфейс можно сделать за минуту, да и синтаксис очень простой smile.gif Всё необходимое для разработки можно изучить за очень короткое время
P.S.: Да простят мне мой оффтоп... biggrin.gif
Rezzoxe
User_X.A.R26, в таких языках (взрослых) в начале постоянно надо что-то объявлять и т.д. и т.п. соответственно выходит много строк кода за какую-нибудь простую операцию. Вот скрин с NB. Куда ещё проще? smile.gif

Neo][
Цитата(Rezzoxe @ 08.06.2015, 21:48) *
Куда ещё проще?


Rezzoxe
Neo][, HiAsm вроде...

Мы начинали с одного сайта в 2006 году... было три программы: HiAsm, Multimedia Builder (MMB) и NeoBook (NB). HiAsm сразу не понравился мне этим методом построения схем. Да и жёстко глючный был. NeoBook тогда мало был изучен и мы все в основном сидели на MMB. Но в один прекрасный момент поддержку и дальнейшее развитие MMB прекратили разрабы. Многие кто сидел на MMB перешли на NB... и возможностей по-больше и синтаксис по проще чем в MMB. Потом годика через два перешли вообще на отдельный форум по NB. Разраб HiAsm (Dilma вроде) тоже создал собственный сайт.
По возможностям конечно HiAsm выигрывает, но жутко глючный... да и сам подход в виде построение схем на любителя...

Из веб-архива... самое раннее что удалось найти: https://web.archive.org/web/20070223220728/.../c-soft.net.ru/ smile.gif
HikeR
ну вот не надо про "глючный хайасм" ;) на нем когда-то сооружал монструозный гуй для разбора спавна, с hex-вьювером и простеньким парсером. схемка, увы, канула в лету, но на полноэкранном fullhd-мониторе занимала страниц пять. если оно и глючило, то только после запуска.

  
Rezzoxe
Глючил и безбожно... причём когда латали очередную версию, количество ошибок равнялось количеству новых фич... хотя это было давно, как сейчас не знаю. Возможно это всё сведено к минимуму. Впрочем про любителя и схемы я упомянул выше. Как-то так... smile.gif

Чем же вам так NB не понравился... согласен слабо, ограничено... но со своими задачами вполне справляется... smile.gif
Чем то, что в шапке написанное на NB будет хуже того же c++, делфи и прочего... только по существу, а не типа размер исполняемого файла и прочего...
Я считаю так, если программа выполняет задачу на 100%, то абсолютно нет никакой разницы в чём она написана!
Neo][
Цитата(Rezzoxe @ 09.06.2015, 01:54) *
Чем же вам так NB не понравился... согласен слабо, ограничено... но со своими задачами вполне справляется...

Rezzoxe, так мы же и не говорим, что NB плох, не щупали - не знаем. Ты спросил, что может быть проще, я предположил, что отсутствие кода, вообще, попроще будет. Первые версии hiasm-a да, были убоги smile.gif А вообще полностью согласен - должно работать и отвечать предъявляемым требованиям, а каким путём и на каком языке дело десятое.

ЗЫ
заоффтопили жёстко smile.gif
HikeR
Цитата(Rezzoxe @ 08.06.2015, 23:54) *
только по существу, а не типа размер исполняемого файла и прочего...

по существу: что не может converter из того, что может эта программа из шапки? для чего в ней возможность работы с принтерами? почему она что-то отправляет в инет? что она забыла в реестре?

последние два пункта вкупе с требованием администратора — Shift+Del. "те же c++, делфи и прочее" предоставляют полный контроль над кодом, в отличии от.
Rezzoxe
Цитата(Neo][ @ 09.06.2015, 08:00) *

заоффтопили жёстко

Я думаю администрация нас простит.. smile.gif . за одно раз и навсегда расставим все точки касаемо моей среды разработки.
Пусть лучше с оффтопом будет, да и потом тема временная. Я не против что её удалят через время. Все равно это всё будет входить в обновлённый гуи для конвертера...

Цитата(HikeR @ 09.06.2015, 09:13) *
что не может converter из того, что может эта программа из шапки?


Согласись глупо сравнивать консольку и гуи? smile.gif гуи как раз и предназначена для облегчения работы с консолькой.
Бывают разные люди... кому-то удобнее с консолькой работать, а кто-то элементарно не может перебрать ключи чтобы
узнать с каким ключом работает этот архив. Бывают третьи тип: просто лень прописывать что-то в консоли или батнике...
Когда я сделал в 2009 году S.T.A.L.K.E.R. Universal Extractor (кстати на MMB) многие были только благодарны. Что в этом плохого?
Тогда я сам не понимал как работают другие функции типа ogm и т.д. и т.п. Для меня до сих пор полный лес -level ибо я не разу
не модмейкер и мне оно всё не надо. Но когда я вижу такие темы:
http://xray.codeplex.com/discussions/232295 http://xray.codeplex.com/discussions/232637
которые мусолят по несколько раз, но никакого результата нет, то тут во мне просто просыпается что-то типо мецената. Как-то так...

Цитата(HikeR @ 09.06.2015, 09:13) *
для чего в ней возможность работы с принтерами?

Цитата(HikeR @ 09.06.2015, 09:13) *
почему она что-то отправляет в инет?

Цитата(HikeR @ 09.06.2015, 09:13) *
что она забыла в реестре?

Не совсем понял. Подробнее... ничего этого она делает. Возможно ты смотришь через какой-то отладчик, и в ней просто это заложено:


Насчёт печати зачем-то галка стоит по-умолчанию... видимо с этой галкой и скомпилировалась...
А вот насчёт интернета очень интересно... давай подробнее...
Если же меня обвиняете в злом умысле... тогда пусть ребята с форума напишут, которые пользовались моими программами. smile.gif


Цитата(HikeR @ 09.06.2015, 09:13) *
предоставляют полный контроль над кодом, в отличии от.


Возможно это из-за этой галки:

Это я делаю умышленно, чтобы школоло не использовала проект в злых намерениях...
HikeR
Цитата(Rezzoxe @ 09.06.2015, 13:30) *
Но когда я вижу такие темы:
http://xray.codeplex.com/discussions/232295 http://xray.codeplex.com/discussions/232637
которые мусолят по несколько раз, но никакого результата нет

это означает только одно — гуй для самодостаточной консольной утилиты нафиг не нужен. такой же результат (на протяжении многих лет стенаний разных кривых и убогих человеков) достигнут и в плане создания гуя для ImageMagick, хотя его список опций немного больше, чем у конвертера.

Цитата(Rezzoxe @ 09.06.2015, 13:30) *
пусть ребята с форума напишут, которые пользовались моими программами.

это те ребята, которые не осилили ручную распаковку? спасибо, не нужно.

в любом случае, просьба автора программы рассказать о ее функционале несколько странно выглядит.
Rezzoxe
HikeR, я жду пруфа об отправке программой информации в интернет.
Rezzoxe
Цитата(HikeR @ 09.06.2015, 09:13) *
для чего в ней возможность работы с принтерами? почему она что-то отправляет в инет? что она забыла в реестре?


В общем проконсультировался с нашими спецами NB:
Админ: Владеет Delphi (пишет плагины для NB)
Модератор: Владеет С++, С#, VB, VBS. (пишет плагины для NB на платформе .net)

Их жёсткое возмущение по поводу вышеуказанных предъяв размещать не буду, но вот кое-что процитирую:

Цитата
Админ:
- Любая программа при запуске (и в процессе работы) юзает целую кучу виндовских библиотек и их методов.
- Интерпретатор вшит в необушный плейер, при запуске этот плейер открывает файл проекта и "формирует" окно проекта и проч., а дальше проект отправляет ему команды, а интерпретатор их выполняет.
- Разумеется при запуске необушный проект получает требуемую ему для работы информацию, в т. ч. и из реестра, и частично помещает все это в т.н. "переменные окружения", коими и являются глобальные необушные переменные.
И это - обычная практика, как я уже и сказал.


Цитата
Модератор:
На ответ что она забыла в реестре и про send и библу...
- Пути к системным папкам и библам, инициализация графических компонентов, языковых ресурсов...
Если он смотрит на это в Process Monitor то пусть откроет блокнот, узнает много нового, пусть пишет письма мелкософту что блокнот червь, он лезет в реестр...
- у файла в списке импортируемых функций даже нет такой либы. Правда есть wsock32.dll и метод send (для InternetPostGet, ну это тоже инициализируется движком интерпретатора всего то, как и в куче др прог, ниочем не говорит). Правда, она может быть у плагина вшитого если он есть. Проверить плагин легко, нужен ТС с плагином FileInfo жмешь F3 на файле, вкладка Imports/Exports, смотришь имена модулей и импортированных оттуда функций.
Чтобы проверить посылаемость чегото в инет, Process Explorer думаешь нужен?
- Это значит, что прога знает, по какому адресу в памяти лежит метод send И ВСЕ. Каждая команда интерпретатора в нативном коде задействует много методов разных библиотек, соотв-но на всякий случай вдруг ее вызовут должна знать адреса в памяти всех нужных функций, логично? Интерпретатор при старте должен узнать адреса всех нужных ему системных библиотек и их методов, для всех своих функций, чтобы их собственно выполнить. С таким же успехом он знает где лежат функции рисования на экране, спроси чела он не боится если ему "..." на рабстоле вдруг нарисуется, когда он с браузером скажем работает. Браузер тоже знает адреса функций рисования. Так чем ему не нравится наличие send, есть такая функция в арсенале интерпретатора, дальше что? Знать не значит пользоваться, когда отловит отправку чего либо, тогда пусть и предъявляет.


Если это покажется жёстким, то это самое мягкое. Собственно как я и предполагал... всё что ты указал просто заложено. У NB есть команды InternetPost, InternetGet... этот send там для них и сидит. Если с вышеуказанными цитатами ты не согласен. Сообщать мне об этом не обязательно. Могу лишь пригласить тебя к нам на форум, там и подискутируете )). В свою же очередь сообщаю о том, что с 2009 года (первый выход S.T.A.L.K.E.R. Universal Exractor) никаких претензий в мой адрес, или в адрес программы не было... я сам её выкладывал тут и на stalkergsc. Потом ваши же люди выложили её и на сталкерине и на вики... те же abramcummer, RedPython, K.D. про неё знали... никаких претензий не было... НИКОГДА. Честно говоря немного обидно получать такие предъявы без оснований...

P.S. В течении недели тема будет удалена... в ближайшее время планируется крупное обновление по S.T.A.L.K.E.R. Universal Extractor...
P.P.S. Отпостил ответ тут, ибо предъявы были кинуты так же в паблик...
HikeR
много воды, а по делу — ничего. блокнот не лезет в реестр никуда кроме своего собственного раздела. в инет он тоже не лезет, хоть обсмотрись "профессиональной" кнопкой F3 в тотале.

если вы с админами и модераторами не в состоянии понять, что именно делает программа, какие ресурсы она требует и для чего именно — то у меня все просто: гуй для консольной программы должен уметь только две вещи, запуск WinExec(lpCmdLine, uCmdShow) (или system(*cmdline) на худой конец) и обработка кодов возврата. любая попытка сделать что-то выходящее за эти рамки карается корзиной.

не хотел упоминать, но все же:
Цитата(Rezzoxe @ 08.06.2015, 20:53) *
Мы начинали с одного сайта в 2006 году... было три программы: HiAsm, Multimedia Builder (MMB) и NeoBook (NB)

за почти десять лет не осилить что-то из WinForms/WPF/Qt/wxWidgets или, упаси господи, PyGTK или Swing для программ с графическим интерфейсом — это мощно.
Rezzoxe
smile.gif

Ты не понимаешь?
В самом проекте нет команд связанных с реестром и интернетом. То что ты увидел в отладчике это заложится и в абсолютно пустой проект. Они спят и ждут своих команд. Вот если сработает команда InternetPost вот тогда твой send и заработает. В итоге они верно сказали... как будут пруфы то, что прога шпионит, тогда обращайся и желательно сразу к нам на форум. Мы сами гоним тех, кто пытается использовать NB в противоправных целях.
Может тебе исходник дать чтобы ты сам скомпилировал? smile.gif

Цитата(HikeR @ 13.06.2015, 03:12) *
гуй для консольной программы должен уметь

Всё верно, только в NB это называется Run... я изначально converter.exe вкладываю в проект. И когда пользователем соблюдены условия, то конвертер распаковывается из гуи, затем через команду Run он и вызывается:





Цитата(HikeR @ 13.06.2015, 03:12) *
за почти десять лет не осилить что-то из WinForms/WPF/Qt/wxWidgets или, упаси господи, PyGTK или Swing для программ с графическим интерфейсом — это мощно.

Зачем, если NB выполняет в принципе мои потребности в области создания незатейливых win-приложений...
Да, для общего развития можно было бы, но не прям кошмар...
User_X.A.R26
Rezzoxe, когда будет релиз новой версии S.T.A.L.K.E.R. Universal Extractor? rolleyes.gif
Rezzoxe
Цитата(User_X.A.R26 @ 16.06.2015, 12:07) *
Rezzoxe, когда будет релиз новой версии S.T.A.L.K.E.R. Universal Extractor?


Планирую на этой или на следующей неделе. Но пока не определился как лучше реализовать распаковку.
Пока такой вариант. Будет два способа:

Полная распаковка: Пользователь указывает корневую директорию (ТЧ, ЧН, ЗП) Далее выбирает тип распаковки - полная или отдельно по папкам (textures, sounds, configs и т.д. и т.п.).
В программе всё заложено и от пользователя больше ничего не требуется.

Одиночная распаковка: Пользователь указывает любую папку, далее в ней и в подпапках производится поиск всех возможных архивов по всем известным расширениям. Всё что найдёт программа добавляется в список, затем пользователь должен выбрать ключ для распаковки (мини-справка по ключам будет) и опционально можно будет выбрать тип распаковки по маске (ключ -flt). Такой способ больше подходит для билдов\бенчмарков\модов. Либо просто распаковать какой-то один архив. Так же будет возможность выбрать на распаковку только определенные архивы из списка.

По сути возможности одиночной распаковки могут польностью заменить полную распаковку. Полная распаковка лишь для удобства и только по ТЧ, ЧН, ЗП. Вот я и думаю оставить только вариант с одиночной распаковкой, или пусть будут оба варианта.

Из возможностей... удаление пустых папок, если распаковка производилась по-папочно\по маске; игнорирование mp-карт при распаковке. Всё возможности будут опциональными.

Потом стоит ещё другой вопрос... Довести до ума только распаковку и упаковку (программа будет называться так же S.T.A.L.K.E.R. Universal Extractor, но уже примет версию 2.0),
или включить все возможности конвертера (S.T.A.L.K.E.R. Gamedata Master), но я до конца не разобрался по командам которые затрагивают настройки для SDK (level, dds, ogg).
Если кто-будет терпиливо и на пальцах объяснять, то с удовольствием включу их тоже.
По командам ogm, ogf, dm проблем вообще нету... будет возможность пакетного конвертирования.
Если всё страстётся, то можно даже выбрать с какой версией конвертера работать (32, 64, Cuda)...

В общем как-то так...
Neo][
А ежели сделать для игровых архивов полностью прозрачную работу, как предполагают большинство архиваторов(winrar/7zip/etc)? Т.е. в GUI я вижу список папок/файлов, могу ходить по ним как хочу, что хочу извлекаю, что хочу добавляю в архив. Ну и конечно можно допилить интеграцию в винду, т.е. пункты: "извлечь...", "извлечь в текущую папку", "извлеч в XXX" и т.п.
Lego
Цитата(Neo][ @ 17.06.2015, 07:08) *

А ежели сделать для игровых архивов полностью прозрачную работу, как предполагают большинство архиваторов(winrar/7zip/etc)? Т.е. в GUI я вижу список папок/файлов, могу ходить по ним как хочу, что хочу извлекаю, что хочу добавляю в архив. Ну и конечно можно допилить интеграцию в винду, т.е. пункты: "извлечь...", "извлечь в текущую папку", "извлеч в XXX" и т.п.

У меня есть в чем-то схожая программа, позволяет работать с архивами игры через xrCore.dll (с файловой системой в целом - через ltx, а не сами архивы).
Может работать с тем xrCore, который лежит в папке с игрой, поэтому никакие флаги вообще указывать не надо.
Однако, это чисто вьювер - хотя, некоторые файлы и можно редактировать, упаковки тут нет и не предполагатся - для этого есть xrCompress.
Вот, например, билд 3436, который недавно был слит:

Багов, однако, слишком много, чтобы скидывать на публику. Но если кого заинтересовало - могу вбросить текущую версию "as is".
macron
В теории, было бы неплохо отловить автора плагина к коммандеру и доработать плагин для открытия билдовских и т.п. архивов. На практике - фиг поймаешь. biggrin.gif

http://wincmd.ru/plugring/stalker_db.html
Neo][
Lego, отличная идея юзать xrCore для получения универсального вьювера wink.gif

macron, посмотрел sdk - не получится добавить поддержку всех форматов, т.к. на сколько я помню есть пару форматов, которые нельзя однозначно идентифицировать автоматически, а выбор пользователю никак не предоставить...

update
хотя ничто не мешает иметь свой диалог выбора внутри библиотеки smile.gif

Поэтому даже автора ловить не надо, легче с нуля написать, было бы желание )
Rezzoxe
Цитата(Neo][ @ 17.06.2015, 07:08) *

А ежели сделать для игровых архивов полностью прозрачную работу, как предполагают большинство архиваторов(winrar/7zip/etc)? Т.е. в GUI я вижу список папок/файлов, могу ходить по ним как хочу, что хочу извлекаю, что хочу добавляю в архив.

В виду своих знаний в области программирования (точнее их отсутствии) я работаю с готовым converter.exe smile.gif Я пробовал динамически выхватывать все файлы из архива с сохранением структуры без каких-либо заготовок. Вылавливал и парсил через -ro. Но -ro с некоторыми архивами не работает... к примеру configs.db (чн, зп).
Цитата(Neo][ @ 17.06.2015, 07:08) *

Ну и конечно можно допилить интеграцию в винду, т.е. пункты: "извлечь...", "извлечь в текущую папку", "извлеч в XXX" и т.п.

А вот это можно попробовать... хорошая идея, вроде кто-то из форумчан показывал уже такую фишку.
Цитата(Lego @ 17.06.2015, 12:45) *
У меня есть в чем-то схожая программа, позволяет работать с архивами игры через xrCore.dll

Весьма недурно! Отличная идея работать через xrcore.dll... good.gif
Lego
Цитата(Rezzoxe @ 17.06.2015, 14:07) *
Весьма недурно! Отличная идея работать через xrcore.dll... good.gif

Цитата(Neo][ @ 17.06.2015, 13:31) *
Lego, отличная идея юзать xrCore для получения универсального вьювера ;)

Ну, за исключением того, что в самых ранних билдах либо нет xrCore, либо в xrCore нет CLocatorAPI.
Алсо, для большинства билдов можно воспроизводить звуки при помощи xrSound, но чот это уже совсем вне этого топика.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.