Seregamil
23.10.2015, 09:44
Под эту разработку подходят несколько разделов, но решил выложить в более-менее активный.
И так, представляю класс для работы с IMG архивами, при помощи которого вы сможете на стороне клиента делать свои модпаки и устанавливать их пользователям довольно таки быстро.
Класс писался для библиотеки XArchiveDragon( Не является рекламой. http://www.x-squares.com/File/i/35/X-Archive-Dragon.aspx )
Первоначально собирался писать работу напрямую с данной библиотекой, но криворукие пиндосыавтор данной библиотеки сделал уйму ненужных вещей и усложнил всё в край, потому некоторые функции были переделаны под новый лад.
Функции для работы (Для тех, кто в танке - перед работой необходимо инициализировать экземпляр класса):
Open( "Путь к img архиву" ) -- Открывает IMG архив для работы
archive.Open(@"S:\games\Grand Theft Auto\models\gta3.img");
getItems() -- Возвращает список элементов архива в виде List<IMG_Item>
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 архив
archive.Add(@"S:\gta-o\infernus.dff", "infernus.dff");
archive.Add(@"S:\gta-o\infernus.txd", "infernus.txd");
Delete("Название файла") -- Удаляет файл из IMG архива
archive.Delete("infernus.txd");
Extract("Название файла", "Директория") -- Извлекает файл из IMG архива в указанную директорию
archive.Extract("infernus.dff", "S:\\");
AddTempFile("Путь к файлу", "Название файла", "Папка для временного хранения файлов(Создается сама)")
RemoveTempFile("Название файла", "Путь к оригиналу")
Вышеперечисленных функций хватит для создания годного модпака с кучей возможностей.
Всё очень просто - запускаете приложение, оно устанавливает модпак до того момента, пока вы играете в игру. После завершения сеанса игры все данные будут восстановлены на исходные.
Ссылка на рабочий пример c полным пояснением: https://github.com/Seregamil/IMG-archive-editor/blob/master/Example/imageArchive/Program.cs
Можно сделать прямую отправку файлов с сервера клиенту.
Ссылка на мой githib с проектом( Сам класс и рабочий пример консольного приложения ): https://github.com/Seregamil/IMG-archive-editor
Ссылка на сам класс: https://github.com/Seregamil/IMG-archive-editor/blob/master/IMG.cs
Для работы класса необходимо подключать в References библиотеку XArchiveDragon: https://github.com/Seregamil/IMG-archive-editor/blob/master/XArchiveDragon.dll?raw=true
Если есть предложения по доработке/улучшению класса - милости просим. skype: seregamil
Автор: Seregamil
И так, представляю класс для работы с IMG архивами, при помощи которого вы сможете на стороне клиента делать свои модпаки и устанавливать их пользователям довольно таки быстро.
Класс писался для библиотеки XArchiveDragon( Не является рекламой. http://www.x-squares.com/File/i/35/X-Archive-Dragon.aspx )
Первоначально собирался писать работу напрямую с данной библиотекой, но криворукие пиндосыавтор данной библиотеки сделал уйму ненужных вещей и усложнил всё в край, потому некоторые функции были переделаны под новый лад.
Функции для работы (Для тех, кто в танке - перед работой необходимо инициализировать экземпляр класса):
Open( "Путь к img архиву" ) -- Открывает IMG архив для работы
archive.Open(@"S:\games\Grand Theft Auto\models\gta3.img");
getItems() -- Возвращает список элементов архива в виде List<IMG_Item>
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 архив
archive.Add(@"S:\gta-o\infernus.dff", "infernus.dff");
archive.Add(@"S:\gta-o\infernus.txd", "infernus.txd");
Delete("Название файла") -- Удаляет файл из IMG архива
archive.Delete("infernus.txd");
Extract("Название файла", "Директория") -- Извлекает файл из IMG архива в указанную директорию
archive.Extract("infernus.dff", "S:\\");
AddTempFile("Путь к файлу", "Название файла", "Папка для временного хранения файлов(Создается сама)")
RemoveTempFile("Название файла", "Путь к оригиналу")
Вышеперечисленных функций хватит для создания годного модпака с кучей возможностей.
Всё очень просто - запускаете приложение, оно устанавливает модпак до того момента, пока вы играете в игру. После завершения сеанса игры все данные будут восстановлены на исходные.
Ссылка на рабочий пример c полным пояснением: https://github.com/Seregamil/IMG-archive-editor/blob/master/Example/imageArchive/Program.cs
Можно сделать прямую отправку файлов с сервера клиенту.
Ссылка на мой githib с проектом( Сам класс и рабочий пример консольного приложения ): https://github.com/Seregamil/IMG-archive-editor
Ссылка на сам класс: https://github.com/Seregamil/IMG-archive-editor/blob/master/IMG.cs
Для работы класса необходимо подключать в References библиотеку XArchiveDragon: https://github.com/Seregamil/IMG-archive-editor/blob/master/XArchiveDragon.dll?raw=true
Если есть предложения по доработке/улучшению класса - милости просим. skype: seregamil
Автор: Seregamil