返回
Featured image of post 饥荒服务端食用指南-Centos7

饥荒服务端食用指南-Centos7

迁移一下服务器,正好顺便归一下档

饥荒服务端与STEAM耦合程度比较高,虽然安装和配MOD过程变简单了,配置认证信息却不是那么方便。

1. 服务端安装

先把运行环境准备好

# 安装依赖库
sudo yum -y install glibc.i686 libstdc++.i686 libcurl4-gnutls-dev.i686 libcurl.i686 screen
cd /usr/lib
ln -s libcurl.so.4 libcurl-gnutls.so.4

安装steamcmd

cd ~ && mkdir steamcmd && cd steamcmd
wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz
tar -xvzf steamcmd_linux.tar.gz

steamcmd匿名登录并安装

./steamcmd.sh
login anonymous
force_install_dir /usr/local/dst/dstserver
app_update 343050 validate		# 等STEAM把饥荒装好
quit

创建启动主世界和洞窟服务器的sh文件,注意这里我们使用的存档路径是/usr/local/dst/dstsave

echo "./dontstarve_dedicated_server_nullrenderer -console -persistent_storage_root /usr/local/dst/dstsave -conf_dir dst -cluster World1 -shard Master" > master_start.sh
echo "./dontstarve_dedicated_server_nullrenderer -console -persistent_storage_root /usr/local/dst/dstsave -conf_dir dst -cluster World1 -shard Caves" > cave_start.sh
chmod +x master_start.sh cave_start.sh

因此启动顺序如下

screen -S dst_master
/usr/local/dst/dstserver/bin/master_start.sh

screen -S dst_cave
/usr/local/dst/dstserver/bin/cave_start.sh

之后从原有的饥荒客户端上把存档迁移到/usr/local/dst/dstsave下,直接把CLUSTER文件复制过来就行唯一要多的就是根据KLEI官网上的服务器令牌写一个cluster_token.txt文件添加到存档下

接下来添加管理员,adminlist.txt也在/usr/local/dst/dstsave下,一行一个KLEI用户ID


2. 服务端更新

比较方便的办法是通过 steam 进行,首先进入 steamcmd 并匿名登录

cd ~/steamcmd		# STEAM CMD 主目录
./steamcmd.sh
login anonymous

切到饥荒服务器主目录下(这一步可能会要求在 login 之前进行,和 login anonymous 顺序对调即可)

force_install_dir /usr/local/dst/dstserver	# DST 主目录

更新饥荒服务器

app_update 343050 validate

然后等更新进度走完就可以了

quit

3. 服务端MOD安装

服务端MOD本身是在 DST 主目录的 /mod 目录下,以 workhop-{id} 名字的文件夹形式存放,所有的 id 就是可订阅物品对应的 Steam 社区 ID,例如 http://steamcommunity.com/sharedfiles/filedetails/?id=350811795 的 MOD ,ID 就是 350811795 。同一目录下的 dedicated_server_mods_setup.lua 是 MOD 安装脚本,需要安装新 MOD 或者 MOD 集合都需要在里面进行追加——

ServerModSetup("1878212389") # 安装对应id的MOD
ServerModCollectionSetup("379114180") # 安装对应id的MOD集合

这个脚本文件会在服务器启动时被运行,因此只要追加MOD安装指令就行了。

接下来要解决的是MOD id问题。当然也可以一个一个去创意工坊查url,但是我们知道已经生成的存档中都会有对应的 MOD Config 脚本,主世界的叫 master/modoverrides.lua ,洞穴的叫 cave/modoverrides.lua 。所有 MOD 的 Config 都以JSON形式写在里面。

例如堆叠上限这个 MOD,对应配置就是:

["workshop-1878212389"]={ configuration_options={ MAXSTACKSIZE=99 }, enabled=true }

这个 MAXSTACKSIZE 就对应 MOD 配置时的最大堆叠上限值,每个 MOD 要生效都需要使能标志 enabledtrue

因此,将这个配置脚本中的所有 MOD ,将 workshop- 后的 id 追加到前面的 dedicated_server_mods_setup.lua 后就行了。

comments powered by Disqus