我是靠谱客的博主 畅快棉花糖,最近开发中收集的这篇文章主要介绍unturned服务器修改物品,不一样的批处理-用批处理做的Unturned服务器部署工具(开服器)!...,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

@echo off

chcp 936

echo 设置编码完成!

title Unturned服务器部署工具 V9.4 by sand 图标来源于Unturned主程序

echo =========================================================================

echo               Unturned服务器更新工具 V2.7   by sand

echo            本bat仅为自动下载/安装/更新Unturned和Rocket

echo        config文件夹用于储存APIKey和安装目录(如果不需要可以手动删除)

echo             在使用过程中会自动释放扩展程序和vbs(wget.exe unzip.vbs)!

echo              在完成操作后会自动删除,请勿手动删除!

echo               请勿用作商业用途,如果有bug请告知!

echo =========================================================================

echo                          版权声明:

echo             Steam账号来源于fr34kyn01535的bat(Rocket的zip自带)

echo       解压zip代码来源于http://demon.tw/programming/vbs-unzip-file.html

echo       字符判断的代码来自http://www.bathome.net/thread-34099-1-1.html

echo        本bat原贴地址为http://www.mcbbs.net/thread-625354-1-1.html

echo =========================================================================

if exist "%cd%wget.exe" (echo 扩展程序已发现。) Else (echo 无法找到扩展程序!请一并解压到同一文件夹!&pause&exit)

echo "%cd%">if

findstr /p /m "&" if>if1

set /p if=

del /s /q if>nul

del /s /q if1>nul

if "%if%" == "" (echo 目录验证通过!) else (echo 该目录带有特殊字符!请解压到不带特殊字符的目录!&pause&exit)

if exist "%cd%config" (echo 已创建config目录。) Else (md "%cd%config")

::创建Config目录。

set "c=%cd%"

::当前目录留存

:start

if exist "%cd%configAPIKey" (echo 发现APIkey文件,已跳过APIkey的输入。) else (goto NAPIKey)

set /p APIKey=

if "%APIKey%" == "" set APIKey=空

echo 当前APIKey为%APIKey%

set /p CAPIKey=更改APIKey?(Y/N)

if "%CAPIKey%" == "Y" set /p "APIKey=请输入APIKey(如果不需要安装Rocket请直接回车):"&goto HAPIKey

if "%CAPIKey%" == "N" (goto HAPIKey) else (echo 你输入的字符必须为Y或N。&goto start)

:NAPIKey

set "APIKey="

set /p "APIKey=请输入APIKey(如果不需要安装Rocket请直接回车):"

if "%APIKey%" == "" set APIKey=空

:HAPIKey

echo "%APIKey%">if

findstr /p /m "&" if>if1

set "if="

set /p if=

del /s /q if>nul

del /s /q if1>nul

if "%if%" == "" (echo APIKey格式验证通过!^(不代表可以使用^)) else (echo 错误的APIKey!&goto NAPIKey)

>"%cd%configAPIKey" echo %APIKey%

:233

echo 你输入的APIKey已储存到config目录下。

set /p APIKey=

if exist "%cd%configSteamcmd" (echo 发现Steamcmd文件,已跳过Steamcmd安装目录的输入。) else (goto NSteamcmd)

set /p d=

:Ierror

echo 当前SteamCmd安装目录:%d%

set /p CSteamcmd=更改SteamCmd安装目录?(Y/N)

if "%CSteamcmd%" == "Y" set /p "d=请输入SteamCmd安装目录(安装在当前目录请直接回车-同时Unturned也会安装在该SteamCmd目录下[必须为非中文且不带有&的目录]):"&goto HSteamcmd

if "%CSteamcmd%" == "N" (goto HSteamcmd) else (echo 你输入的字符必须为Y或N。&goto Ierror)

:NSteamcmd

set "d="

set /p "d=请输入SteamCmd安装目录(安装在当前目录请直接回车-同时Unturned也会安装在该SteamCmd目录下[必须为非中文且不带有&的目录]):"

:HSteamcmd

if "%d%" == "" set "d=%cd%Steamcmd"

echo "%d%">if

findstr /p /m "&" if>if1

set "if="

set /p if=

del /s /q if>nul

del /s /q if1>nul

if "%if%" == "" (echo 目录验证通过!) else (echo 该目录带有特殊字符!请使用不带特殊字符的目录!&goto NSteamcmd)

::SteamCmd默认安装目录

if exist "%d%" (echo 目录"%d%"已存在,跳过创建目录。) Else (md "%d%")

cd /d "%d%"

set "d=%cd%"

set "a=%cd%steamappscommonUnturned"

set "Steamcmd=%cd%"

::Unturned安装目录

cd /d "%c%"

>"%cd%configInstall" echo %a%

echo 你输入的Untruned安装目录已储存到config目录下。

>"%cd%configSteamcmd" echo %Steamcmd%

echo 你输入的SteamCmd安装目录已储存到config目录下。

cd /d "%d%"

title 下载SteamCmd和Unturned中...

if exist steamcmd.exe echo 检测到SteamCmd已安装,跳过下载&goto true

::该下载SteamCmd代码来自Rocket安装文件的脚本文件夹 作者fr34kyn01535

bitsadmin.exe /transfer "正在下载SteamCMD" https://steamcdn-a.akamaihd.net/client/installer/steamcmd.zip "%d%steamcmd.zip"

::该VBS代码来自http://demon.tw/programming/vbs-unzip-file.html

>Unzip.vbs echo UnZip "%d%steamcmd.zip", "%d%"

>>Unzip.vbs echo Sub UnZip(ByVal myZipFile, ByVal myTargetDir)

>>Unzip.vbs echo     Set fso = CreateObject("Scripting.FileSystemObject")

>>Unzip.vbs echo     If NOT fso.FileExists(myZipFile) Then

>>Unzip.vbs echo         Exit Sub

>>Unzip.vbs echo     ElseIf fso.GetExtensionName(myZipFile) ^ "zip" Then

>>Unzip.vbs echo         Exit Sub

>>Unzip.vbs echo     ElseIf NOT fso.FolderExists(myTargetDir) Then

>>Unzip.vbs echo         fso.CreateFolder(myTargetDir)

>>Unzip.vbs echo     End If

>>Unzip.vbs echo     Set objShell = CreateObject("Shell.Application")

>>Unzip.vbs echo     Set objSource = objShell.NameSpace(myZipFile)

>>Unzip.vbs echo     Set objFolderItem = objSource.Items()

>>Unzip.vbs echo     Set objTarget = objShell.NameSpace(myTargetDir)

>>Unzip.vbs echo     intOptions = 256

>>Unzip.vbs echo     objTarget.CopyHere objFolderItem, intOptions

>>Unzip.vbs echo End Sub

call Unzip.vbs

del /f/s/q Steamcmd.zip>nul

del /f/s/q Unzip.vbs>nul

:true

steamcmd.exe +login unturnedrocksupdate force_update +app_update 304930 validate +exit

if exist "%d%steamappscommonUnturnedUnturned.exe" (echo Unturned安装成功) else (echo Unturned安装失败,请将SteamCmd安装目录设置到非中文且不带有^&的目录下!&pause&exit)

cd /d "%c%"

goto InstallRocket

:error

echo 你输入的字符必须为Y或N。

:InstallRocket

set /p Rocket=是否安装Rocket?(Y/N)

if "%Rocket%" == "Y" goto yes

if "%Rocket%" == "N" (goto no) else (goto error)

:yes

title 下载Rocket中...

if exist Rocket.zip del /f/s/q Rocket.zip>nul

wget http://api.rocketmod.net/download/unturned/latest/%APIKey%/Rocket.zip

del /s /q wget.exe>nul

title 正在安装Rocket...

cd /d "%a%"

if exist ".ModulesRocket.Unturned" rd /s/q .ModulesRocket.Unturned>nul

::该VBS代码来自http://demon.tw/programming/vbs-unzip-file.html

>Unzip.vbs echo UnZip "%c%Rocket.zip", "%cd%"

>>Unzip.vbs echo Sub UnZip(ByVal myZipFile, ByVal myTargetDir)

>>Unzip.vbs echo     Set fso = CreateObject("Scripting.FileSystemObject")

>>Unzip.vbs echo     If NOT fso.FileExists(myZipFile) Then

>>Unzip.vbs echo         Exit Sub

>>Unzip.vbs echo     ElseIf fso.GetExtensionName(myZipFile) ^ "zip" Then

>>Unzip.vbs echo         Exit Sub

>>Unzip.vbs echo     ElseIf NOT fso.FolderExists(myTargetDir) Then

>>Unzip.vbs echo      C   fso.CreateFolder(myTargetDir)

>>Unzip.vbs echo     End If

>>Unzip.vbs echo     Set objShell = CreateObject("Shell.Application")

>>Unzip.vbs echo     Set objSource = objShell.NameSpace(myZipFile)

>>Unzip.vbs echo     Set objFolderItem = objSource.Items()

>>Unzip.vbs echo     Set objTarget = objShell.NameSpace(myTargetDir)

>>Unzip.vbs echo     intOptions = 256

>>Unzip.vbs echo     objTarget.CopyHere objFolderItem, intOptions

>>Unzip.vbs echo End Sub

call Unzip.vbs

if exist ".Scripts" (rd /s/q .Scripts>nul) else (echo Rocket安装失败 正在还原更改...&rd /s/q .ModulesRocket.Unturned>nul)

if exist ".ModulesRocket.UnturnedLICENSE" del /f/s/q .ModulesRocket.UnturnedLICENSE>nul

if exist ".ModulesRocket.UnturnedREADME" del /f/s/q .ModulesRocket.UnturnedREADME>nul

del /f/s/q Unzip.vbs>nul

:no

cd /d "%c%"

title 安装完成!

echo 安装完成!按任意键以运行服务器配置工具

pause

echo =========================================================================

echo                Unturned服务器配置工具V2.7        by sand

echo        本bat仅为生成Unturned的开服快捷方式和配置服务器文件,

echo        请勿用作商业用途!生成的开服快捷方式会在桌面上。

echo =========================================================================

echo "%cd%">if

findstr /m "&" if>if1

set "if="

set /p if=

del /s /q if>nul

del /s /q if1>nul

if "%if%" == "" (echo 目录验证通过!) else (echo 该目录带有特殊字符!请解压到不带特殊字符的目录!&pause&exit)

if exist "%cd%configInstall" echo 检测到Unturned安装目录的配置文件,已自动设置安装路径!&set /p a=

if exist "%cd%Unturned.exe" (echo 检测到该工具在Unturned安装目录下,已自动设置安装路径!&set a=%cd%&goto true1) else (goto Start)

:false1

echo

echo 请输入正确的Unturned安装路径!

:Start

set /p a=请输入Unturned的安装路径(x:Unturned):

cd /d "%a%"

if exist "%cd%Unturned.exe" (echo 正在验证目录...) else (goto false1)

echo "%d%">if

findstr /m "&" if>if1

set "if="

set /p if=

del /s /q if>nul

del /s /q if1>nul

if "%if%" == "" (echo 目录验证通过!&goto true1) else (echo 该目录带有特殊字符!请使用不带特殊字符的目录!&goto Start)

:true2

echo

echo %e%

:true1

echo Unturned安装目录为:%a%

set d=你输入的字符不能为空且大于0。

set e=你输入的字符不能为空。

set p=你输入的字符必须为Y或N。

set /p Name0=请输入服务器的文件夹名字:

if "%Name0%"=="" (goto true2) else (goto false2)

:true3

echo

echo %e%

:false2

set /p Name=请输入要创建的服务器名字(不得含有空格且大于5个中英文字符):

if "%Name%"=="" (goto true3) else (echo 正在检测服务器名字长度...)

::该bat代码来自http://www.bathome.net/thread-34099-1-1.html

setlocal EnableDelayedExpansion

set "str=%Name%"

:length

set/a n+=1

if not "!str:~%n%!"=="" goto :length

if %n% gtr 5 (goto false3) else (goto true3)

:false3

set /p Password=请输入要创建的服务器%Name%的密码(如果无密码请直接回车):

goto Start1

:true4

echo

echo %e%

:Start1

set /p Map=请输入要创建的服务器%Name%的地图:

if "%Map%"=="" (goto true4) else (goto false4)

:false4

echo 出生装备格式为职业ID/物品ID/物品ID/物品ID/...

set /p Loadout=请输入要创建的服务器%Name%的出生装备(如果无出生装备请直接回车-这样是所有职业出生鹰火:255/4]:

goto Start2

:false5

echo

echo %d%

:Start2

set /p Port=请输入要创建的服务器%Name%的端口:

if "%Port%"=="" (goto false5)

set /a Port=%Port%/1

if %Port% geq 1 (goto true5) else (goto false5)

:false6

echo

echo 你输入的字符必须为PVE或PVP。

:true5

set /p b=请输入要创建的服务器%Name%的模式(PVP/PVE):

if "%b%"=="PVE" (goto true6)

if "%b%"=="PVP" (goto true6) else (goto false6)

:false7

echo

echo 你输入的字符不能为空,并符合0>最大人数<49的要求。

:true6

set /p Maxplayers=请输入要创建的服务器%Name%的最大人数(1-48):

if "%Maxplayers%"=="" (goto false7)

set /a Maxplayers=%Maxplayers%/1

if %Maxplayers% geq 1 (echo 正在判断人数是否符合要求...) else (goto false7)

if %Maxplayers% leq 48 (goto true7) else (goto false7)

:false8

echo

echo 你输入的字符必须为Easy、Normal、Hard或Gold。

:true7

echo Easy-简单/Normal-普通/Hard-困难/黄金-Gold

set /p Mode=请输入要创建的服务器%Name%的难度(Easy/Normal/Hard/Gold):

if "%Mode%"=="Easy" (goto true8)

if "%Mode%"=="Normal" (goto true8)

if "%Mode%"=="Hard" (goto true8)

if "%Mode%"=="Gold" (goto true8) else (goto false8)

:true8

set /p Welcome=请输入要创建的服务器%Name%的欢迎信息(如果无欢迎信息请直接回车-欢迎信息不能带有空格):

goto Start2

:false9

echo

echo 你输入的字符必须为First、Third或Both。

:Start2

echo First-只有第一视角/Third-只有第三视角/Both-两种视角皆可切换

set /p Perspective=请设置要创建的服务器%Name%的视角限制(First/Third/Both):

if "%Perspective%"=="First" (goto true9)

if "%Perspective%"=="Third" (goto true9)

if "%Perspective%"=="Both" (goto true9) else (goto false9)

:false10

echo

echo 你输入的字符必须为Enabled或Disabled。

:true9

echo Enabled-开启/Disabled-禁用

set /p Cheats=要创建的服务器%Name%需要开启作弊指令吗?(Enabled/Disabled):

if "%Cheats%"=="Enabled" (set Cheats=Cheats)

goto true10

if "%Cheats%"=="Disabled" (set Cheats=) else (goto false10)

goto true10

:false11

echo

echo %p%

:true10

set /p Whitelist=要创建的服务器%Name%需要开启白名单吗?(Y/N)

if "%Whitelist%"=="Y" (set Whitelisted=Whitelisted) else (goto if2)

goto true11

:if2

if "%Whitelist%"=="N" (set Whitelisted=) else (goto false11)

goto true11

:false20

echo

echo %p%

:true11

set /p Admin=要创建的服务器%Name%需要隐藏OP身份吗?(看不见蓝色名字)(Y/N)

if "%Admin%"=="Y" (set Admin=Hide_Admins) else (goto if3)

goto true20

:if3

if "%Admin%"=="N" (set Admin=) else (goto false20)

goto true20

:true20

echo 设置投票的格式:Y/通过后的投票冷却时间/未通过后的投票冷却时间/投票时间/投票通过的占比/发起投票的最少玩家人数

echo 例子:Y/120/360/120/0.75/3 这样是通过后的投票冷却时间为120秒 未通过后的投票冷却时间为360秒 投票时间为120秒 投票通过的占比为75% 发起投票的最少玩家人数为3人

set /p votify=要创建的服务器%Name%需要设置投票功能吗?(不设置请直接回车/如需设置请按照以上格式设置):

cls

echo Unturned安装路径:%a%

echo 要创建的服务器信息如下:

echo 服务器文件夹名字:%Name0%

echo 服务器名字:%Name%

echo 服务器密码:%Password%

echo 服务器端口:%Port%

echo 服务器最大玩家数:%Maxplayers%

echo 服务器地图:%Map%

echo 服务器模式:%b%

echo 服务器出生装备:%Loadout%

echo 服务器投票功能的设置:%votify%

if "%Mode%"=="Easy" (set Mode1=简单)

if "%Mode%"=="Normal" (set Mode1=普通)

if "%Mode%"=="Hard" (set Mode1=困难)

if "%Mode%"=="Gold" (set Mode1=黄金)

echo 服务器难度:%Mode1%

if "%Perspective%"=="First" (set Perspective1=仅为第一视角)

if "%Perspective%"=="Third" (set Perspective1=仅为第三视角)

if "%Perspective%"=="Both" (set Perspective1=两种视角皆可切换)

echo 服务器视角限制:%Perspective1%

echo 服务器的欢迎信息:%Welcome%

if "%Cheats%"=="Cheats" (set Cheats1=开启)

if "%Cheats%"=="" (set Cheats1=关闭)

echo 服务器作弊指令:%Cheats1%

if "%Whitelisted%"=="Whitelisted" (set Whitelist1=开启)

if "%Whitelisted%"=="" (set Whitelist1=关闭)

echo 服务器白名单:%Whitelist1%

if "%Admin%"=="Hide_Admins" (set Admin1=开启)

if "%Admin%"=="" (set Admin1=关闭)

echo 隐藏OP身份:%Admin1%

goto Start3

:false15

echo

echo %p%

:Start3

set /p g=是否开始创建?(Y/N)

if "%g%"=="Y" (goto Start4)

if "%g%"=="N" (goto Start) else (goto false15)

:Start4

if exist "%a%Servers" (goto true12) else (md "%a%Servers")

:true12

cd /d "%a%Servers"

if exist "%a%Servers%Name0%" (goto true13) else (md "%a%Servers%Name0%")

goto false13

:false16

echo

echo %p%

:true13

set /p l=服务器已存在,是否覆盖设置?(不删除玩家/地图数据)(Y/N)

if "%l%"=="Y" (goto false13)

if "%l%"=="N" (goto Start) else (goto false16)

:false13

if exist "%a%Servers%Name0%Server" (goto Server) else (md "%a%Servers%Name0%Server")

:Server

chcp 65001

cd /d "%a%Servers%Name0%Server"

>Commands.dat echo Name %Name%

>>Commands.dat echo Password %Password%

>>Commands.dat echo Port %Port%

>>Commands.dat echo Maxplayers %Maxplayers%

>>Commands.dat echo %b%

>>Commands.dat echo Map %Map%

if "%Welcome%"=="" (goto null1) else (goto full1)

:full1

>>Commands.dat echo Welcome %Welcome%

:null1

if "%Loadout%"=="" (goto null2) else (goto full2)

:full2

>>Commands.dat echo Loadout %Loadout%

:null2

if "%Cheats%"=="" (goto null3) else (goto full3)

:full3

>>Commands.dat echo %Cheats%

:null3

if "%Whitelisted%"=="" (goto null4) else (goto full4)

:full4

>>Commands.dat echo %Whitelisted%

:null4

if "%Admin%"=="" (goto null5) else (goto full5)

:full5

>>Commands.dat echo %Admin%

:null5

if "%votify%"=="" (goto null6) else (goto full6)

:full6

>>Commands.dat echo votify %votify%

:null6

chcp 936

For /f "tokens=2,*" %%i in ('reg query "HKCUSoftwareMicrosoftWindowsCurrentVersionExplorerShell Folders" /v "Desktop"') do Set dt=%%j

if exist "%dt%开启Unturned服务器.lnk" (goto true17) else (goto false17)

:false18

echo

echo %p%

:true17

set /p lnk=快捷方式已存在,是否覆盖?(Y/N)

if "%lnk%"=="Y" (goto true18)

if "%lnk%"=="N" (goto Start5) else (goto false18)

:true18

del /f/s/q %dt%开启Unturned服务器.lnk>nul

:false17

cd /d "%a%"

>创建快捷方式.vbs echo set WshShell = WScript.CreateObject("WScript.Shell")

>>创建快捷方式.vbs echo set oShellLink = WshShell.CreateShortcut("%dt%开启Unturned服务器.lnk")

>>创建快捷方式.vbs echo oShellLink.TargetPath = "%cd%Unturned.exe"

>>创建快捷方式.vbs echo oShellLink.Arguments = "-nographics -batchmode +internetserver/%Name0%"

>>创建快捷方式.vbs echo oShellLink.WindowStyle = 1

>>创建快捷方式.vbs echo oShellLink.Hotkey = ""

>>创建快捷方式.vbs echo oShellLink.IconLocation = "%cd%Unturned.exe, 0"

>>创建快捷方式.vbs echo oShellLink.Description = "开启Unturned服务器"

>>创建快捷方式.vbs echo oShellLink.WorkingDirectory = "%cd%"

>>创建快捷方式.vbs echo oShellLink.Save

:loop

call 创建快捷方式.vbs

if exist "%dt%开启Unturned服务器.lnk" (goto stop) else (echo 创建快捷方式失败...)

goto loop

:stop

del /f/s/q 创建快捷方式.vbs>nul

cd /d "%a%"

if exist .创建快捷方式.vbs (echo 删除快捷方式的vbs失败...) else (goto Start5)

goto stop

:Start5

echo 创建完成,感谢你的使用!

pause

最后

以上就是畅快棉花糖为你收集整理的unturned服务器修改物品,不一样的批处理-用批处理做的Unturned服务器部署工具(开服器)!...的全部内容,希望文章能够帮你解决unturned服务器修改物品,不一样的批处理-用批处理做的Unturned服务器部署工具(开服器)!...所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(75)

评论列表共有 0 条评论

立即
投稿
返回
顶部