• Уважаемые гости и новички, приветствуем Вас на нашем форуме
    Здесь вы можете найти ответы практически на все свои вопросы о серии игр «Готика» (в том числе различных модах на нее), «Ведьмак», «Ризен», «Древние свитки», «Эра дракона» и о многих других играх. Можете также узнать свежие новости о разработке новых проектов, восхититься творчеством наших форумчан, либо самим показать, что вы умеете. Ну и наконец, можете обсудить общие увлечения или просто весело пообщаться с посетителями «Таверны».

    Чтобы получить возможность писать на форуме, оставьте сообщение в этой теме.
    Удачи!

Установочники

dead_paladin

Участник форума
Регистрация
25 Сен 2007
Сообщения
8
Благодарности
0
Баллы
145
у меня оч много вопросов по этому инсталятору:
1 и пока единственный: как должен выглядеть скрипт для создания инсталятора для мода????
===заранее не благодарю===
=====после, отблагодарю обязательно=====
 

MaGoth

★★★★★★★★★★★
Администратор
Регистрация
7 Янв 2003
Сообщения
19.371
Благодарности
7.801
Баллы
995
Re: NSIS

В Nsis для создания инсталлятора к Готике требеются 2 типа файлов.

Например:
setup.nsi //скриптовый файл
и
setup.nsh //головной файл

Первый файл, это сам скрипт в котором все прописывается, что куда установить удалить и т.д.
Второй файл важен в том случае, если вы пишите макросы для работы инсталлятора, иначе он не нужен...


Пример такого скрипта можно увидеть в файле setup.nsi который будет находится в папке с игрой после установки GMDK2(full).

F:\Program Files\Akella Games\Gothic II\_work\demo\setup.nsi

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

Вот так выглядит скриптик демо мода идущего вместе с ГМДК2.:
Код:
;===============================================================================
;
;                         G2MDK - DemoMod Setup-Script
;
;                    System:  NSIS 2.0  [url]http://nsis.sf.net/[/url]
;                    Editor:  HMNE 2.0  [url]http://hmne.sf.net/[/url]
;
;===============================================================================



; Kompressionseinstellungen

CRCCheck force
;SetCompressor  lzma
;SetCompressorDictSize 128 ; LZMA-Speicherverbrauch, siehe Tabelle
; DictSize Compress Decomp
;    8 MB   141 MB   10 MB (default)
;   12 MB   179 MB   14 MB
;   16 MB   217 MB   18 MB
;   24 MB   293 MB   26 MB
;   32 MB   369 MB   35 MB
;   48 MB   521 MB   50 MB
;   64 MB   673 MB   66 MB
;   96 MB   977 MB   98 MB
;  128 MB  1281 MB  130 MB
;  192 MB  1889 MB  194 MB
;!packhdr "packhdr.tmp""upx.exe --best packhdr.tmp"; [url]http://upx.sf.net/[/url]


; Definitionen

; TODO: Version der Modifikation
!define VER_MAJOR 1 ; Major Version
!define VER_MINOR 0 ; Minor Version
!define VER_PATCH 1 ; Patch-Version (1=a, ...)
!define VER_FLAGS 0 ; Sprachversion
!define VER_FILE  "${VER_MAJOR}.${VER_MINOR}a"!define VER_TEXT  "${VER_MAJOR}.${VER_MINOR}a"
; TODO: Eigenschaften der Modifikation
!define MOD_FILE "demomod"; Mod-Dateiname (KEINE Leer- oder Sonderzeichen!)
!define MOD_NAME "G2MDK - DemoMod"                  ; Mod-Titel
!define MOD_COPY "Copyright © 2004, Pluto 13 GmbH"  ; Mod-Copyright
!define MOD_COMP "Piranha Bytes"                    ; Mod-Herausgeber
!define MOD_LINK "[url]http://www.piranha-bytes.com" [/url]    ; Herausgeber-Link
!define MOD_HELP "[url]http://www.piranha-bytes.com/mod"[/url] ; Support-Link


;===============================================================================
;
;   MUI
;


!include "MUI.nsh"

Name "${MOD_NAME} ${VER_TEXT}"OutFile "${MOD_FILE}-${VER_FILE}.exe"InstallDir "$PROGRAMFILES\JoWooD\Gothic II\"!define MOD_RKEY "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\${MOD_NAME}"InstallDirRegKey HKLM "${MOD_RKEY}""InstallLocation"AllowRootDirInstall true


; Konfiguration (Installer)

!define MUI_WELCOMEPAGE_TITLE_3LINES
!define MUI_WELCOMEPAGE_TEXT "Dieser Assistent wird Sie durch die Installation von $(^Name) begleiten.\r\n\r\nEs wird empfohlen vor der Installation alle anderen Programme zu schlieЯen.\r\n\r\n$_CLICK"!define MUI_COMPONENTSPAGE_NODESC
!define MUI_FINISHPAGE_NOREBOOTSUPPORT
!define MUI_FINISHPAGE_TITLE_3LINES

; Setup-Seiten (Installer)

!insertmacro MUI_PAGE_WELCOME
!insertmacro MUI_PAGE_LICENSE ".\setup\licence.rtf"Page custom PageReinstall PageLeaveReinstall
!insertmacro MUI_PAGE_DIRECTORY
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_PAGE_FINISH

; Konfiguration (Uninstaller)

!define MUI_WELCOMEPAGE_TITLE_3LINES
!define MUI_WELCOMEPAGE_TEXT "Dieser Assistent wird Sie durch die Deinstallation von $(^Name) begleiten.\r\n\r\nBitte beenden Sie Gothic II und zugehцrige Tools,\r\nbevor Sie mit der Deinstallation fortfahren.\r\n\r\n$_CLICK"!define MUI_FINISHPAGE_NOREBOOTSUPPORT
!define MUI_FINISHPAGE_TITLE_3LINES

; Setup-Seiten (Uninstaller)

!insertmacro MUI_UNPAGE_WELCOME
!insertmacro MUI_UNPAGE_CONFIRM
!insertmacro MUI_UNPAGE_COMPONENTS
!insertmacro MUI_UNPAGE_INSTFILES
!insertmacro MUI_UNPAGE_FINISH


; Setup-Sprache

!insertmacro MUI_LANGUAGE "German"

; Reservierte Dateien

ReserveFile "setup.ini"!insertmacro MUI_RESERVEFILE_INSTALLOPTIONS


;===============================================================================
;
;   Installer
;


; Setup.exe Versionsinformationen (Sprache = MUI_LANGUAGE)
VIProductVersion "${VER_MAJOR}.${VER_MINOR}.${VER_PATCH}.${VER_FLAGS}"VIAddVersionKey "CompanyName"      "${MOD_COMP}"VIAddVersionKey "FileVersion"      "${VER_TEXT}"VIAddVersionKey "LegalCopyright"   "${MOD_COPY}"VIAddVersionKey "FileDescription"  "${MOD_NAME}"VIAddVersionKey "OriginalFilename""${MOD_FILE}-${VER_FILE}.exe"

LangString NameInstFull ${LANG_GERMAN} "Vollstдndig"InstType $(NameInstFull)


!include ".\setup\g2mod.nsh"

;-------------------------------------------------------------------------------
;
;   Init (nicht angezeigt)
;


; Installer

Section -pre
  Push $R0

  SetDetailsPrint none
  StrCpy $R0 "${MOD_RKEY}"
  ; Setup-Parameter in die Registrierung schreiben
  ClearErrors
  WriteRegExpandStr HKLM $R0 "InstallLocation"$INSTDIR
  IfErrors ""write
  MessageBox MB_OK|MB_ICONSTOP "Beim Schreiben der Werte fьr die spдtere Deinstallation trat ein Fehler auf.$\r$\nStellen Sie sicher, dass Ihr Benutzerkonto ьber die notwendigen Rechte verfьgt.$\r$\n$\r$\n(HKLM\$R0)"  Pop $R0
  Abort
  write:
  WriteRegDWORD     HKLM $R0 "VersionMajor"    ${VER_MAJOR}
  WriteRegDWORD     HKLM $R0 "VersionMinor"    ${VER_MINOR}
  WriteRegDWORD     HKLM $R0 "VersionPatch"    ${VER_PATCH}
  WriteRegDWORD     HKLM $R0 "VersionFlags"    ${VER_FLAGS}
  WriteRegStr       HKLM $R0 "DisplayIcon"     "$INSTDIR\System\Gothic2.exe,0"  WriteRegStr       HKLM $R0 "DisplayName"     "${MOD_NAME}"  WriteRegStr       HKLM $R0 "DisplayVersion"  "${VER_TEXT}"  WriteRegDWORD     HKLM $R0 "NoModify"        1
  WriteRegDWORD     HKLM $R0 "NoRepair"        1
  WriteRegExpandStr HKLM $R0 "UninstallString""$INSTDIR\${MOD_FILE}-uninst.exe"  WriteRegStr       HKLM $R0 "Publisher"       "${MOD_COMP}"  WriteRegStr       HKLM $R0 "URLInfoAbout"    "${MOD_LINK}"  WriteRegStr       HKLM $R0 "HelpLink"        "${MOD_HELP}"
  Pop $R0
SectionEnd


;-------------------------------------------------------------------------------
;
;   Modifikation
;


; Installer

LangString NameSecModFiles ${LANG_GERMAN} "${MOD_NAME}"LangString TextSecModFiles ${LANG_GERMAN} "Installiere ${MOD_NAME}..."
Section !$(NameSecModFiles) SecModFiles

  SectionIn RO ; nicht abwдhlbar

  SetDetailsPrint textonly
  DetailPrint $(TextSecModFiles)
  SetDetailsPrint listonly

  SetOverwrite on

  ; Installiere Mod-Konfiguration
  SetOutPath "$INSTDIR\System"  File      ".\install\System\${MOD_FILE}.ini"  ; Installiere Mod-Volume
  SetOutPath "$INSTDIR\Data\modvdf"  File      ".\install\Data\modvdf\${MOD_FILE}.mod"  ; Eventuelles Mod-Volume in /Data entfernen
  !insertmacro g2mod_DeleteFile "$INSTDIR\Data\${MOD_FILE}.mod"  
  ; Eintrдge im Startmenь
  SetShellVarContext current
  !insertmacro g2mod_CreateDirectory "$SMPROGRAMS\JoWooD\Gothic II\Modifikationen"  CreateShortCut "$SMPROGRAMS\JoWooD\Gothic II\Modifikationen\${MOD_NAME}.lnk"\
    "$INSTDIR\System\GothicStarter.exe""-game:${MOD_FILE}.ini"  CreateShortCut "$SMPROGRAMS\JoWooD\Gothic II\Modifikationen\${MOD_NAME} entfernen.lnk"\
   	"$INSTDIR\${MOD_FILE}-uninst.exe"
SectionEnd


; Uninstaller

Section !un.$(NameSecModFiles) unSecModFiles

  SectionIn RO  ; nicht abwдhlbar

  ; Mod-Volume und Mod-Volume-Map entfernen
  !insertmacro g2mod_DeleteFile "$INSTDIR\vdfs_${MOD_FILE}.dmp"  !insertmacro g2mod_DeleteFile "$INSTDIR\Data\${MOD_FILE}.mod"  !insertmacro g2mod_DeleteFile "$INSTDIR\Data\modvdf\${MOD_FILE}.mod"  ; /Data/modvdf wird nur entfernt, wenn es leer ist
  !insertmacro g2mod_RemoveDirectory "$INSTDIR\Data\modvdf"  ; Mod-Konfiguration entfernen
  !insertmacro g2mod_DeleteFile "$INSTDIR\System\${MOD_FILE}.ini"  
  ; Eintrдge im Startmenь entfernen
  SetShellVarContext current
  !insertmacro g2mod_DeleteFile "$SMPROGRAMS\JoWooD\Gothic II\Modifikationen\${MOD_NAME}.lnk"  !insertmacro g2mod_DeleteFile "$SMPROGRAMS\JoWooD\Gothic II\Modifikationen\${MOD_NAME} entfernen.lnk"  ; Werden nur entfernt, falls die Verzeihcnisse leer sind...
  !insertmacro g2mod_RemoveDirectory "$SMPROGRAMS\JoWooD\Gothic II\Modifikationen"  !insertmacro g2mod_RemoveDirectory "$SMPROGRAMS\JoWooD\Gothic II"  !insertmacro g2mod_RemoveDirectory "$SMPROGRAMS\JoWooD"
SectionEnd


;-------------------------------------------------------------------------------
;
;   Spielstдnde
;


LangString NameSecModSaves ${LANG_GERMAN} "Spielstдnde von ${MOD_NAME}"

; Installer (nicht angezeigt)

Section -$(NameSecModSaves) SecModSaves

  ; Mod-Savegame Verzeichnis anlegen
  !insertmacro g2mod_CreateDirectory "$INSTDIR\saves_${MOD_FILE}\current"
SectionEnd


; Uninstaller

Section un.$(NameSecModSaves) unSecModSaves

  ; Mod-Savegames entfernen
  RMDir /r "$INSTDIR\saves_${MOD_FILE}"
SectionEnd

;-------------------------------------------------------------------------------
;
;   Cleanup (nicht angezeigt)
;


; Installer

Section -post

  SetDetailsPrint none

  ; Uninstaller schreiben
  Delete           "$INSTDIR\${MOD_FILE}-uninst.exe"  WriteUninstaller "$INSTDIR\${MOD_FILE}-uninst.exe"
SectionEnd


; Uninstaller

Section -un.post

  SetDetailsPrint none

  ; Registrierungsdaten entfernen
  DeleteRegKey HKLM "${MOD_RKEY}"
  ; Uninstaller entfernen
  Delete "$INSTDIR\${MOD_FILE}-uninst.exe"
SectionEnd


;===============================================================================
;
;   Player-Kit
;


Section -g2mpk
  SetOverwrite on
  SetDetailsPrint none
  SetShellVarContext current
  !insertmacro g2mod_InstallPlayerKit
SectionEnd


;===============================================================================
;
;   Callback-Funktionen
;


; Installer (Init)

Function .onInit
  Push $R0

  SetCurInstType 0

  !insertmacro MUI_INSTALLOPTIONS_EXTRACT "setup.ini"
  ; Kein 'unsichtbares' Setup
  SetSilent normal
  
  ; $INSTDIR bereits gьltig?
  IfFileExists "$INSTDIR\System\Gothic2.exe"done

  ; Sonst Add-ON Installation suchen (Registrierung)
  Call g2mod_GetInstallLocation
  Pop $R0
  StrCmp $R0 ""done
  ; Ьbernehmen
  StrCpy $INSTDIR $R0

  done:
  Pop $R0
FunctionEnd


; Uninstaller (Init)

Function un.onInit
  Push $R0

  ; $INSTDIR gьltig?
  IfFileExists "$INSTDIR\System\Gothic2.exe"done

  ; Mod-Installation suchen (Registrierung)
  ReadRegStr $R0 HKLM "${MOD_RKEY}""InstallLocation"  StrCmp $R0 ""wrong
  StrCpy $INSTDIR $R0
  IfFileExists "$INSTDIR\System\Gothic2.exe"done
  ; Nicht gefunden...
  wrong:
  MessageBox MB_YESNO|MB_ICONQUESTION "Das Installationsverzeichnis scheint ungьltig zu sein.$\r$\nSoll die Deinstallation trotzdem fortgesetzt werden?"IDYES done
    Pop $R0
    Abort

  done:
  Pop $R0
FunctionEnd


; Reinstall

LangString TextReinstTitle ${LANG_GERMAN} "Vorherige Installation"LangString TextReinstHead1 ${LANG_GERMAN} "Wдhlen Sie aus, wie $(^Name) installiert werden soll."LangString TextReinstOpt1A ${LANG_GERMAN} "Vorher deinstallieren"LangString TextReinstOpt1B ${LANG_GERMAN} "Nicht deinstallieren"LangString TextReinstHead2 ${LANG_GERMAN} "Wдhlen Sie die auszufьhrende Wartungsoption aus."LangString TextReinstOpt2A ${LANG_GERMAN} "Erneut installieren"LangString TextReinstOpt2B ${LANG_GERMAN} "$(^Name) deinstallieren"LangString TextReinstWrong ${LANG_GERMAN} "Eine inkompatible Version ist bereits installiert!\r\nWenn Sie diese Version wirklich installieren wollen,\r\nsollten Sie die aktuelle Version vorher deinstallieren."LangString TextReinstOlder ${LANG_GERMAN} "Eine дltere Version ist auf Ihrem System installiert.\r\nEs wird empfohlen die aktuelle Version vorher zu deinstallieren."LangString TextReinstNewer ${LANG_GERMAN} "Eine neuere Version ist bereits auf Ihrem System installiert!\r\nEs wird empfohlen die дltere Version nicht zu installieren. Wenn Sie diese дltere Version wirklich installieren wollen, sollten Sie die aktuelle Version vorher deinstallieren."LangString TextReinstEqual ${LANG_GERMAN} "$(^Name) ist bereits installiert."
Function PageReinstall

  ; Installationsverzeichnis lesen
  ReadRegStr $R0 HKLM "${MOD_RKEY}""InstallLocation"  StrCmp $R0 ""0 +2
  Abort

  ; Version ьberprьfen
  ReadRegDWORD $R0 HKLM "${MOD_RKEY}""VersionFlags"  IntCmp $R0 ${VER_FLAGS} major wrong wrong
  major:
  ReadRegDWORD $R0 HKLM "${MOD_RKEY}""VersionMajor"  IntCmp $R0 ${VER_MAJOR} minor older newer
  minor:
  ReadRegDWORD $R0 HKLM "${MOD_RKEY}""VersionMinor"  IntCmp $R0 ${VER_MINOR} patch older newer
  patch:
  ReadRegDWORD $R0 HKLM "${MOD_RKEY}""VersionPatch"  IntCmp $R0 ${VER_PATCH} equal older newer
  wrong:
  !insertmacro MUI_INSTALLOPTIONS_WRITE "setup.ini""Field 1""Text""$(TextReinstWrong)"  !insertmacro MUI_INSTALLOPTIONS_WRITE "setup.ini""Field 2""Text""$(TextReinstOpt1A)"  !insertmacro MUI_INSTALLOPTIONS_WRITE "setup.ini""Field 3""Text""$(TextReinstOpt1B)"  !insertmacro MUI_HEADER_TEXT "$(TextReinstTitle)""$(TextReinstHead1)"  StrCpy $R0 "1"  Goto start
  older:
  !insertmacro MUI_INSTALLOPTIONS_WRITE "setup.ini""Field 1""Text""$(TextReinstOlder)"  !insertmacro MUI_INSTALLOPTIONS_WRITE "setup.ini""Field 2""Text""$(TextReinstOpt1A)"  !insertmacro MUI_INSTALLOPTIONS_WRITE "setup.ini""Field 3""Text""$(TextReinstOpt1B)"  !insertmacro MUI_HEADER_TEXT "$(TextReinstTitle)""$(TextReinstHead1)"  StrCpy $R0 "1"  Goto start
  newer:
  !insertmacro MUI_INSTALLOPTIONS_WRITE "setup.ini""Field 1""Text""$(TextReinstNewer)"  !insertmacro MUI_INSTALLOPTIONS_WRITE "setup.ini""Field 2""Text""$(TextReinstOpt1A)"  !insertmacro MUI_INSTALLOPTIONS_WRITE "setup.ini""Field 3""Text""$(TextReinstOpt1B)"  !insertmacro MUI_HEADER_TEXT "$(TextReinstTitle)""$(TextReinstHead1)"  StrCpy $R0 "1"  Goto start
  equal:
  !insertmacro MUI_INSTALLOPTIONS_WRITE "setup.ini""Field 1""Text""$(TextReinstEqual)"  !insertmacro MUI_INSTALLOPTIONS_WRITE "setup.ini""Field 2""Text""$(TextReinstOpt2A)"  !insertmacro MUI_INSTALLOPTIONS_WRITE "setup.ini""Field 3""Text""$(TextReinstOpt2B)"  !insertmacro MUI_HEADER_TEXT "$(TextReinstTitle)""$(TextReinstHead2)"  StrCpy $R0 "2"  start:
  !insertmacro MUI_INSTALLOPTIONS_DISPLAY "setup.ini"
FunctionEnd

Function PageLeaveReinstall

  !insertmacro MUI_INSTALLOPTIONS_READ $R1 "setup.ini""Field 2""State"  StrCmp $R0 "1"0 +2
  StrCmp $R1 "1"inst done
  StrCmp $R0 "2"0 +3
  StrCmp $R1 "1"done inst
  inst:
  HideWindow
  ReadRegStr $R1 HKLM "${MOD_RKEY}""UninstallString"  ClearErrors
  ExecWait '$R1 _?=$INSTDIR'
  IfErrors nope
  IfFileExists $R1 ""nope
  Delete $R1
  nope:
  StrCmp $R0 "2"0 +2
  Quit
  BringToFront

  done:
FunctionEnd


; Installer (Verzeichnisprьfung)

Var VerifyMessageOnce

Function .onVerifyInstDir

  ; Version 2.6 deutsch installiert ?
  !insertmacro g2mod_IfInstallVersion $INSTDIR "2.6.0.0"done
  ; Basisversion 2.6 ?
  !insertmacro g2mod_IfInstallVersionBase $INSTDIR "2.6"code
  Goto nope
  code:
  ; Deutsche Version ?
  !insertmacro g2mod_IfInstallVersionCode $INSTDIR 0 done

  ; Keine 2.6-er (deutsch)...
  nope:
  ; Meldung nur einmalig anzeigen
  StrCmp $VerifyMessageOnce "done"+3
  MessageBox MB_OK|MB_ICONINFORMATION "Wдhlen Sie das Verzeichnis aus, in welchem sich 'Gothic II - Die Nacht des Raben' 2.6 (deutsch) befindet."  StrCpy $VerifyMessageOnce "done"  Abort

  done:
FunctionEnd

Естественно нужно установить саму программу Nsis и плагины для работы с ней.
Скачать все что нужно можно здесь.

PS. Да забыл, как прога так и все материалы к ней на английском, документации на русском языке увы нет, причем во всем рунете.
 
Последнее редактирование модератором:

dead_paladin

Участник форума
Регистрация
25 Сен 2007
Сообщения
8
Благодарности
0
Баллы
145
Re: NSIS

туторов нету, зато я нашел русификацию!
мелочь, а приятно: http://samlab.ws/soft/nsis/
 

MaGoth

★★★★★★★★★★★
Администратор
Регистрация
7 Янв 2003
Сообщения
19.371
Благодарности
7.801
Баллы
995
Re: NSIS

В общем то она особо и не нужна. ;))
Там и так все понятно.
 

dead_paladin

Участник форума
Регистрация
25 Сен 2007
Сообщения
8
Благодарности
0
Баллы
145
Re: NSIS

скрипт стандартный не пашет! че делать?
 

MaGoth

★★★★★★★★★★★
Администратор
Регистрация
7 Янв 2003
Сообщения
19.371
Благодарности
7.801
Баллы
995
Re: NSIS

dead_paladin написал(а):
скрипт стандартный не пашет! че делать?
Я же писал что нужно править его, по мимо этого должен быть головной файл скрипта, если используешь стандартные скрипты из демки мода.
Также ошибки будут если не в правильных директорях файлы лежат, и сами директории не верно указаны.
Их тоже нужно верно прописывать, иначе компилляция не пойдет.
 
Последнее редактирование модератором:

Saturas


Модостроитель
Регистрация
11 Фев 2009
Сообщения
2.512
Благодарности
1.332
Баллы
315
InnoSetup Скрипт для модов Г1, Г2НВ

Вот выкладываю скрипт(с библиотеками в комплекте) и сам инсталлятор, в спойлере скрипт для модов г2а
Код:
[Setup]
;В строке ниже пишется название загаловка инсталятора Мода или Той или иной программы. Которое пишется так Вас привествует мастер установки Имя
AppName=Имя
;Тут пишется ТОже что и в верхней строке только Чуть ниже в инсталлере
AppVerName=Имя
;Компания разработтчик мода/програмы
AppPublisher=Название
;Сайт разроботчика Мода будет в свойствах инсталлера по правому клику
AppPublisherURL=http://Templete.ru/
;Сайт поддержки програмы/мода
AppSupportURL=http://Templete.ru/
;Сайт обновлений Мода/програмы
AppUpdatesURL=http://Templete.ru/
;Стандартная директория установки в нашем случае D:\Games\Gothic II
DefaultDirName=D:\Games\Gothic
;Название папки в меню "Пуск"DefaultGroupName=Имя
;Имя файла установки полученого после компиляции
OutputBaseFilename=setup
;Метод сжатия пишется так: Метод/Плотность сжатия
;есть несколько типов сжатия LZMA самый сильный метод сжатия,Ниже его настройки:
;fast - самое слаое сжатие быстро распаковывается
;normal - нормальное чуть медленне
;max  - стандартное сжатие
;ultra  - Сильное сжатие при этом распаковка займет много времени как и упаковка впрочем
;ultra64 - Сильнейшее ВНИМАНИЕ! Может повередить файлы желательно не использовать
Compression=lzma/ultra
;Уплотние для более сильно сжатия по идеи лучше не юзать
SolidCompression=yes
;Фоновое окно в нашем случае я его отрубил
WindowVisible=no
;Версия файла инсталлятора
VersionInfoVersion=1.8.0.0
;хз зачем применения не нашел по этому в комент ее!))
;AppendDefaultDirName=no


[Languages]
;Языки инсталятора лежать в папке \Languages\ в корне установки
Name: "russian"; MessagesFile:"compiler:Languages\Russian.isl"
[Files]
;Файлы включаемые в установку с извлечением во временую папку(для разных фичь)
;записываются так  Source: "Имя файла"; DestDir:"{tmp}"; Flags: dontcopy
;Сплеш заставка при входу в инсталлятор
Source:"splash.bmp"; DestDir:"{tmp}"; Flags: dontcopy
;Фоновое изображжение, скрин мода
Source:"Back.bmp"; DestDir:"{tmp}"; Flags: dontcopy
;библеотека для использования сплеш заставки при входе
Source:"callnsis.dll"; DestDir: {tmp}; Flags: dontcopy
Source:"AdvSplash.dll"; DestDir: {tmp}; Flags: dontcopy
;Библеотека для проигрывания музыки во время установки
Source:"BASS.dll"; DestDir:"{tmp}"; Flags: dontcopy
;Имя файла композиции для проигрывания во время установки взял из г3 =)
Source:"trelis_explore_night_01.ogg"; DestDir:"{tmp}"; Flags: dontcopy
;Загрузка скина и билиотеки для его обработки
Source:"ISSkin.dll"; DestDir:"{tmp}"; Flags: dontcopy
;Сам скин
Source:"Skin.MMT"; DestDir:"{tmp}"; Flags: dontcopy
;Дельше идут файлы Самого мода/Проги допустим это буит Work\MyMod\
;Source:"D:\Work\MyMod\*"; DestDir:"{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
;все файлы лежащие в данной папке будут включены в инсталлер

[Icons]
;Значки Рабочего стола, меню Пуск и тд
;Шаблоны писать небуду ибо их много только подпишу какая строка к какому значку
; если в файле нету значков то используем свой файл IconFilename: "{app}\1.ico";И еще для Exe айлов ОБАЗЯТЕЛЬНО писать WorkingDir:"{app}"для г2 и г1 это папки WorkingDir: "{app}\system";Значек в меню пуск в папке указанной в секции [Setup] DefaultGroupName=Имя
Name: "{group}\GothicStarter.EXE"; Filename:"{app}"; WorkingDir:"{app}\system";Значек на рабочем столе
Name: "{commondesktop}\GothicStarter.EXE"; Filename:"{app}"; WorkingDir:"{app}\system";Значек унинсталлера
Name: "{group}\Удалить Имя мода"; Filename:"{uninstallexe}"; WorkingDir:"{app}\system"
;Тут начинается самая Интересная и непонятная многим секция
;В ней можно сделать чтобы инсталятор при установке делал
;Бэкапы заменяемых файлов и тд
;Также проверка версии файла в папке установки для модов
;г2 используетя и г1 конечноже
;Много описать не смогу ибо сам все по шаблонам делал,
;но опишу какаой кусок кода за что отвечает

[code]
//Константы для проигрывания музыки
const
BASS_SAMPLE_LOOP    = 4;  //Число повторений -1 цклически

type
HSTREAM = DWORD;   //Тип звуового потока(Зачем незнаю)

//роцедура замены стандартного сообщения при нажатии клавиши "Отмена"procedure CancelButtonClick(CurPage: Integer; var Cancel, Confirm: Boolean);
begin
Cancel:=False;
Confirm:=False;
if MsgBox('Вы действительно хотите отменить установку?', mbError, MB_YESNO) = idYes
then
Cancel:=true;
end;
//Процедура проверяющая версию exe файла в папке установки
//используется в модах готики
function NextButtonClick(CurPage: Integer): Boolean;
var
CurrentAppVersion,k:string;
begin
Result:=True;
If CurPage=6 then
begin
//Путь к проверяемумо файлу
  GetVersionNumbersString(ExpandConstant('{app}') + '\system\gothic.exe', CurrentAppVersion);
  //Условие при котором выполнится установка Мода в нашем случае условием является версия файла gothic2.exe
  //if CurrentAppVersion < '2.6.0.0' then тут пишется какая должна быть версия файла
  if CurrentAppVersion < '2.6.0.0' then
  begin
  //Если версия не там какая нада то выводим сообщение об ошибке
  k:='Версия Gothic.exe не соответствует.' #13#13 'Для установки Мода требуются версия файла gothic2.exe 2.6.0.0 ';
  MsgBox(k, mbCriticalError, mb_Ok);
  Result:= False;
  end;
end;
end;

//Тут производится объявление внутренних функций из внешних билиотек DLL для реализации чегонить нового =)
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';


{Loading DLL's}
function GetSystemMetrics(nIndex:Integer):Integer;
external 'GetSystemMetrics@user32.dll stdcall';

procedure callplug(parentwnd: Integer; pluginname,funcname,param1,param2,param3,param4,param5,param6,param7,param8,param9,param10: PChar);
external 'callplug@files:callnsis.dll stdcall';

// Importing LoadSkin API from ISSkin.DLL
procedure LoadSkin(lpszPath: String; lpszIniFileName: String);
external 'LoadSkin@files:isskin.dll stdcall';

// Importing UnloadSkin API from ISSkin.DLL
procedure UnloadSkin();
external 'UnloadSkin@files:isskin.dll stdcall';

// Importing ShowWindow Windows API from User32.DLL
function ShowWindow(hWnd: Integer; uType: Integer): Integer;
external 'ShowWindow@user32.dll stdcall';

{On klick URL Lebel}
//URL ссылка на сайт разраба в левом нижнем углу в нашем случае [url=http://worldofgothic.ru/]http://worldofgothic.ru/[/url]
procedure URLLabelOnClick(Sender: TObject);
var
ErrorCode: Integer;
begin
ShellExec('open', '[url=http://worldofgothic.ru/',]http://worldofgothic.ru/',[/url] '', '', SW_SHOWNORMAL, ewNoWait, ErrorCode);
end;
procedure CreateAboutButtonAndURLLabel(ParentForm: TSetupForm; CancelButton: TNewButton);

var

URLLabel: TNewStaticText;
begin
//Стиль и прочая {не ругайся} ссылки
URLLabel := TNewStaticText.Create(ParentForm);
URLLabel.Caption := 'MMT Studio';
URLLabel.Cursor := crHand;
URLLabel.OnClick := @URLLabelOnClick;
URLLabel.Parent := ParentForm;
URLLabel.Font.Style := URLLabel.Font.Style + [fsUnderline];
URLLabel.Font.Color := clBlue;
URLLabel.Top := CancelButton.Top;
URLLabel.Left := ParentForm.ClientWidth - CancelButton.Left - CancelButton.Width
end;

//Загруззка скина инсталлятора тут можно ставить ЛЮБУЮ тему от винды в качестве темы инсталлятора
function InitializeSetup(): Boolean;
begin
    ExtractTemporaryFile('Skin.MMT');    //Имя файла темы(Расширение ЛЮБОЕ)
    LoadSkin(ExpandConstant('{tmp}\Skin.MMT'), ''); //Тут тоже пишется имя файла темы
    Result := True;
end;


//Удобный вид обзора папок в виде древа на странице выбора папки установки
var
DirTreeView: TFolderTreeView;

procedure DirFolderChange(Sender: TObject);
Begin
WizardForm.DirEdit.Text:=AddBackslash(DirTreeView.Directory) + ''
end;

//Инициализация местера установки
procedure InitializeWizard();
var
//Список переменных
width,height: Integer;
Page: TWizardPage;
BackgroundBitmapImage: TBitmapImage;
BitmapImage: TBitmapImage;
d: string;
s: string;
Name1: string;
     i: Integer;

    {BackGround Image}
//Фоновый рисунок Скрин из мода или чета вроде этого
begin
ExtractTemporaryFile('Back.bmp'); //Тут пишется имя файла указанное в секции [Files]
s:=ExpandConstant('{tmp}')+'\Back.bmp'; //Тоже
WizardForm.Position:=poScreenCenter;
MainForm.BORDERSTYLE:=bsNone;
width:=GetSystemMetrics(0);
height:=GetSystemMetrics(1);
MainForm.Width:=width;
MainForm.Height:=height;
width:=MainForm.ClientWidth;
height:=MainForm.ClientHeight;
MainForm.Left := 0;
MainForm.Top := 0;
BackgroundBitmapImage := TBitmapImage.Create(MainForm);
BackgroundBitmapImage.Bitmap.LoadFromFile(s);
BackgroundBitmapImage.Align := alClient;
BackgroundBitmapImage.Parent := MainForm;
BackgroundBitmapImage.Stretch:=True;
MainForm.Visible:=True;

    {Splash screen}
//Сплеш заставка
ExtractTemporaryFile('splash.bmp')
ExtractTemporaryFile('AdvSplash.dll')
callplug(0,ExpandConstant('{tmp}\AdvSplash.dll'),'show','1000','3000','1500','-1',ExpandConstant('{tmp}\splash'),'','','','','')
//Цифрами 1000 3000 1500 задаются пареметры показа изображения: Время появления(Плавного) время показа и время затухания соответственно

//Пареметры просмотра древа папок на странице выбора папки установки
DirTreeView:=TFolderTreeView.Create(WizardForm)
DirTreeView.SetBounds(0,100,417,110)
DirTreeView.OnChange:=@DirFolderChange
DirTreeView.Parent:=WizardForm.SelectDirPage
//DirTreeView.ChangeDirectory(ExpandConstant('{pf}'), True) //Если папка установки Program Files то разкоментируйте

//Процедура воспроизведения музыки
ExtractTemporaryFile('BASS.dll');
ExtractTemporaryFile('trelis_explore_night_01.ogg');  //наш файл из г3
if BASS_Init(-1, 44100, 0, 0, 0) then
begin
BASS_Start();
Name1:=ExpandConstant('{tmp}\trelis_explore_night_01.ogg');
i:=BASS_StreamCreateFile(FALSE, PChar(Name1), 0, 0, 4);
if i <>0 then
    begin
BASS_ChannelPlay(i, True);
end;
end;
end;


//Выгрузка темы музыки и тд
procedure DeInitializeSetup();
begin
ShowWindow(StrToInt(ExpandConstant('{wizardhwnd}')), 0);
    UnloadSkin();
    BASS_Stop();
BASS_Free();
end;
 
Последнее редактирование модератором:

Dimmell

Участник форума
Регистрация
23 Ноя 2008
Сообщения
2.899
Благодарности
111
Баллы
285
Re: InnoSetup Скрипт для модов Г1, Г2НВ

Директорию установки можно определять из реестра (пример для Возвращения):
DefaultDirName={reg:HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\GOTHIC2 - ADDON_RETURNING,InstallLocation}

;хз зачем применения не нашел по этому в комент ее!))
;AppendDefaultDirName=no

[Setup]: AppendDefaultDirName

Возможные значения:yes or no

Значение по умолчанию:yes

Описание:

По умолчанию при указании пути на странице Выбор папки назначения с помощью кнопки Обзор... (Browse...) инсталлятор автоматически добавляет в конце папку с именем, указанном в директиве DefaultDirName, в которую будет установлена программа. Например, если DefaultDirName={pf}\My Program и пользователь выбрал в обзоре диск Z:\, то программа установится в "Z:\My Program".

Если значение директивы no, папка в конце указанного пользователем пути создаваться не будет. На странице выбора появится кнопка Создать папку (Make New Folder).
 
Последнее редактирование модератором:

Saturas


Модостроитель
Регистрация
11 Фев 2009
Сообщения
2.512
Благодарности
1.332
Баллы
315
Re: InnoSetup Скрипт для модов Г1, Г2НВ

Тэкс, вот Есче полезная на мой скромный взгляд прога под названием Inno Setup Scripting
В этой проге приведены множество примеров использования Скрипта в ИнноСетап, думаю многим будет полезна.
 

Dimmell

Участник форума
Регистрация
23 Ноя 2008
Сообщения
2.899
Благодарности
111
Баллы
285
Re: InnoSetup Скрипт для модов Г1, Г2НВ

Немного отсебятины:
Распаковка и запаковка модов в тихом режиме, без окна VDFS:
Код:
[Run]
Filename: "{app}\Data\temp\GOTHICVDFS.EXE"; Parameters:"/x ""{app}\Data\ADDON_RETURNING.vdf"; StatusMsg:"Распаковка файлов"; Components:"Component1"; Flags: waituntilterminated runhidden 
Filename:"{app}\Data\temp\GOTHICVDFS.EXE"; Parameters:"/x ""{app}\Data\modvdf\RETURNING_mod.mod"; StatusMsg:"Распаковка файлов"; Components:"Component2"; Flags: waituntilterminated runhidden 
//Далее делаем что хотим - меняем, добавляем и т.п. и упаковываем
Filename:"{app}\Data\temp\GOTHICVDFS.EXE"; Parameters:"/b ""{app}\Data\temp\testME.vm"; StatusMsg:"Упаковка аддона"; Components:"Component1"; Flags: waituntilterminated runhidden 
Filename:"{app}\Data\temp\GOTHICVDFS.EXE"; Parameters:"/b ""{app}\Data\temp\testM.vm"; StatusMsg:"Упаковка мода"; Components:"Component2"; Flags: waituntilterminated runhidden 
// Файлы [b]GOTHICVDFS.EXE[/b], [b]testM.vm[/b] и [b]testME.vm[/b] предварительно ложим в соответствующие папки (temp)

И заготовочка для фоновой картинки и слайд-шоу с картинками в .jpg. Картинка растянется во весь экран, не зависимо от исходного размера и без внешней рамки с надписями. isxbb.dll - во вложении.
Код:
[Setup]
WindowVisible=yes
WindowResizable=no
WindowShowCaption=no

[Files]
Source: C:\isxbb.dll; DestDir: {tmp}; Flags: dontcopy
Source: C:\1.jpg; DestDir: {tmp}; Flags: dontcopy
//Это файлы для слайд-шоу (может быть больше)
Source: C:\2.jpg; DestDir: {tmp}; Flags: dontcopy
Source: C:\3.jpg; DestDir: {tmp}; Flags: dontcopy
Source: C:\4.jpg; DestDir: {tmp}; Flags: dontcopy

[code]
const
 BACKGROUND=6;
 TIMER=16;

function isxbb_AddImage(Image: PChar; Flags: Cardinal): Integer;
external 'isxbb_AddImage@files:isxbb.dll stdcall';

function isxbb_Init(hWnd: Integer): Integer;
external 'isxbb_Init@files:isxbb.dll stdcall';

function isxbb_StartTimer(Seconds: Integer; Flags: Cardinal): Integer;
external 'isxbb_StartTimer@files:isxbb.dll stdcall';

function isxbb_KillTimer(Flags: Cardinal): Integer;
external 'isxbb_KillTimer@files:isxbb.dll stdcall';

procedure InitializeWizard();
begin
  ExtractTemporaryFile('1.jpg');
  isxbb_AddImage(ExpandConstant('{tmp}')+'\1.jpg',BACKGROUND);
  isxbb_Init(StrToInt(ExpandConstant('{hwnd}')));
end;

procedure CurStepChanged(CurStep: TSetupStep);
begin
//В начале этапа установки запускаем слайд-шоу
 if CurStep=ssInstall
then
begin
ExtractTemporaryFile('2.jpg');
ExtractTemporaryFile('3.jpg');
ExtractTemporaryFile('4.jpg');
isxbb_AddImage(ExpandConstant('{tmp}')+'\2.jpg',BACKGROUND or TIMER);
isxbb_AddImage(ExpandConstant('{tmp}')+'\3.jpg',BACKGROUND or TIMER);
isxbb_AddImage(ExpandConstant('{tmp}')+'\4.jpg',BACKGROUND or TIMER);
isxbb_Init(StrToInt(ExpandConstant('{hwnd}')));
//Таймер показа изображений, в секундах
isxbb_StartTimer(3,BACKGROUND)
 end
//На завершающем этапе останавливаем таймер, при этом возвращается фоновое изображение по умолчанию
 else if CurStep=ssPostInstall then
  isxbb_KillTimer(BACKGROUND);
end;
 
Последнее редактирование модератором:

Saturas


Модостроитель
Регистрация
11 Фев 2009
Сообщения
2.512
Благодарности
1.332
Баллы
315
Re: InnoSetup Скрипт для модов Г1, Г2НВ

Dimmell написал(а):
Немного отсебятины:
Распаковка и запаковка модов в тихом режиме, без окна VDFS:
Код:
[Run]
Filename: "{app}\Data\temp\GOTHICVDFS.EXE"; Parameters:"/x ""{app}\Data\ADDON_RETURNING.vdf"; StatusMsg:"Распаковка файлов"; Components:"Component1"; Flags: waituntilterminated runhidden 
Filename:"{app}\Data\temp\GOTHICVDFS.EXE"; Parameters:"/x ""{app}\Data\modvdf\RETURNING_mod.mod"; StatusMsg:"Распаковка файлов"; Components:"Component2"; Flags: waituntilterminated runhidden 
//Далее делаем что хотим - меняем, добавляем и т.п. и упаковываем
Filename:"{app}\Data\temp\GOTHICVDFS.EXE"; Parameters:"/b ""{app}\Data\temp\testME.vm"; StatusMsg:"Упаковка аддона"; Components:"Component1"; Flags: waituntilterminated runhidden 
Filename:"{app}\Data\temp\GOTHICVDFS.EXE"; Parameters:"/b ""{app}\Data\temp\testM.vm"; StatusMsg:"Упаковка мода"; Components:"Component2"; Flags: waituntilterminated runhidden 
// Файлы [b]GOTHICVDFS.EXE[/b], [b]testM.vm[/b] и [b]testME.vm[/b] предварительно ложим в соответствующие папки (temp)

И заготовочка для фоновой картинки и слайд-шоу с картинками в .jpg. Картинка растянется во весь экран, не зависимо от исходного размера и без внешней рамки с надписями. isxbb.dll - во вложении.
Код:
[Setup]
WindowVisible=yes
WindowResizable=no
WindowShowCaption=no

[Files]
Source: C:\isxbb.dll; DestDir: {tmp}; Flags: dontcopy
Source: C:\1.jpg; DestDir: {tmp}; Flags: dontcopy
//Это файлы для слайд-шоу (может быть больше)
Source: C:\2.jpg; DestDir: {tmp}; Flags: dontcopy
Source: C:\3.jpg; DestDir: {tmp}; Flags: dontcopy
Source: C:\4.jpg; DestDir: {tmp}; Flags: dontcopy

[code]
const
 BACKGROUND=6;
 TIMER=16;

function isxbb_AddImage(Image: PChar; Flags: Cardinal): Integer;
external 'isxbb_AddImage@files:isxbb.dll stdcall';

function isxbb_Init(hWnd: Integer): Integer;
external 'isxbb_Init@files:isxbb.dll stdcall';

function isxbb_StartTimer(Seconds: Integer; Flags: Cardinal): Integer;
external 'isxbb_StartTimer@files:isxbb.dll stdcall';

function isxbb_KillTimer(Flags: Cardinal): Integer;
external 'isxbb_KillTimer@files:isxbb.dll stdcall';

procedure InitializeWizard();
begin
  ExtractTemporaryFile('1.jpg');
  isxbb_AddImage(ExpandConstant('{tmp}')+'\1.jpg',BACKGROUND);
  isxbb_Init(StrToInt(ExpandConstant('{hwnd}')));
end;

procedure CurStepChanged(CurStep: TSetupStep);
begin
//В начале этапа установки запускаем слайд-шоу
 if CurStep=ssInstall
then
begin
ExtractTemporaryFile('2.jpg');
ExtractTemporaryFile('3.jpg');
ExtractTemporaryFile('4.jpg');
isxbb_AddImage(ExpandConstant('{tmp}')+'\2.jpg',BACKGROUND or TIMER);
isxbb_AddImage(ExpandConstant('{tmp}')+'\3.jpg',BACKGROUND or TIMER);
isxbb_AddImage(ExpandConstant('{tmp}')+'\4.jpg',BACKGROUND or TIMER);
isxbb_Init(StrToInt(ExpandConstant('{hwnd}')));
//Таймер показа изображений, в секундах
isxbb_StartTimer(3,BACKGROUND)
 end
//На завершающем этапе останавливаем таймер, при этом возвращается фоновое изображение по умолчанию
 else if CurStep=ssPostInstall then
  isxbb_KillTimer(BACKGROUND);
end;
ГЫ, а заготовку мог и не писать тк она есть в той сборке скриптов), что я дал постом выше ;);)
Гы создается впечатление что именно из той подборки твоя "заготовка"и взята ;) Хотя скорее всего гденить в нете нарыл тк этот сборник именно оттуда)
 
Последнее редактирование модератором:

Dimmell

Участник форума
Регистрация
23 Ноя 2008
Сообщения
2.899
Благодарности
111
Баллы
285
Re: InnoSetup Скрипт для модов Г1, Г2НВ

ГЫ, а заготовку мог и не писать тк она есть в той сборке скриптов), что я дал постом выше
А чего-ж ты в свой скрипт впендюрил БМП-шную картинку? ???
На тот размер можно впихнуть слайд-шоу из 20-30 jpg.


Злой дядькаКончайте оффтопить, а то счас всех перебаню. Сатурас - ты первый на очереди будешь!!!
 

Velikan

Участник форума
Регистрация
20 Фев 2009
Сообщения
31
Благодарности
0
Баллы
150
Re: NSIS

Вопрос такой задать хочу вам:
Был собран *.vdf, ini-шники к нему, все правильно (точно правильно) распихано по папкам, запаковано NSIS с помощью переделанного из оригинального скрипта. Результат после установки - ГГ на черном экране. То есть мод запускается, но "не видит"vdf? Или это косяк мой как писателя скрипта.

Отдельно все работает, так что грешу на NSIS или на GothicVDFS. Кто-то из них мог такое учудить?
 
Последнее редактирование модератором:

MaGoth

★★★★★★★★★★★
Администратор
Регистрация
7 Янв 2003
Сообщения
19.371
Благодарности
7.801
Баллы
995
Re: NSIS

Velikan написал(а):
Вопрос такой задать хочу вам:
Был собран *.vdf, ini-шники к нему, все правильно (точно правильно) распихано по папкам, запаковано NSIS с помощью переделанного из оригинального скрипта. Результат после установки - ГГ на черном экране. То есть мод запускается, но "не видит"vdf? Или это косяк мой как писателя скрипта.

Отдельно все работает, так что грешу на NSIS или на GothicVDFS. Кто-то из них мог такое учудить?
Из них никто, скорее твои руки при сборке или написании... ;)
Скинь скрипт мне на мыло или прилепи его к сообщению, гляну на всякий случай что и как, ты в нем расписал. :)

Зы, и приложи скрин с папками корня дата для твоих материалов по моду чтобы все уровни вложенности в ней были отображены. ;)
 
Последнее редактирование модератором:

Hunted

Участник форума
Регистрация
1 Май 2008
Сообщения
102
Благодарности
2
Баллы
165
Re: InnoSetup Скрипт для модов Г1, Г2НВ

Извеняюсь... Но немогу найти ответ на етот вопрос. Как изменять поле "Об*экт"в Свойствах ярлыка?
Вот:
 
Последнее редактирование модератором:

Dimmell

Участник форума
Регистрация
23 Ноя 2008
Сообщения
2.899
Благодарности
111
Баллы
285
Re: InnoSetup Скрипт для модов Г1, Г2НВ

Hunted написал(а):
Извеняюсь... Но немогу найти ответ на етот вопрос. Как изменять поле "Об*экт"в Свойствах ярлыка?
Вот:
Код:
[Icons]
Name: "{userdesktop}\НАЗВАНИЕ"; Filename:"{app}\System\Gothic2.exe"; Parameters:"-game:Gothic.INI"; Comment:"КОММЕНТАРИЙ"; IconFilename:"{app}\System\МОЯ ИКОНКА.ico"
И почитай Справку по Inno - найдешь много интересного.
 
Последнее редактирование модератором:

Hunted

Участник форума
Регистрация
1 Май 2008
Сообщения
102
Благодарности
2
Баллы
165
Re: InnoSetup Скрипт для модов Г1, Г2НВ

Вот еще вопрос...
Вот у меня есть свои файлы. Можна чтоб например во время установки можна было выбирать что ставить.

Например: С ТЕКСТУРНЫМ модом или без.

И чтоб оно копировало файл, или не копировало???
 

Dimmell

Участник форума
Регистрация
23 Ноя 2008
Сообщения
2.899
Благодарности
111
Баллы
285
Re: InnoSetup Скрипт для модов Г1, Г2НВ

Hunted написал(а):
Вот еще вопрос...
Вот у меня есть свои файлы. Можна чтоб например во время установки можна было выбирать что ставить.
Например: С ТЕКСТУРНЫМ модом или без.
И чтоб оно копировало файл, или не копировало???
Цитата из справки по INNO:
Секция [Components]
Эта секция не обязательна. Она определяет компоненты, которые инсталлятор отобразит на странице Выбор компонентов для выборочной установки.
и секция:
[Tasks]
Эта секция не обязательна. Она определяет задания, настраиваемые пользователем, которые инсталлятор выполнит в ходе установки. Задания имеют вид checkbox'ов и кнопок на странице Выбор дополнительных заданий мастера.

Может все-таки сам почитаешь справку? ;)
 
Последнее редактирование модератором:

Spielmann

Участник форума
Регистрация
22 Май 2010
Сообщения
106
Благодарности
7
Баллы
175
Хочу добавить в инсталятор NSIS мод файли, все добaвил, а папка сейвес не добавляеться, потому что она пуста, может кто-то знаєт решение етой проблеми в NSIS, такая ж проблема с Inno Setup, подскажите пожалуйста решение по двом прогам?
 

MaGoth

★★★★★★★★★★★
Администратор
Регистрация
7 Янв 2003
Сообщения
19.371
Благодарности
7.801
Баллы
995
Spielman, Не совсем понял что и куда ты хочешь добавить. Но вторым постом в начале этой темы я выкладывал скрипт, вот кусок из него и интересующие тебя сейвы:

Код:
;-------------------------------------------------------------------------------
;
;** Spielstдnde
;


LangString NameSecModSaves ${LANG_GERMAN} "Spielstдnde von ${MOD_NAME}"

; Installer (nicht angezeigt)

Section -$(NameSecModSaves) SecModSaves

* ; Mod-Savegame Verzeichnis anlegen
* !insertmacro g2mod_CreateDirectory"$INSTDIR\saves_${MOD_FILE}\current"
SectionEnd


; Uninstaller

Section un.$(NameSecModSaves) unSecModSaves

* ; Mod-Savegames entfernen
* RMDir /r "$INSTDIR\saves_${MOD_FILE}"
SectionEnd
 
Последнее редактирование модератором:
Сверху Снизу