Ubuntu下部署饥荒专用服务器

环境配置

sudo -i # 切换到root用户

apt update -y  # 升级packages

apt install wget curl sudo vim git -y # 安装常用的软件

apt-get install lib32gcc1 screen 

安装饥荒

创建新用户

创建新用户,在新用户权限下进行所有操作,避免使用root用户所带来的风险。

adduser steam

su steam

切换用户

su steam

cd ~

安装steamcmd

mkdir steamcmd  #新建一个目录来安装steamcmd

cd steamcmd

wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz  #下载steamcmd并解压

tar -zxvf steamcmd_linux.tar.gz

安装饥荒

./steamcmd.sh +login anonymous +force_install_dir ~/dst +app_update 343050 validate +quit  # 指定安装至为用户家目录下的dst目录

ln -s /usr/lib/libcurl.so.4 ~/dst/bin/lib32/libcurl-gnutls.so.4 # 创建一个软链接

创建房间

创建地图

首先使用饥荒联机版创建游戏,选择好地图设置以及mod选项后创建世界。

获取存档文件

存档文件位置

C:\Documents\Klei\DoNotStarveTogether\Cluster_X

根据创建世界生成顺序,X对应1、2、3……

请自行根据生成时间判断对应存档。

获取cluster_token

选择下方的游戏选项。

进入如下网页(需要选择网页上的游戏选项)。

点击《饥荒:联机版》的游戏服务器。

选择添加新服务器,添加完成后选择配置服务器,进入如下界面,配置完成后,下载设置。

得到配置文件。解压后放入存档文件夹。

添加管理员

创建adminlist.txt文件,文件内容填入科雷id,即KU_开头的一串字符。

上传文件

上传存档

使用ftp工具将上面配置好的饥荒存档文件夹上传至~/.klei/DoNotStarveTogether/路径下。

我使用的Winscp,你可以使用其他工具。自行在网上下载。

上传mod

将你创建游戏时所有勾选的服务器mod上传至~/dst/mods路径下,并将每个mod文件夹的名字前加上workshop-前缀。

创建启动文件

cd ~/dst/bin/
echo ./dontstarve_dedicated_server_nullrenderer -console -cluster XXXX -shard Master > dst_master.sh

echo ./dontstarve_dedicated_server_nullrenderer -console -cluster XXXX -shard Caves > dst_caves.sh

XXXX为你的存档文件夹的名字

为文件添加可执行权限

chmod +x dst_master.sh dst_cave.sh

启动服务器

分屏执行dst_master.sh和dst_caves.sh

screen -S master  #新建分屏master
./dst_master.sh
Ctrl+A,D退出分屏

screen -S cave  #新建分屏cave
./dst_cave.sh

启动后就可以搜到自己的房间了。

关闭房间


screen -ls|awk 'NR>=2&&NR<=20{print $1}'|awk '{print "screen -S "$1" -X quit"}'|sh

更新饥荒服务端

./steamcmd.sh +login anonymous +force_install_dir ~/dst +app_update 343050 validate +quit

mod更新

饥荒服务端mod更新有两种方式:

  1. 手动下载后,上传至饥荒服务器
  2. 使用dedicated_server_mods_setup.lua文件自动更新mod

这里介绍第二种。

下面是生成dedicated_server_mods_setup.lua文件内容的python脚本,根据modoverrides.lua文件内容生成。

modoverrides.lua是该存档使用的mod配置。

import re
ServerModSetup_list = []
ServerModCollectionSetup_list = []
Str = ''
#文件路径需要自己改一下
with open('./modoverrides.lua','r',encoding='utf8') as f:
  p = f.readlines()
#章节名正则匹配
partten = u'\d?'
for line in p:
    if '"workshop-' in line :
      for i in line :
        if(re.match(partten,i).group() != ''):
          Str = Str + i
        if i == ']':
          break
      ServerModSetup = '\n'+'ServerModSetup("' + Str + '")'
      ServerModCollectionSetup = '\n'+'ServerModCollectionSetup("' + Str + '")'
      ServerModSetup_list.append(ServerModSetup)
      ServerModCollectionSetup_list.append(ServerModCollectionSetup)
      Str = ''

with open('./dedicated_server_mods_setup.lua','a',encoding='utf8') as fp:
  for i in  ServerModSetup_list:
    fp.write(i)
  for i in ServerModCollectionSetup_list:
    fp.write(i)

将文件放在存档文件夹下,和modoverrides.lua文件在平级位置,运行脚本,生成dedicated_server_mods_setup.lua文件,放入~/dst/mods路径下。

注意使用了上述方法就无需手动上传mod文件。

启动饥荒服务器,会自动下载并更新mod。

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇