Перейти к содержанию

Рекомендуемые сообщения

Опубликовано
06.08.2013 22:25:16, Кербер сказал(-а):

SQL изучать придётся. Если я в ней хоть что-то пойму, то использую её, если же нет, то тогда останется XML.

Если собираешься и дальше программировать - по любому пригодится!

  • Ответов 527
  • Создана
  • Последний ответ

Топ авторов темы

Опубликовано (изменено)

Ну вот не зря говорят, что: "утро вечера мудренее"!
Проснулся и сразу новое решение. Кстати, и без SQL будет работать быстро.
Старая концепция подразумевала, при деинсталляции плагинов, перенос файлов из архива в архив, мне кажется, что это будет слишком длительная операция, так что обойдемся без этого.
И так, новая концепция:
Делаем для каждого файла свой архив хранения копий.
При этом, в каталоге архивов сохраняем структуру расположения (Skyrim\Data\...), так как файлы с одинаковыми именами могут быть в разных каталогах.
И ты был прав: не нужны Дата и Время файла. Нужна структура по типу стека. Как это будет выглядеть на практике:
Файл журнала делаем по типу ".ini", то есть с секциями и данными. В секции указываем полный путь к файлу. Секции в файле журнала располагаем по алфавиту для быстрого поиска. В данных записываем ID плагина.
Теперь как будет выглядеть алгоритм в новой концепции:
01) Skyrim - Файл_0
02) Инсталляция Мода_1
     Делаем запись в журнал:
     [Skyrim\Data\Файл_0]
     ID=Мод_1
     Файл_0 переименовываем в Файл_Мод_1 и записываем его в архив Skyrim\Data\Файл_0.zip
     Файл_1 записываем вместо Файла_0 в Skyrim
03) Инсталляция Мода_2
     Делаем запись в журнал:
     [Skyrim\Data\Файл_0]
     ID=Мод_1
     ID=Мод_2
     Файл_1 переименовываем в Файл_Мод_2 и записываем его в архив Skyrim\Data\Файл_0.zip
     Файл_2 записываем вместо Файла_1 в Skyrim
04) Инсталляция Мода_3
     Делаем запись в журнал:
     [Skyrim\Data\Файл_0]
     ID=Мод_1
     ID=Мод_2
     ID=Мод_3
     Файл_2 переименовываем в Файл_Мод_3 и записываем его в архив Skyrim\Data\Файл_0.zip
     Файл_3 записываем вместо Файла_2 в Skyrim

После этих процедур мы имеем:
     В Журнале запись по типу стека, то есть ID расположены в порядке добавления:
          [Skyrim\Data\Файл_0]
          ID=Мод_1
          ID=Мод_2
          ID=Мод_3
     В архиве Skyrim\Data\Файл_0.zip файлы:
          Файл_Мод_1     ; бывший Файл_0
          Файл_Мод_2     ; бывший Файл_1
          Файл_Мод_3     ; бывший Файл_2

     В Skyrim:

          Файл_3

Теперь рассмотрим процедуры удаления:
01) Если удаляется последний мод в списке:
     Файл_Мод_3 записываем в Skyrim и удаляем его из архива.
     из журнала удаляем запись ID=Мод_3
     После этого имеем:
          В Журнале:
               [Skyrim\Data\Файл_0]
               ID=Мод_1
               ID=Мод_2
          В архиве Skyrim\Data\Файл_0.zip файлы:
               Файл_Мод_1     ; бывший Файл_0
               Файл_Мод_2     ; бывший Файл_1

          В Skyrim:

               Файл_2

02) Если удаляется не последний мод в списке, допустим Мод_1:
     В Skyrim ничего не меняем.
     В архиве удаляем Файл_Мод_2.
     Файл_Мод_1 переименовываем Файл_Мод_2.
     После этого имеем:
          В Журнале:
               [Skyrim\Data\Файл_0]
               ID=Мод_2
               ID=Мод_3
          В архиве Skyrim\Data\Файл_0.zip файлы:
               Файл_Мод_2     ; бывший Файл_0
               Файл_Мод_3     ; бывший Файл_2

          В Skyrim:

               Файл_3

Как видишь, все достаточно просто.

Изменено пользователем Lord-Vadim
Опубликовано

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

pre_1454504183__logo.png.webp.png Kortex Mod Manager: Discord | GitHub | Web-site
Опубликовано (изменено)
07.08.2013 09:45:38, Кербер сказал(-а):

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

Разберешься...Если не разберешься - спрашивай, что не понятно.

А журнал замен пользователю вообще нет необходимости показывать, это внутренние дела программы как и что она заменяет/восстанавливает. Поэтому не будет торможения при прорисовке, так как рисовать ничего не надо.

Скорость нужна при работе алгоритма восстановления так как в журнале ищется информация о файлах какие  заменять/восстанавливать, какие не трогать, какие архивировать.

 

И вообще, я думал тебя порадует информация, что SQL не нужен... :)

Изменено пользователем Lord-Vadim
Опубликовано
07.08.2013 12:51:02, Lord-Vadim сказал(-а):

И вообще, я думал тебя порадует информация, что SQL не нужен... :)

Естественно порадует, а то работа бы встала как минимум на два месяца. А пока есть прогресс в другом.

5020e3da09359772e8eb0b2f56db5116.jpg

pre_1454504183__logo.png.webp.png Kortex Mod Manager: Discord | GitHub | Web-site
Опубликовано
07.08.2013 13:04:06, Кербер сказал(-а):

Естественно порадует, а то работа бы встала как минимум на два месяца. А пока есть прогресс в другом.

5020e3da09359772e8eb0b2f56db5116.jpg

 

Отлично!!!

Категории ты сам все добавишь в программу или дашь возможность пользователям самим их настраивать?

Опубликовано
07.08.2013 13:18:36, Кербер сказал(-а):

Будут предустановленные, но можно и самому создавать. В инсталлятор добавится настройка предпочитаемой категории, при создании.

Хорошо.

Когда начнешь разбираться с восстановлением - напиши. Там есть нюанс - если мод заменяет файлы другого мода не используемые в оригинальном Skyrim. Я тебе потом подробно распишу.

Опубликовано

Я тут, наконец-то, разобрался с запаковкой ресурсов в BSA и подключением их в лаунчере.

В связи с этим, по крайней мере для меня, пропадает актуальность нашей с тобой предыдущей беседы, так как моды теперь будут представлены только файлами ESP и BSA, а они перезаписываются крайне редко.

Вот можешь посмотреть: http://rghost.ru/47963192

В архиве инструкция и всё необходимое.

Можешь использовать инструкцию в своей программе для информации тем, кто делает инсталляторы.

Опубликовано
07.08.2013 19:11:41, Кербер сказал(-а):

Я уже видел это, слово в слово, но не помню где. Не знаю пока что делать дальше, посмотрю в процессе.

 

Жаль, что я этого раньше не видел и пришлось самому во всём разбираться.

Опубликовано

Ты вносить изменения в упаковку и создание инсталляторов планируешь?

А то я начал наводить порядок со своей коллекцией модов.

Сначала планировал сделать инсталляторы для Wrye Bash, но твоя программа удобнее.

И сейчас я не знаю начинать делать или ждать новой версии твоей программы?

Опубликовано

На этот раз будет обратная совместимость. При создании можно будет указать категорию, но в мастере установки её можно будет изменить. Только тебе придётся вручную менять журнал, или просто переустанавливать все инсталляторы после обновления, удалив журнал. У меня с версии 2.2 осталось около двухсот инсталляторов для установочного модуля версии 3.0, для 4.0 они очень плохо подходят, да и то только простые, мне придётся их все пересобирать.

pre_1454504183__logo.png.webp.png Kortex Mod Manager: Discord | GitHub | Web-site
Опубликовано
08.08.2013 17:07:06, Кербер сказал(-а):

У меня с версии 2.2 осталось около двухсот инсталляторов для установочного модуля версии 3.0, для 4.0 они очень плохо подходят, да и то только простые, мне придётся их все пересобирать.

 

А сделать программную пересборку никак?

Опубликовано

Да, ещё хотел попросить: Сделай в настройках опцию, чтобы можно было программу не закрывать при запуске Skyrim.

Когда настраиваешь ENB приходится Skyrim по нескольку раз запускать/выключать и каждый раз запускать программу заново и искать где менял настройки - неудобно. 

Опубликовано (изменено)

Есть версия ENB, где их можно менять прямо в игре. Но настройку могу сделать.

 

Есть идеи какие ещё требования можно добавить в инсталлятор?

Формат: Название, авторское сокращение (если есть), ссылка.

Изменено пользователем Кербер
pre_1454504183__logo.png.webp.png Kortex Mod Manager: Discord | GitHub | Web-site
Опубликовано

Кербер, прошу прощения, если этот вопрос уже задавался, возможно ли добавление распознавания формата 7z, а не только zip?

08.08.2013 19:27:37, Lord-Vadim сказал(-а):

Да, ещё хотел попросить: Сделай в настройках опцию, чтобы можно было программу не закрывать при запуске Skyrim.

Поддерживаю эту идею.

Спасибо.

Опубликовано

Новых идей, пока не возникло.

Единственное: Наборы требований, которые добавляет пользователь при создании установщика - лучше сохранять, а то при каждом новом проекте приходится их заново набирать.

Не критично, конечно, но было бы удобней, что бы они сохранялись.

Опубликовано (изменено)

Хм, насчёт наборов требований не знаю, но у меня есть вопрос. Я сделал некоторую часть системы копирования, что предложишь дальше? При установке происходит копирование и архивирование уже существующих файлов. Они сохраняются в отдельную папку с такими же путями как оригинал, но а архиве (поймёшь, когда посмотришь файл). В журнал записывается их прежний путь и путь к архиву. Я в некотором замешательстве что делать дальше. Запись файлов и архивирование не происходит при обновлении одного и того же инсталлятора, то есть если он уже был установлен с помощью SKSM. Может сделать проверку версий инсталляторов, чтобы не установить случайно старую версию? Структура журнала замен и папка архивов прилагается.

 

http://rghost.ru/48070206

Изменено пользователем Кербер
pre_1454504183__logo.png.webp.png Kortex Mod Manager: Discord | GitHub | Web-site

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйте новый аккаунт в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
×
×
  • Создать...