1. Уважаемые гости и пользователи форума.
    Администрация настоятельно рекомендует не регистрировать несколько аккаунтов для одного пользователя. При выявлении наличия мультиаккаунтов будут заблокированы все учетные записи данного пользователя.
    Аккаунты, зарегистрированные на временную почту будут также заблокированы.

Скрипт Need for Speed: ProStreet 1.1

Скрипт Need for Speed: ProStreet

  1. Ветеран

    Регистрация:
    13 фев 2012
    Сообщения:
    268
    Симпатии:
    111
    Пользователь Adil разместил новый ресурс:

    Need for Speed: ProStreet - Скрипт Need for Speed: ProStreet

    Узнать больше об этом ресурсе...
     
    Loner, urban и sergey3695 нравится это.
  2. Старожил

    Регистрация:
    5 мар 2014
    Сообщения:
    1
    Симпатии:
    0
    Пол:
    Мужской
    Но понять не могу как поставить Splash и Logo?
     
  3. Ветеран Модератор

    Регистрация:
    26 июн 2011
    Сообщения:
    1.049
    Симпатии:
    703
    super.maloy1992, лого в фотошопе нарисовать поверх картинок можно. Splash и отключение формы выбора языка я прикрутил. Замени и добавь файлы что залил в скрипте.
     

    Вложения:

    Adil нравится это.
  4. Ветеран

    Регистрация:
    31 мар 2015
    Сообщения:
    310
    Симпатии:
    157
    Пол:
    Мужской
    Самое простое, что приходит в голову - создать кнопку ...
     
    Adil нравится это.
  5. Ветеран

    Регистрация:
    31 мар 2015
    Сообщения:
    310
    Симпатии:
    157
    Пол:
    Мужской
    Да это так, шутка ...
    procedure RedesignWizardForm;
    begin
    with WizardForm do
    begin
    Left:= -10000;
    OnShow := @WizardFormOnShow;
    SetClassLong(Handle, -26, GetClassLong(Handle, -26) or $200);
    BorderStyle := bsNone;
    Width := 0;
    Height := 0;
    DirEdit.Color := clGray;
    end;
     
    Adil нравится это.
  6. Ветеран Модератор

    Регистрация:
    26 июн 2011
    Сообщения:
    1.049
    Симпатии:
    703
    OriginX333, проверяй https://yadi.sk/d/xLF1xF-H3SxatC
    + поправил известные мне ошибки, разделил скрипт, что-то там еще когда-то делал не знаю что :D
     
  7. Ветеран Модератор

    Регистрация:
    26 июн 2011
    Сообщения:
    1.049
    Симпатии:
    703
    ну изначально на два языка задумывалось, я не буду переделывать :D.
    надо менять с выбором в компанентлисте, а не с выбором языка.
    я этим пользуюсь для вставки.
    Код (Inno):

    procedure RePlaceTextinFile(FilePath:string; find:string; replace1, replace2:string);
    var
      S: TStringList;
      i : Integer;
    begin
    if FileExists(FilePath) then begin
      S:=tstringlist.create;
      S.LoadFromFile(FilePath);
    for i := 0 to S.Count-1 do
    begin
    if S.Names[i]=find then
    begin
      S.Delete(i);
      S.Insert(i,replace1+'='+replace2);
    end;
    end;
      S.SaveToFile(FilePath);
    end;
    end;
    //  Пример
    //  RePlaceTextinFile(ExpandConstant('{app}\d3d9.ini'),'resX', 'resX',inttostr(screen.Width));
    //  RePlaceTextinFile(ExpandConstant('{app}\d3d9.ini'),'resY', 'resY',inttostr(screen.Height));
    //  RePlaceTextinFile(ExpandConstant('{app}\d3d9.ini'),'bPillarBox16to9', Sides, 'true');
     
     
  8. Ветеран

    Регистрация:
    13 фев 2012
    Сообщения:
    268
    Симпатии:
    111
  9. Ветеран Модератор

    Регистрация:
    26 июн 2011
    Сообщения:
    1.049
    Симпатии:
    703
    OriginX333, там картинку надо перерисовать. она там кривая.
     

    Вложения:

    • btnimage.jpg
      btnimage.jpg
      Размер файла:
      5,3 КБ
      Просмотров:
      7
  10. Ветеран Модератор

    Регистрация:
    26 июн 2011
    Сообщения:
    1.049
    Симпатии:
    703
    OriginX333, и в IsDoneUnpack надо поставить
    if CurStep = ssInstall then begin
    а то ПО раньше будет. сменить забыл.
     

    Вложения:

    • btnimage.rar
      Размер файла:
      740 байт
      Просмотров:
      22
  11. Ветеран Модератор

    Регистрация:
    26 июн 2011
    Сообщения:
    1.049
    Симпатии:
    703
    OriginX333,
    Код (Text):
    function RusLanguage:boolean;
    begin
      Result:= WizardForm.ComponentsList.Checked[1];
    end;
     
    и дальше if RusLanguage then делать else иначе другое. или секцию files (Check) используй чтоб готовые файлы кидать. это как пример. нумерация с 0 строки, сверху вниз.
     
  12. Ветеран

    Регистрация:
    13 фев 2012
    Сообщения:
    268
    Симпатии:
    111
    OriginX333,

    Код (Inno):
    CreateShellLink(ExpandConstant('{userdesktop}\{#GameName}.lnk'),'',ExpandConstant('{app}')+'\{#ExeName}', '', '', ExpandConstant('{app}\Uninstall\unins000.exe'),0,SW_SHOW);
     
    ExpandConstant('{app}\Uninstall\unins000.exe') вот это кастомная иконка
     
  13. Ветеран

    Регистрация:
    13 фев 2012
    Сообщения:
    268
    Симпатии:
    111
    OriginX333, ага
     
  14. Пользователь

    Регистрация:
    17 сен 2016
    Сообщения:
    29
    Симпатии:
    2
    [Ini]
    FileName: "{app}\steam_rld.ini"; Section: "Settings"; Key: "Language"; String: "russian"; Components: crack\reloaded and text\rus;
    FileName: "{app}\steam_rld.ini"; Section: "Settings"; Key: "Language"; String: "english";
    [Components]
    Components: crack\reloaded and text\eng;
    Name: text; Description: {cm:languageSetting}; Types: full; Flags: Fixed
    Name: text\rus; Description: {cm:compRU}; Flags: exclusive;
    Name: text\eng; Description: {cm:compEN}; Flags: exclusive;
     
  15. Ветеран

    Регистрация:
    13 фев 2012
    Сообщения:
    268
    Симпатии:
    111
    OriginX333, справка к isdone., раздел компоненты.

    Код (Inno):
    [Types]
    Name: full; Description: Full installation; Flags: iscustom

    [Components]
    Name: text; Description: Язык субтитров; Types: full; Flags: fixed
    Name: text\rus; Description: Русский; Flags: exclusive;
    Name: text\eng; Description: Английский; Flags: exclusive;
    Name: voice; Description: Язык озвучки; Types: full; Flags: fixed
    Name: voice\rus; Description: Русский; Flags: exclusive;
    Name: voice\eng; Description: Английский; Flags: exclusive;

    ....

    Comps1:=0; Comps2:=0; Comps3:=0;
    TmpValue:=1;
    if IsComponentSelected('text\rus') then Comps1:=Comps1+TmpValue; //компонент 1
    TmpValue:=TmpValue*2;
    if IsComponentSelected('text\eng') then Comps1:=Comps1+TmpValue; //компонент 2
    TmpValue:=TmpValue*2;
    if IsComponentSelected('voice\rus') then Comps1:=Comps1+TmpValue; //компонент 3
    TmpValue:=TmpValue*2;
    if IsComponentSelected('voice\eng') then Comps1:=Comps1+TmpValue; //компонент 4

    ....

    ISDoneError:=true;
    if ISDoneInit(ExpandConstant('{src}\records.inf'), $F777, Comps1,Comps2,Comps3, MainForm.Handle, {#NeedMem}, @ProgressCallback) then begin
      repeat
        if not FileSearchInit(false) then break;
        if not ISArcExtract ( 0, 0, ExpandConstant('{src}\BasicData.arc'), ExpandConstant('{app}\'), '', false, '', '', '', notPCFonFLY) then break;
        if not ISArcExtract ( 1, 0, ExpandConstant('{src}\rustext.arc'), ExpandConstant('{app}'), '', false, '', '', '', notPCFonFLY) then break;
        if not ISArcExtract ( 2, 0, ExpandConstant('{src}\engtext.arc'), ExpandConstant('{app}'), '', false, '', '', '', notPCFonFLY) then break;
        if not ISArcExtract ( 3, 0, ExpandConstant('{src}\rusvoice.arc'), ExpandConstant('{app}'), '', false, '', '', '', notPCFonFLY) then break;
        if not ISArcExtract ( 4, 0, ExpandConstant('{src}\engvoice.arc'), ExpandConstant('{app}'), '', false, '', '', '', notPCFonFLY) then break;
        ISDoneError:=false;
      until true;
      ISDoneStop;
    end;

     
     
  16. Пользователь

    Регистрация:
    17 сен 2016
    Сообщения:
    29
    Симпатии:
    2
    Чел, если ты не шаришь, зачем ты выкладывал скрипты (того же масика)? скачай соседние скрипты и посмотри, где прописываются компоненты, здесь такие скрипты есть

    Компоненты которые ты хочешь распаковать нужно указывать в файле coreISdone2

    if not ISArcExtract ( 1, 0, ExpandConstant('{src}\data1.arc'), ExpandConstant('{app}\'), 'компонент1', false, 'пароль', ExpandConstant('{tmp}\arc.ini'), ExpandConstant('{app}\Temp'), notPCFonFLY{PCFonFLY}) then break;

    TmpValue:=1;
    if IsComponentSelected('компонент1) then Comps1:=Comps1+TmpValue; //компонент 1
     
    Последнее редактирование модератором: 4 мар 2018
  17. Ветеран

    Регистрация:
    13 фев 2012
    Сообщения:
    268
    Симпатии:
    111
    OriginX333, в первый раз дожны распаковаться все архивы что бы создать рекордс инф.

    это просто информация
    номер компонента прописывается тут, цифра с зеленым

    if not ISArcExtract ( 1, 0, ExpandConstant('{src}\data1.arc'), ExpandConstant('{app}\'), 'компонент1', false, 'пароль', ExpandConstant('{tmp}\arc.ini'), ExpandConstant('{app}\Temp'), notPCFonFLY{PCFonFLY}) then break;
     
  18. Ветеран

    Регистрация:
    13 фев 2012
    Сообщения:
    268
    Симпатии:
    111
    OriginX333, а как ты указал компоненты тут?
    Код (Inno):
    Comps1:=0; Comps2:=0; Comps3:=0;
    TmpValue:=1;
    if IsComponentSelected('text\rus') then Comps1:=Comps1+TmpValue; //компонент 1
    TmpValue:=TmpValue*2;
    if IsComponentSelected('text\eng') then Comps1:=Comps1+TmpValue; //компонент 2
    TmpValue:=TmpValue*2;
    if IsComponentSelected('voice\rus') then Comps1:=Comps1+TmpValue; //компонент 3
    TmpValue:=TmpValue*2;
    if IsComponentSelected('voice\eng') then Comps1:=Comps1+TmpValue; //компонент 4
     
  19. Ветеран

    Регистрация:
    13 фев 2012
    Сообщения:
    268
    Симпатии:
    111
    OriginX333, этот пункт отвечает за нумерацию компонентов. В скобках пишутся имя компонентов остюда

    Код (Inno):
    [Components]
    Name: gamename; Description: I AM ALIVE; Types: full; Flags: fixed
    Name: text; Description: Язык интерфейса; Types: full; Flags: fixed
    Name: text\rus; Description: Русский; Flags: exclusive;
    //Name: text\eng; Description: Английский; Flags: exclusive;
    Name: voice; Description: Язык озвучки; Types: full; Flags: fixed
    Name: voice\rus; Description: Русский; Flags: exclusive;
    Name: voice\eng; Description: Английский; Flags: exclusive;
    voice\eng в пункте

    Код (Inno):
    Comps1:=0; Comps2:=0; Comps3:=0;
    TmpValue:=1;
    if IsComponentSelected('text\rus') then Comps1:=Comps1+TmpValue; //компонент 1
    TmpValue:=TmpValue*2;
    if IsComponentSelected('text\eng') then Comps1:=Comps1+TmpValue; //компонент 2
    TmpValue:=TmpValue*2;
    if IsComponentSelected('voice\rus') then Comps1:=Comps1+TmpValue; //компонент 3
    TmpValue:=TmpValue*2;
    if IsComponentSelected('voice\eng') then Comps1:=Comps1+TmpValue; //компонент 4
    нумерован как 4 компонент. значит

    Код (Inno):
    if not ISArcExtract ( 4, 0, ExpandConstant('{src}\video_eng.bin'), ExpandConstant('{app}\'), '', false, '', ExpandConstant('{tmp}\arc.ini'), ExpandConstant('{app}\Temp'), notPCFonFLY{PCFonFLY}) then break;
     
  20. Ветеран

    Регистрация:
    13 фев 2012
    Сообщения:
    268
    Симпатии:
    111
    OriginX333, впервый раз он распакует все что бы создать файл records.inf. После берешь этот файл и подключаешь его в инсталлятор, раскоментировав
    #define records

    включи этот файл в инсталлятор

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

    #define records
    (т.е. необходимо поставить точку с запятой в начале этой строки);
      б) компилим проект и запускаем на установку. Это и будет нашим тестовым проходом. Все операции должны дойти до конца и завершиться удачно. Прогрессбар будет зашкаливать и все компоненты будут извлечены вне зависимости от того выбраны они, или нет. Все так и должно быть!
      в) после тестового прогона в указанной папке создастся файл records.inf (имя и путь назначается в процедуре инициализации. О ней см. "подробное описание функций" ниже), его необходимо добавить в проект, раскомметировав, или добавив в начале скрипта строку:

    #define records

    Так же стоит отметить, что если сам скрипт находится в папке отличной от той, в которую компилится проект (например в скрипте NFS:Undercover откомпиленный файл сохраняется в Output\setup.exe), то records.inf создастся в папке с setup.exe и его необходимо будет перенести непосредственно к скрипту, или же подправить в секции [Files] его истинное расположение, например:

    #ifdef records
    Source: Output\records.inf; DestDir: {tmp}; Flags: dontcopy
    #endif
    г) снова откомпилить проект.
      После этого инсталлер готов к работе.
      При запуске процесс выполнения операций будет равномерно и корректно отображаться на прогрессбаре.

     
     
    Последнее редактирование модератором: 4 мар 2018

Поделиться этой страницей