最近突然想和朋友玩黑魂三,却发现官方的服务器貌似进不去,百度一番发现了有大佬早有准备,开发了一个服务器插件。这样我们就可以利用这个服务器代替官服进行联机了。正好赶上各大云服务器商618活动,整了个2年的百度云主机玩玩。

首先说明下这个自建服务器的好处:

  • 再也不用忍受官服shit一样的服务器了。
  • 自己当管理,想开mod就开,想开挂就开。想不想ban就看你的想法了。
  • 安全,不用忍受其他玩家来入侵你的世界。之前就是因为这个而弃坑的。

...

下载服务器插件

首先贴出服务器项目地址ds3os

点进release

可以看到其中有linuxwindows两个压缩包。我们将linux的链接复制后在云服务上下载后解压。

安装steamCMD

服务器插件先告一段落,这个服务还依赖steamCMD,所以我们还要安装steamCMD。(官方教程)[https://developer.valvesoftware.com/wiki/SteamCMD:zh-cn#Linux]

image-20220617195957707

下载后我们需要链接steamclient.so ,这个文件在steamcmd文件下的路径linux64/steamclient.so 找到。所以你需要先找到你下载的steamcmd的位置。

创建软链接:

在哪里创建并不重要,注意下面中steamcmd需要保证是你下载的steamcmd文件位置,并不一定和我的一样。

# 创建文件夹
mkdir -vp ~/.steam/sdk64

# 创建文件链接
ln -s steamcmd/linux64/steamclient.so ~/.steam/sdk64/steamclient.so

创建完后记的保证云服务器的防火墙端口开放,黑魂三服务插件用到了以下端口50000,50005,50010,50020,50050,其中有TCPUDP协议,最好两个都开放。

我用的百度云服务器,端口配置如下:

image-20220617200712481

就关心我提到的端口即可,图中其他端口和本文无关。

运行服务器

接下来准备运行服务器插件,我们下载服务器插件解压后可以看到文件目录如下图,这里方便演示直接下载到了windows中打开展示:

image-20220617201056562

image-20220617201136620

将其中的libsteam_api.so复制到/lib目录下

注意以下的目录要修改为你自己的目录。我是将服务器插件直接下载到/root目录下的,所以使用的~

# 复制libsteam_api.so到 /lib/下
sudo cp ~/linux/Server/libsteam_api.so /lib/

# 设置Server为可执行文件:
chmod +x ~/linux/Server/Server 

之后启动服务器:

## 进入Server服务其中找到Server文件运行
#服务器文件夹
cd ~/linux/Server/

#运行服务器
./Server

注意查看打印的日志,没问题了,这服务端就基本完成了。

另外想保持这个服务可以使用nohub进行进程守护,可以将上面运行服务器的那一步改为:

nohup ./Server >/dev/null 2>&1 &

这样就可以后台运行了。

服务器web端配置

另外这个服务的web端端口为50005,服务启动之后可以通过ip:50005进行访问。

image-20220617202043249

初始是没有密码的,我们可以在服务器插件目录的/linux/Server/Saved
找到配置文件config.json进行各种配置。

image-20220617202403349

上图的中的bodyheader是配置你连接这个服务器后游戏开始界面连接成功后弹出的窗口信息,标题和内容提都可配置。

web端的账户密码设置大致在最后的几行

image-20220617202619690

上图就是设置web端的端口账户密码。

服务器运行的配置文件

另外还有一个比较重要的一点就是设置服务的ip

image-20220617202752376

上图指向的两项就是需要配置为你服务器的域名或者ip

到这里服务端就配置完毕了。另外,这个文件的部分选项还可以在web端的设置界面进行设置。还可以配置连接你服务器需要的密码,不过目前我的服务器配置了密码但并没有生效,就自己和朋友玩影响不大。只要不泄露ip即可。

image-20220617203330445

最后你手动在文件中修改配置后还是重新启动下服务。

配置客户端启动游戏

点进release,找到windows压缩包下载到自己的pc电脑上了。下载解压后找到文件中的loader文件夹。运行其中的loader.exe。推荐管理员权限运行。注意这步操作前请先打开登录自己的steam

打开后如下图:

image-20220617211608507

界面开头就是自己游戏文件启动目录。

下面就是广播服务器显示的其他玩家搭建的服务器,你可以进入他们的服务器,当然不推荐进入陌生人的。我们刚刚搭建的服务器也可以出现在这个列表中,请根据自己配置的名称和描述进行查找。但是目前这个广播服务器被黑了所以可能找不到自己的服务器。所以我们还可以通过导入服务器配置文件的方式进入自己的服务器。

这个配置文件在之前云服务器运行配置文件的那个目录下,文件名如图:

image-20220617211855945

server.ds3osconfig文件下载到自己的pc电脑中。点击界面中的import server

image-20220617211938522

将我们下载的server.ds3osconfig导入进去,之后就会出现我们搭建的服务器:

image-20220617212210816

上图就显示我们搭建的服务器,其实我们导入的配置文件中的内容如下:

image-20220617212339470

你要修改列表显示的服务器名称简介或者服务器ip就可以修改这个配置文件后再导入。

最后选中我们的服务器点击右下角进入游戏,程序会帮我们启动黑魂。

image-20220617212545404

启动后,成功连接就会显示自己的配置服务器通知消息。

image-20220617212741250

另外如果要叫上朋友进行游玩就只需要将我们的客户端文件,即包含loaderwindows.zip包和服务器配置文件,即server.ds3osconfig发给好友。好友运行loader.exe后导入你的服务器配置文件后选中服务器运行游戏即可,和之前的步骤一致。

QA

  • 为什么需要发送服务端文件给好友?因为广播服务器目前貌似被黑了,所以我们启动服务后并不能找到我们的服务器,就只能通过手动导入服务器配置文件进行游玩了。
  • 我打上了mod后连接不上服务器了,还有遇到了保存游戏进度失败的问题?如果你使用了n站上的mod引擎,请修改你放置在游戏目录的mod引擎配置文件modengine.ini

打开modengine.ini文件内容如下:

; Mod Engine configuration file
; Mod Engine (C) 2019 Katalash. All Rights Reserved.
; Mod Engine is a configurable injection DLL used to modify some aspects of the
; game to make it more friendly for modding. See the following properties that can
; be configured.

[online]
; Uses low level hook to block game from ever connecting to the internet.
; This guarantees you won't get banned while playing mods as long as this is
; enabled. Mod engine uses code injection which is scanned for by the anticheat,
; so turn this option off at your own risk.
; You will get banned attempting to play with mods online!
;
; Note that if you wish to play a mod online with friends, it is recommended to setup
; an alternate steam account, share DS3 to it with family sharing, and disable this option
; on that account only. You will be shadowbanned and be able to play with friends on the
; ban servers. Make sure this option is enabled again before launching DS3 on your main
; account or you will risk a ban on it.
blockNetworkAccess=0

[savefile]
; Uses an alternate save file while this is enabled. Playing mods with a separate save
; file is highly recommended, as save files are analyzed by the server while online and can
; be used to ban. Using a separate save file with network access blocked guarantees your mod
; save file is never sent to the server and used to ban. Disable at your own risk!
useAlternateSaveFile=0

[files]
; Loads loose param data from files instead of from encrypted data0.bdt archive. This is mod
; specific and should only be enabled by modders who know what they are doing. End users should
; have no reason to touch this.
loadLooseParams=0

; Loads extracted files from UXM instead of data from the archives. Requires a complete UXM extraction
; and should generally only be used by mod creators.
loadUXMFiles=0

; If enabled, a mod will be loaded from a specified override directory.
useModOverrideDirectory=1

; The directory from which to load a mod.
modOverrideDirectory="\mod"

; Caches results of looking up override files. Can speed up loading and reduce hitching, but may require game
; restart when a file is added or removed from a mod. Mod developers probably want this disabled, while mod
; users (and released mods) should have this enabled.
cacheFilePaths=1

[debug]
; Shows the debug console when running the game. Can be useful for modders to troubleshoot
showDebugLog=0

; Gameplay asm patches that can be enabled and used by mod creators
[gameplay]
; Restores bonfire sacrifice menu and mechanic for mods that require it
restoreBonfireSacrifice=1

[misc]
; Chain loads another dll that hooks dinput8.dll
; For example, if you have another dll mod that's named dinput8.dll, you can rename it to
; othermod.dll or something, place it in the Sekiro directory, and set this path to
; chainDInput8DLLPath="\othermod.dll" or whatever you named the dll
chainDInput8DLLPath=""

修改其中的blockNetworkAccess为0解决打了mod连不上服务器问题,修改useAlternateSaveFile为0解决保存游戏进度失败的问题。其实上面的注释就说了原因,可以自己看看。
修改后保存重新打开游戏。

最后

该方式其实就是传统的手动进行部署,有能力的可以使用docker进行搭建,当然docker的运行命令可以去项目仓库文档中查找。如果还遇到一些问题还可加入官方的一个讨论群进行交流discord,这个要下载discord这个app

参考

在linux下运行黑魂3私服

在Linux上运行黑魂3服务器端

官方仓库

视频教程-三分钟,教你黑魂3自建服务器联机

steamCMD官方教程

Last modification:June 20, 2022
如果觉得我的文章对你有用,请随意赞赏