【www.bbzslqq.com--饥荒】

饥荒(Don"t Starve)TGP版开服搭建服务器教程

准备工作

首先要先下载服务器搭建工具,在TGP上面,点击游戏饥荒联机版,看到联机大厅选项卡,找到搭建服务器的按钮,进入服务器搭建工具的页面,获取并下载安装饥荒联机版专用服务器。





下载安装完成之后需要注册服务器证书,进入饥荒联机版专用服务器页面,点击注册证书



选择时效并设置证书密码,点击注册



注册完成以后,复制证书,并在服务器搭建工具的bin目录下新建记事本certificate.txt,

将证书黏贴进记事本并保存







进入饥荒联机游戏界面,点击账户界面,生成你的服务器票据(注意生成票据的账户在进入游戏以后会是管理员)





复制你需要的服务器令牌,在桌面新建记事本cluster_token.txt,打开黏贴并保存



至此,必要步骤基本完成。

小tips:由于TGP不支持多端登录,所以运行服务器的账户如果在别的电脑上,将会无法进行游戏,那么需要另外一个账户来运行服务器,注意运行服务器的账户不需要购买饥荒联机!

具体:在已经安装了服务器搭建工具的电脑上使用非游戏账户(或者新注册一个)登录TGP,选中搭建工具页面,点击开始游戏。



这时候会提示“您未拥有本游戏权限,请先购买后体验”,并弹出商店页面,点击免费获取即可(有时候会提示错误和商店维护,多试几次)





之后就可以用这个账户运行服务器了

搭建操作步骤

下面介绍比较简单的服务器搭建教程,需要注意的地方是替换cluster_token.txt的步骤一定要在复制副本文件夹之前。

首先打开饥荒联机客户端,新建你的世界,看好新建世界在存档行列中的位置(从上到下),创建服务器,创建完成之后退出游戏





然后到存档位置:我的文档\Klei\DoNotStarveTogetherRail

部分存档异常的用户存档会在:C:\Users\你的用户名\AppData\Local\Klei\DoNotStarveTogetherRail

找到存档文件夹Cluster_X,X是你创建世界时在存档行列中的位置



重命名文件的Cluster_X为MasterSever,进入文件夹,把准备工作中桌面新建的cluster_token.txt复制到文件夹中,替换原有的文件







复制MasterSever文件夹并黏贴,重命名副本为CaveSever



进入CaveSever文件夹,删除Master文件夹,并重命名Cave文件夹为Master





设置步骤基本完成,运行服务器搭建工具,输入证书密码,先后运行MasterSever和CaveSever,等待连接成功。

注意:OnUpdatePurchaseStateComplete和LOAD BE的时候会有点慢,需要等待



设置完成之后会是这样子



现在可以在大厅上面搜到服务器了,可以加入游戏了。



Tips:关闭服务器时应该先运行:c_save()

然后再关闭服务器:c_shutdown()

如果需要装置模组,请看进阶教程的模组安装与使用。

MOD安装使用及调试

进阶之后的教程为全平台通用,除了模组设置其他的不建议新手看

Tips:设置中需要用到中文的内容需要用Notepad++转换到UTF-8无BOM格式编码来进行编辑

模组的安装与使用

我估计很多人会要用到模组,所以这个部分会写的详细一点,以便帮助新手

简易的确认并调试你需要的模组:

1、进入客户端创建世界时开启你需要的模组,并调成你需要的配置。

2、找到你的存档文件夹,进入Master文件夹,找到已经调试好的模组设置文件modoverrides.lua

3。复制调试好的modoverrides.lua到你的服务器存档Master文件夹中,替换原有的文件(洞穴服务器一样)

4、打开调试好的modoverrides.lua,使用ctrl+F搜索功能,搜索workshop-来获取你的模组ID(例如:workshop-100010002 workshop-100010003)

5、打开服务器架设工具的安装目录,进入mods文件夹,用记事本打开dedicated_server_mods_setup.lua,删除里面所有内容



6、设置自己的模组文件,在dedicated_server_mods_setup.lua设置,例如我需要步骤4的两个举例模组,则输入:

ServerModSetup("workshop-1000100002")

ServerModSetup("workshop-1000100003")

7、保存并关闭,设置完毕,可以启动服务器了

8、未加密版解决方案:把设置好的modoverrides.lua替换服务器存档里面的,然后把自己客户端的mods文件夹里的模组全复制到服务器架设工具的mods里面(要求登入的用户都要有一样的mod才行)

进阶内容:模组设置在存档文件中的modoverrides.lua进行调试,需要根据模组的设置来调整数据,一般玩家不需要了解

世界配置

这个最简单的就是在客户端里面设置好,然后复制出来扔到服务器的存档文件里面就行,把地面世界的leveldataoverride.lua扔里面就会生成地面世界,洞穴的leveldataoverride.lua扔里面就会生成洞穴世界。

PC间的服务器远程搭建

一台电脑同时搭建主世界和洞穴可能会导致严重的卡顿,还有非常差的体验。

那么,可不可以两台电脑,一个搭建主世界,一个搭建洞穴呢?

答案是可以的,就是有点麻烦。

服务器存档中有俩个设置文件,一个叫做cluster.ini,另一个叫做server.ini

世界分成2种,一种是主世界,也就是入口世界,只能有一个。一种是从世界,可以有很多个。

那么下面我把主世界的cluster.ini叫做M_ cluster.ini,从世界的叫做S_cluster.ini,server.ini文件同理。

cluster.ini的设置

[GAMEPLAY]

game_mode = endless

游戏模式

具体有3种,无尽=endless,生存=survival,荒野=wilderness

max_players = 6

服务器最大人数设置

pvp = false

PVP模式

开启=true,关闭=false

pause_when_empty = true

服务器没人时世界时间暂停

开启=true,关闭=false

[NETWORK]

lan_only_cluster = false

局域网模式

只有局域网的玩家能够连接到服务器,开启=true,关闭=false

cluster_intention = madness

游戏风格

分为四种,交际=social,合作=cooperative,竞技=competitive,疯狂=madness

cluster_description =

服务器描述

cluster_name = 子恒的实验服

服务器名字

offline_cluster = false

离线模式

开启=true,关闭=false

cluster_password =

服务器密码

进入服务器是需要输入的密码

[MISC]

console_enabled = true

控制台开启

开启=true,关闭=false,建议开启,很多时候服务器调试需要控制台,只有管理员能使用

服务器设置管理员:在cluster.ini所在的地方,新建adminlist.txt,打开添加管理员账户ID,每个管理员ID占一行(例:KU_********(在线)/OU_12345678901234567(离线)),重启服务器就可以了。

[SHARD]

多元世界模式

多地图必须

shard_enabled = true

多元世界模式

开启=true,关闭=false

bind_ip = 0.0.0.0

这个只需要在M_cluster.ini中或者M_server.ini中设置,主世界和从世界在同一个设备上面时设置为127.0.0.1,世界在不同的设备上面运行,需要设置成0.0.0.0

master_ip=127.0.0.1

主世界的IP地址

同设备连接不需要特别设置,用于从世界连接主世界的IP地址,需要输入主世界的IP地址,如果在同一个局域网下也可以使用内网IP使得不同设备上面的世界可以连接。

master_port = 11000

主世界接入点

必须在M_cluster.ini和S_cluster.ini中同时存在,master port为独立的主世界接入点,和M_server.ini中的server_port不是一个概念,本质上任何世界的server.ini的server_port都不应该与这个port重合

cluster_key =abcd

配对密匙,主世界和从世界连接时的配对密匙,无论是M_cluster.ini还是S_cluster.ini中,配对密匙都必须一致

这里主要的就是SHARD的设置必须配对,然后不同机器上面的世界就可以连接到一起了。

Server.ini的设置

[NETWORK]

server_port = 10999

世界的接入点

理论上所有的需要连接到一起的server_port都不允许重复,需要多机架设的服务器也不允许server_port和M_cluster.ini中的master_port重合

[SHARD]

is_master = true

主世界判断

设置为主世界=true, 设置为从世界=false,在M_server.ini中设置为true,在S_server.ini中设置为false

name = Caves

世界的名字

id = 3727637494

世界的在连接时使用的id,自己设置可以在多世界拓展时会很方便,比如id=2,没有设置的话在世界生成时会随机生成一个id

多世界拓展与服务器命令

既然能够搭建两个世界,那么能不能搭建多个世界呢?

答案是可以的,主世界只能一个,但是从世界理论上可以有无数个,不过世界间会有信息传递,所以能连接多少个世界在一起,取决于你的上行下行速度。

这里我举一个例子好了,比如我有3个世界想连在一起,主世界id=1,从世界2的id=2,从世界3的id=3

基于klei的代码,世界之间的传送口(包括落水洞_石头堵住,落水洞_打开,洞穴出口,朋友传送门)自动配对连接,主世界总是会连接到最新的从世界里面,也由于klei的代码,这样的设置会有一个缺陷,就是世界间的传送口如果要配对必须要传送口id一样,不然就无法配对。

落水洞_石头堵住="cave_entrance"落水洞_打开="cave_entrance_open"洞穴出口="cave_exit"朋友传送门="migration_portal"

传送口生成命令:c_spawn("cave_entrance")

注:世界默认会生成10个传送口,所以当你生成新的传送口的时候比然是第11个(注意:删除的传送口是不可重置的,删除以后就没有了,再生成新的只会继续叠上去,比如我把世界的传送口都删了,再生成一个新的,仍然是11号传送口而不是1号)

怎么设置呢?

比如我想设置3个世界互通,id分别是1,2,3,这样,进入主世界id=1,找到最近的洞穴,使用命令:

c_gonext("cave_entrance")

或者"cave_entrance_open"或者"cave_exit"(记得启动遥控器,ctrl为开关)

站在传送口旁边,来设置传送口通向哪个世界:

c_find("cave_entrance").components.worldmigrator:SetDestinationWorld("2",true)

括号中的值,第一个为要通向的世界id;

括号中的值,第二个位是否保留,如果没填默认不保留,则每次服务器重启会连到最新连入的世界,保留=true

Tips:这个设置无论从世界是否在线都可以设置

传送到某个世界的传送口(只有你要去的世界的传送口指向你在的世界的时候,这个命令才会把你带到传送口,否则的话会直接传到出生点):c_migrateto(worldId,portalId)

设置完以后服务器日志会告诉你这是第几个传送口:

Validating portal[8]  2[8](inactive)

然后如果另外的世界同一个id的口也设置了世界指向,比如id=2的世界我也在传送口8设置了指向,就可以互通配对了。

关于传送口配对的问题,我画一幅图来解释



如图所示,我把1世界的1,2,3号传送口都指向2世界,把2世界的1,2,3传送口指向1世界,这个时候就互通了,从1世界1传送口进去会从2世界1传送口出来。按照这样的设置,我依然可以吧1世界7传送口指向2世界,但是因为没有相互指向的同id传送口,所以从1世界7号传送口进入会从2世界出生点出来。

所以我建议可以创建新的传送口,使得传送口id能对的上的世界互相指向,不能对的上的或者多余的删除就可以了。也可以留着以后备用。

服务器命令

Tips:必须在遥控器开启的情况下才能使用

提出或者ban一个玩家:

TheNet:Kick(userid)

TheNet:Ban(userid)

你可能需要使用c_listallplayer()来获取玩家的ID:

获得列表:

[userid](账户ID)玩家名字

[userid](账户ID)玩家名字

[userid](账户ID)玩家名字

使用userid来踢出或者ban玩家

暂时封禁一个玩家

TheNet:BanForTime(userid,time_in_seconds)

括号第二个数值为秒,比如暂时封禁5分钟,则输入300

重启世界

c_reset()

重置全部世界

c_regenerateworld()

这个命令会重置所以和主世界连接了的从世界

重置目前的世界

c_regenerateshard()

这个命令只会重置运行命令的世界,其他世界不会重置

保存

c_save()

服务器进行存档

关闭服务器

c_shutdown()

关闭服务器的命令,只执行单个服务器

回滚

c_rollback(count)

回到之前的存档,count=1回到上一次保存,count=2回到上2次保存

服务器默认一天保存一次

允许/不允许新的玩家加入

TheNet:SetAllowIncomingConnections( true /false )

允许=true,不允许=false,设置不允许的话,未加入的玩家无法加入服务器

服务器通知

c_announce("通知内容")

会在所有服务器广播通知


查看更多饥荒相关内容,请点击饥荒

2024 免费游戏攻略网版权所有. 京ICP备19018224号