Source Mod Installers: Difference between revisions
Jump to navigation
Jump to search
Note:To automate the file list, use the NSIS Script Wizard in HM NIS Edit, then copy the list to your
Note:You might want to be sure to include a ZIP-compressed version of the mod as a download. This will make certain people who do not like third-party setup files will be able to get the mod.
mNo edit summary |
mNo edit summary |
||
Line 3: | Line 3: | ||
For this, you need [http://nsis.sourceforge.net/ NSIS] and [http://hmne.sourceforge.net/ HM NIS Edit]. | For this, you need [http://nsis.sourceforge.net/ NSIS] and [http://hmne.sourceforge.net/ HM NIS Edit]. | ||
{{note|To automate the file list, use the NSIS Script Wizard in HM NIS Edit, then copy the list to your <code>setup.nsi</code>.}} | |||
{{note|To automate the | |||
{{note|You might want to be sure to include a [[Wikipedia:ZIP (file format)|ZIP]]-compressed version of the mod as a download. This will make certain people who do not like third-party setup files will be able to get the mod.}} | {{note|You might want to be sure to include a [[Wikipedia:ZIP (file format)|ZIP]]-compressed version of the mod as a download. This will make certain people who do not like third-party setup files will be able to get the mod.}} | ||
=Code from setup.nsi= | =Code from setup.nsi= | ||
<pre>!define PRODUCT_NAME " | <pre> | ||
!define PRODUCT_VERSION " | !define PRODUCT_NAME "Mod's Name" | ||
!define PRODUCT_PUBLISHER " | |||
!define PRODUCT_WEB_SITE " | !define PRODUCT_VERSION "Release Version" | ||
!define PRODUCT_PUBLISHER "Mod Team/Company Name" | |||
!define PRODUCT_WEB_SITE "Mod Website" | |||
!define MODDIR "Mod's root directory" | |||
;(i.e. cstrike) | |||
!define MUI_ICON "Installer Icon" | |||
;This is the location on the local computer where the icon for the installer executable is. | |||
!define FULL_GAME_NAME "Full Game Name" | |||
;This is the name of the game defined in gameinfo.txt | |||
!define DESKICO "Desktop Icon" | |||
;This is the location on the local computer where the icon for the desktop icon for the game is. | |||
;The icon name must be the same as the one in gameinfo.txt | |||
;Uncomment this if you do not wish to have a custom desktop icon: | ;Uncomment this if you do not wish to have a custom desktop icon: | ||
;!define NO_DESKTOP_ICON | ;!define NO_DESKTOP_ICON | ||
!include "MUI.nsh" | !include "MUI.nsh" | ||
Line 41: | Line 45: | ||
SetOverwrite ifdiff | SetOverwrite ifdiff | ||
SetOutPath "$INSTDIR" | SetOutPath "$INSTDIR" | ||
;!!!!AT THIS POINT, YOU SHOULD ADD A LIST OF LOCAL FILES TO INSTALL | |||
;File "Blah" | |||
;File directories are local | |||
!ifndef NO_DESKTOP_ICON | !ifndef NO_DESKTOP_ICON | ||
SetOutPath "$ | SetOutPath "$ICONDIR" | ||
File "DESKICO" | File "${DESKICO}" | ||
!endif | !endif | ||
SectionEnd | SectionEnd | ||
!ifndef NO_DESKTOP_ICON | |||
Section "Desktop Shortcut" SEC02 | |||
SetOutPath "$DESKTOP" | |||
CreateShortcut "${PRODUCT_NAME}.lnk" $STEAMEXE `-applaunch 220 -game "$INSTDIR"` "$ICONDIR\${FULL_GAME_NAME}.ico" | |||
SectionEnd | |||
!endif | |||
Function .onInit | Function .onInit | ||
ReadRegStr $R0 HKLM "Software\Valve\Steam" InstallPath | |||
ReadRegStr $R1 HKCU "Software\Valve\Steam" SourceModInstallPath | |||
IfErrors lbl_error 0 | |||
StrCpy $INSTDIR "$R1\${MODDIR}" | |||
!ifndef NO_DESKTOP_ICON | !ifndef NO_DESKTOP_ICON | ||
StrCpy $ICONDIR "$R0\steam\games" | |||
SectionSetFlags ${SEC02} 0 | |||
!endif | !endif | ||
SectionSetFlags ${SEC01} 17 | |||
StrCpy $STEAMEXE "$R0\steam.exe" | |||
Return | |||
lbl_error: | |||
ClearErrors | |||
SectionSetFlags ${SEC01} 16 | |||
FunctionEnd</pre> | FunctionEnd</pre> | ||
Revision as of 21:55, 21 October 2005
Extra thanks to User:Garry Newman for relaying the basics of a mod installer.
For this, you need NSIS and HM NIS Edit.

setup.nsi
.
Code from setup.nsi
!define PRODUCT_NAME "Mod's Name" !define PRODUCT_VERSION "Release Version" !define PRODUCT_PUBLISHER "Mod Team/Company Name" !define PRODUCT_WEB_SITE "Mod Website" !define MODDIR "Mod's root directory" ;(i.e. cstrike) !define MUI_ICON "Installer Icon" ;This is the location on the local computer where the icon for the installer executable is. !define FULL_GAME_NAME "Full Game Name" ;This is the name of the game defined in gameinfo.txt !define DESKICO "Desktop Icon" ;This is the location on the local computer where the icon for the desktop icon for the game is. ;The icon name must be the same as the one in gameinfo.txt ;Uncomment this if you do not wish to have a custom desktop icon: ;!define NO_DESKTOP_ICON !include "MUI.nsh" !define MUI_ABORTWARNING !insertmacro MUI_PAGE_DIRECTORY !insertmacro MUI_PAGE_INSTFILES !insertmacro MUI_LANGUAGE "English" Name "${PRODUCT_NAME} ${PRODUCT_VERSION}" OutFile "Setup.exe" ShowInstDetails show Section "Mod" SEC01 SetOverwrite ifdiff SetOutPath "$INSTDIR" ;!!!!AT THIS POINT, YOU SHOULD ADD A LIST OF LOCAL FILES TO INSTALL ;File "Blah" ;File directories are local !ifndef NO_DESKTOP_ICON SetOutPath "$ICONDIR" File "${DESKICO}" !endif SectionEnd !ifndef NO_DESKTOP_ICON Section "Desktop Shortcut" SEC02 SetOutPath "$DESKTOP" CreateShortcut "${PRODUCT_NAME}.lnk" $STEAMEXE `-applaunch 220 -game "$INSTDIR"` "$ICONDIR\${FULL_GAME_NAME}.ico" SectionEnd !endif Function .onInit ReadRegStr $R0 HKLM "Software\Valve\Steam" InstallPath ReadRegStr $R1 HKCU "Software\Valve\Steam" SourceModInstallPath IfErrors lbl_error 0 StrCpy $INSTDIR "$R1\${MODDIR}" !ifndef NO_DESKTOP_ICON StrCpy $ICONDIR "$R0\steam\games" SectionSetFlags ${SEC02} 0 !endif SectionSetFlags ${SEC01} 17 StrCpy $STEAMEXE "$R0\steam.exe" Return lbl_error: ClearErrors SectionSetFlags ${SEC01} 16 FunctionEnd