; Ñêðèïò ñîçäàí ñ ïîìîùüþ
; IS GameScript Generator by South
; ñïåöèàëüíî äëÿ
www.csmania.ru
[Setup]
SourceDir=.
OutputDir=Setup
AppName=Valve
AppVerName=Valve(hl2/ep1/ep2/portal)
AppVersion=Valve
DefaultDirName={pf}\Valve
DefaultGroupName=Valve
AllowNoIcons=true
InfoBeforeFile=
OutputBaseFilename=setup
WizardImageFile=O:\hl2_setup\WizardImage.bmp
WizardSmallImageFile=O:\hl2_setup\WizardSmallImage.bmp
SetupIconFile=O:\hl2_setup\Ïðîåêò1.ico
WindowVisible=false
WindowShowCaption=false
WindowResizable=false
Compression=lzma2/Ultra
DiskSpanning=true
DiskSliceSize=960495616
SlicesPerDisk=1
InternalCompressLevel=Ultra
[Languages]
Name: russian; MessagesFile: compiler:Languages\Russian.isl
[Types]
Name: full; Description: полная установка
Name: custom; Description: выборочная установка; Flags: iscustom
Name: custom; Description: всё на русском; Flags: iscustom
Name: custom; Description: всё на английском; Flags: iscustom
[Components]
Name: g0; Description: source engine protocol version 15; Types: full custom; Flags: disablenouninstallwarning checkablealone fixed
Name: g0\c1; Description: half-life 2; Types: full; Flags: dontinheritcheck
Name: g0\c1\c2; Description: русская озвучка; Types: full; Flags: exclusive
Name: g0\c1\c2\c3; Description: дополнительная озвучка от Буки (опцилнально); Types: full; Flags: dontinheritcheck
Name: g0\c1\c4; Description: английская озвучка; Types: full; Flags: exclusive
Name: g0\c1\c5; Description: северное сияние (опционально); Types: full; Flags: dontinheritcheck
Name: g0\c6; Description: half-life 2 episode one; Types: full; Flags: dontinheritcheck
Name: g0\c6\c7; Description: русская озвучка; Types: full; Flags: exclusive
Name: g0\c6\c8; Description: английская озвучка; Types: full; Flags: exclusive
Name: g0\c9; Description: half-life 2 episode two; Types: full; Flags: dontinheritcheck
Name: g0\c9\c10; Description: русская озвучка; Types: full; Flags: exclusive
Name: g0\c9\c11; Description: английская озвучка; Types: full; Flags: exclusive
Name: g0\c12; Description: portal; Types: full; Flags: dontinheritcheck
Name: g0\c12\c13; Description: русская озвучка; Types: full; Flags: exclusive
Name: g0\c12\c14; Description: английская озвучка; Types: full; Flags: exclusive
[Tasks]
Name: desktopicon; Description: {cm:CreateDesktopIcon}; GroupDescription: {cm:AdditionalIcons}
[Files]
Source: ISSkin.dll; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression
Source: steam.cjstyles; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression
Source: O:\hl2_setup\ôîíîâûé ðèñóíîê.jpg; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression
Source: O:\hl2_setup\Splash.jpg; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression
Source: isgsg.dll; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression
Source: O:\hl2_setup\1\hl2\*; DestDir: {app}; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension; Components: g0\c1
Source: O:\hl2_setup\1\add\half-life 2 russian\*; DestDir: {app}; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension; Components: g0\c1\c2
Source: O:\hl2_setup\1\add\half-life 2 buka russian\*; DestDir: {app}; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension; Components: g0\c1\c2\c3
Source: O:\hl2_setup\1\add\half-life 2 english\*; DestDir: {app}; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension; Components: g0\c1\c4
Source: O:\hl2_setup\1\add\aurora borealis particle effects(optional)\*; DestDir: {app}; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension; Components: g0\c1\c5
Source: O:\hl2_setup\1\hl2_ep1\*; DestDir: {app}; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension; Components: g0\c6
Source: O:\hl2_setup\1\add\half-life 2 episode one russian\*; DestDir: {app}; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension; Components: g0\c6\c7
Source: O:\hl2_setup\1\add\half-life 2 episode one english\*; DestDir: {app}; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension; Components: g0\c6\c8
Source: O:\hl2_setup\1\hl2_ep2\*; DestDir: {app}; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension; Components: g0\c9
Source: O:\hl2_setup\1\add\half-life 2 episode two russian\*; DestDir: {app}; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension; Components: g0\c9\c10
Source: O:\hl2_setup\1\add\half-life 2 episode two english\*; DestDir: {app}; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension; Components: g0\c9\c11
Source: O:\hl2_setup\1\port\*; DestDir: {app}; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension; Components: g0\c12
Source: O:\hl2_setup\1\add\portal russian\*; DestDir: {app}; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension; Components: g0\c12\c13
Source: O:\hl2_setup\1\add\portal english\*; DestDir: {app}; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension; Components: g0\c12\c14
Source: O:\hl2_setup\1\steamapps\episode 1 shared.gcf; DestDir: {app}\steamapps\; Components: g0\c9 g0\c6
Source: O:\hl2_setup\1\steamapps\episode one 2007 content.gcf; DestDir: {app}\steamapps\; Components: g0\c6
Source: O:\hl2_setup\1\steamapps\episode two content.gcf; DestDir: {app}\steamapps\; Components: g0\c9
Source: O:\hl2_setup\1\steamapps\episode two maps.gcf; DestDir: {app}\steamapps\; Components: g0\c9
Source: O:\hl2_setup\1\steamapps\episode two materials.gcf; DestDir: {app}\steamapps\; Components: g0\c9
Source: O:\hl2_setup\1\steamapps\episodic 2007 shared.gcf; DestDir: {app}\steamapps\; Components: g0\c9 g0\c6
Source: O:\hl2_setup\1\steamapps\half-life 2 2007 base content.gcf; DestDir: {app}\steamapps\; Components: g0\c1
Source: O:\hl2_setup\1\steamapps\half-life 2 content.gcf; DestDir: {app}\steamapps\; Components: g0\c1
Source: O:\hl2_setup\1\steamapps\half-life 2 episode one russian.gcf; DestDir: {app}\steamapps\; Components: g0\c9\c10 g0\c6\c7
Source: O:\hl2_setup\1\steamapps\half-life 2 episode one.gcf; DestDir: {app}\steamapps\; Components: g0\c6
Source: O:\hl2_setup\1\steamapps\half-life 2 game dialog.gcf; DestDir: {app}\steamapps\; Components: g0\c1
Source: O:\hl2_setup\1\steamapps\half-life 2_russian.gcf; DestDir: {app}\steamapps\; Components: g0\c9\c10 g0\c6\c7 g0\c1\c2
Source: O:\hl2_setup\1\steamapps\portal content.gcf; DestDir: {app}\steamapps\; Components: g0\c12
Source: O:\hl2_setup\1\steamapps\source 2007 binaries 2.gcf; DestDir: {app}\steamapps\; Components: g0\c12 g0\c9 g0\c6 g0\c1
Source: O:\hl2_setup\1\steamapps\source 2007 shared materials.gcf; DestDir: {app}\steamapps\; Components: g0\c12 g0\c9 g0\c6 g0\c1
Source: O:\hl2_setup\1\steamapps\source 2007 shared models.gcf; DestDir: {app}\steamapps\; Components: g0\c12 g0\c9 g0\c6 g0\c1
Source: O:\hl2_setup\1\steamapps\source 2007 shared sounds.gcf; DestDir: {app}\steamapps\; Components: g0\c12 g0\c9 g0\c6 g0\c1
Source: O:\hl2_setup\1\steamapps\source materials.gcf; DestDir: {app}\steamapps\; Components: g0\c12 g0\c9 g0\c6 g0\c1
Source: O:\hl2_setup\1\steamapps\source models.gcf; DestDir: {app}\steamapps\; Components: g0\c12 g0\c9 g0\c6 g0\c1
Source: O:\hl2_setup\1\steamapps\source sounds.gcf; DestDir: {app}\steamapps\; Components: g0\c12 g0\c9 g0\c6 g0\c1
[Icons]
Name: {group}\half-life 2; Filename: {app}\half-life 2\hl2.exe; WorkingDir: {app}; Parameters: -steam -game hl2 -appid 220; Components: g0\c1
Name: {userdesktop}\half-life 2; Filename: {app}\half-life 2\hl2.exe; WorkingDir: {app}; Tasks: desktopicon; Parameters: -steam -game hl2 -appid 220; Components: g0\c1
Name: {group}\half-life 2 episode one; Filename: {app}\half-life 2 episode one\hl2.exe; WorkingDir: {app}; Parameters: -steam -game episodic -appid 380; Components: g0\c6
Name: {userdesktop}\half-life 2 episode one; Filename: {app}\half-life 2 episode one\hl2.exe; WorkingDir: {app}; Tasks: desktopicon; Parameters: -steam -game episodic -appid 380; Components: g0\c6
Name: {group}\half-life 2 episode two; Filename: {app}\half-life 2 episode two\hl2.exe; WorkingDir: {app}; Parameters: -steam -game ep2 -appid 420; Components: g0\c9
Name: {userdesktop}\half-life 2 episode two; Filename: {app}\half-life 2 episode two\hl2.exe; WorkingDir: {app}; Tasks: desktopicon; Parameters: -steam -game ep2 -appid 420; Components: g0\c9
Name: {group}\portal; Filename: {app}\portal\hl2.exe; WorkingDir: {app}; Parameters: -steam -game portal -appid 400; IconFilename: {app}\portal\portal\portal.ico; Components: g0\c12
Name: {userdesktop}\portal; Filename: {app}\portal\hl2.exe; WorkingDir: {app}; Tasks: desktopicon; Parameters: -steam -game portal -appid 400; IconFilename: {app}\portal\portal\portal.ico; Components: g0\c12
Name: {group}\{cm:UninstallProgram,Valve}; Filename: {uninstallexe}
[Run]
Description: {cm:LaunchProgram, half-life 2}; Filename: {app}\half-life 2\hl2.exe; WorkingDir: {app}; Parameters: -steam -game hl2 -appid 220; Components: g0\c1; Flags: nowait postinstall unchecked skipifsilent
Description: {cm:LaunchProgram, half-life 2 episode one}; Filename: {app}\half-life 2 episode one\hl2.exe; WorkingDir: {app}; Parameters: -steam -game episodic -appid 380; Languages: ; Components: g0\c6; Flags: nowait postinstall unchecked skipifsilent
Description: {cm:LaunchProgram, half-life 2 episode two}; Filename: {app}\half-life 2 episode two\hl2.exe; WorkingDir: {app}; Parameters: -steam -game ep2 -appid 420; Components: g0\c9; Flags: nowait postinstall unchecked skipifsilent
Description: {cm:LaunchProgram, portal}; Filename: {app}\portal\hl2.exe; WorkingDir: {app}; Parameters: -steam -game portal -appid 400; Components: g0\c12; Flags: nowait postinstall unchecked skipifsilent
[UninstallDelete]
Type: filesandordirs; Name: {app}
[Dirs]
Name: {app}\steamapps
[code]
const
dURL=2;
var
URLLabel,URLLabelShadow:TLabel;
function GetWindowLong(hWnd: HWND; nIndex: Integer): Longint; external 'GetWindowLongA@user32.dll stdcall delayload';
function ssInitialize(hParent:HWND;ssTimeShow:integer;FadeOut:boolean;StretchMode:integer;BkgColor:DWORD):boo lean; external 'ssInitialize@files:isgsg.dll stdcall delayload';
procedure ssDeInitialize; external 'ssDeInitialize@files:isgsg.dll stdcall delayload';
procedure ssSetBkgImage(FileName:PChar); external 'ssSetBkgImage@files:isgsg.dll stdcall delayload';
procedure ShowSplashScreen(p1:HWND;p2:string;p3,p4,p5,p6,p7:integer;p8:boolean;p9:Cardinal;p10:integer); external 'ShowSplashScreen@files:isgsg.dll stdcall delayload';
procedure LoadSkin(lpszPath: String; lpszIniFileName: String); external 'LoadSkin@files:isskin.dll stdcall';
procedure UnloadSkin(); external 'UnloadSkin@files:isskin.dll stdcall';
function ShowWindow(hWnd: Integer; uType: Integer): Integer; external 'ShowWindow@user32.dll stdcall';
procedure URLLabelClick(Sender: TObject);
var
ErrorCode:integer;
begin
ShellExec('open','http://forum.csmania.ru/','','',SW_SHOWNORMAL,ewNoWait,ErrorCode);
end;
procedure URLLabelMouseDown(Sender:TObject;Button:TMouseButton;Shift:TShiftState;X,Y:Integer);
begin
URLLabel.Top:=URLLabel.Top+dURL;
URLLabel.Left:=URLLabel.Left+dURL;
URLLabel.Font.Style:=URLLabel.Font.Style+[fsUnderline];
URLLabel.Font.Color:=$50B5C4;
URLLabelShadow.Visible:=False;
end;
procedure URLLabelMouseUp(Sender:TObject;Button:TMouseButton;Shift:TShiftState;X,Y:Integer);
begin
URLLabel.Top:=URLLabel.Top-dURL;
URLLabel.Left:=URLLabel.Left-dURL;
URLLabel.Font.Style:=URLLabel.Font.Style-[fsUnderline];
URLLabel.Font.Color:=$708A7A;
URLLabelShadow.Visible:=True;
end;
function InitializeSetup:boolean;
begin
ExtractTemporaryFile('steam.cjstyles');
LoadSkin(ExpandConstant('{tmp}')+'\steam.cjstyles', '');
Result:=True;
end;
procedure InitializeWizard;
begin
URLLabelShadow:=TLabel.Create(WizardForm);
with URLLabelShadow do begin
Top:=ScaleY(331);
Left:=ScaleX(25);
Caption:='http://forum.csmania.ru/';
AutoSize:=True;
Parent:=WizardForm;
Transparent:=True;
Font.Color:=$041207;
Font.Size:=9;
Font.Style:=Font.Style+[fsBold];
end;
URLLabel:=TLabel.Create(WizardForm);
with URLLabel do begin
Top:=ScaleY(331)-dURL;
Left:=ScaleX(25)-dURL;
Caption:='http://forum.csmania.ru/';
AutoSize:=True;
Parent:=WizardForm;
Cursor:=crHand;
Transparent:=True;
Font.Color:=$708A7A;
Font.Size:=9;
Font.Style:=Font.Style+[fsBold];
BringToFront;
OnClick:=@URLLabelClick;
OnMouseDown:=@URLLabelMouseDown;
OnMouseUp:=@URLLabelMouseUp;
end;
ExtractTemporaryFile('Splash.jpg');
ShowSplashScreen(WizardForm.Handle,ExpandConstant('{tmp}')+'\Splash.jpg',1000,3000,1000,0,255,False, $FFFFFF,10);
ssInitialize(GetWindowLong(MainForm.Handle,-8),0,False,1,$FF000000);
ExtractTemporaryFile('ôîíîâûé ðèñóíîê.jpg');
ssSetBkgImage(ExpandConstant('{tmp}')+'\ôîíîâûé ðèñóíîê.jpg');
WizardForm.TypesCombo.ItemIndex:=0;
WizardForm.BeveledLabel.Enabled:=True;
end;
procedure DeinitializeSetup;
begin
ShowWindow(WizardForm.Handle,0);
UnloadSkin();
ssDeInitialize;
end;
function NextButtonClick(CurPageID: Integer): Boolean;
var
i,j: integer;
s,c: string;
begin
Result := True;
if CurPageID = wpSelectDir then
begin
c := 'ÀÁÂÃÄŨÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäå¸æçèéêëìíîïðñòóôõö÷øùúûüýþÿ';
for i:=1 to length(WizardForm.DirEdit.text) do
for j:=1 to length(c) do
begin
if WizardForm.DirEdit.text[i] = c[j] then
begin
s := 'Â ïóòè óñòàíîâêè ïðèñóòñòâóþò ðóññêèå áóêâû, ÷òî íåäîïóñòèìî'#13#13'Ïîæàëóéñòà, ïîâòîðèòå ââîä.';
MsgBox(s, mbError, mb_Ok);
Result := False ;
exit;
end
else Result := True;
end;
end;
end;