顧名思義,《空洞騎士多人遊戲》(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