Modding Union
Modderecke => Tutorials => Thema gestartet von: LastElb am 28. Mär 2010, 19:42
-
Hallo alle zusammen,
ich habe mich wieder um ein neues Tutorial bemüht. Dieses mal erkäre ich euch, wie ihr mit Hilfe von NSIS einen eigenen Installer bauen könnt.
Hier der Downloadlink
Als PDF anschauen (http://www.lastelb.de/hdr/tuts/How%20To%20Installer.pdf)
Der zweite Teil ist jetzt auch online:
Als PDF anschauen (http://www.lastelb.de/hdr/tuts/How%20To%20Installer%202.pdf)
Teil 3:
PDF (http://www.lastelb.com/hdr/tuts/perfekter_modinstaller.pdf)
Lob und Kritik erwünscht
LastElb
-
Ich schau es mir bei Zeit an, könnte mein Team auch für unsere Mod verwenden, denke ich...
-
Huihuihui, da such ich seit einiger Zeit nach dem Befehl zum Ausführen einer Datei aus dem Installer heraus und find den in deinem Tutorial, super! ;)
Ansonsten ist es ein sehr nettes NSIS Tutorial, wenn ich da meine NSIS Scripte anschaue sind diese immer DEUTLICH umübersichtlicher, als deiner im Tutorial^^
-
Klasse, werds mir mal anschauen.
-
Achja eine Sache noch anzumerken:
Dein Installer würde nur auf 32 Bit Systemen funktionieren.
Dies liegt daran, dass die Registry Keys auf einem 64 Bit System einen anderen Pfad haben. Deshalb hab ich für den Edaininstaller einen Script erstellt, welches die Registrykeys kopiert.
@echo off
echo Edain Mod 3.1 Systemueberpruefung by Turin
echo Ueberpruefung ob ein 64 Bit Betriebssystem installiert ist.
Set RegQry=HKLM\Hardware\Description\System\CentralProcessor\0
REG.exe Query %RegQry% > checkOS.txt
Find /i "x86" < CheckOS.txt > StringCheck.txt
If %ERRORLEVEL% == 0 (
Echo Dieses System ist ein 32 Bit System, der Fix wird nicht angewendet
) ELSE (
Echo Dieses System ist ein 64 Bit System, der Registrierungsfix wird nun angewendet
echo Kopiere Registrierungseintraege...
REG COPY "HKLM\Software\Wow6432Node\Electronic Arts\Electronic Arts\The Battle for Middle-earth II" "HKLM\Software\Electronic Arts\Electronic Arts\The Battle for Middle-earth II" /s /f
REG COPY "HKLM\Software\Wow6432Node\Electronic Arts\Electronic Arts\The Lord of the Rings, The Rise of the Witch-king" "HKLM\Software\Electronic Arts\Electronic Arts\The Lord of the Rings, The Rise of the Witch-king" /s /f
echo Kopieren der Registrierungseintraege erfolgreich.
)
Dieses als *.bat Datei speichern und ausführen. Man müsste jetzt also am Anfang noch eine Section machen, die zuerst installiert wird und dieses Script ausgeführt wird. Danach dürften dann erst die Moddateien installiert werden, das Problem hierbei ist wahrscheinlich, dass die Registryeinträge beim Laden des Installers überprüft werden, könnte deswegen also trotzdem zu Problemen kommen.
-
Ich glaube, in diesem Fall ist es egal, weil bei der Installation von SUM die Registry Einträge unter Wow6432Node abgelegt werden. Da der Installer nur im 32bit Modus läuft, kann er auch nur auf die im Wow6432Node zugreifen.
Kann es aber jetzt nicht ausprobieren
-
So, nach sehr kurzer Zeit ein sehr kurzer zweiter Teil online.
Link ist oben.
-
Hallo,
vielen Dank LastElb :)
Das schaue ich mir mal an, das wird Perfekt für unsere Mod sein :)
-
Ich probirs gleich mal aus weis aber nicht was ich Instalieren soll :D.
PS:Vieleicht irgendeine Mod ohne installer xD xD.
PPS: Vielen Dank Last Elb :)
-
Hallo,
ich hab noch eine Anmerkung, und zwar:
Um unter Windows Vista und 7 in den Program Files Ordner zu schreiben, benötigt ihr Administratorrechte.
Als braucht ihr folgende Codezeile:
RequestExecutionLevel admin
Ansonsten gibt euch der Installer eine Fehlermeldung während der Installation
-
Werd's mir mal anschauen und versuchen, mir da selbst was zu basteln, auch wenn ich denke, das wird wohl kaum funktionieren. ^^
Sicher mal vielen Dank!
-
Hallo,
ich hab hier mal den Edain Mod 3.4 als Codebeispiel genommen. Ihr könnt den Code natürlich nach euren Belieben verändern.
BrandingText "(c) LastElb"
SetCompressor lzma
!include "MUI.nsh"
; MUI Settings
!define MUI_ABORTWARNING
!define MUI_WELCOMEFINISHPAGE_BITMAP "${NSISDIR}\Contrib\MUIOrangeVistaTheme\CD-Clean\wizard.bmp"
!define MUI_ICON "${NSISDIR}\Contrib\MUIOrangeVistaTheme\CD-Clean\installer.ico"
!define MUI_UNWELCOMEFINISHPAGE_BITMAP "${NSISDIR}\Contrib\MUIOrangeVistaTheme\CD-Clean\wizard-un.bmp"
!define MUI_UNICON "${NSISDIR}\Contrib\MUIOrangeVistaTheme\CD-Clean\uninstaller.ico"
; Könnt ihr auch ausklammern
;--------------------------------
;General
;Name and file
Name "Edain Mod 3.4"
OutFile "Setup Edain.exe"
AutoCloseWindow False
ShowInstDetails show
InstallDir "$PROGRAMFILES\Edain" ; Einfach irgendwas, weil wird später sowieso geändert
;Benutzerkontensteuerung für Vista und 7
RequestExecutionLevel admin ; Damit ihr in den Programme-Ordner schreiben könnt
;--------------------------------
;Pages
!insertmacro MUI_PAGE_WELCOME
!define MUI_LICENSEPAGE_CHECKBOX
;!insertmacro MUI_PAGE_LICENSE (license.txt)
!insertmacro MUI_PAGE_COMPONENTS
;!insertmacro MUI_PAGE_DIRECTORY
!insertmacro MUI_PAGE_INSTFILES
;!insertmacro MUI_PAGE_FINISH
!insertmacro MUI_LANGUAGE "German"
Function .onInit
SetOutPath $TEMP
File /oname=spltmp.bmp "C:\Freigabe\GermanSplash.bmp" ;Pfad zum SplashBild. Muss bmp sein
advsplash::show 1000 600 400 -1 $TEMP\spltmp
Pop $0 ; $0 has '1' if the user closed the splash screen early,
; '0' if everything closed normally, and '-1' if some error occurred.
Delete $TEMP\spltmp.bmp
;!insertmacro MUI_LANGDLL_DISPLAY
FunctionEnd
Section "Edain Mod Version 3.4" Sec1
SectionIn RO ;Das ermöglicht, dass diese Installationsoption nicht abgewählt werden kann
ReadRegStr $1 HKLM "Software\Electronic Arts\Electronic Arts\The Lord of the Rings, The Rise of the Witch-king" "InstallPath"
SetOutPath $1
File "H:\Spiele\Schlacht um Mittelerde 2\Edain\Edain 3.4\__edain_999.big" ; Absolute oder relative Pfade zu Dateien
File "H:\Spiele\Schlacht um Mittelerde 2\Edain\Edain 3.4\__edain_data.big"
File "H:\Spiele\Schlacht um Mittelerde 2\Edain\Edain 3.4\__edain_german.big"
File "H:\Spiele\Schlacht um Mittelerde 2\Edain\Edain 3.4\__edain_maps.big"
File "H:\Spiele\Schlacht um Mittelerde 2\Edain\Edain 3.4\__edain_texture.big"
File "H:\Spiele\Schlacht um Mittelerde 2\Edain\Edain 3.4\__edain_w3d.big"
ReadRegStr $0 HKLM "Software\Electronic Arts\Electronic Arts\The Battle for Middle-earth II" "InstallPath"
SetOutPath $0
File "H:\Spiele\Schlacht um Mittelerde 2\Edain\Edain 3.4\asset.dat"
DetailPrint "Installation erfolgreich abgeschlossen."
SectionEnd
Wenn ihr den Code verwendet, müsst ihr die Pfade anpassen!!
Man kann jetzt noch einen Uninstaller hinzufügen, aber das kriegt ihr schon selber hin ;)
Is ja nich so schwer.
Mit LZMA solid bekommt ihr dann am Ende eine Setupgröße von 586 MB.
Zum Vergleich: Der aktuelle Edaininstaller wiegt 683 MB.
-
Ich hab einen neuen Teil geschrieben:
PDF (http://www.lastelb.com/hdr/tuts/perfekter_modinstaller.pdf)
Kommentare erwünscht
PS: Was haltet ihr von der 404-Site: Klick (http://www.lastelb.com/hdr/tuts/)