思悟博客
  • 首页
  • 分类
    • 随笔
    • WEB开发
    • 软件及系统
    • 杂类
  • 关于本站
  • 友情链接
    • Dxoca's blog
    • Noahの梦想
爱好、实践、创新
  1. 首页
  2. 教程
  3. 正文

饥荒专用服务器搭建

2019年09月02日 5686点热度 2人点赞 0条评论

在搭建之前,首先要有一个正版的游戏账号,不论是WeGame还是Steam版本的。

这样搭建完成之后,就可以拥有一个正版的,能添加MOD的,并且在游戏线上能查询到的服务器。

准备


需要一台linux或者Windows的主机,最好是云服务器,24小时开着的那种,个人电脑也可以搭建,但是关机之后就无法访问了。

本例以Steam平台为例,综合介绍Windows下与Linux下搭建的教程。

开始搭建


首先在Steam库里面找到 Don't Starve Together Dedicated Server ,在库→工具里面。

服务器

双击下载,然后下载的时候在饥荒的服务器升申请一个开服的专用Key。没有这个Key是无法将服务器跑起来的。

可以在进入游戏之后,点击左下角的账号,然后会打开一个页面,在页面的标题栏中选择游戏,然后点击 Don't Starve Together Servers ,打开如下的界面;

点击左下角的账号
获取Key

之后在C:\Users\cheng\Documents\Klei\DoNotStarveTogether\Cluster_1目录下新建一个名为cluster_token的TXT文件,将刚刚获得的KEY复制进去即可。

注意

Linux下文件夹的位置为:[用户名]/.klei/DoNotStarveTogether,例如:root/.klei/DoNotStarveTogether/ Cluster_1

如果不存在Cluster_1文件夹,可以手动新建一个,也可以直接将下一步文件夹复制的路径向上一级,也就是到数字哪里为止,直接将Cluster_1文件夹复制过去,但是注意cluster_token.txt文件内的数据不要被覆盖。

修改配置文件


手动生成配置文件的步骤较为繁琐,推荐在客户端中配置好相关地图,生成地图之后,再将生成的地图文件复制至上一步提到的文件夹内即可,客户端内的游戏生成目录为:C:\Users\cheng\Documents\Klei\DoNotStarveTogether\195996497\Cluster_1,其中的一串数字可能不相同,根据文件夹创建的时间判断。此文件夹下会存在master和caves两个文件夹,以及一个cluster.ini和上一步创建的txt文件。master和caves分别是主地图和洞穴地图的地图数据,里面包含对应地图的配置文件,cluster.ini是整个服务器的配置文件,可以在里面修改服务器名称,密码,游戏风格等等。

打开cluster.ini,把lan_only_cluster = true改为false,且offline_cluster = false (Linux同)

MyDediServer —— 服务器管理目录
├ Cluster_1
 ├ Caves —— 洞穴地图存档目录
  ├ server.ini —— 洞穴配置文件
  ├ modoverrides.lua —— 服务器MOD设置文件
  └ worldgenoverride.lua —— 洞穴地形文件
 ├ Master —— 地面地图存档目录
  ├ server.ini —— 地面配置文件
  ├ modoverrides.lua ——此文件和Caves文件夹中的modoverrides.lua文件内容完全一致
  └ worldgenoverride.lua —— 地图地形文件(留空为随机地形)
 ├ cluster.ini —— 服务器配置文件
 └ cluster_token.txt —— 服务器令牌(接下来会通过游戏获取到)

添加MOD


因为之前以及在客户端配置好了启用那些MOD,所以配置文件都是配置好的。windows下只需要将客户端mod文件夹下的文件,复制到最开始下载的 Dedicated Server 目录下的mod文件夹内即可。

Linux下步骤相同,将mod文件复制至服务端本体下的mod文件夹内。

启动服务器


如果不开启洞穴,那么直接运行bin文件夹下exe文件即可运行服务器,但是如果要开启洞穴,那么需新建一个bat文件,然后将下面的内容复制进去,双击bat文件运行。

@echo off
start dontstarve_dedicated_server_nullrenderer -console -cluster MyDediServer -shard Master
start dontstarve_dedicated_server_nullrenderer -console -cluster MyDediServer -shard Caves

注意路径。可能与本例不同。

Linux下服务端本体安装


前面以及把大致配置介绍以及配置完毕,但是linux下的服务端本体还没有安装。如果linux下有图形界面,那么可以在Steam官网上下载安装linux版的Steam,其余步骤与Windows无异;

下面介绍字符界面的安装步骤:

环境配置

这里我使用的是Ubuntu系统,你可以根据不同的环境来安装不同的依赖库
Ubuntu 64 位环境:
sudo apt-get install libstdc++6:i386 libgcc1:i386 libcurl4-gnutls-dev:i386
Ubuntu 32 位环境:
sudo apt-get install libstdc++6 libgcc1 libcurl4-gnutls-dev

CentOS系统请将 apt-get 换成 yum

安装STEAMCMD命令行平台及游戏包

下载安装SteamCMD:
mkdir ~/steamcmd
cd ~/steamcmd
wget http://media.steampowered.com/installer/steamcmd_linux.tar.gz
也可以选择安装精简版 SteamCMD:
wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz
解压并运行安装shell:
tar -xvzf steamcmd_linux.tar.gz
./steamcmd.sh
在steam>模式下,登录及安装游戏包
login anonymous
force_install_dir ../dstserver
app_update 343050 validate
quit
上面的命令中,第一行以匿名方式登录,当然你也可以登录你自己的 SteamID,然后第三行的343050是 Don't Starve Together 在 Steam 平台中的 ID。
等待更新结束后,平台和游戏包就安装好了,已经完成了一半的工作,接下来是配置了。

配置 Don't Starve Together服务端
生成默认配置文件
cd ~/dstserver/bin
./dontstarve_dedicated_server_nullrenderer
当你看到显示以下文字
[200] Account Failed (6): "E_INVALID_TOKEN"
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!! Your Server Will Not Start !!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
按 Ctrl+C 中断,然后完善生成的默认配置

设置 Token

方法同Windows版本。

这里由于搭建的Steam的正版服务器,需要在游戏中获取到一个Token值,先进入Don't Starve Together游戏,然后选择我的资料,在弹出的页下方可以生成 token,复制到 cluster_token.txt 中
cd ~/.klei/DoNotStarveTogether/MyDediServer
vi cluster_token.txt
粘贴后保存该文件。

再次运行:
./dontstarve_dedicated_server_nullrenderer

其他

我该怎么得知我需要的mod编号为多少?

打开创意工坊,找到自己想要添加的mod

找到MOD

打开mod页面,观察上方地址栏,红框标记出来的即为mod编号

查看编号

mod的启用与配置

1.启用mod:在dedicated_server_mods_setup.lua文件中添加的mod是默认关闭的。如果想启用mod,就需要访问(我的)文档\Klei\DoNotStarveTogether\MyDediServer\Caves(Master)\modoverrides.lua文件,进行以下修改

return {
  ["workshop-MOD编号"] = {enabled=true},--添加该条语句将启用对应的mod。一行一个,使用,分隔
  }

注意

注意!该文件在Caves和Master文件夹中均有一份,内容完全一样,请在修改一份后及时复制更新另一份
注意!请确保该文件中的mod已经添加在dedicated_server_mods_setup.lua文件中,否则可能出现无法预计的错误

2.配置mod:该操作有两种方法:

  • (不推荐)修改(我的)文档\Klei\DoNotStarveTogether\MyDediServer\Caves(Master)\modoverrides.lua文件对所需配置mod行进行如下修改:
["workshop-MOD编号"]={
   configuration_options={ 
       配置项1 = "配置内容", 
       配置项2 = "配置内容", 
   },
   enabled = true 
 },
  • ( 推荐)进入\steam\SteamApps\common\Don't Starve Together Dedicated Server\mod\workshop-MOD编号目录,打开modinfo.lua文件,其中有详细的mod配置信息可以进行修改(该方法修改的内容会在生效后自动同步至方法1的modoverrides.lua`文件中):

地图更换

当第一次运行时,服务器会根据MyDediServer\Master\和MyDediServer\Caves\中的worldgenoverride.lua文件生成地图。倘若未对这两个文件进行修改,服务器将会随机生成地图,生成的地图存档就保存在上述两个文件夹内。而我们若是想游玩自己准备好的地图,就按接下来的步骤找到自己的存档,并将其覆盖至MyDediServer\Master\和MyDediServer\Caves\文件夹中,重新启动服务器即可。
注意!更换地图后请确保地图存档中mod列表的一致性,如需修改请根据上文的的mod添加、配置与删除小节进行修改。

服务器管理指令

添加管理员:

1.向你的朋友询问他的id,可以登陆游戏后在个人资料中查看,

2.新建adminlist.txt文件,将好友的id填入该文件,一行一个,无需分割符。

3.将该文件分别放入\Klei\DoNotStarveTogether\MyDediServer\Caves(Master)\中。

4.重启服务器。

常用服务器命令

下列指令请以管理员权限进入游戏后在控制台输入:

  • TheNet:Kick(userid)--踢出用户ID为“userid”的玩家
  • TheNet:Ban(userid)--禁止用户ID为“userid”的玩家加入
  • c_save()--立即保存当前世界(一般会在每天早上自动保存)
  • c_reset(true|false)--true删除当前世界并新建一个全新的世界;false重新加载当前世界。
  • c_shutdown(true|false)--true保存并关闭当前世界;false不保存直接关闭当前世界
  • c_rollback()回档 c_rollback(1)回滚一个存档 c_rollback(2)回滚两个存档 c_rollback(3)回滚三个存档
  • 服务器没有回过档时理论可以回到任何一个档,但是如果回档一次,最多只能往前回5个档

附录-服务器配置文件内容

Linux系统下路径为[用户名].klei/DoNotStarveTogether/

cluster.ini

文档\Klei\DoNotStarveTogether\MyDediServer\cluster.ini

[GAMEPLAY]
game_mode = endless ;游戏模式,可选项有三个 survival(生存)、wilderness(荒野)、endless (无尽)
max_players = 6 ;游戏最大玩家数
pvp = false ;是否启用玩家伤害
pause_when_empty = true ;当服务器内没人时暂停时间

[NETWORK]
cluster_name = 服务器名称
cluster_description = 服务器简介
cluster_password = 服务器密码
cluster_intention = cooperative ;服务器风格,类型有四种 交际、合作、竞争、疯狂
autosaver_enabled = true ;是否启用自动存档
enable_vote_kick = false ;是否启用投票踢人

[MISC]
console_enabled = true ;是否启用控制台

[SHARD]
shard_enabled = true
bind_ip = 127.0.0.1
master_ip = 127.0.0.1
cluster_key = DontStarveTogetherDedicatedServer

Master\server.ini

文档\Klei\DoNotStarveTogether\MyDediServer\Master\server.ini

[NETWORK]
server_port = 10999


[SHARD]
is_master = true


[STEAM]
master_server_port = 10000
authentication_port = 20000


[ACCOUNT]
encode_user_path = true

Caves\server.ini

文档\Klei\DoNotStarveTogether\MyDediServer\Caves\server.ini

[NETWORK]
server_port = 11000


[SHARD]
is_master = false
name = Caves
id = 4276971209


[STEAM]
master_server_port = 10001
authentication_port = 20001


[ACCOUNT]
encode_user_path = true

Caves\worldgenoverride.lua

文档\Klei\DoNotStarveTogether\MyDediServer\Caves\worldgenoverride.lua

return {
  override_enabled = true,
  preset = "DST_CAVE",
}

Caves\modoverrides.lua

文档\Klei\DoNotStarveTogether\MyDediServer\Caves\modoverrides.lua

return {
  --["workshop-MOD编号"] = {enabled=true},
  }

本文部分内容为原创,其余内容参考了:https://www.jianshu.com/p/440d64cd3ac4,
https://www.jianshu.com/p/440d64cd3ac4,
转载请注明来源。

标签: Linux Server 教程 服务器 饥荒
最后更新:2020年08月17日
chao

chao

保持求知的状态,每天一点小进步。

点赞
< 上一篇
下一篇 >

期待你的神评呦~

avatar
This comment form is under antispam protection
avatar
This comment form is under antispam protection
  订阅  
提醒
用户您好!请先登录!
登录 注册
标签聚合
对象 教程 Linux this 代理 js PHP object
最新 热点 随机
最新 热点 随机
群晖 GitServer用户为空的解决办法 压缩包处理软件Bandizip破解版下载 宝塔面板安装PHP-Memcached插件失败解决办法 Bing 图片API AdGuard-轻量级的全平台广告过滤工具 Microsoft Wi-Fi Direct Virtual关闭方法 双显卡OBS无图像解决办法(包含集显运行依旧无图像办法) 免费游戏加速器推荐--蓝泡
CSS斜切角 你不懂JS: this 与对象原型 -第六章 前端基础进阶(十三):透彻掌握Promise的使用,读这篇就够了 使用JS-XLSX导出数据为Excel 理解DOM 网易云NCM格式转换成FLAC、MP3格式方法 Android开发:活动跳转之Intent 前端基础进阶(五):全方位解读this
下面内容为广告
2020年一月
一 二 三 四 五 六 日
 1234
567891011
12131415161718
19202122232425
262728293031  
« 12月    

COPYRIGHT © 2020 思悟博客. ALL RIGHTS RESERVED.

THEME KRATOS MADE BY VTROIS

wpDiscuz
登录
注册|忘记密码?