Создаём 64-битный портативный установщик с выбором модов и встроенной Java на основе TL


Данная статья - идейное продолжение моей прошлой новости
Создаем установщик для своей сборки + портативный клиент на основе tLauncher



За основу клиента ( не установщика ) взят клиент с моей сборки
The Journey



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



Плюсы:


  • Выбор любой папки для установки
  • Выбор устанавливаемых модов
  • Принудительный запуск предустановленной 64-битной Java 8 u181 - у скачавших будет меньше проблем с запуском игры
Минусы:
  • Привязка к Windows - невозможность запуска на других ОС
  • Возможность запуска только на 64-битных системах


Подготовка рабочего места

Качаем данный архив с клиентом, примером скрипта, Inno Setup и русификатором к нему.


Распаковываем в любое место и запускаем.

innosetup-qsp-5.6.1-unicode.exe

Устанавливаем в любое место, далее -> далее -> далее и т.д., ничего не меняя.
В конце нам предложат запустить программу - любезно отказываемся.
В итоге мы установили 2 программы - Inno Setup и Inno Script Studio

Копируем файл Russian.lng, который был в архиве в

C:\Program Files (x86)\Inno Script Studio\Languages

Так мы установили русификатор, к которому мы еще вернёмся



Подготовка клиента игры

Подготавливаем наш клиент для упаковки в установщик. В комплекте идут пара модов на 1.12.2 для примера и 2 предустановленные версии с Forge

Minecraft 1.7.10 Minecraft 1.12.2
Forge 10.13.4.1614 Forge 14.23.4.2759

Удалите лишний по усмотрению.

В клиенте для примера находятся 11 модов для различных примеров, итоговый вид папки \Minecraft :

Создаём 64-битный портативный установщик с выбором модов и встроенной Java на основе TL

ЧЕМ МЕНЬШЕ ФАЙЛОВ - ТЕМ ВАМ БУДЕТ ЛЕГЧЕ
Поэтому познавайте дзен очищения сборок от лишних файлов

Настройки лаунчера ( configuration.cfg ) и профили хранятся в папке

\\Minecraft\libraries\bin

Предустановленная Java хранится в

\\Minecraft\libraries\bin\java

По умолчанию в лаунчере выставлено 2 Гб выделенной памяти без дополнительных аргументов, всё в ваших руках.



Создание установщика

Для начала русифицируем нашу программу. Берём файл Russian.lng и вставляем его в установленную папку ISS.

C:\Program Files (x86)\Inno Script Studio\Languages

Далее открываем файл примера скрипта из архива setup.iss.
Должна открыться программа Inno Script Studio. В меню View меняем язык на Русский

Создаём 64-битный портативный установщик с выбором модов и встроенной Java на основе TL


Теперь быстро пробежим по секциям:

Inno Setup Script

весь код установщика в чистом виде

Ставим курсор в конец 6 строки AppId= и нажимаем кнопки Shift+Ctrl+G
После чего в положение курсора должен вставиться уникальный GUID, генерируйте его так каждый раз при создании нового проекта установщика.

Пример: AppId={{22AF3634-7CEC-413C-9EC4-233DB9777B09}

Рассмотрим основные строки:

#define MyAppName "Minecraft Super Client"
Название установщика
#define MyAppVersion "1.5"
Версия установщика
DefaultDirName=C:\Games\Minecraft Client\{#MyAppName}
Путь по умолчанию, куда будет установлен клиент
SetupIconFile=C:\Games\SIP\Без-имени-1.ico
Путь к иконке установщика

Компоненты

категории и элементы для выборки устанавливаемых модов

Создаём 64-битный портативный установщик с выбором модов и встроенной Java на основе TL

Тут мы создаём всё, что хотим сделать опциональным.
Компоненты разделяются на категории/подкатегории обратной косой чертой ( \ ).
Имя - название компонента.
Описание - то, что будет показано в установщике.
Типы - к какому типу установки принадлежит категория. По умолчанию стоит тип "Full", т.е. полная установка.
Если выставить компоненту тип "Full", то он будет включен по умолчанию. Если ничего не выставлять - выключен по умолчанию.
Флаги - параметр компонента. По умолчанию никаких флагов не установлено.
"fixed" - запрет на изменение вкл./выкл. "exclusive" - сделать компонент уникальным в масштабе данной категории, т.е. будет возможен выбор только одного элемента
В итоге наш пример будет выглядеть так:

Создаём 64-битный портативный установщик с выбором модов и встроенной Java на основе TL


Файлы

все файлы, которые будут упакованы в установщик

Создаём 64-битный портативный установщик с выбором модов и встроенной Java на основе TL

Пихаем сюда весь наш клиент. Тут начинается самая тяжёлая и долгая часть.

Для начала нажмите ПКМ в любом месте правого окна ( где файлы ), в всплывшем окне нажмите "Настройка представления" и поставьте галочку у "Компоненты"
Рассмотрим основные свойства:

Исходная папка
Откуда будет взят данный файл
Папка назначения
Куда будет установлен файл. {app} - путь по умолчанию, который мы указали ранее
Компоненты
Выбранный компонент файлу. Если не выбрать - то файл не будет установлен!

В свойства файла можно двойным нажатием ЛКМ или через соответствующий пункт через ПКМ. Возможно изменение свойств нескольким выбранным файлам.

Для удобства я разделил "системные" файлы, которые будут установлены в любом случае, выдав им компонент "client"

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

То есть для файла BetterFPS выбираем компонент "mods\cat1\betterfps", который мы создали специально для него.

И подобным образом компоненты выставляются всем файлам, включая файлы конфигов ( из папки config ).

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

Если вы создали компонент, но не назначили ему файлов, то в установщике не будет указан его размер.

После того, как отмучаетесь с этим - можно компилировать скрипт ( красная рамка ).

Создаём 64-битный портативный установщик с выбором модов и встроенной Java на основе TL

В случае успеха там же есть кнопка для запуска установщика ( фиолетовая рамка ).

Обязательно проверяйте установщик после успешной компиляции! Установите его несколько раз, посмотрите на список компонентов, всё ли верно выставлено Проверьте пути установки и правильность расположения файлов


В итоге у нас должно получиться уот такое уот чудо:

Создаём 64-битный портативный установщик с выбором модов и встроенной Java на основе TL


Реклама:




Голосуй за новость:
(+8.958,950.00)
  • Просмотров: 847
  • Комментариев: 4
Рекомендуемое для Вас:

  1. Журналисты
    Зарегистрирован: 29.01.2015
    Репутация
    (+151.2149,1-2.1)
    obscurus | Пользователь offline | (31 августа 2018 18:07) | Комментариев: 399 | Новостей: 51 |
    • +2

    Жду советов по оформлению новости, не знаю как её раскрасить NewspaperGuy
    -----------------------------------------------------------------------------
    Мысли вслух.


  2. Посетители
    Зарегистрирован: 23.06.2016
    Репутация
    (+20.619,9-0.7)
    Andry093 | Пользователь offline | (31 августа 2018 18:13) | Комментариев: 118 | Новостей: 0 |
    • +1

    5 мем,раскрашивать туторилы не обязательно
    -----------------------------------------------------------------------------
    *Тут будет картинка*


  3. Журналисты-олдфаги
    Зарегистрирован: 25.04.2015
    Репутация
    (+75.675,4-0.2)
    WooDOfficial | Пользователь offline | (31 августа 2018 22:45) | Комментариев: 353 | Новостей: 22 |
    • +2

    Огромное спасибо за новость, очень полезный туториал. Как раз планировал создать свою сборку, а тут такое...

    Естественно, пятый мем и плюсик в репу the-man
    -----------------------------------------------------------------------------



  4. Администраторы
    Зарегистрирован: 27.07.2011
    Репутация
    (+1038.81000,6-38.2)
    south_park | Пользователь offline | (1 сентября 2018 21:45) | Комментариев: 1 323 | Новостей: 1 486 |
    • 0

    Топ, большое спасибо за такой материал и оформление.
    Низкий поклон. nravitsa

Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.

Последние сообщения с форума

Название темы Автор Статистика Последнее сообщение
ECHO - Terra Incognita

Тема в разделе: Карта "в разработке"

MrDanklark

Просмотров: 4907

Ответов: 149

Автор: MrTesla

Вчера, 23:59

Форумный чат

Тема в разделе: Чат флудилка

3JIou_Kpunep

Просмотров: 7785064

Ответов: 135813

Автор: Hexagon

Вчера, 22:58

Нуждаюсь в помощи строителя!

Тема в разделе: Собственные карты, модерация

GaZzZiRoVKa

Просмотров: 19

Ответов: 0

Автор: GaZzZiRoVKa

Вчера, 22:46

Нету звуков на старых версиях (Альфа,бета).

Тема в разделе: Ваши вопросы по Minecraft

GimmeHat

Просмотров: 72

Ответов: 13

Автор: KAPTOXA

Вчера, 21:57

ошибка

Тема в разделе: Ваши вопросы по Minecraft

doomoff

Просмотров: 27

Ответов: 1

Автор: AndrewGreat

Вчера, 17:40