Modding Union

Modderecke => Tutorials => Thema gestartet von: LastElb am 28. Mär 2010, 19:42

Titel: Modinstaller - Für alles gewappnet
Beitrag 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
Titel: Re: How To: Eigener Modinstaller
Beitrag von: Rogash am 28. Mär 2010, 19:47
Ich schau es mir bei Zeit an, könnte mein Team auch für unsere Mod verwenden, denke ich...
Titel: Re: How To: Eigener Modinstaller
Beitrag von: Turin Turumbar am 28. Mär 2010, 19:49
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^^
Titel: Re: How To: Eigener Modinstaller
Beitrag von: Altaïr am 28. Mär 2010, 19:55
Klasse, werds mir mal anschauen.
Titel: Re: How To: Eigener Modinstaller
Beitrag von: Turin Turumbar am 28. Mär 2010, 19:58
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.
Titel: Re: How To: Eigener Modinstaller
Beitrag von: LastElb am 28. Mär 2010, 21:05
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
Titel: Re: How To: Eigener Modinstaller
Beitrag von: LastElb am 29. Mär 2010, 23:00
So, nach sehr kurzer Zeit ein sehr kurzer zweiter Teil online.
Link ist oben.
Titel: Re: How To: Eigener Modinstaller
Beitrag von: König Legolas am 3. Apr 2010, 17:20
Hallo,

vielen Dank LastElb :)

Das schaue ich mir mal an, das wird Perfekt für unsere Mod sein  :)
Titel: Re: How To: Eigener Modinstaller
Beitrag von: minasmoritz am 9. Apr 2010, 12:01
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  :)
Titel: Re: How To: Eigener Modinstaller
Beitrag von: LastElb am 10. Mai 2010, 20:06
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 adminAnsonsten gibt euch der Installer eine Fehlermeldung während der Installation
Titel: Re: How To: Eigener Modinstaller
Beitrag von: Erzmagier am 10. Mai 2010, 20:17
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!
Titel: Re: How To: Eigener Modinstaller
Beitrag von: LastElb am 16. Mai 2010, 20:27
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.
Titel: Der perfekte Modinstaller
Beitrag von: LastElb am 1. Aug 2010, 13:35
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/)