Unicode true ; 年糕历险记 —— Windows 安装脚本(NSIS 3,简体中文) ; 用法:makensis /DVERSION=1.0.0 scripts/installer.nsi ; 产物:年糕历险记-Setup-v1.0.0.exe(构建与发布.md §8) !include "MUI2.nsh" ; ---- 产品信息(构建与发布.md §8:名称统一为 年糕历险记)---- !ifndef VERSION !define VERSION "0.1.0" !endif !define PRODUCT_NAME "年糕历险记" !define PRODUCT_NAME_EN "NianGao Adventure" !define PRODUCT_PUBLISHER "NianGao Studio" !define PRODUCT_EXE "mc-client.exe" !define INSTALLER_NAME "${PRODUCT_NAME}-Setup-v${VERSION}.exe" !define UNINSTALL_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME_EN}" Name "${PRODUCT_NAME}" OutFile "..\dist\${INSTALLER_NAME}" InstallDir "$PROGRAMFILES64\${PRODUCT_NAME_EN}" InstallDirRegKey HKLM "${UNINSTALL_KEY}" "InstallLocation" RequestExecutionLevel admin SetCompressor /SOLID lzma !define MUI_ABORTWARNING !define MUI_FINISHPAGE_RUN "$INSTDIR\${PRODUCT_EXE}" !define MUI_FINISHPAGE_RUN_TEXT "运行${PRODUCT_NAME}" ; ---- 页面(全中文)---- !insertmacro MUI_PAGE_WELCOME !insertmacro MUI_PAGE_DIRECTORY !insertmacro MUI_PAGE_INSTFILES !insertmacro MUI_PAGE_FINISH !insertmacro MUI_UNPAGE_CONFIRM !insertmacro MUI_UNPAGE_INSTFILES !insertmacro MUI_LANGUAGE "SimpChinese" ; ---- 安装内容(构建与发布.md §8)---- Section "主程序" SEC01 SetOutPath "$INSTDIR" File "..\bin\mc-client.exe" File "..\bin\mc-server.exe" ; 配置与语言 SetOutPath "$INSTDIR\config" File "..\config\client.yaml" File "..\config\server.yaml" ; 游戏数据(方块/物品/配方注册表) SetOutPath "$INSTDIR\assets" File /r "..\assets\*.*" ; 默认素材包 SetOutPath "$INSTDIR\resourcepacks\texture-pack-default1.20.5-26.2" File /r "..\resourcepacks\texture-pack-default1.20.5-26.2\*.*" ; 内容包投放目录与说明 SetOutPath "$INSTDIR\mods" File "..\mods\README.md" ; 初始化:创建存档/日志目录与占位说明(安装与初始化) CreateDirectory "$INSTDIR\worlds" CreateDirectory "$INSTDIR\logs" FileOpen $0 "$INSTDIR\worlds\说明.txt" w FileWrite $0 "世界存档目录:游戏会自动把世界保存到这里。" FileClose $0 ; 注册卸载信息 WriteRegStr HKLM "${UNINSTALL_KEY}" "DisplayName" "${PRODUCT_NAME}" WriteRegStr HKLM "${UNINSTALL_KEY}" "DisplayVersion" "${VERSION}" WriteRegStr HKLM "${UNINSTALL_KEY}" "Publisher" "${PRODUCT_PUBLISHER}" WriteRegStr HKLM "${UNINSTALL_KEY}" "DisplayIcon" "$INSTDIR\${PRODUCT_EXE}" WriteRegStr HKLM "${UNINSTALL_KEY}" "InstallLocation" "$INSTDIR" WriteRegStr HKLM "${UNINSTALL_KEY}" "UninstallString" '"$INSTDIR\uninstall.exe"' WriteRegDWORD HKLM "${UNINSTALL_KEY}" "NoModify" 1 WriteRegDWORD HKLM "${UNINSTALL_KEY}" "NoRepair" 1 WriteUninstaller "$INSTDIR\uninstall.exe" ; 快捷方式(桌面 + 开始菜单,中文名) CreateShortCut "$DESKTOP\${PRODUCT_NAME}.lnk" "$INSTDIR\${PRODUCT_EXE}" CreateDirectory "$SMPROGRAMS\${PRODUCT_NAME}" CreateShortCut "$SMPROGRAMS\${PRODUCT_NAME}\${PRODUCT_NAME}.lnk" "$INSTDIR\${PRODUCT_EXE}" CreateShortCut "$SMPROGRAMS\${PRODUCT_NAME}\卸载${PRODUCT_NAME}.lnk" "$INSTDIR\uninstall.exe" SectionEnd ; ---- 卸载 ---- Section "Uninstall" Delete "$DESKTOP\${PRODUCT_NAME}.lnk" RMDir /r "$SMPROGRAMS\${PRODUCT_NAME}" Delete "$INSTDIR\${PRODUCT_EXE}" Delete "$INSTDIR\mc-server.exe" Delete "$INSTDIR\uninstall.exe" RMDir /r "$INSTDIR\config" RMDir /r "$INSTDIR\resourcepacks" RMDir /r "$INSTDIR\mods" ; 保留用户存档(worlds/)与日志,不删除 DeleteRegKey HKLM "${UNINSTALL_KEY}" SectionEnd