顾名思义,《空洞骑士多人游戏》(HKMP) 是流行 2D 动作冒险游戏《空洞骑士》的多人游戏模组。该模组的主要目的是允许人们主持游戏并让其他人加入他们的冒险。该模组有一个专用的 Discord 服务器,您可以在其中提出问题或一般性地讨论该模组。此外,您可以留下建议或错误报告。最新公告将发布在那里。
社区制作的指南可以帮助您轻松开始使用该模组。如果您没有使用 Github 和/或 Hollow Knight 模组的经验,这是开始使用模组的推荐方法。或者,以下部分说明如何从安装程序获取模组或手动安装。
最新版本的 mod 可以在 Lumafly 上找到,这是 Hollow Knight 1.5 的 modding 安装程序。使用此链接将自动下载适合您操作系统的 Lumafly 安装程序的正确版本。然后,此安装程序将自动下载 modding API,您可以通过易于使用的界面安装 mod。
该模组通过空洞骑士改装 API 运行。安装 API 后,可以通过将编译的 DLL 放入 mods 文件夹来安装此 mod,该文件夹可以在 Steam 安装中找到:(请注意,这些是默认位置。在这种情况下,您的安装可能位于不同的驱动器上相应地改变你的路径。)
C:Program Files (x86)SteamsteamappscommonHollow Knighthollow_knight_DataManagedMods
~/Library/Application Support/Steam/steamapps/common/Hollow Knight/hollow_knight.app/
,然后单击“打开包内容”和content -> resources -> data -> managed -> mods
~/.local/share/Steam/steamapps/common/Hollow Knight/hollow_knight_Data/Managed/Mods/
已编译 DLL 的最新版本可以在发布页面上找到。
该模组的主界面可以在游戏内的暂停菜单中找到。有一个选项可以在输入的端口上托管游戏,也可以选择在输入的地址和端口上加入游戏。与 LAN 上的人一起玩多人游戏很简单,但通过互联网玩则需要一些额外的工作。即,托管游戏的端口应在您的路由器中转发以指向您托管的设备。或者,您可以使用软件来扩展您的 LAN,例如 Hamachi。
也可以通过按按键绑定(默认为right ALT
)来隐藏该界面。可以在 mod 的配置中更改此键绑定,根据操作系统,可以在以下位置找到该配置:
%appdata%..LocalLowTeam CherryHollow KnightHKMP.GlobalSettings.json
~/Library/Application Support/unity.Team Cherry.Hollow Knight/HKMP.GlobalSettings.json
~/.config/unity3d/Team Cherry/Hollow Knight/HKMP.GlobalSettings.json
键绑定以键码形式存储,请查阅此列表以了解所有可能的键码选项。
除了暂停菜单 UI 之外,还有一个允许用户输入命令的聊天窗口。聊天输入可以通过按键绑定(默认为T
)打开,其具有以下命令:
connect
:使用给定用户名连接到给定地址和端口的服务器。host [port]
:在给定端口上启动服务器或停止现有服务器。list
:列出当前连接的玩家的名称。set [value]
:读取或写入具有给定名称和给定值的设置。有关可能设置的列表,请参阅下面的部分。announce
:向所有连接的玩家广播聊天消息。kick
:使用给定的身份验证密钥、用户名或 IP 地址踢出玩家。ban
:禁止使用给定身份验证密钥或用户名的玩家。如果给定用户名,则仅当具有给定用户名的用户当前连接到服务器时才会发出禁令。unban
:使用给定的身份验证密钥取消播放器的禁止。banip
:禁止具有给定身份验证密钥、用户名或 IP 地址的玩家的 IP。如果给定了身份验证密钥或用户名,则仅当具有给定身份验证密钥或用户名的用户当前连接到服务器时才会发出禁令。unbanip
: 取消禁止具有给定 IP 地址的播放器的 IP。每个用户都会在本地生成一个auth key,用于身份验证和授权。该密钥可用于将特定用户列入白名单并授权,以允许他们加入服务器或执行需要更高权限的命令。
whitelist [args]
:使用以下选项管理白名单:whitelist
:启用/禁用白名单。whitelist [name|auth key]
:将给定的用户名或身份验证密钥添加到白名单或从白名单中删除。如果给定的用户名与在线玩家不对应,则该用户名将被添加到“预列表”中。然后,如果用户名在此列表中的新玩家登录,他们将被自动列入白名单。whitelist [prelist]
:清除白名单(如果prelist
列表作为参数给出,则清除预列表)。auth [name|auth key]
:使用给定的用户名或身份验证密钥授权在线玩家。deauth [name|auth key]
:使用给定的用户名或身份验证密钥取消对在线玩家的授权。可以在 Windows、Linux 和 Mac 上运行独立服务器。服务器的最新可执行文件可以在发布页面上找到。对于 Linux 和 Mac,服务器可以在安装了 Mono 的情况下运行。安装 Mono 后,可以使用mono HKMPServer.exe
运行相同的可执行文件。目前,唯一的命令行参数是服务器应托管的端口。
或者,DockerHub 上提供了 Docker 映像(由 maximalmax90 提供)。
服务器将读取/创建一个名为serversettings.json
的设置文件,可以更改该文件以更改服务器的默认启动设置。或者,可以通过在命令行上运行设置命令来更改设置。除了上述命令外,独立服务器还有以下命令:
exit
:将优雅地退出服务器并断开其用户连接。有很多可配置的设置可以改变 mod 的功能。客户端设置可在 mod 的暂停菜单 UI 中使用,而服务器设置可以使用设置命令进行更改。
客户端设置包含以下条目:
此部分包含服务器的设置。这些值可以通过上述set
命令读取和修改。所有设置名称均不区分大小写,但为了清晰起见,均按大小写书写。
IsPvpEnabled
:是否启用玩家对玩家伤害。pvp
IsBodyDamageEnabled
:是否启用接触伤害,即玩家模型接触时双方都会受到伤害。这仅在 PvP 也启用时才有效。bodydamage
AlwaysShowMapIcons
:玩家的地图位置是否始终在游戏内地图上共享。globalmapicons
OnlyBroadcastMapIconWithWaywardCompass
:玩家的地图位置是否仅在装备了 Wayward Compass 魅力时才共享。请注意,如果地图位置始终共享,则此设置无效。compassicon
、 compassicons
、 waywardicon
、 waywardicons
DisplayNames
:是否应显示开销名称。names
TeamsEnabled
:是否启用玩家团队。同一队伍的玩家不能互相伤害。可以从客户端设置菜单中选择团队。teams
AllowSkins
:是否允许玩家使用皮肤。如果禁用,玩家将无法在本地使用皮肤,也不会传输给其他玩家。skins
AllowParries
:是否可以招架指甲砍击和指甲艺术。仅当IsPvpEnabled
为 true 时适用。parries
其余设置包含大多数 PvP 启用的法术和能力的伤害值条目。将它们设置为0
值将完全禁用损坏。以下是这些设置名称的列表以及括号中的别名:
NailDamage
( naildmg
)GrubberflyElegyDamage
( elegydmg
)VengefulSpiritDamage
( vsdmg
, fireballdamage
, fireballdmg
)ShadeSoulDamage
( shadesouldmg
)DesolateDiveDamage
( desolatedivedmg
, ddivedmg
)DescendingDarkDamage
( descendingdarkdmg
, ddarkdmg
)HowlingWraithDamage
( howlingwraithsdamage
, howlingwraithsdmg
, wraithsdmg
)AbyssShriekDamage
( abyssshriekdmg
, shriekdmg
)GreatSlashDamage
( greatslashdmg
)DashSlashDamage
( dashslashdmg
)CycloneSlashDamage
( cycloneslashdmg
, cyclonedmg
)SporeShroomDamage
( sporeshroomdmg
)SporeDungShroomDamage
( sporedungshroomdmg
, dungshroomdmg
)ThornOfAgonyDamage
( thornsofagonydamage
, thornsofagonydmg
, thornsdamage
, thornsdmg
)SharpShadowDamage
( sharpshadowdmg
)可以通过将文件夹放入皮肤目录(
)来安装皮肤。如果此目录结构尚不存在,则在安装了 HKMP 的情况下启动游戏至少一次后,应该会生成该目录结构。该文件夹可以命名为任何名称,但文件应该是空洞骑士通常使用的纹理表。安装了皮肤后运行游戏后,每个皮肤目录都会生成相应的id.txt
文件。该 ID 文件包含一个表示该皮肤 ID 的整数。然后可以在游戏中使用此 ID 从客户端设置菜单中选择皮肤。通常,这些 ID 从1
开始,并随着您使用的皮肤的增加而逐渐增加,但可以手动编辑 ID 文件以使用其他 ID。
您可以通过多种方式为该项目做出贡献,下面概述了这些方式。另请阅读并遵守贡献指南。
如果您有任何建议或错误报告,请将其留在问题页面。确保正确标记问题并提供正确的解释。建议或功能请求可以标记为“增强”,错误报告可以标记为“错误”等。
HKMP 模组也可以从头开始构建。这需要空洞骑士游戏和模组 API 的一些依赖项。也就是说,改装 API需要以下程序集:
Assembly-CSharp.dll (modified by the modding API)
MMHOOK_Assembly-CSharp.dll
MMHOOK_PlayMaker.dll
MonoMod.Utils.dll
空洞骑士游戏/Unity需要以下组件:
PlayMaker.dll
UnityEngine.AudioModule.dll
UnityEngine.CoreModule.dll
UnityEngine.dll
UnityEngine.ImageConversionModule.dll
UnityEngine.InputLegacyModule
UnityEngine.ParticleSystemModule.dll
UnityEngine.Physics2DModule.dll
UnityEngine.TextRenderingModule.dll
UnityEngine.UI.dll
UnityEngine.UIModule.dll
根据您的操作系统,上述所有文件都可以在以下目录中找到(并且可能因安装而异):
C:Program Files (x86)SteamsteamappscommonHollow Knighthollow_knight_DataManaged
。~/Library/Application Support/Steam/steamapps/common/Hollow Knight/hollow_knight.app/
,然后单击“打开包内容”和content -> resources -> data -> managed
~/.local/share/Steam/steamapps/common/Hollow Knight/hollow_knight_Data/Managed
有了这些程序集(在其原始的 Hollow Knight 目录中或移动到其他地方),您应该将HKMP/LocalBuildProperties_example.props
文件复制并重命名为HKMP/LocalBuildProperties.props
并将其中的路径填充为本地使用的路径。之后,源代码可以编译成 DLL,就可以开始了!
独立服务器也可以从头开始构建。从技术上讲,服务器有两个依赖项:
HKMP.dll
)Newtonsoft.Json.dll
) HKMP mod DLL 是从 mod 项目的 Release 目录链接的,无需手动复制。然而,Newtonsoft JSON 库可以在您修改过的 Hollow Knight 安装中找到,如上所述。该 DLL 应放置在HKMPServer/Lib/
目录中,并在构建过程中与 HKMP DLL 一起嵌入。
确保在构建服务器之前先构建 HKMP mod,以确保嵌入最新版本。
如果您喜欢这个项目并对其发展感兴趣,请考虑成为 Patreon 的支持者。您将可以访问开发帖子、先睹为快并抢先体验新功能。此外,您将在 Discord 服务器中获得一个角色,可以访问独家频道。
HKMP 是空洞骑士的游戏修改版,增加了多人游戏。
版权所有 (C) 2023 Extremelyd1
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
USA