Jump to content
Korean Random

mpmp

User
  • Content Count

    36
  • Joined

  • Last visited

Posts posted by mpmp


  1. Да конечно же никого кроме NooBooL'a это не волнует...все думают NooBооL вечно бред несёт, чё его слушать))

     

    Скоро выйдет чит (по вашему мод) где все 15 танков противника всегда светятся независимо от засвета...

    ...нуу а чё, удобный такой мод, не надо обзор вкачивать, вместо трубы можно усиленные приводы на ПТ поставить))

     

    И никакой это не чит...

    Я же когда стрелять буду могу не попасть, а если попаду то могу и не пробить, так что никакого 100% преимущества нет.

    И в списке запрещённых модификаций WG такого нет...так что ваще никаких вопросов. Просто удобный мод))

     

    :gg:

     

    Уже сделан, красавчик. Что вы ждете ...

     

    https://youtu.be/ydjAjcbznws

     

    https://youtu.be/osdlb1Bu9NY

    • Upvote 1
    • Downvote 3

  2. Помогите сделать оповещение о новом выходе сборки

     !

     

    Ищи тему мода

    Т.к. Больше не поддерживаю, готов продать полностью исходный код модификации. (подробнее в личные сообщения)

    Помогите сделать оповещение о новом выходе сборки.


  3. post-21711-0-91756600-1426247031_thumb.png
     
    Кому то нужно этот код, для очистки модов + cache + Updates, без Back up мод:

    [code]
    var
      BackupPage: TWizardPage;
      DeleteRadioButton: TNewRadioButton;    //== създаваме нова функция и присвояваме свойство TNewRadioButton
      NoneRadioButton: TNewRadioButton;      //== създаваме нова функция и присвояваме свойство TNewRadioButton
      NewCheckBoxClearCache: TNewCheckBox;   //== създаваме нова функция и присвояваме свойство TNewCheckBox
      NewCheckBoxClearUpdate: TNewCheckBox;  //== създаваме нова функция и присвояваме свойство TNewCheckBox
    
    function BackupCheck(): Boolean;
    var
      BackupDescLabel: TLabel;               //==създаваме и присвояваме свойство TLabel - за текст
      BackupDescLabel2: TLabel;              //==създаваме и присвояваме свойство TLabel - за текст
      DeleteDescLabel: TLabel;               //==създаваме и присвояваме свойство TLabel - за текст
      NoneDescLabel: TLabel;                 //==създаваме и присвояваме свойство TLabel - за текст
      NewCheckBoxLabelClearCache: TLabel;    //==създаваме и присвояваме свойство TLabel - за текст
      NewCheckBoxLabelClearUpdate: TLabel;   //==създаваме и присвояваме свойство TLabel - за текст
    
    begin
      BackupPage:=CreateCustomPage(wpSelectDir, '', '');
    //==== Настройки на първия текст над бутоните
      BackupDescLabel:=TLabel.Create(WizardForm);
      BackupDescLabel.Parent:=BackupPage.Surface;
      BackupDescLabel.Left:=30;  //==== Настройки на текста над бутоните за изтриване на старите модове: ляво-дясно и горе-долу
      BackupDescLabel.Top:=10;
      BackupDescLabel.Width:=BackupPage.SurfaceWidth;
      BackupDescLabel.Height:=90;
      BackupDescLabel.AutoSize:=False;
      BackupDescLabel.Wordwrap:=True;
      BackupDescLabel.Caption:=
      'За да бъдат избегнати проблеми със съвместимостта и конфликти между различните модове и модификации,'#13
      'се препоръчва да бъдат изтрити текущите ви модове и модификации от вашия игрови клиент.';
    //==== Настройки на първия текст над бутоните
      BackupDescLabel2:=TLabel.Create(WizardForm);
      BackupDescLabel2.Parent:=BackupPage.Surface;
      BackupDescLabel2.Left:=80;  //==== Настройки на текста над бутоните за изтриване на старите модове: ляво-дясно и горе-долу
      BackupDescLabel2.Top:=50;
      BackupDescLabel2.Width:=BackupPage.SurfaceWidth;
      BackupDescLabel2.Height:=90;
      BackupDescLabel2.AutoSize:=False;
      BackupDescLabel2.Wordwrap:=True;
      BackupDescLabel2.Font.Style := [fsBold, fsItalic];
      BackupDescLabel2.Font.Size:=10;
      //BackupDescLabel2.Font.Color := clMaroon;
      BackupDescLabel2.Font.Name := 'Arial';
      BackupDescLabel2.Caption:=
      'ВНИМАНИЕ!'#13
      'Моля, прочетете важната информция по-долу, преди да продължите:';
    
    //==== Настройки на мястото на бутона и текста за изтриване на папката res_mods
      DeleteRadioButton:=TNewRadioButton.Create(WizardForm);
      DeleteRadioButton.Parent:=BackupPage.Surface;
      DeleteRadioButton.Checked:=False;
      DeleteRadioButton.Left:=80;   //==== местене на изтриващия бутон
      DeleteRadioButton.Top:=100; //120
      DeleteRadioButton.Width:=BackupPage.SurfaceWidth;
      DeleteRadioButton.Font.Style:=[fsBold];
      DeleteRadioButton.Font.Size:=10;
      DeleteRadioButton.Caption:='Изтрий текущите модове и модификации (препоръчително).' //==== Текст на бутона за триене ====\\
      DeleteDescLabel:=TLabel.Create(WizardForm);
      DeleteDescLabel.Parent:=BackupPage.Surface;
      DeleteDescLabel.Left:=80; //==== местене в ляво-дясно на текста под изтриващия бутон
      DeleteDescLabel.Top:=DeleteRadioButton.Top + DeleteRadioButton.Height + 4;
      DeleteDescLabel.Width:=BackupPage.SurfaceWidth;
      DeleteDescLabel.Height:=40;
      DeleteDescLabel.AutoSize:=False;
      DeleteDescLabel.Wordwrap:=True;
      DeleteDescLabel.Caption:='Инсталатора ще почисти съдържанието на папка "res_mods\{#GameVersion}" от текущите ви модове.';
    //==== Настройки на мястото на бутона и текста да не изтрива нищо
      NoneRadioButton:=TNewRadioButton.Create(WizardForm);
      NoneRadioButton.Parent:=BackupPage.Surface;
      NoneRadioButton.Checked:=False;
      NoneRadioButton.Left:=80;  //==== местене на неизтриващия бутон
      NoneRadioButton.Top:=150;
      NoneRadioButton.Width:=BackupPage.SurfaceWidth;
      NoneRadioButton.Font.Style:=[fsBold];
      NoneRadioButton.Font.Size:=10;
      NoneRadioButton.Caption:='Не изтривай текущите модове и модификации.' //==== Текст на неизтриващия бутон ====\\
      NoneDescLabel:=TLabel.Create(WizardForm);
      NoneDescLabel.Parent:=BackupPage.Surface;
      NoneDescLabel.Left:=80;  //==== местене в ляво-дясно на текста под неизтриващия бутон
      NoneDescLabel.Top:=NoneRadioButton.Top + NoneRadioButton.Height + 4;
      NoneDescLabel.Width:=BackupPage.SurfaceWidth;
      NoneDescLabel.Height:=40;
      NoneDescLabel.AutoSize:=False;
      NoneDescLabel.Wordwrap:=True;
      NoneDescLabel.Caption:=
      'Инсталаторът ще остави всичко както е, без да трие текущите ви модове.'#13
      'Тази опция не е препоръчителна, възможно е да възникнат конфликти.';
    //==== Настройки на мястото на бутона и текста за изтриване на КЕША
      NewCheckBoxClearCache:=TNewCheckBox.Create(WizardForm);
      NewCheckBoxClearCache.Parent:=BackupPage.Surface;
      NewCheckBoxClearCache.Checked:=False;
      NewCheckBoxClearCache.Left:=100;   //==== местене на бутона
      NewCheckBoxClearCache.Top:=225;
      NewCheckBoxClearCache.Width:=BackupPage.SurfaceWidth;
      NewCheckBoxClearCache.Font.Style:=[fsBold];
      NewCheckBoxClearCache.Font.Size:=9;
      NewCheckBoxClearCache.Caption:='Изтрий кеша (cache) на играта (препоръчително).' //==== Текст на бутона за триене ====\\
      NewCheckBoxLabelClearCache:=TLabel.Create(WizardForm);
      NewCheckBoxLabelClearCache.Parent:=BackupPage.Surface;
      NewCheckBoxLabelClearCache.Left:=100; //==== местене в ляво-дясно на текста под изтриващия бутон
      NewCheckBoxLabelClearCache.Top:=NewCheckBoxClearCache.Top + NewCheckBoxClearCache.Height + 4;
      NewCheckBoxLabelClearCache.Width:=BackupPage.SurfaceWidth;
      NewCheckBoxLabelClearCache.Height:=40;
      NewCheckBoxLabelClearCache.AutoSize:=False;
      NewCheckBoxLabelClearCache.Wordwrap:=True;
      NewCheckBoxLabelClearCache.Caption:='Инсталатора ще почисти папката с кеша(cache) на играта ви, без да изтрива'#13
      'файла с настройките (preferences.XML).';
    //==== Настройки на мястото на бутона и текста за изтриване на папка Updates
      NewCheckBoxClearUpdate:=TNewCheckBox.Create(WizardForm);
      NewCheckBoxClearUpdate.Parent:=BackupPage.Surface;
      NewCheckBoxClearUpdate.Checked:=False;
      NewCheckBoxClearUpdate.Left:=100;   //==== местене на изтриващия бутон
      NewCheckBoxClearUpdate.Top:=280;
      NewCheckBoxClearUpdate.Width:=BackupPage.SurfaceWidth;
      NewCheckBoxClearUpdate.Font.Style:=[fsBold];
      NewCheckBoxClearUpdate.Font.Size:=9;
      NewCheckBoxClearUpdate.Caption:='Изтрий файловете за ъпдейтите в играта ви.' //==== Текст на бутона за триене ====\\
      NewCheckBoxLabelClearUpdate:=TLabel.Create(WizardForm);
      NewCheckBoxLabelClearUpdate.Parent:=BackupPage.Surface;
      NewCheckBoxLabelClearUpdate.Left:=100; //==== местене в ляво-дясно на текста под изтриващия бутон
      NewCheckBoxLabelClearUpdate.Top:=NewCheckBoxClearUpdate.Top + NewCheckBoxClearUpdate.Height + 4;
      NewCheckBoxLabelClearUpdate.Width:=BackupPage.SurfaceWidth;
      NewCheckBoxLabelClearUpdate.Height:=40;
      NewCheckBoxLabelClearUpdate.AutoSize:=False;
      NewCheckBoxLabelClearUpdate.Wordwrap:=True;
      NewCheckBoxLabelClearUpdate.Caption:='Инсталатора ще почисти папка Updates в играта ви и ще освободи дисково място.';
    end;
    ///=== функцията за изтриване на папката res_mods
    function DeleteOldMods(): Boolean;
    begin
      If DeleteRadioButton.Checked then
    begin
      WizardForm.ProgressGauge.Hide;
      WizardForm.StatusLabel.Caption:='Изтриване на файловете...';
      DelTree(ExpandConstant('{app}\res_mods'), True, True, True);
      CreateDir(ExpandConstant('{app}\res_mods'));
      CreateDir(ExpandConstant('{app}\res_mods\{#GameVersion}'));
      WizardForm.ProgressGauge.Show;
      WizardForm.StatusLabel.Caption:=SetupMessage(msgStatusExtractFiles);
    end;
    end;
    ///=== функцията за КЕША ==== Изтриваме кешовите папки и ги създаваме наново, вече чисти.
    function ClearCacheCreate(): Boolean;
    begin
      If NewCheckBoxClearCache.Checked then
    begin
      WizardForm.ProgressGauge.Hide;
      WizardForm.StatusLabel.Caption:='Трием кеша...';
      //=== трие кешовите папки
      DelTree(ExpandConstant('{userappdata}\wargaming.net\WorldOfTanks\account_caches'), True, True, True);
      DelTree(ExpandConstant('{userappdata}\wargaming.net\WorldOfTanks\battle_results'), True, True, True);
      DelTree(ExpandConstant('{userappdata}\wargaming.net\WorldOfTanks\custom_data'), True, True, True);
      DelTree(ExpandConstant('{userappdata}\wargaming.net\WorldOfTanks\dossier_cache'), True, True, True);
      DelTree(ExpandConstant('{userappdata}\wargaming.net\WorldOfTanks\messenger_cache'), True, True, True);
      DelTree(ExpandConstant('{userappdata}\wargaming.net\WorldOfTanks\tutorial_cache'), True, True, True);
      DelTree(ExpandConstant('{userappdata}\wargaming.net\WorldOfTanks\xvm'), True, True, True);
      //=== създава ги наново, вече чисти.
      CreateDir(ExpandConstant('{userappdata}\wargaming.net\WorldOfTanks\account_caches'));
      CreateDir(ExpandConstant('{userappdata}\wargaming.net\WorldOfTanks\battle_results'));
      CreateDir(ExpandConstant('{userappdata}\wargaming.net\WorldOfTanks\custom_data'));
      CreateDir(ExpandConstant('{userappdata}\wargaming.net\WorldOfTanks\dossier_cache'));
      CreateDir(ExpandConstant('{userappdata}\wargaming.net\WorldOfTanks\messenger_cache'));
      CreateDir(ExpandConstant('{userappdata}\wargaming.net\WorldOfTanks\tutorial_cache'));
      CreateDir(ExpandConstant('{userappdata}\wargaming.net\WorldOfTanks\xvm'));
      WizardForm.ProgressGauge.Show;
      WizardForm.StatusLabel.Caption:=SetupMessage(msgStatusExtractFiles);
    end;
    end;
    ///=== функцията да трием и след това създаване наново папка Updates
    function ClearUpdate(): Boolean;
    begin
      If NewCheckBoxClearUpdate.Checked then
    begin
       WizardForm.ProgressGauge.Hide;
       WizardForm.StatusLabel.Caption:='Трием update файловете...';
       DelTree(ExpandConstant('{app}\Updates'), True, True, True);   //== изтрива я
       CreateDir(ExpandConstant('{app}\Updates'));                   //== създава я наново
       WizardForm.ProgressGauge.Show;
       WizardForm.StatusLabel.Caption:=SetupMessage(msgStatusExtractFiles);
    end;
    end;
    ///=== процедурите за изпълнение на функциите
    procedure CurStepChanged(CurStep: TSetupStep);
    begin
      If CurStep=ssInstall then
    begin
      DeleteOldMods();
      ClearCacheCreate();
      ClearUpdate();
    end;
    end;
    
    procedure InitializeWizard();
    begin
      BackupCheck();
    end;
    



    @AtotIK
    Вопрос:
    Как изменить цвет BackUp страница (верхний код) и добавить картинка ?
    • Upvote 1

  4. Вот так прекрасно удаляется:

     

    DelTree(ExpandConstant('{userappdata}\wargaming.net\WorldOfTanks\account_caches'), True, True, True);
    

    Для разных систем {userappdata} имеет разные значения, но дальше игрой создаются папки по такому пути 100%. Возможно с папками обошлись вот так: тык! или ещё инфа.

    Перенесли с SSD на другой диск и обманули систему.

     

    Таким образом, работает и удаляет.

    Спасибо.


  5. Не хочет очистить кэш, где проблема:
     

    [Code]
    var
      BackupPage: TWizardPage;
      DeleteRadioButton, NoneRadioButton: TNewRadioButton;
      NewCheckBox1: TNewCheckBox;
    
    function BackupCheck(): Boolean;
    var
      BackupDescLabel, DeleteDescLabel, NewCheckBoxLabel, NoneDescLabel: TLabel;
    
    begin
      BackupPage:=CreateCustomPage(wpSelectDir, '', '');
      BackupDescLabel:=TLabel.Create(WizardForm);
      BackupDescLabel.Parent:=BackupPage.Surface;
      BackupDescLabel.Left:=30;  //==== Настройки на текста над бутоните за изтриване на старите модове: ляво-дясно и горе-долу
      BackupDescLabel.Top:=20;
      BackupDescLabel.Width:=BackupPage.SurfaceWidth;
      BackupDescLabel.Height:=90;
      BackupDescLabel.AutoSize:=False;
      BackupDescLabel.Wordwrap:=True;
      BackupDescLabel.Caption:='За да бъдат избегнати проблеми със съвместимостта и конфликти между различните модове (модификации), '#13'се препоръчва да бъдат изтрити текущите ви модове(модификации) от вашия игрови клиент.' #13#13 'Изберете една от двете опции:'#13'Да бъде изчистена от текущите ви модове, съдържанието на папката "res_mods\{#GameVersion}", или'#13'Да не се изтрива нищо от съдържанието й.';
    
      DeleteRadioButton:=TNewRadioButton.Create(WizardForm);
      DeleteRadioButton.Parent:=BackupPage.Surface;
      DeleteRadioButton.Checked:=False;
      DeleteRadioButton.Left:=100;   //==== местене на изтриващия бутон
      DeleteRadioButton.Top:=140;
      DeleteRadioButton.Width:=BackupPage.SurfaceWidth;
      DeleteRadioButton.Font.Style:=[fsBold];
      DeleteRadioButton.Font.Size:=9;
      DeleteRadioButton.Caption:='Изтрий текущите модове (модификации)' //==== Текст на бутона за триене ====\\
      DeleteDescLabel:=TLabel.Create(WizardForm);
      DeleteDescLabel.Parent:=BackupPage.Surface;
      DeleteDescLabel.Left:=100; //==== местене в ляво-дясно на текста под изтриващия бутон
      DeleteDescLabel.Top:=DeleteRadioButton.Top + DeleteRadioButton.Height + 4;
      DeleteDescLabel.Width:=BackupPage.SurfaceWidth;
      DeleteDescLabel.Height:=40;
      DeleteDescLabel.AutoSize:=False;
      DeleteDescLabel.Wordwrap:=True;
      DeleteDescLabel.Caption:='Инсталатора ще изтрие съдържанието на папката с текущите модове.';
    
      NoneRadioButton:=TNewRadioButton.Create(WizardForm);
      NoneRadioButton.Parent:=BackupPage.Surface;
      NoneRadioButton.Checked:=False;
      NoneRadioButton.Left:=100;  //==== местене на неизтриващия бутон
      NoneRadioButton.Top:=200;
      NoneRadioButton.Width:=BackupPage.SurfaceWidth;
      NoneRadioButton.Font.Style:=[fsBold];
      NoneRadioButton.Font.Size:=9;
      NoneRadioButton.Caption:='Не изтривай текущите модове (модификации)' //==== Текст на неизтриващия бутон ====\\
      NoneDescLabel:=TLabel.Create(WizardForm);
      NoneDescLabel.Parent:=BackupPage.Surface;
      NoneDescLabel.Left:=100;  //==== местене в ляво-дясно на текста под неизтриващия бутон
      NoneDescLabel.Top:=NoneRadioButton.Top + NoneRadioButton.Height + 4;
      NoneDescLabel.Width:=BackupPage.SurfaceWidth;
      NoneDescLabel.Height:=40;
      NoneDescLabel.AutoSize:=False;
      NoneDescLabel.Wordwrap:=True;
      NoneDescLabel.Caption:='Инсталаторът ще остави всичко както е, без да трие текущите ви модове.';
    
      NewCheckBox1:=TNewCheckBox.Create(WizardForm);
      NewCheckBox1.Parent:=BackupPage.Surface;
      NewCheckBox1.Checked:=False;
      NewCheckBox1.Left:=100;   //==== местене на изтриващия бутон
      NewCheckBox1.Top:=240;
      NewCheckBox1.Width:=BackupPage.SurfaceWidth;
      NewCheckBox1.Font.Style:=[fsBold];
      NewCheckBox1.Font.Size:=9;
      NewCheckBox1.Caption:='Опит за летене' //==== Текст на бутона за триене ====\\
      NewCheckBoxLabel:=TLabel.Create(WizardForm);
      NewCheckBoxLabel.Parent:=BackupPage.Surface;
      NewCheckBoxLabel.Left:=100; //==== местене в ляво-дясно на текста под изтриващия бутон
      NewCheckBoxLabel.Top:=NewCheckBox1.Top + NewCheckBox1.Height + 4;
      NewCheckBoxLabel.Width:=BackupPage.SurfaceWidth;
      NewCheckBoxLabel.Height:=40;
      NewCheckBoxLabel.AutoSize:=False;
      NewCheckBoxLabel.Wordwrap:=True;
      NewCheckBoxLabel.Caption:='Втори опит за летене'
    end;
    
    function BackupCheck_1(): Boolean;
    begin
      If DeleteRadioButton.Checked then
    begin
      WizardForm.ProgressGauge.Hide;
      WizardForm.StatusLabel.Caption:='Изтриване на файловете...';
      DelTree(ExpandConstant('{app}\res_mods'), True, True, True);
      CreateDir(ExpandConstant('{app}\res_mods'));
      CreateDir(ExpandConstant('{app}\res_mods\{#GameVersion}'));
      WizardForm.ProgressGauge.Show;
      WizardForm.StatusLabel.Caption:=SetupMessage(msgStatusExtractFiles);
    end;
    end;
    
    function ClearCacheCreate(): Boolean;
    begin
      If NewCheckBox1.Checked then
    begin
      WizardForm.ProgressGauge.Hide;
      WizardForm.StatusLabel.Caption:='Трием кеша...';
      DelTree(ExpandConstant('{userappdata}\Roaming\wargaming.net\WorldOfTanks\account_caches'), True, True, True);
      DelTree(ExpandConstant('{userappdata}\Roaming\wargaming.net\WorldOfTanks\battle_results'), True, True, True);
      DelTree(ExpandConstant('{userappdata}\Roaming\wargaming.net\WorldOfTanks\custom_data'), True, True, True);
      DelTree(ExpandConstant('{userappdata}\Roaming\wargaming.net\WorldOfTanks\dossier_cache'), True, True, True);
      DelTree(ExpandConstant('{userappdata}\Roaming\wargaming.net\WorldOfTanks\messenger_cache'), True, True, True);
      DelTree(ExpandConstant('{userappdata}\Roaming\wargaming.net\WorldOfTanks\tutorial_cache'), True, True, True);
      DelTree(ExpandConstant('{userappdata}\Roaming\wargaming.net\WorldOfTanks\xvm'), True, True, True);
      WizardForm.ProgressGauge.Show;
      WizardForm.StatusLabel.Caption:=SetupMessage(msgStatusExtractFiles);
    end;
    end;
    
    procedure CurStepChanged(CurStep: TSetupStep);
    begin
      If CurStep=ssInstall then
    begin
      BackupCheck_1();
      ClearCacheCreate();
    end;
    end;
    
    procedure InitializeWizard();
    begin
      BackupCheck();
    end;
    


  6. mpmp, поверь ты мне: скина хватает и для одного окна установки, для деинсталлятора его прикручивать нет никакого смысла. Это как мёртвому припарка.

     
    #ifdef UNICODE
        #define A "U"
    #else
        #define A "A"
    #endif
    
    [Setup]
    AppName=ISSkin Example
    AppVersion=1.0.0.0
    DefaultDirName={pf}\ISSkin
    
    [Files]
    Source: "Embedded\ISSkinEx{#A}.dll"; DestDir: "{tmp}"; Flags: dontcopy;
    Source: "Embedded\Skin.cjstyles"; DestDir: "{tmp}"; Flags: dontcopy;
    
    [~~~~~~~~~~~если ты хоть что-то соображаешь, то поймёшь что надо с этим делать~~~~~~~~~~~Code~~~~~~~~~~~если ты хоть что-то соображаешь, то поймёшь что надо с этим делать~~~~~~~~~~~]
    procedure LoadSkin(lpszPath: String; lpszIniFileName: String); external 'LoadSkin@files:isskinex{#A}.dll stdcall';
    procedure UnloadSkin(); external 'UnloadSkin@files:isskinex{#A}.dll stdcall';
    function ShowWindow(hWnd: Integer; uType: Integer): Integer; external '[email protected] stdcall';
    
    function InitializeSetup(): Boolean;
    begin
      ExtractTemporaryFile('Skin.cjstyles');
      LoadSkin(ExpandConstant('{tmp}\Skin.cjstyles'), 'NormalBlack.ini');
      Result:=True;
    end;
    
    procedure DeinitializeSetup();
    begin
      ShowWindow(StrToInt(ExpandConstant('{wizardhwnd}')), 0);
      UnloadSkin();
    end;
    

     

    Я сейчас понял, именно то, что ты послал меня.facepalmic.gif

    Было неудобно то спросить еще раз и еще раз ...

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

    Еще раз спасибо.


  7. Не получается:

     

    #define ISTask  "ISTask.dll"
    [Files]
    Source: Files\{#ISTask}; Flags: dontcopy
    [code]
    //////////==== Проверка правилността на папката на играта - търси ехе файла на WoT ====\\
    function NextButtonClick1(CurPageID: Integer): Boolean;
    begin
    Result := True;
    case CurPageID of
    wpSelectDir:
    if not FileExists(ExpandConstant('{app}\WorldOfTanks.exe')) then
    begin
    MsgBox('Неправилно указана папката на World of Tanks!', mbError, MB_OK);
    Result := False;
    end;
    end;
    end;
    //////////====| До тук са редовете за проверка правилността на папката на играта |====\\
    
    //////====== запущенной игре
    function KillTask(ExeFileName: string): Integer;
      external 'KillTask@files:ISTaskU.dll stdcall';
    
    function RunTask(FileName: string; bFullpath: Boolean): Boolean;
      external 'RunTask@files:ISTaskU.dll stdcall';
    
    function InitializeSetup1(): Boolean;
    begin
      If RunTask('WorldOfTanks.exe', false) then begin
        if MsgBox('ВНИМАНИЕ!' #13 'НЕ рекомендуется устанавливать при запущенной игре.' #13 'Закрыть WorldOfTanks и продолжить установку?', mbError, mb_YesNo) = idYes then begin
          KillTask('WorldOfTanks.exe');
          Result := True;
        end else
          Exit;
        end;
      Result := True;
     end;
    ////////////=== END запущенной игре
    
    Function InitializeSetup(): Boolean;
    begin
     InitializeSetup1();
     InitializeWizard1();
    Result := True;
    end;
    
    post-21711-0-41117500-1424779419_thumb.png

  8. На примере иконки деинсталлятора:

     

    ...

     

    Можно так же:

    [Iсons]
    Name: "{commondesktop}\Название_ярлыка"; Filename: "C:\Windows\программа.exe"; IconFilename: "{app}\Icon.ico"; Check: IconChecker

     

    Ъф корсе facepalmic.gif

    Большое спасибо.

    +

     

    И все это из-за этот мод: Один клиент для игры на разных серверах [RU-EU-AISA]


  9. @mpmp, если я правильно вас понял, вам нужно что-то типа этого:

    [Components]
    Name: MMP\ZO; Description:1.Zoom.;
    
    [Icons]
    Name: "{commondesktop}\Название_ярлыка"; Filename: "C:\Windows\программа.exe"; Check: IconChecker
    
    [Code]
    Function IconChecker(): Boolean;
    begin
     Result := IsComponentSelected('MMP\ZO');
    end;
    

     

    Абсолютно правильно меня поняли, хотя мой русский. :)

    Золотой человек.

    Большое спасибо.

     

    И еще один вопрос:

    Как сделать так, что выбрать (изменить) вида значок ярлыка ?


  10. Привет, ребята.

     

    Вопрос от меня:

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

    Может быть необходимо добавить что-то в [Components] --> Flags:

    [Components]
    Name: MMP\ZO; Description:1.Zoom.; Flags: ???? что-то ?????;
    
    Не следует путаться, я не прошу для этого кода:

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

    [Icons]
    Name: "{commondesktop}\Название_ярлыка"; Filename: "C:\Windows\программа.exe";
    
     

    Заранее спасибо.


  11. Вот такая проблема:
    Изменил skin.
    Использовал этот script:

    [Files]
    Source: Files\skin.cjstyles; DestDir: {app}; Attribs: hidden system
    Source: Files\ISSkin.dll; DestDir: {app}; Attribs: hidden system
    
    [code]
    procedure LoadSkin(lpszPath: PAnsiChar; lpszIniFileName: PAnsiChar); external 'LoadSkin@{tmp}\isskin.dll stdcall delayload';
    procedure UnloadSkin; external 'UnloadSkin@{tmp}\isskin.dll stdcall delayload';
    
    function InitializeSetup: boolean;
    begin
      if not FileExists(ExpandConstant('{tmp}\isskin.dll')) then ExtractTemporaryFile('isskin.dll');
      if not FileExists(ExpandConstant('{tmp}\skin.cjstyles')) then ExtractTemporaryFile('skin.cjstyles');
      LoadSkin(ExpandConstant('{tmp}\skin.cjstyles'), '');
      Result:=True;
    end;
    
    function InitializeUninstall: boolean;
    begin
      FileCopy(ExpandConstant('{app}\uninstall\isskin.dll'), ExpandConstant('{tmp}\isskin.dll'), False);
      FileCopy(ExpandConstant('{app}\uninstall\skin.cjstyles'), ExpandConstant('{tmp}\skin.cjstyles'), False);
      LoadSkin(ExpandConstant('{tmp}\skin.cjstyles'), '');
      Result:=True;
    end;
    

    Стало хорошо, но после попытки Uninstall мод пакет, дает эту ошибку и не удаляет пакета:

    post-21711-0-55665900-1407655108_thumb.png

     

    А ето мой основной:

    projekt_mpmp.zip

     


  12. Это производит очисту папки ?

    function DeleteMods(): Boolean;

    begin

    If NewCheckBox1.Checked then

    begin

    DelTree(ExpandConstant('{app}\res_mods\{#Patch}'), True, True, True);

    DelTree(ExpandConstant('{app}\res_mods\xvm'), True, True, True);

    CreateDir(ExpandConstant('{app}\res_mods\{#Patch}'));

    end;

    end;

     

     

     

    спасибо!

     

    Я би менял так:

    function DeleteMods(): Boolean;
    begin
    If NewCheckBox1.Checked then
    begin
    DelTree(ExpandConstant('{app}\res_mods'), True, True, True);
    CreateDir(ExpandConstant('{app}\res_mods'));
    CreateDir(ExpandConstant('{app}\res_mods\{#Patch}'));
    end;
    end;
    

     

    EDIT: Если вы хотите установщик поставить удаления в отдельной папке игры:

     
    #define UninstallFilesDir "Имя папке вашего деинсталлятора"
    [Setup]
    UninstallFilesDir={app}\{#UninstallFilesDir}

  13. Может и проще. Музыку вообще в одну строчку можно добавить (играет и играет себе фоном, без всяких кнопок вкл/выкл), но тогда я вообще мало что смыслил в Inno. Это все пробы и изучение программы. Я ведь только учусь :-)

    А за код спасибо. Можно и пригодится куда-нибудь.

    Я тоже учусь.

     

    Уважаемые, вот что получилась с вашей помощью.

    Надеюсь поможет вам в создании своей сборки.

    Мой проект: LINK - DOWNLOAD

    Есть фотографии модов, есть музыка.

    Спасибо за помощью EvilAlex и Atotik.

    Не удалось сделать описания модов и музыку кнопок вкл/выкл.

     

    0dc1fe4958f6.png

    73fe717ddf28.png

    6be339798e72.png


  14. Разобрался, как запускается музыка в скрипте из поста от Ckaym. В данном виде, как он выложен, скрипт не работает.

    Нашел одну ошибку в нем: тип PChar (он не поддерживается прогой) надо заменить на тип PAnsiChar. И тогда он начинает работать.

    Вот такая штука получилась в результате для запуска музыки при старте инсталлятора. Гляньте, уважаемый. Комментарии и корректировки будут? :ok:

    //подключаем ресурсы и библиотеки\\

    [Files]

    Source: "bass.dll"; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression

    Source: "innocallback.dll"; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression

    Source: "Music.MP3"; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression

     

     //задаем процедуры, переменные и константы\\typeHSTREAM=DWORD;TTimerProc=procedure(uTimerID,uMessage:UINT;dwUser,dw1,dw2:DWORD);constIndent=25;varMP3List:TStringList;CurrentMP3:integer;hMP3:HWND;TimerID:LongWord;//создаем функции\\function SetTimer(hWnd:HWND;nIDEvent,uElapse:UINT;lpTimerFunc:LongWord{TFNTimerProc}):UINT; external '[email protected] stdcall delayload';function BASS_ChannelIsActive(Handle:HWND):DWORD; external 'BASS_ChannelIsActive@files:bass.dll stdcall';function BASS_SetConfig(Option,Value:DWORD):DWORD; external 'BASS_SetConfig@files:bass.dll 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:PAnsiChar;Offset:DWORD;Length:DWORD;Flags:DWORD):HSTREAM; external 'BASS_StreamCreateFile@files:bass.dll stdcall';function BASS_StreamFree(Handle:HWND):boolean; external 'BASS_StreamFree@files:bass.dll stdcall';function BASS_ChannelPlay(Handle:HWND;Restart:boolean):boolean; external 'BASS_ChannelPlay@files:bass.dll stdcall';function BASS_Start: Boolean; external 'BASS_Start@files:bass.dll stdcall';function BASS_Stop: Boolean; external 'BASS_Stop@files:bass.dll stdcall';

    function BASS_Free: Boolean; external 'BASS_Free@files:bass.dll stdcall delayload';

    function WrapTimerProc(CallBack:TTimerProc;ParamCount:integer):LongWord; external 'wrapcallback@files:innocallback.dll stdcall';

     

    //ну, и сам код запуска музыки\\

    procedure TimerTick(uTimerID,uMessage:UINT;dwUser,dw1,dw2:DWORD);

    begin

    if BASS_ChannelIsActive(hMP3)=0 then begin

    BASS_Stop;

    BASS_StreamFree(hMP3);

    hMP3:=BASS_StreamCreateFile(False,PAnsiChar(MP3List.Strings[CurrentMP3]),0,0,0);

    BASS_Start;

    if hMP3<>0 then

    if BASS_ChannelPlay(hMP3,True) then begin

    CurrentMP3:=CurrentMP3+1;

    if CurrentMP3>MP3List.Count-1 then CurrentMP3:=0;

    end;

    end;

    end;

    function InitializeSetup:boolean;

    begin

    ExtractTemporaryFile('Music.MP3');

    MP3List:=TStringList.Create;

    MP3List.Add(ExpandConstant('{tmp}')+'\Music.MP3');

    CurrentMP3:=0;

    Result:=True;

    end;

    procedure InitializeWizard;

    begin

    TimerID:=SetTimer(0,0,500,WrapTimerProc(@TimerTick,5));

    BASS_Init(-1,44100,0,0,0);

    BASS_SetConfig(5,100);

    BASS_SetConfig(6,100);

    end;

    procedure DeinitializeSetup;

    begin

    BASS_Stop;

    BASS_Free;

    MP3List.Free;

    end;

    Это решение не проще?

    music.rar

     

    Link2


  15. 9d3b9d77b3a68d860ac903675f0269d4115b6b76

    Ставлю в секцию [ code ]И оно ругается 

     

    Хоть я и сам много прошу,но ты ОЧЕНЬ сильно наглеешь,успокойся 

     

    Мой код должен быть вставлен в код AtotIK.

    Я не могу это объяснить в двух словах.

    Просто посмотрите на ссылки.

    • Upvote 1

  16. 6b720d647ed6c94ee06eb0cf226d67dc61bf1b21

    Как ты изменил размеры этого компонента? 

    //====={ Настройки на страниците )=====\\
      with WizardForm.Bevel do
      begin
        Top := ScaleY(393);
        Width := ScaleX(705);
        Height := ScaleY(82);
      end;
      with WizardForm.CancelButton do
      begin
        Left := ScaleX(512);
        Top := ScaleY(416);
      end;
      with WizardForm.NextButton do
      begin
        Left := ScaleX(423);
        Top := ScaleY(416);
      end;
      with WizardForm.BackButton do
      begin
        Left := ScaleX(340);
        Top := ScaleY(416);
      end;
      with WizardForm.OuterNotebook do
      begin
        Width := ScaleX(705);
        Height := ScaleY(393);
      end;
      with WizardForm.WizardBitmapImage do
      begin
        Left := ScaleX(-40);
        Top := ScaleY(-16);
        Width := ScaleX(652);
        Height := ScaleY(402);
      end;
      with WizardForm.WelcomeLabel2 do
      begin
        Enabled := False;
        Left := ScaleX(112);
        Top := ScaleY(135);
      end;
      with WizardForm.WelcomeLabel1 do
      begin
        Enabled := False;
        Left := ScaleX(72);
        Top := ScaleY(40);
      end;
      with WizardForm.Bevel1 do
      begin
        Top := ScaleY(57);
        Height := ScaleY(17);
      end;
      with WizardForm.InnerNotebook do
      begin
        Left := ScaleX(8);
        Top := ScaleY(64);
        Width := ScaleX(697);
        Height := ScaleY(341);
      end;
      with WizardForm.LicenseNotAcceptedRadio do
      begin
        Left := ScaleX(16);
        Top := ScaleY(304);
      end;
      with WizardForm.LicenseAcceptedRadio do
      begin
        Left := ScaleX(16);
        Top := ScaleY(284);
      end;
      with WizardForm.LicenseMemo do
      begin
        Left := ScaleX(8);
        Width := ScaleX(577);
        Height := ScaleY(244);
      end;
      with WizardForm.LicenseLabel1 do
      begin
        Left := ScaleX(16);
        Width := ScaleX(569);
        Height := ScaleY(35);
      end;
      with WizardForm.PasswordEdit do
      begin
        Left := ScaleX(72);
      end;
      with WizardForm.PasswordEditLabel do
      begin
        Left := ScaleX(72);
      end;
      with WizardForm.PasswordLabel do
      begin
        Left := ScaleX(72);
      end;
      with WizardForm.InfoBeforeMemo do
      begin
        Left := ScaleX(8);
        Top := ScaleY(40);
        Width := ScaleX(585);
        Height := ScaleY(277);
      end;
      with WizardForm.InfoBeforeClickLabel do
      begin
        Left := ScaleX(16);
        Width := ScaleX(569);
        Height := ScaleY(30);
      end;
      with WizardForm.UserInfoSerialEdit do
      begin
        Left := ScaleX(104);
        Width := ScaleX(409);
      end;
      with WizardForm.UserInfoSerialLabel do
      begin
        Left := ScaleX(104);
      end;
      with WizardForm.UserInfoOrgEdit do
      begin
        Left := ScaleX(104);
      end;
      with WizardForm.UserInfoOrgLabel do
      begin
        Left := ScaleX(104);
      end;
      with WizardForm.UserInfoNameEdit do
      begin
        Left := ScaleX(104);
      end;
      with WizardForm.UserInfoNameLabel do
      begin
        Left := ScaleX(104);
      end;
      with WizardForm.SelectDirBitmapImage do
      begin
        Left := ScaleX(56);
        Top := ScaleY(25);
        Width := ScaleX(40);
        Height := ScaleY(38);
      end;
      with WizardForm.DiskSpaceLabel do
      begin
        Left := ScaleX(56);
        Top := ScaleY(208);
        Width := ScaleX(497);
        Height := ScaleY(38);
      end;
      with WizardForm.DirBrowseButton do
      begin
        Left := ScaleX(478);
        Top := ScaleY(149);
      end;
      with WizardForm.DirEdit do
      begin
        Left := ScaleX(56);
        Top := ScaleY(149);
        Width := ScaleX(417);
      end;
      with WizardForm.SelectDirBrowseLabel do
      begin
        Left := ScaleX(56);
        Top := ScaleY(76);
        Width := ScaleX(497);
        Height := ScaleY(70);
      end;
      with WizardForm.SelectDirLabel do
      begin
        Left := ScaleX(100);
        Top := ScaleY(25);
        Width := ScaleX(453);
        Height := ScaleY(46);
      end;
    //====={ Прозореца с избора на модовете }=====\\
      with WizardForm.ComponentsDiskSpaceLabel do
      begin
        Left := ScaleX(8);
        Top := ScaleY(312);
      end;
      with WizardForm.ComponentsList do
      begin
        Left := ScaleX(0);     //== разстоянието от ляво.
        Top := ScaleY(37);     //== разстоянието от горе.
        Width := ScaleX(345);  //== широчина на прозореца. 315
        Height := ScaleY(272); //== височина на прозореца.
      end;
      with WizardForm.TypesCombo do
      begin
        Left := ScaleX(8);
        Width := ScaleX(577);
        Enabled := False;
      end;
      with WizardForm.SelectComponentsLabel do
      begin
        Left := ScaleX(8);
        Top := ScaleY(8);
        Width := ScaleX(569);
      end;
      with WizardForm.SelectGroupBitmapImage do
      begin
        Left := ScaleX(120);
      end;
      with WizardForm.NoIconsCheck do
      begin
        Left := ScaleX(120);
      end;
      with WizardForm.GroupBrowseButton do
      begin
        Left := ScaleX(462);
        Top := ScaleY(66);
      end;
      with WizardForm.GroupEdit do
      begin
        Left := ScaleX(120);
      end;
      with WizardForm.SelectStartMenuFolderBrowseLabel do
      begin
        Left := ScaleX(120);
      end;
      with WizardForm.SelectStartMenuFolderLabel do
      begin
        Left := ScaleX(164);
      end;
      with WizardForm.TasksList do
      begin
        Left := ScaleX(88);
        Top := ScaleY(69);
      end;
      with WizardForm.SelectTasksLabel do
      begin
        Left := ScaleX(88);
        Top := ScaleY(32);
      end;
      with WizardForm.ReadyMemo do
      begin
        Left := ScaleX(8);
        Top := ScaleY(16);
        Width := ScaleX(577);
        Height := ScaleY(309);
      end;
      with WizardForm.ReadyLabel do
      begin
        Left := ScaleX(8);
        Width := ScaleX(569);
      end;
      with WizardForm.PreparingErrorBitmapImage do
      begin
        Left := ScaleX(40);
      end;
      with WizardForm.PreparingLabel do
      begin
        Left := ScaleX(64);
      end;
      with WizardForm.PreparingYesRadio do
      begin
        Left := ScaleX(64);
        Top := ScaleY(257);
      end;
      with WizardForm.PreparingNoRadio do
      begin
        Left := ScaleX(64);
        Top := ScaleY(279);
      end;
      with WizardForm.PreparingMemo do
      begin
        Left := ScaleX(64);
      end;
      with WizardForm.FilenameLabel do
      begin
        Left := ScaleX(104);
        Top := ScaleY(48);
      end;
      with WizardForm.StatusLabel do
      begin
        Left := ScaleX(104);
        Top := ScaleY(16);
      end;
      with WizardForm.ProgressGauge do
      begin
        Left := ScaleX(104);
        Top := ScaleY(82);
      end;
      with WizardForm.InfoAfterMemo do
      begin
        Left := ScaleX(8);
        Top := ScaleY(32);
        Width := ScaleX(577);
        Height := ScaleY(293);
      end;
      with WizardForm.InfoAfterClickLabel do
      begin
        Left := ScaleX(8);
        Width := ScaleX(577);
        Height := ScaleY(30);
      end;
      with WizardForm.MainPanel do
      begin
        Width := ScaleX(609);
      end;
      with WizardForm.WizardSmallBitmapImage do
      begin
        Left := ScaleX(0);
        Top := ScaleY(2);
        Width := ScaleX(607);
      end;
      with WizardForm.PageDescriptionLabel do
      begin
        Left := ScaleX(104);
        Top := ScaleY(10);
        Width := ScaleX(373);
      end;
      with WizardForm.PageNameLabel do
      begin
        Left := ScaleX(88);
      end;
      with WizardForm.WizardBitmapImage2 do
      begin
        Width := ScaleX(610);
        Height := ScaleY(450);
      end;
      with WizardForm.RunList do
      begin
        Top := ScaleY(172);
      end;
    //==== Край на настройки на страниците =====\\

    post-21711-0-55337000-1399031860_thumb.png

×
×
  • Create New...