ตามชื่อที่อาจแนะนำ Hollow Knight Multiplayer (HKMP) เป็นม็อดผู้เล่นหลายคนสำหรับเกมแอคชั่นผจญภัย 2 มิติยอดนิยม Hollow Knight วัตถุประสงค์หลักของม็อดนี้คือเพื่อให้ผู้คนสามารถโฮสต์เกมและให้ผู้อื่นเข้าร่วมในการผจญภัยของพวกเขาได้ มีเซิร์ฟเวอร์ Discord เฉพาะสำหรับม็อดที่คุณสามารถถามคำถามหรือพูดคุยเกี่ยวกับม็อดโดยทั่วไปได้ นอกจากนี้คุณยังสามารถฝากข้อเสนอแนะหรือรายงานข้อผิดพลาดได้ ประกาศล่าสุดจะโพสต์ที่นั่น
มีคู่มือที่จัดทำโดยชุมชนเพื่อเริ่มต้นใช้งานม็อดได้อย่างง่ายดาย หากคุณไม่มีประสบการณ์กับการม็อด Github และ/หรือ Hollow Knight นี่เป็นวิธีที่แนะนำในการเริ่มใช้งานม็อด หรือหัวข้อด้านล่างจะแสดงวิธีรับม็อดจากตัวติดตั้งหรือติดตั้งด้วยตนเอง
เวอร์ชันล่าสุดของ mod สามารถพบได้บน Lumafly ซึ่งเป็นตัวติดตั้ง modding สำหรับ Hollow Knight 1.5 การใช้ลิงก์นี้จะดาวน์โหลดตัวติดตั้ง Lumafly เวอร์ชันที่ถูกต้องสำหรับระบบปฏิบัติการของคุณโดยอัตโนมัติ โปรแกรมติดตั้งนี้จะดาวน์โหลด modding API โดยอัตโนมัติ และคุณสามารถติดตั้ง mod ผ่านอินเทอร์เฟซที่ใช้งานง่าย
ตัวดัดแปลงทำงานผ่าน Hollow Knight Modding API หลังจากติดตั้ง API แล้ว สามารถติดตั้งม็อดนี้ได้โดยการวาง DLL ที่คอมไพล์แล้วลงในโฟลเดอร์ mods ของคุณ ซึ่งสามารถพบได้ในการติดตั้ง 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
ตามค่าเริ่มต้น) การเชื่อมโยงคีย์นี้สามารถเปลี่ยนแปลงได้ในการกำหนดค่าสำหรับม็อด ซึ่งสามารถพบได้ที่ตำแหน่งต่อไปนี้ ขึ้นอยู่กับระบบปฏิบัติการ:
%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 ที่กำหนดผู้ใช้แต่ละรายจะสร้างคีย์การรับรองความถูกต้องในเครื่องสำหรับการตรวจสอบและการอนุญาต คีย์นี้สามารถใช้เพื่อไวท์ลิสต์และอนุญาตผู้ใช้เฉพาะเพื่ออนุญาตให้พวกเขาเข้าร่วมเซิร์ฟเวอร์หรือดำเนินการคำสั่งที่ต้องการการอนุญาตที่สูงกว่า
whitelist [args]
: จัดการ whitelist ด้วยตัวเลือกต่อไปนี้:whitelist
: เปิด/ปิด whitelistwhitelist [name|auth key]
: เพิ่ม/ลบชื่อผู้ใช้หรือรหัสรับรองความถูกต้องไปยัง/จาก whitelist หากได้รับชื่อผู้ใช้ที่ไม่สอดคล้องกับผู้เล่นออนไลน์ ชื่อผู้ใช้จะถูกเพิ่มใน 'รายการล่วงหน้า' จากนั้นหากผู้เล่นใหม่ที่มีชื่อผู้ใช้ในรายการนี้เข้าสู่ระบบ พวกเขาจะถูกไวท์ลิสต์โดยอัตโนมัติwhitelist [prelist]
: ล้าง whitelist (หรือ pre-list ถ้า prelist
ถูกกำหนดเป็นอาร์กิวเมนต์)auth [name|auth key]
: อนุญาตผู้เล่นออนไลน์ด้วยชื่อผู้ใช้หรือรหัสรับรองความถูกต้องที่กำหนดdeauth [name|auth key]
: ยกเลิกการอนุญาตผู้เล่นออนไลน์ด้วยชื่อผู้ใช้หรือรหัสรับรองความถูกต้องที่กำหนด สามารถใช้งานเซิร์ฟเวอร์แบบสแตนด์อโลนบน Windows, Linux และ Mac ได้ สามารถดูไฟล์ปฏิบัติการล่าสุดของเซิร์ฟเวอร์ได้ในหน้าเผยแพร่ สำหรับ Linux และ Mac เซิร์ฟเวอร์สามารถทำงานได้โดยติดตั้ง Mono หลังจากติดตั้ง Mono ไฟล์ปฏิบัติการเดียวกันนี้สามารถรันได้โดยใช้ mono HKMPServer.exe
ในปัจจุบัน อาร์กิวเมนต์บรรทัดคำสั่งเดียวคือพอร์ตที่เซิร์ฟเวอร์ควรโฮสต์อยู่
หรืออีกทางหนึ่ง อิมเมจ Docker มีอยู่ใน DockerHub (ได้รับความอนุเคราะห์จาก maximalmax90)
เซิร์ฟเวอร์จะอ่าน/สร้างไฟล์การตั้งค่าที่เรียกว่า serversettings.json
ซึ่งสามารถเปลี่ยนแปลงเพื่อแก้ไขการตั้งค่าเริ่มต้นเริ่มต้นของเซิร์ฟเวอร์ได้ หรือคุณสามารถเปลี่ยนการตั้งค่าได้โดยการรันคำสั่งการตั้งค่าบนบรรทัดคำสั่ง นอกเหนือจากคำสั่งที่อธิบายไว้ข้างต้นแล้ว เซิร์ฟเวอร์แบบสแตนด์อโลนยังมีคำสั่งต่อไปนี้:
exit
: จะออกจากเซิร์ฟเวอร์อย่างสง่างามและตัดการเชื่อมต่อผู้ใช้มีการตั้งค่าที่สามารถกำหนดค่าได้มากมายที่สามารถเปลี่ยนวิธีการทำงานของม็อดได้ การตั้งค่าไคลเอนต์มีอยู่ใน UI เมนูหยุดชั่วคราวของ mod ในขณะที่การตั้งค่าเซิร์ฟเวอร์สามารถเปลี่ยนแปลงได้ด้วยคำสั่งการตั้งค่า
การตั้งค่าไคลเอนต์ประกอบด้วยรายการต่อไปนี้:
ส่วนนี้ประกอบด้วยการตั้งค่าสำหรับเซิร์ฟเวอร์ ค่าเหล่านี้สามารถอ่านและแก้ไขได้โดยคำสั่ง set
ที่อธิบายไว้ข้างต้น ชื่อทั้งหมดของการตั้งค่าไม่คำนึงถึงขนาดตัวพิมพ์ แต่เขียนไว้เพื่อความชัดเจน
IsPvpEnabled
: เปิดใช้งานความเสียหายระหว่างผู้เล่นกับผู้เล่นหรือไม่pvp
IsBodyDamageEnabled
: ไม่ว่าจะเปิดใช้งานความเสียหายจากการสัมผัสหรือไม่ กล่าวคือ เมื่อโมเดลผู้เล่นสัมผัสกัน ทั้งสองอย่างจะได้รับความเสียหาย สิ่งนี้จะมีผลเฉพาะเมื่อเปิดใช้งาน PvP ด้วยbodydamage
AlwaysShowMapIcons
: ตำแหน่งแผนที่ของผู้เล่นจะถูกแชร์บนแผนที่ในเกมเสมอหรือไม่globalmapicons
OnlyBroadcastMapIconWithWaywardCompass
: ไม่ว่าตำแหน่งแผนที่ของผู้เล่นจะถูกแชร์เมื่อพวกเขามีเครื่องราง Wayward Compass หรือไม่ โปรดทราบว่าหากมีการแชร์ตำแหน่งบนแผนที่อยู่เสมอ การตั้งค่านี้จะไม่มีผลใดๆcompassicon
, compassicons
, waywardicon
, waywardicons
DisplayNames
: ควรแสดงชื่อค่าใช้จ่ายหรือไม่names
TeamsEnabled
: ไม่ว่าทีมผู้เล่นจะเปิดใช้งานหรือไม่ ผู้เล่นในทีมเดียวกันไม่สามารถสร้างความเสียหายให้กันและกันได้ สามารถเลือกทีมได้จากเมนูการตั้งค่าไคลเอนต์teams
AllowSkins
: อนุญาตให้ใช้สกินของผู้เล่นหรือไม่ หากปิดการใช้งาน ผู้เล่นจะไม่สามารถใช้สกินในเครื่องได้ และจะไม่ถูกส่งไปยังผู้เล่นอื่นskins
AllowParries
: สามารถปัดเศษเล็บและเล็บได้หรือไม่ ใช้ได้เฉพาะเมื่อ IsPvpEnabled
เป็นจริงเท่านั้น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 โฟลเดอร์นี้สามารถตั้งชื่ออะไรก็ได้ แต่ไฟล์ควรเป็นแผ่นพื้นผิวที่ Hollow Knight ใช้ตามปกติ หลังจากรันเกมโดยติดตั้งสกินแล้ว แต่ละไดเร็กทอรีสกินเหล่านี้ควรมีไฟล์ id.txt
ที่เกี่ยวข้องสร้างขึ้น ไฟล์ ID นี้มีจำนวนเต็มเดียวที่แสดงถึง ID ของสกินนั้น ID นี้สามารถใช้ในเกมเพื่อเลือกสกินจากเมนูการตั้งค่าไคลเอนต์ โดยปกติ ID เหล่านี้จะเริ่มต้นที่ 1
และจะเพิ่มขึ้นเรื่อยๆ ตามจำนวนสกินที่คุณใช้ แต่คุณสามารถแก้ไขไฟล์ ID ด้วยตนเองเพื่อใช้ ID อื่นได้
คุณสามารถมีส่วนร่วมในโครงการนี้ได้หลายวิธี ซึ่งมีรายละเอียดทั้งหมดด้านล่างนี้ โปรดอ่านและปฏิบัติตามคู่มือการมีส่วนร่วมด้วย
หากคุณมีข้อเสนอแนะหรือรายงานข้อผิดพลาด โปรดทิ้งไว้ที่หน้าปัญหา ตรวจสอบให้แน่ใจว่าได้ติดป้ายกำกับปัญหาอย่างถูกต้องและให้คำอธิบายที่ถูกต้อง คำแนะนำหรือคำขอคุณสมบัติอาจมีป้ายกำกับว่า "การปรับปรุง" รายงานข้อผิดพลาดด้วย "ข้อบกพร่อง" ฯลฯ
ม็อด HKMP สามารถสร้างได้ตั้งแต่ต้น สิ่งนี้ต้องการการพึ่งพาเล็กน้อยจากเกม Hollow Knight และ Modding API กล่าวคือ จำเป็นต้องใช้แอสเซมบลีต่อไปนี้จาก modding API :
Assembly-CSharp.dll (modified by the modding API)
MMHOOK_Assembly-CSharp.dll
MMHOOK_PlayMaker.dll
MonoMod.Utils.dll
และจำเป็นต้องมีแอสเซมบลีต่อไปนี้จาก เกม Hollow Knight/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 เชื่อมโยงจากไดเร็กทอรี Release ของโปรเจ็กต์ mod และไม่จำเป็นต้องคัดลอกด้วยตนเอง อย่างไรก็ตาม ไลบรารี Newtonsoft JSON สามารถพบได้ในการติดตั้ง Hollow Knight ที่ได้รับการดัดแปลงตามที่แสดงไว้ข้างต้น DLL นี้ควรอยู่ในไดเร็กทอรี HKMPServer/Lib/
และจะถูกฝังร่วมกับ HKMP DLL ในระหว่างกระบวนการสร้าง
ตรวจสอบให้แน่ใจว่าได้สร้างม็อด HKMP ก่อนก่อนที่จะสร้างเซิร์ฟเวอร์เพื่อให้แน่ใจว่ามีการฝังเวอร์ชันล่าสุดไว้
หากคุณชอบโปรเจ็กต์นี้และสนใจในการพัฒนา ลองพิจารณาเป็นผู้สนับสนุน Patreon คุณจะได้รับสิทธิ์เข้าถึงโพสต์การพัฒนา ดูตัวอย่าง และเข้าถึงฟีเจอร์ใหม่ก่อนใคร นอกจากนี้ คุณจะได้รับบทบาทในเซิร์ฟเวอร์ Discord พร้อมการเข้าถึงช่องพิเศษ
HKMP เป็นการดัดแปลงเกมสำหรับ Hollow Knight ที่เพิ่มผู้เล่นหลายคน
ลิขสิทธิ์ (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