Страница 3 из 9

Добавлено: 16.10.2007, 23:18
South
impulse666
я уже нашел последнюю версию http://uk.un4seen.com/files/bass23.zip (это офф релиз вроде)

вот держи, не знаю че ты парился, там на 1 минуту копи-паста

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

[Setup]
SourceDir=.
OutputDir=setup
AppName=Counter-Strike Source
AppVerName=Counter-Strike Source
AppPublisher=South
DefaultDirName={pf}\Counter-Strike Source
DefaultGroupName=Counter-Strike Source
AllowNoIcons=yes
;InfoBeforeFile=resources\BeforeInstall.rtf
OutputBaseFilename=setup
;WizardImageFile=resources\css_two_small.bmp
;WizardSmallImageFile=resources\css_one_bw_small.bmp
WindowVisible=no
WindowShowCaption=no
WindowResizable=no
Compression=lzma/normal
SolidCompression=yes
DiskSpanning=yes
DiskSliceSize=731906048
SlicesPerDisk=1
;Password=111
;SetupIconFile=resources\game.ico


[Languages]
Name: "russian"; MessagesFile: "compiler:Languages\Russian.isl"

[Types]
Name: "full";   Description: "Полная установка"
Name: "custom"; Description: "Выборочная установка"; Flags: iscustom

[Components]
Name: "main"; Description: "Counter-Strike:Source"; Types: full custom; Flags: fixed disablenouninstallwarning
Name: "lang"; Description: "Версия"; Types: full custom; Flags: fixed disablenouninstallwarning
Name: "lang\rus"; Description: "Русская"; Flags: exclusive disablenouninstallwarning
Name: "lang\rus\rus_sounds"; Description: "Установить русскую озвучку (только 'cstrike\sound\radio\')"; Flags: dontinheritcheck
Name: "lang\eng"; Description: "Английская"; Flags: exclusive disablenouninstallwarning
Name: "background_pict"; Description: "Заменить фоновый рисунок в меню"; Types: full
Name: "background_sound"; Description: "Добавить фоновую музыку в меню"; Types: full
Name: "add_maps"; Description: "Установить дополнительные карты"; Types: full
Name: "add_mod"; Description: "Установить мод 'замедление времени'"; Types: full

[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"

[Files]
;временные файлы для инсталятора
Source: resources\*; DestDir: "{tmp}"; Flags: ignoreversion dontcopy nocompression

[Icons]
Name: "{group}\Counter-Strike Source"; Filename: "{app}\cssource.exe"
Name: "{group}\{cm:UninstallProgram,Counter-Strike Source}"; Filename: "{uninstallexe}"
Name: "{userdesktop}\Counter-Strike Source"; Filename: "{app}\cssource.exe"; Tasks: desktopicon

[Run]
Filename: "{app}\cssource.exe"; Description: "{cm:LaunchProgram,CS Source}"; Flags: nowait postinstall skipifsilent

[Registry]
Root: HKCU; Subkey: "Software\Valve\Steam"; Flags: uninsdeletekey
Root: HKCU; Subkey: "Software\Valve\Steam"; ValueType: string; ValueName: "Path"; ValueData: "{app}"; Flags: uninsdeletekey
Root: HKCU; Subkey: "Software\Valve\Steam"; ValueType: string; ValueName: "Language"; ValueData: "russian"; Components: "lang\rus"; Flags: uninsdeletekey
Root: HKCU; Subkey: "Software\Valve\Steam"; ValueType: string; ValueName: "Language"; ValueData: "english"; Components: "lang\eng"; Flags: uninsdeletekey

[UninstallDelete]
Type: filesandordirs; Name: "{app}"

[_ISTool]
EnableISX=True

; убери подчеркивание в названии секции, это чтобы на форуме теги не путались
[Code_]

const
  BASS_SAMPLE_LOOP        = 4;   //повторение
type
  HSTREAM = DWORD;      //тип звукового потока
var
  RadioButton1: TRadioButton;
  RadioButton2: TRadioButton;
  RadioButton3: TRadioButton;

function GetSystemMetrics(nIndex:Integer):Integer; external '[email protected] stdcall';
function BASS_Init(device: Integer; freq, flags: DWORD; win: hwnd; CLSID: Integer): Boolean; external 'BASS_Init@files:BASS.dll stdcall delayload';
function BASS_StreamCreateFile(mem: BOOL; f: PChar; offset: DWORD; length: DWORD; flags: DWORD): HSTREAM; external 'BASS_StreamCreateFile@files:BASS.dll stdcall delayload';
function BASS_Start(): Boolean; external 'BASS_Start@files:BASS.dll stdcall delayload';
function BASS_ChannelPlay(handle: DWORD; restart: BOOL): Boolean; external 'BASS_ChannelPlay@files:BASS.dll stdcall delayload';
function  BASS_Stop(): Boolean; external 'BASS_Stop@files:BASS.dll stdcall delayload';
function  BASS_Free(): Boolean; external 'BASS_Free@files:BASS.dll stdcall delayload';





procedure URLLabelOnClick(Sender: TObject);
var
     ErrorCode: Integer;
begin
     ShellExec('open', 'http://csmania.ru/', '', '', SW_SHOWNORMAL, ewNoWait, ErrorCode);
end;

procedure InitializeWizard();
var
  BackgroundBitmapImage: TBitmapImage;
  s:string;
  width, height:Integer;
  URLLabel: TNewStaticText;
  mp3file:string;
  i:integer;
begin
  RadioButton1 := TRadioButton.Create(WizardForm.FinishedPage);
  with RadioButton1 do begin
    Parent := WizardForm.FinishedHeadingLabel.Parent;
    Caption := 'Запуск Half-Life 2 Episode 2';
    Left := ScaleX(180);
    Top := ScaleY(155);
    Width := ScaleX(177);
    Height := ScaleY(17);
    TabOrder := 0;
  end;

  RadioButton2 := TRadioButton.Create(WizardForm.FinishedPage);
  with RadioButton2 do begin
    Parent := WizardForm.FinishedHeadingLabel.Parent;
    Caption := 'Запуск Team Fortress 2';
    Left := ScaleX(180);
    Top := ScaleY(175);
    Width := ScaleX(177);
    Height := ScaleY(17);
    TabOrder := 1;
  end;

  RadioButton3 := TRadioButton.Create(WizardForm.FinishedPage);
  with RadioButton3 do begin
    Parent := WizardForm.FinishedHeadingLabel.Parent;
    Caption := 'Запуск Portal';
    Left := ScaleX(180);
    Top := ScaleY(195);
    Width := ScaleX(177);
    Height := ScaleY(17);
    TabOrder := 2;
  end;

  WizardForm.Position:=poScreenCenter;
  MainForm.BORDERSTYLE:=bsNone;
  width:=GetSystemMetrics(0);
  height:=GetSystemMetrics(1);
  MainForm.Left := 0;
  MainForm.Top := 0;
  MainForm.Width:=width;
  MainForm.Height:=height;
  width:=MainForm.ClientWidth;
  height:=MainForm.ClientHeight;
  ExtractTemporaryFile('background.bmp');
  s:=ExpandConstant('{tmp}')+'\background.bmp';
  BackgroundBitmapImage := TBitmapImage.Create(MainForm);
  BackgroundBitmapImage.Bitmap.LoadFromFile(s);
  BackgroundBitmapImage.Align := alClient;
  BackgroundBitmapImage.Parent := MainForm;
  BackgroundBitmapImage.Stretch:=True;
  MainForm.Visible:=True;
  URLLabel := TNewStaticText.Create(WizardForm);
  URLLabel.Caption := 'www.csmania.ru %)';
  URLLabel.Parent := WizardForm;
  URLLabel.Cursor := crHand;
  URLLabel.OnClick := @URLLabelOnClick;
  URLLabel.Font.Style := [fsUnderline];
  URLLabel.Top := ScaleY(331);
  URLLabel.Left := ScaleX(25);

  ExtractTemporaryFile('BASS.dll');
  ExtractTemporaryFile('clawfinger.mp3');

  if BASS_Init(-1,44100,0,0,0) then begin
    BASS_Stop();  //это на всякий случай, вдруг что-нибудь уже проигрывается (хотя откуда ему здесь взяться)
    BASS_Start();
    mp3file:=ExpandConstant('{tmp}\clawfinger.mp3');
    i:=BASS_StreamCreateFile(FALSE, PChar(mp3file), 0, 0, 4);
    if i<>0 then BASS_ChannelPlay(i, True);
  end;

end;

function NextButtonClick(CurPageID: Integer): Boolean;
var
  ResultCode: Integer;
begin
  Result:=True;
  if CurPageID=wpFinished then begin
    if RadioButton1.Checked then
      Exec(ExpandConstant('{app}\RUN_EP2.exe'), '', '', SW_SHOW,ewNoWait, ResultCode)
    else
      if RadioButton2.Checked then
        Exec(ExpandConstant('{app}\RUN_TF2.exe'), '', '', SW_SHOW,ewNoWait, ResultCode)
      else
        if RadioButton3.Checked then Exec(ExpandConstant('{app}\RUN_PORTAL.exe'), '', '', SW_SHOW,ewNoWait, ResultCode)
  end
end;

procedure DeInitializeSetup();
begin
  BASS_Stop(); //нужно для остановки проигрывания
  BASS_Free(); //нужно для быстрой выгрузки библиотеки вместе с муз. файлом
end;

это мой бывший скрипт установки CSSource, я из него поудалял все ненужное

в папке "путь_к_скрипту\resources\" должны лежать bass.dll, clawfinger.mp3 и background.bmp
в такой комплектации этот скрипт работает :) (проверено с bass.dll по моей ссылке)

думаю с секцией

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

[/b] разберешься

кстати есть у кого-нибудь описание по использованию bass.dll на русском? если есть киньтесь ссылкой буду признателен

Добавлено: 17.10.2007, 03:28
Das_Monster
Я к InnoSetup юзаю GUI - ISTool, он кстати тоже на днях обновился до v5.2.1. Мне с гуишкой проще, чем напрмер самому скрипт писать :twisted: .

Добавлено: 17.10.2007, 05:47
impulse666
htuos
спс, все работает!
...ты не повереш, 3 человека из КЛ несмогли мне помоч...правда они знали просто паскаль...ИноСетап у них и нистоял никогда..

..описания к нему не встречал :(
Das_Monster
да она у меня тоже есть, полезна бывает..

Добавлено: 17.10.2007, 14:41
South
impulse666 писал(а):спс, все работает!
...ты не повереш, 3 человека из КЛ несмогли мне помоч...правда они знали просто паскаль...ИноСетап у них и нистоял никогда..
чтобы это написать не обязательно видеть innosetup, достаточно знаний паскаля

Das_Monster
GUI - ISTool, может где-то и полезно, сам не пользовался, но не думаю, что она за тебя секцию

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

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

ЗЫ что такое КЛ?

Добавлено: 17.10.2007, 14:52
impulse666
Да, код она за тебя не напишет, а вот указать рабочую папку, или там ключи из *reg файликов прописать она может %)

КЛ - КонтактЛист... %)

Добавлено: 17.10.2007, 15:57
South
impulse666 писал(а):Да, код она за тебя не напишет, а вот указать рабочую папку, или там ключи из *reg файликов прописать она может %)

ну, в реестр инносетап умеет и своими средствами писать как ты мог заметить
про рабочую папку в ярлыке аналогично:

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

[Icons]
Name: "{group}\Counter-Strike Source"; Filename: "{app}\cssource.exe"; WorkingDir: {app}
кто тебе мешает так написать?
impulse666 писал(а):КЛ - КонтактЛист... %)
ну вот, совсем от жизни отстал, примитивных сокращений не понимаю :D

Добавлено: 17.10.2007, 16:01
impulse666
htuos
ничто, но ручной труд как правило малопроизводителен %)

Добавлено: 17.10.2007, 16:32
South
impulse666
на вкус и цвет как говорится товарищей нет, кому что нравится, тот то и пользует. меня ручная писанина устраивает, к тому же однажды написанный скрипт выступает в качестве шаблона, так что работы на самом деле минимум

Добавлено: 18.10.2007, 02:01
Das_Monster

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

но не думаю, что она за тебя секцию напишет.
Ну я еще не не "дорос" до него, да и в IStool все равно мне уже удобней, чем в "голой! Inno.
а вот указать рабочую папку, или там ключи из *reg файликов прописать она может %)
Не то слово, я еще к тому же через "драг и дроп" ранее экспортированый рег файл чаще всего юзаю, поэтому вообще ничего писать не надо, тока поменяешь пару значений...
к тому же однажды написанный скрипт выступает в качестве шаблона, так что работы на самом деле минимум
Ну так тоже самое и для меня, тока мне в Istool надо еще меньше телеодвижений, "драгнул" файло для паковки, потом рег файл, потом ини (если нужен), поправил ярлыки и названия и запускаю паковку. Минуты 3 занимает все.

Я в основном перепаковываю игровые пиратки (то етсь включаю обновления, руссик нормальный) и естественно нашу любимую CS первожиу из лицензии...

Добавлено: 18.10.2007, 18:27
South
я уже говорил: кому что нравится ...
к тому же я привык работать only keyboard (так быстрее имхо), дергать руку от клавы к мыши меня это раздражает

Добавлено: 25.10.2007, 04:19
postal_3
Обновлен первый пост :)

Изменения:
  • The Setup loader now extracts the Setup program executable file with a ".tmp" extension. Versions 5.2.0 and 5.2.1 used a ".exe.tmp" extension, which reportedly, in some cases, caused an "Unable to execute file in temporary directory" error message on systems with a certain antivirus program installed. We were unable to reproduce the error in our own tests, however; it is suspected that this may have only impacted users with custom filename blocking rules defined in their antivirus configuration.
  • Pascal Scripting: Added new GetSaveFileName support function.
  • Fix: The compiler could fail with an "Out of memory" error on script files containing more than ~100,000 lines, due to a heap fragmentation issue.

Добавлено: 05.11.2007, 18:48
dimiroff
А скрипты Inno Setup-овские под Half-life 2 Episode Two и Portal у кого-нибудь есть, если есть то скиньте. Только по отдельности, очень надо. Заранее спасибо.

Добавлено: 05.11.2007, 22:33
msblast
dimiroff писал(а):А скрипты Inno Setup-овские под Half-life 2 Episode Two и Portal у кого-нибудь есть, если есть то скиньте. Только по отдельности, очень надо. Заранее спасибо.
посмотри как написаны для других игр-так же и пиши сам
проблем нет вообще, даже если человек в програмировании 0 последний
там все до боли банально

Добавлено: 09.01.2008, 01:05
Victor_Dobrov
ИзображениеCorona Skin & Check System Requirements - данный пакет заменит оформление Inno Setup на стиль WMP9, встроит в инсталлятор тест системы и другие уникальные возможности и упростит создание своих скриптов.
Финальная версия 5.1 от 20-12-07. Код оптимизирован с целью уменьшить конечный объём инсталлятора. Горячие клавиши: F1-12, Ctrl + A (Мини-справка), S, D, F, X. Дополнения: клик на WizardSmallImage скрывает фоновое окно. Ключ CalcAppDir необязателен, AutoPass скрывает страницу ввода пароля. Проигрыватель: добавлены форматы AVI, XM, IT, MOD, MO3, улучшена обработка ошибок. Исправлена функция CalcDirSize. Доработаны функции проверки пароля/серийника. Сообщения не перекрываются анимацией. Изменено оформление страниц wpSelectProgramGroup, wpSelectDir, wpPassword, wpUserInfo, wpLicense. Ключ /NOMUSIC отключает автовоспроизведение при запуске. Прогрессбар: расчёт времени до завершения распаковки, если убрать Copy.avi, появится список файлов. Добавлен общий логотип для скриптов. В режиме SILENT деинсталлятор не запускается, а происходит перезапись. Если NeedMB не указывать, значение берётся из ComponentsDiskSpaceLabel.

InnoSetup Upgrade- расширение возможностей Inno Setup.
Проверка минимальных требований, подсчёт объёма папок, список дисков на wpSelectDir, список папок на wpSelectProgramGroup, защита системной папки, выбор вариантов деинсталляции, деинсталляция неучтённых файлов, подсчёт времени установки.
Подключение этого расширения добавляет к инсталлятору всего 11 Кбайт.

Слайдшоу- 5 скриптов: рисунок в фоне, слайдшоу, скринсевер + системные, AVI-файл в фоне.

Добавлено: 10.01.2008, 19:46
msblast
InnoSetup Upgrade -как заставить его подключить этот модуль, а то на инклуд ругается....говорит мол незнаю что это такое