Установщики Source Модификаций

From Valve Developer Community
Jump to: navigation, search
Underlinked - Logo.png
This article needs more links to other articles to help integrate it into the encyclopedia. Please help improve this article by adding links that are relevant to the context within the existing text.
January 2024
English (en)русский (ru)
... Icon-Important.png

Дополнительная благодарность пользователю Garry Newman за предоставление основы установщика мода.

Для этого, вам потребуется NSIS и HM NIS Edit.

Note.pngNote:Для автоматизации списка файлов, используйте NSIS Script Wizard в HM NIS Edit, затем скопируйте список в setup.nsi.
Note.pngNote:Вы можете быть уверены, что используется ZIP-сжатая версия мода для загрузки. Это позволит людям с плохим интернетом получить ваш мод.

Код из setup.nsi

!define PRODUCT_NAME "Название Мода"
!define PRODUCT_VERSION "Версия"
!define PRODUCT_PUBLISHER "Команда Разработчиков/Название Компании"
!define PRODUCT_WEB_SITE "Веб-Сайт мода"

!define APPID 220

!define MODDIR "Корневая директория мода"
;(например, cstrike)

!define LOCALDIR "C:\Program Files\Valve\Steam\SteamApps\SourceMods"
;Это значение должно быть установлено в зависимости от PC, на котором происходит компиляция

!define MUI_ICON "Иконка Установщика"
;Это локальное расположение иконки, используемой для установщика.

!define FULL_GAME_NAME "Полное Название Игры"
;Это название, определенное в gameinfo.txt
;В имени файла удалите все двоеточия, а также любые другие недействительные символы

!define DESKICO "Иконка на Рабочем Столе"
;Это локальное расположение иконки, используемой для рабочего стола.
;Имя иконки должно совпадать с установленной в gameinfo.txt
;В имени файла удалите все двоеточия, а также любые другие недействительные символы

;Раскомментируйте, если вы не хотите создавать иконки на рабочем столе:
;!define NO_DESKTOP_ICON

;Раскомментируйте, если вы хотите использовать ZipDLL
;Для этого, Zip файл должен находится в КОРНЕВОЙ ДИРЕКТОРИИ
;!define ZIPDLL

;======НЕ РЕДАКТИРУЙТЕ======

!ifdef ZIPDLL
	!include "zipdll.nsh"
!endif

var ICONDIR
var STEAMEXE

!include "MUI.nsh"
!define MUI_ABORTWARNING
!insertmacro MUI_PAGE_COMPONENTS
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_LANGUAGE "English"

Name "${PRODUCT_NAME} ${PRODUCT_VERSION}"
OutFile "${PRODUCT_NAME}.exe"
ShowInstDetails show

Section "Mod Files" FILES
	SetOverwrite ifdiff
	SetOutPath "$INSTDIR"
!ifdef ZIPDLL
	File "${LOCALDIR}\${MODDIR}.zip"
	StrCpy $R0 "$INSTDIR\${MODDIR}.zip"
	ZipDLL::extractall "$R0" "$INSTDIR"
	Delete "$R0"
!else
	File /r "${LOCALDIR}\${MODDIR}"
!endif

!ifndef NO_DESKTOP_ICON
	SetOutPath "$ICONDIR"
	File "${DESKICO}"
!endif

SectionEnd
!ifndef NO_DESKTOP_ICON
Section "Desktop Shortcut" SHORTCUT
	SetOutPath "$DESKTOP"
	CreateShortcut "${FULL_GAME_NAME}.lnk" $STEAMEXE \
		'-applaunch ${APPID} -game "$INSTDIR"' "$ICONDIR\${FULL_GAME_NAME}.ico"
SectionEnd
!endif
Page custom Finish
Function Finish
  MessageBox MB_OK|MB_ICONEXCLAMATION "Steam must be restarted for the game to show on the games list."
FunctionEnd
Function .onInit
	ReadRegStr $R0 HKLM "Software\Valve\Steam" InstallPath
	ReadRegStr $R1 HKCU "Software\Valve\Steam" SourceModInstallPath
	IfErrors lbl_error 0
	StrCpy $INSTDIR "$R1"
!ifndef NO_DESKTOP_ICON
	StrCpy $ICONDIR "$R0\steam\games"
	SectionSetFlags ${SHORTCUT} 0
	StrCpy $STEAMEXE "$R0\steam.exe"
!endif
	SectionSetFlags ${FILES} 17
	Return
	lbl_error:
		ClearErrors
		SectionSetFlags ${FILES} 17
FunctionEnd

См. Также

Это потрясающая программа для работы с иконками. Поддерживает XP иконки.
Это потрясающая программа для работы с иконками, доступна в триальной версии.
Это пошаговый учебник, по созданию установщика для Steam игр. В основном для CS:S и Day of Defeat но может использоваться для любой VALVe игры, которая требует автоматического поиска пути к модам в Steam директории. Используйте для установки Модов, Карт, Моделей... любого контента. Все упомянутые в статье инструменты являются бесплатными.