Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Показано с 1 по 4 из 4
  1. #1
    Аватар для Seregamil
    Проверенный

    Статус
    Оффлайн
    Регистрация
    21.11.2013
    Сообщений
    551
    Репутация:
    274 ±

    Работа с модпаками для SA:MP

    Под эту разработку подходят несколько разделов, но решил выложить в более-менее активный.

    И так, представляю класс для работы с IMG архивами, при помощи которого вы сможете на стороне клиента делать свои модпаки и устанавливать их пользователям довольно таки быстро.

    Класс писался для библиотеки XArchiveDragon( Не является рекламой. http://www.x-squares.com/File/i/35/X...ve-Dragon.aspx )
    Первоначально собирался писать работу напрямую с данной библиотекой, но криворукие пиндосыавтор данной библиотеки сделал уйму ненужных вещей и усложнил всё в край, потому некоторые функции были переделаны под новый лад.

    Функции для работы (Для тех, кто в танке - перед работой необходимо инициализировать экземпляр класса):

    1. Open( "Путь к img архиву" ) -- Открывает IMG архив для работы
       Пример использования
      PHP код:
      archive.Open(@"S:\games\Grand Theft Auto\models\gta3.img"); 
    2. getItems() -- Возвращает список элементов архива в виде List<IMG_Item>
       Пример использования
      PHP код:
      for (int a 0archive.getItems().Counta++)
                  {
                      
      Console.WriteLine("Name: " archive.getItems()[a].Name "\tSize: " archive.getItems()[a].SizeInBytes);
                  } 
      // get item name and size 
    3. Add( "Путь к загружаемому файлу", "Название, с коим он сохранится в архиве") -- Добавляет файл в IMG архив
       Пример использования
      PHP код:
      archive.Add(@"S:\gta-o\infernus.dff""infernus.dff");
                  
      archive.Add(@"S:\gta-o\infernus.txd""infernus.txd"); 
    4. Delete("Название файла") -- Удаляет файл из IMG архива
       Пример использования
      PHP код:
      archive.Delete("infernus.txd"); 
    5. Extract("Название файла", "Директория") -- Извлекает файл из IMG архива в указанную директорию
       Пример использования
      PHP код:
      archive.Extract("infernus.dff""S:\\"); 
    6. AddTempFile("Путь к файлу", "Название файла", "Папка для временного хранения файлов(Создается сама)")
    7. 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

    Если есть предложения по доработке/улучшению класса - милости просим. skype: seregamil
    Автор: Seregamil
    Последний раз редактировалось Seregamil; 06.11.2015 в 16:49.

  2. 3 пользователя(ей) сказали cпасибо:
    Blood (06.11.2015) L0ndl3m (23.10.2015) [ForD] (25.10.2015)
  3. #2
    Аватар для Seregamil
    Проверенный

    Статус
    Оффлайн
    Регистрация
    21.11.2013
    Сообщений
    551
    Репутация:
    274 ±
    Добавил 2 функции. Вернее составил их из ныне существующих. В общем:

    1. AddTempFile("Путь к файлу", "Название файла", "Папка для временного хранения файлов(Создается сама)")
    2. RemoveTempFile("Название файла", "Путь к оригиналу")

    Так же подредактирован код и исправлена "ошибка", суть которой заключалась в том, что функция Add всегда возвращала false.

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

    Ссылка на рабочий пример c полным пояснением: https://github.com/Seregamil/IMG-arc...ive/Program.cs

  4. #3
    Аватар для Daniel_Cortez
    "Это не хак, это фича"

    Статус
    Оффлайн
    Регистрация
    06.04.2013
    Адрес
    Novokuznetsk, Russia
    Сообщений
    2,192
    Репутация:
    2589 ±
    ... и всё бы хорошо, если б не зависимость от .NET Framework.
    Индивидуально в ЛС по скриптингу не помогаю. Задавайте все свои вопросы здесь (click).

  5. #4
    Аватар для Seregamil
    Проверенный

    Статус
    Оффлайн
    Регистрация
    21.11.2013
    Сообщений
    551
    Репутация:
    274 ±
    Цитата Сообщение от Daniel_Cortez Посмотреть сообщение
    ... и всё бы хорошо, если б не зависимость от .NET Framework.
    .NET Framework используется везде и повсеместно в WIndows

 

 

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

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