Inno Setup GameScript Generator

Для тех, кто хочет сделать мир лучше.
Сообщение
Автор
South
Разработчик
Разработчик
Сообщения: 287
Зарегистрирован: 18.06.2006
Откуда: с работы
Поблагодарили: 2 раза

#31 Сообщение South » 05.12.2007, 02:30

impulse666 писал(а):выключить музыку я имею ввиду..
нет, выключить будет нельзя (только в винде, или колонки выключить), а нафига это?

Update
добавил поддержку splash'ей
все пропало

South
Разработчик
Разработчик
Сообщения: 287
Зарегистрирован: 18.06.2006
Откуда: с работы
Поблагодарили: 2 раза

#32 Сообщение South » 17.12.2007, 01:17

сегодня делал поддержку набора игр, вроде все готово, но остался вопрос: если я, допустим, пишу скрипт для 2 игр (css+dods). игры на компе находятся в разных папках. игры имеют кучу одинаковых файлов. так вот вопрос, инно сетап запихает одинаковые файлы 2 раза в дистрибутив? или он обнаружит каким-то чудом, что такие файлы уже присутствуют в дистрибутиве и его размер будет минимальным?
что-то нигде инфы по этому вопросу не нашел. просветите кто знает.

ЗЫ думаю, что IS ни фига не поймет, что ему подсовывают одни и те же файлы по нескольку раз и придется вылавливать одинаковые файлы ручками :( , из-за этого генерация скрипта затянется на продолжительное время, да и места потребуется не мало
все пропало

Аватара пользователя
impulse666
Полковник
Полковник
Сообщения: 7405
Зарегистрирован: 08.12.2005
Откуда: Atman
Благодарил (а): 2343 раза
Поблагодарили: 590 раз
Контактная информация:

#33 Сообщение impulse666 » 17.12.2007, 12:10

htuos
хм...а секцию [Files] нельзя под конец на повторы прошмонать? %)
Изображение
Негласные Правила
1. Пропаганда лицензии запрещена.
2. На форуме режим многоступенчатых стандартов Ψ. То что можно одним, нельзя другим. Решается правящей партией
3. Ники членов правящей партии (impulse666, NiGHt-LEshiY, SHADOW) искажают только в случае необходимости получить БАН.

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

South
Разработчик
Разработчик
Сообщения: 287
Зарегистрирован: 18.06.2006
Откуда: с работы
Поблагодарили: 2 раза

#34 Сообщение South » 17.12.2007, 12:15

impulse666
в секции [Files] будет написано что-то вроде этого

Код: Выделить всё

Source: "D:\css\*"; DestDir: "{app}";
Source: "D:\dods\*"; DestDir: "{app}";
и как ее шмонать?
все пропало

Аватара пользователя
impulse666
Полковник
Полковник
Сообщения: 7405
Зарегистрирован: 08.12.2005
Откуда: Atman
Благодарил (а): 2343 раза
Поблагодарили: 590 раз
Контактная информация:

#35 Сообщение impulse666 » 17.12.2007, 12:28

htuos
аа, ну файлы одинаковые, заменяться..
Изображение
Негласные Правила
1. Пропаганда лицензии запрещена.
2. На форуме режим многоступенчатых стандартов Ψ. То что можно одним, нельзя другим. Решается правящей партией
3. Ники членов правящей партии (impulse666, NiGHt-LEshiY, SHADOW) искажают только в случае необходимости получить БАН.

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

South
Разработчик
Разработчик
Сообщения: 287
Зарегистрирован: 18.06.2006
Откуда: с работы
Поблагодарили: 2 раза

#36 Сообщение South » 17.12.2007, 13:29

impulse666 писал(а):аа, ну файлы одинаковые, заменяться..
то что они заменятся при при установке это понятно
а в дистрибутиве они будут лежать в двух экземплярах или в одном?
все пропало

Аватара пользователя
impulse666
Полковник
Полковник
Сообщения: 7405
Зарегистрирован: 08.12.2005
Откуда: Atman
Благодарил (а): 2343 раза
Поблагодарили: 590 раз
Контактная информация:

#37 Сообщение impulse666 » 17.12.2007, 13:36

имхо в одном....сегодня постараюсь незабыть протестить зажму две копии фильма в разных каталогах (видео нежметься почти) и посмотрю..
Изображение
Негласные Правила
1. Пропаганда лицензии запрещена.
2. На форуме режим многоступенчатых стандартов Ψ. То что можно одним, нельзя другим. Решается правящей партией
3. Ники членов правящей партии (impulse666, NiGHt-LEshiY, SHADOW) искажают только в случае необходимости получить БАН.

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

South
Разработчик
Разработчик
Сообщения: 287
Зарегистрирован: 18.06.2006
Откуда: с работы
Поблагодарили: 2 раза

#38 Сообщение South » 17.12.2007, 17:54

impulse666 писал(а):имхо в одном....сегодня постараюсь незабыть протестить зажму две копии фильма в разных каталогах (видео нежметься почти) и посмотрю..
проверил на видеофайлах (хороший метод), в дистрибутиве они оказываются в двух экземплярах :(
как тогда лучше поступить?
вариант:
поставить чекбокс "найти общие файлы" (т.е. это будет опционально), при установке галки запросить путь куда сложить разобранные игры. Перед созданием скрипта, пройтись по папкам с играми найти одинаковые файлы и сложить их в одну папку, а все что осталось разложить по другим папкам. в скрипте указать новые папки. при этом директории указанные юзером трогаться не будут (из них ничего не будет удаляться, все останется в первозданном виде).
минусы этого метода:
-нужно до фига времени на создание скрипта
-нужно место на винте (в худшем случае, если нет общих файлов, столько же сколько весят все указанные игры)+ не забываем про вес самого дистрибутива, который создаст InnoSetup
-юзеру самому ручками придется удалять "временные" файлы, которые создала прога, после сборки дистрибутива

Как вариант, можно наоборот, не копировать, а перемещать одинаковые файлы в указанную папку. В этом случае, если папка для временных файлов находится на том же разделе, что и сами игры, то работать будет намного быстрее, если на другой раздел перемещаем файл, то все равно получится быстрее, т.к. часть файлов останется на своем месте. Дополнительное место на винте не понадобится (если файл перемещается в пределах раздела), либо понадобится в размере самого большого файла (если файл перемещается на другой раздел). Сами игры после таких манипуляций останутся неработоспособными. но их соответственно можно будет ручками привести в рабочее состояние скопировав найденные одинаковые файлы обратно по папкам игр

есть еще какие-нибудь варианты?
все пропало

Аватара пользователя
mukca
Местный ГУРУ
Местный  ГУРУ
Сообщения: 856
Зарегистрирован: 06.02.2005
Откуда: с луны, со своей луны, свалился :(
Поблагодарили: 1 раз

#39 Сообщение mukca » 17.12.2007, 19:54

поставить чекбокс "найти общие файлы" (т.е. это будет опционально)
ээ помню эта опция в инно сетупе неправильно работает.

или ты сторони средствами сделать хочеш??
Изображение
Читай ПРАВИЛА. Я не оДын
зы какие тут тяжелые подписи..

Аватара пользователя
impulse666
Полковник
Полковник
Сообщения: 7405
Зарегистрирован: 08.12.2005
Откуда: Atman
Благодарил (а): 2343 раза
Поблагодарили: 590 раз
Контактная информация:

#40 Сообщение impulse666 » 17.12.2007, 20:30

думаю вариант два....и чтоб на вывходе создавался БАТник которывм юзер могбыв вернуть все файлыв назад (скопировать)
Изображение
Негласные Правила
1. Пропаганда лицензии запрещена.
2. На форуме режим многоступенчатых стандартов Ψ. То что можно одним, нельзя другим. Решается правящей партией
3. Ники членов правящей партии (impulse666, NiGHt-LEshiY, SHADOW) искажают только в случае необходимости получить БАН.

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

South
Разработчик
Разработчик
Сообщения: 287
Зарегистрирован: 18.06.2006
Откуда: с работы
Поблагодарили: 2 раза

#41 Сообщение South » 17.12.2007, 21:16

mukca писал(а):Цитата:
поставить чекбокс "найти общие файлы" (т.е. это будет опционально)

ээ помню эта опция в инно сетупе неправильно работает.

или ты сторони средствами сделать хочеш??
:? в инносетапе есть такая штука? где?
я сам собирался это писать
impulse666 писал(а):думаю вариант два....и чтоб на вывходе создавался БАТник которывм юзер могбыв вернуть все файлыв назад (скопировать)
тоже вариант не плохой, наверное так и сделаю, хотелось бы только от mukca ответ получить сначала, чтобы лишнюю работу не делать
все пропало

Аватара пользователя
mukca
Местный ГУРУ
Местный  ГУРУ
Сообщения: 856
Зарегистрирован: 06.02.2005
Откуда: с луны, со своей луны, свалился :(
Поблагодарили: 1 раз

#42 Сообщение mukca » 18.12.2007, 15:51

htuos
[Setup]: MergeDuplicateFiles

Возможные значения: yes or no
Значение по умолчанию: yes

Описание:
По умолчанию одинаковые файлы, указанные несколько раз сжимаются только один раз (без дупликатов). Если в инсталяторе имеется несколько идентичных файлов, в скрипте их следует в один ресурс (source file), это может уменьшить размер инсталятора. Если вы хотите отключить это отслеживание, укfжите значение директивы равным no.
но помоему там значение не no - yes, а false - true. причем кажется по дефолту используеться true.

нелп надо получше почитать. я когдато пару лет назад делал установку и на это наткнулся.. но помоему я так и не заставил работать
Изображение
Читай ПРАВИЛА. Я не оДын
зы какие тут тяжелые подписи..

South
Разработчик
Разработчик
Сообщения: 287
Зарегистрирован: 18.06.2006
Откуда: с работы
Поблагодарили: 2 раза

#43 Сообщение South » 18.12.2007, 17:37

mukca
проверил, если пишу так

Код: Выделить всё

[Setup]
. . .
MergeDuplicateFiles=no
. . .
[Files]
Source: e:\1\*; DestDir: {app}\aaa; Flags: ignoreversion recursesubdirs createallsubdirs
Source: e:\1\*; DestDir: {app}\ccc; Flags: ignoreversion recursesubdirs createallsubdirs
. . .
то забирает файлы по 2 раза

если пишу так

Код: Выделить всё

[Setup]
. . .
MergeDuplicateFiles=yes
. . .
[Files]
Source: e:\1\*; DestDir: {app}\aaa; Flags: ignoreversion recursesubdirs createallsubdirs
Source: e:\1\*; DestDir: {app}\ccc; Flags: ignoreversion recursesubdirs createallsubdirs
. . .
забирает 1 раз

если пишу так (содержимое папки "e:\1\" идентично "e:\2\", названия файлов тоже одинаковые)

Код: Выделить всё

[Setup]
. . .
MergeDuplicateFiles=нуы
. . .
[Files]
Source: e:\1\*; DestDir: {app}\aaa; Flags: ignoreversion recursesubdirs createallsubdirs
Source: e:\2\*; DestDir: {app}\ccc; Flags: ignoreversion recursesubdirs createallsubdirs
. . .
все равно забирает файлы по 2 раза, т.е. эта фигня работает, только если в секции [Files] указаны одни и те же файлы и путь к ним тоже совпадает :(

видимо придеться мудиться и искать одинаковые файлы ручками
все пропало

South
Разработчик
Разработчик
Сообщения: 287
Зарегистрирован: 18.06.2006
Откуда: с работы
Поблагодарили: 2 раза

#44 Сообщение South » 19.12.2007, 13:10

вот сижу и думаю как искать общие файлы для игр
Предложенные ранее варианты не подходят, т.к. если я буду собирать, к примеру, CSS+DODS+DOOM3, то прога вообще не найдет ни одного общего файла (по предыдущим вариантам одинаковые файлы должны существовать во всех (3) играх). На текущий момент могу только предложить из всех игр составить новую структуру каталогов в указанной юзером папке (приемлемую для инно сетапа) и скопировать туда файлы игр так, чтобы не было дубликатов, т.е. попытаться вообще исключить одинаковые файлики, независимо от того какие игры указаны в списке. В соответствии с этой структурой составить скрипт
Копирование опять же занимает много времени и необходимо место на винте для этой процедуры
Если перемещать, а не копировать, то будет большой гемор вернуть все файлы на свои места, после создания инсталяшки

Есть какие-нибудь еще предложения?
все пропало

South
Разработчик
Разработчик
Сообщения: 287
Зарегистрирован: 18.06.2006
Откуда: с работы
Поблагодарили: 2 раза

#45 Сообщение South » 21.12.2007, 19:44

вобщем разобрал я игры по запчастям
сделал и перемещение и копирование, выглядеть будет примерно так
Изображение
с копированием все понятно, разобрали игры->создался скрипт->создали инсталяшку->грохнули папку с разобранными играми.
а вот с перемещением остался вопрос.
после разбора игр исходные папки остаются естественно пустые. как и посоветовал impulse666 прога создает bat-файл, который раскладывает файлы обратно на свои места. сейчас файлы из вновь созданных папок копируются в исходные, а потом эти папки (созданные программой) удаляются. понятное дело, что на скорости работы это сильно сказывается, да и опять же упираемся в свободное место на диске. так вот вопрос - как сделать не копирование, а перемещение содержимого директории с поддиректориями и файлами, которые там находятся?
команда move судя по всему не годится, т.к. работает только в пределах одного диска. к тому же если папка, в которую перемещается файл, существует (даже если пустая), то опять же ни хрена не перемещается. по крайней мере на NTFS-разделах не работатет. может я использую не те параметры? или есть еще какая-нибудь команда, которой я не знаю?

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

ЗЗЫ куда делась кнопка редактирования поста?
все пропало

Ответить Вложения 2