侧边栏壁纸
  • 累计撰写 30 篇文章
  • 累计创建 35 个标签
  • 累计收到 4 条评论

centos 部署饥荒多层世界

GoDan
2022-04-18 / 2 评论 / 0 点赞 / 391 阅读 / 6,309 字 / 正在检测是否收录...
温馨提示:
本文最后更新于 2022-04-18,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。
  • 系统:Centos 7.6
  • 腾讯云
  • 4c8G
  • 最多同时运行5个世界
  • 2个建家世界,2个杀戮世界,1个洞穴

官方文档:wiki

安装环境

为了运行安全;先创建普通用户;我用的是saas

1、安装steam命令行工具

# 创建用户
useradd -s /bin/bash -m -d /home/saas saas
su - saas
mkdir steamcmd && cd steamcmd
# 下载steam命令后工具
wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz
tar -xvzf steamcmd_linux.tar.gz
# 下载饥荒游戏
./steamcmd.sh +login anonymous +force_install_dir ~/dst +app_update 343050 validate +quit
# 拷贝lib库文件,这一步不操作后续会报错
cp /usr/lib/libcurl.so.4 ~/dst/bin/lib32/libcurl-gnutls.so.4

2、创建世界目录

cd ~/dst/bin
./dontstarve_dedicated_server_nullrenderer
# 创建完成后,会在家目录生成.klei 目录;用于配置世界的
cd .klei

整理所需数据;

登录饥荒;创建房间;选择mod

世界一

建家世界;森林和世界生成按照自己需要配置;我这边将攻击类的boss和猎狗删除了

image-1650263291292

开启多层世界mod,进行配置
image-1650263442017
image-1650263560843

世界二

杀戮世界;可以多一些资源和小怪

数据获取

通过上述方式创建好世界后,可以去klei查看文件;登录游戏,主页面点击数据

image-1650263754025
image-1650264401746
image-1650264553277

我们将世界一的数据压缩,上传到服务器上

cd .klei/DoNotStarveTogether

使用rz或者SFTP工具上传
解压后目录结构

[saas@VM-0-108-centos DoNotStarveTogether]$ pwd
/home/saas/.klei/DoNotStarveTogether
[saas@VM-0-108-centos DoNotStarveTogether]$ ls
Cluster_1  Cluster_1.zip

复制多个Master文件,需要几个世界复制几个;名称要有所不同

目录解析

主目录结构

adminlist.txt  管理员文件,写入账号
whitelist.txt 白名单
blocklist.txt  黑名单
Caves 洞穴
cluster.ini  世界配置
cluster_token.txt  用于和klei连接的token文件
Master  主世界
Master2  世界2
Master3  世界3
Master4   世界4

世界目录结构

backup  备份回档使用;重置可删除
leveldataoverride.lua  世界生成配置
modoverrides.lua  模组配置
save  重置可删除
server_chat_log.txt  重置可删除
server.ini  各世界之间的配置
server_log.txt 重置可删除

文件解析

cluster.ini

[GAMEPLAY]
game_mode = endless # 游戏模式
max_players = 15 # 最大玩家人数
pvp = false # pvp开关
pause_when_empty = true # 没人在线时暂停世界
vote_enabled = true    # 投票开关(投票T人,投票重置世界)


[NETWORK]
lan_only_cluster = false # 只允许本地局域网加入开关
cluster_intention = social  # 服务类型,cooperative、social等
cluster_password = # 房间密码
cluster_description = 内测不结档,想来随时来 # 服务器简介
cluster_name = 萌新换了档 # 房间名
offline_cluster = false # 离线游戏
cluster_language = zh # 语言


[MISC]
console_enabled = true # 是否开启控制台


[SHARD]
shard_enabled = true # 是否多世界
bind_ip = 127.0.0.1 # 主从世界在同一台服务器上(默认)
master_ip = 127.0.0.1 # 主从世界在同一台服务器上(默认)
master_port = 10888 # 主世界端口
cluster_key = defaultPass #世界连接密码

[STEAM]
steam_group_only = false    # 是否只允许同steam组的人加入
steam_group_id = ****    # steam组ID
steam_group_admins = true   # steam组员自动成为管理员

cluster_token.txt

复制klei官网获取的token粘贴进去即可

pds-g^KU_sCM3p7Mh^wVVvfmxSlv76QP8WKjbjz0dwf

登录klei,获取token授权
地址:klei
使用steam账户登录

image-1650267090310
image-1650267219125

添加服务器,生成3中的token;

image-1650267297048

leveldataoverride.lua

如果是建家世界,可以把世界一的文件内容复制粘贴进去
如果是杀戮世界,可以把世界二的文件内容复制粘贴进去

modoverrides.lua

将世界一的文件内容复制粘贴进去
多层世界配置;vim modoverrides.lua; 或者用本地文件编辑器打开,更新完成后进行覆盖
由于配置是yaml格式的,所有注意格式,避免文件格式错误,房间使用不了

return {
  ["workshop-1754389029"]={
    configuration_options={
      auto_balancing=true,
      default_galleryful=6,
      force_population=false,
      ignore_sinkholes=false,
      migration_postern=true,
      migrator_required=false,
      name_button=true,
      no_bat=true,
      open_button=false,
      say_dest=true,
      world_config={
        ["1"]={
          name="万福楼",
          note="安心建家"
        },
        ["2"]={ is_cave=true,name="死亡峡谷" },
        ["3"]={
          name="潇湘馆",
          note="安心建家"
        },
        ["4"]={
          name="杀戮之都",
          note="生存严峻;危险丛生"
        },
        ["5"]={
          name="失落之地",
          note="生存严峻;危险丛生"
        },
        ["51"]={ category="其他", extra=true, galleryful=12, is_cave=true, name="栊翠庵" }
      },
      world_prompt=true
    },
    enabled=true
  },
}

配置启动和mod

将modoverrides.lua内的每个mod ID写入该文件,
获取方法

grep "workshop" ~/.klei/DoNotStarveTogether/Cluster_1/Master/modoverrides.lua  | awk -F ']' '{print $1}' | awk -F '-' '{print $2}' | awk -F '"' '{print $1}'

写入

vim ~/dst/mods/dedicated_server_mods_setup.lua
ServerModSetup("1172839635")
ServerModSetup("1185229307")
ServerModSetup("1216718131")
ServerModSetup("1301033176")
ServerModSetup("1714227968")
ServerModSetup("1754389029")
ServerModSetup("1909182187")
ServerModSetup("1974725370")
ServerModSetup("2189004162")
ServerModSetup("375850593")
ServerModSetup("378160973")
ServerModSetup("2477889104")
ServerModSetup("2675609101")
ServerModSetup("462434129")
ServerModSetup("1392778117")
ServerModSetup("661253977")
ServerModCollectionSetup("1172839635")
ServerModCollectionSetup("1185229307")
ServerModCollectionSetup("1216718131")
ServerModCollectionSetup("1301033176")
ServerModCollectionSetup("1714227968")
ServerModCollectionSetup("1754389029")
ServerModCollectionSetup("1909182187")
ServerModCollectionSetup("1974725370")
ServerModCollectionSetup("2189004162")
ServerModCollectionSetup("375850593")
ServerModCollectionSetup("378160973")
ServerModCollectionSetup("2477889104")
ServerModCollectionSetup("2675609101")
ServerModCollectionSetup("462434129")
ServerModCollectionSetup("1392778117")
ServerModCollectionSetup("661253977")

启动

可以写成脚本

[saas@VM-0-108-centos bin]$ cat master.sh
./dontstarve_dedicated_server_nullrenderer -console -persistent_storage_root /home/saas -conf_dir .klei/DoNotStarveTogether -cluster Cluster_1  -shard Master
[saas@VM-0-108-centos bin]$ cat caves.sh
./dontstarve_dedicated_server_nullrenderer -console -persistent_storage_root /home/saas -conf_dir .klei/DoNotStarveTogether -cluster Cluster_1  -shard Caves
[saas@VM-0-108-centos bin]$ cat master2.sh
./dontstarve_dedicated_server_nullrenderer -console -persistent_storage_root /home/saas -conf_dir .klei/DoNotStarveTogether -cluster Cluster_1  -shard Master2
[saas@VM-0-108-centos bin]$ cat master3.sh
./dontstarve_dedicated_server_nullrenderer -console -persistent_storage_root /home/saas -conf_dir .klei/DoNotStarveTogether -cluster Cluster_1  -shard Master3
[saas@VM-0-108-centos bin]$ cat master4.sh
./dontstarve_dedicated_server_nullrenderer -console -persistent_storage_root /home/saas -conf_dir .klei/DoNotStarveTogether -cluster Cluster_1  -shard Master4

使用screen 子窗口启动
screen -S name 新建子窗口
crtl + a + d 放置后台运行
screen -r name 恢复子窗口

[saas@VM-0-108-centos bin]$screen -S master
[saas@VM-0-108-centos bin]$ bash master.sh
[saas@VM-0-108-centos bin]$screen -S master2
[saas@VM-0-108-centos bin]$ bash master2.sh
[saas@VM-0-108-centos bin]$screen -S master3
[saas@VM-0-108-centos bin]$ bash master3.sh
[saas@VM-0-108-centos bin]$screen -S master4
[saas@VM-0-108-centos bin]$ bash master4.sh
[saas@VM-0-108-centos bin]$screen -S caves
[saas@VM-0-108-centos bin]$ bash caves.sh

mod

2477889104 训牛
2675609101 光棱剑
1289779251 樱花
1392778117 棱镜
1172839635 反鲜
1185229307 血条
1216718131 防卡
1301033176 中文语言
1595631294 智能小木牌
1651623054 简易血条
1714227968 熊锁
1754389029 多层世界
1817697604 击杀宣告
1909182187 能力勋章
1951468597 小房子
1974725370 防止灭绝
2169556663 死亡不掉落
2172284661 复活重生
2189004162 蓝图
2281925291 物品快速定位
362175979 虫洞
375850593 多背包
378160973 全图定位
0

评论区