Работа с IMG архивами на стороне клиента -
Seregamil1 - 23.10.2015
И так, представляю класс для работы с IMG архивами, при помощи которого вы сможете на стороне клиента делать свои модпаки и устанавливать их пользователям довольно таки быстро.
Класс писался для библиотеки
XArchiveDragon( Не является рекламой.
http://www.x-squares.com/File/i/35/X...ve-Dragon.aspx )
Первоначально собирался писать работу напрямую с данной библиотекой, но автор данной библиотеки сделал уйму ненужных вещей и усложнил всё в край, потому некоторые функции были переделаны под новый лад.
Функции для работы:
- Open( "Путь к img архиву" ) -- Открывает IMG архив для работы
PHP Code:
archive.Open(@"S:\games\Grand Theft Auto\models\gta3.img");
- getItems() -- Возвращает список элементов архива в виде List<IMG_Item>
PHP Code:
for (int a = 0; a < archive.getItems().Count; a++)
{
Console.WriteLine("Name: " + archive.getItems()[a].Name + "\tSize: " + archive.getItems()[a].SizeInBytes);
} // get item name and size
- Add( "Путь к загружаемому файлу", "Название, с коим он сохранится в архиве") -- Добавляет файл в IMG архив
PHP Code:
archive.Add(@"S:\gta-o\infernus.dff", "infernus.dff");
archive.Add(@"S:\gta-o\infernus.txd", "infernus.txd");
- Delete("Название файла") -- Удаляет файл из IMG архива
PHP Code:
archive.Delete("infernus.txd");
- Extract("Название файла", "Директория") -- Извлекает файл из IMG архива в указанную директорию
PHP Code:
archive.Extract("infernus.dff", "S:\\");
- AddTempFile("Путь к файлу", "Название файла", "Папка для временного хранения файлов(Создается сама)")
- RemoveTempFile("Название файла", "Путь к оригиналу")
Вышеперечисленных функций
хватит для создания хорошего модпака
с кучей возможностей.
Пример использования класса для создания своего модпака с ВРЕМЕННОЙ заменой файлов.
Всё очень просто - запускаете приложение, оно
устанавливает модпак до того момента, пока вы играете в игру. После завершения сеанса игры
все данные будут восстановлены на исходные.
Ссылка на
рабочий пример c полным пояснением:
https://github.com/Seregamil/IMG-arc...ive/Program.cs
Ссылка на githib с проектом( Сам класс и
рабочий пример консольного приложения ):
https://github.com/Seregamil/IMG-archive-editor
Ссылка на класс:
https://github.com/Seregamil/IMG-arc.../master/IMG.cs
Для работы класса необходимо подключать в
References библиотеку
XArchiveDragon:
https://github.com/Seregamil/IMG-arc...n.dll?raw=true
Re: Работа с IMG архивами на стороне клиента -
OstGot - 24.10.2015
Quote:
Originally Posted by Seregamil1
Так же можно создавать модпак, который будет заменять временно файлы при входе именно на ваш сервер.
|
Искренне удивлён, было бы очень полезно в некоторых случаях.
Хорошая работа!
Re: Работа с IMG архивами на стороне клиента -
Seregamil1 - 06.11.2015
Добавил 2 функции. Вернее составил их из ныне существующих. В общем:
- AddTempFile("Путь к файлу", "Название файла", "Папка для временного хранения файлов(Создается сама)")
- RemoveTempFile("Название файла", "Путь к оригиналу")
Так же подредактирован код и исправлена "ошибка", суть которой заключалась в том, что функция
Add всегда возвращала false.
Пример использования этих двух функций:
Всё очень просто - запускаете приложение, оно
устанавливает модпак до того момента, пока вы играете в игру. После завершения сеанса игры
все данные будут восстановлены на исходные.
Ссылка на
рабочий пример c полным пояснением:
https://github.com/Seregamil/IMG-arc...ive/Program.cs
Re: Работа с IMG архивами на стороне клиента -
JesusJagger - 10.11.2015
Я тут по оффтоплю немного. Эээх, реализовал бы кто просмотр(сохранение/загрузку) сторонних изображений(скриншотов) через запущенную игру, было бы Мне счастье. Но это скорее к Калькору и скорее всего невозможно. Унынение.
А что по САБЖу, то это просто какая-то сексуальная революция. Впору уже сейчас искать толкового разработчика текстур или самому становиться таковым, что бы не качать модпаки других авторов. Сопсна не плагиатить.
Один вопрос. Алгоритм действий хочу уточнить: Загружаем данный аддон в папку/хостинг, прописываем скажем в OnGameModeInit необходимые нам функции и a si, вот Тебе счастье?
З.Ы. прогулялся по ссылкам. Нет, ну это же сногсшибательно.
Re: Работа с IMG архивами на стороне клиента -
Romz - 10.11.2015
Quote:
Originally Posted by Seregamil1
После завершения сеанса игры все данные будут восстановлены на исходные.
|
А если вырубить свет или как то не безопасно закрыть игру данные восстановлены не будут?
Re: Работа с IMG архивами на стороне клиента -
JesusJagger - 10.11.2015
Quote:
А если вырубить свет или как то не безопасно закрыть игру данные восстановлены не будут?
|
Мне кажется автор имел ввиду, что текстуры в gta3 будут сброшены на исходные, т.е. на те, что были у Вас до того как Вы вошли на сервер с установленным классом. Выключат свет, выключится и сервер. Включат свет, если не забудете зайти на сервер, все будет ок.
Re: Работа с IMG архивами на стороне клиента -
Seregamil1 - 11.11.2015
Quote:
Originally Posted by Kolstin
А если вырубить свет или как то не безопасно закрыть игру данные восстановлены не будут?
|
Я предоставил лишь пример работы с функциями.
Если небезопасно закрыть игру - данные будут восстановлены.
Если вырубить свет - нет, но это исправимо.
Quote:
Quote:
Originally Posted by JesusJagger
что текстуры в gta3
|
|
Можно работать с
любым img архивом. Данные все-равно будут возвращаться на исходные.
Quote:
Originally Posted by JesusJagger
Один вопрос. Алгоритм действий хочу уточнить: Загружаем данный аддон в папку/хостинг, прописываем скажем в OnGameModeInit необходимые нам функции и a si, вот Тебе счастье?
|
Загружаете дополнение пользователю, предварительно сделав его под свой вкус и цвет, скачиваете ему ваши файлы при запуске приложения, устанавливаете и вот вам счастье.
Re: Работа с IMG архивами на стороне клиента -
Alexan - 15.11.2015
Спасибо тебе! Замечательная работа. Создал лаунчер для нашего сервера с временной заменой скинов, моделей и текстур, пока играешь. Тебя указал в "О программе"
Re: Работа с IMG архивами на стороне клиента -
Romz - 17.11.2015
Quote:
Originally Posted by Alexan
Спасибо тебе! Замечательная работа. Создал лаунчер для нашего сервера с временной заменой скинов, моделей и текстур, пока играешь. Тебя указал в "О программе" 
|
Что за сервер?
PS: Сори за оффтоп.
Re: Работа с IMG архивами на стороне клиента -
MIASO - 25.11.2015
Quote:
Originally Posted by JesusJagger
Я тут по оффтоплю немного. Эээх, реализовал бы кто просмотр(сохранение/загрузку) сторонних изображений(скриншотов) через запущенную игру, было бы Мне счастье. Но это скорее к Калькору и скорее всего невозможно. Унынение.
|
Возможно. Просмотр в какой то отдельной части экрана или на весь?