كما يوحي الاسم، يعد Hollow Knight Multiplayer (HKMP) نموذجًا متعدد اللاعبين للعبة المغامرات والحركة الشهيرة ثنائية الأبعاد Hollow Knight. الغرض الرئيسي من هذا التعديل هو السماح للأشخاص باستضافة الألعاب والسماح للآخرين بالانضمام إليهم في مغامراتهم. يوجد خادم Discord مخصص للوضع حيث يمكنك طرح الأسئلة أو التحدث بشكل عام عن الوضع. علاوة على ذلك، يمكنك ترك اقتراحات أو تقارير الأخطاء. سيتم نشر أحدث الإعلانات هناك.
يوجد دليل من إعداد المجتمع للبدء بسهولة في استخدام التعديل. إذا لم تكن لديك خبرة في تعديل Github و/أو Hollow Knight، فهذه هي الطريقة الموصى بها لبدء استخدام التعديل. وبدلاً من ذلك، توضح الأقسام أدناه كيفية الحصول على التعديل من المثبت أو تثبيته يدويًا.
يمكن العثور على أحدث إصدار من التعديل على Lumafly، وهو أداة تثبيت التعديل لـ Hollow Knight 1.5. سيؤدي استخدام هذا الرابط إلى تنزيل الإصدار الصحيح من برنامج تثبيت Lumafly لنظام التشغيل لديك تلقائيًا. سيقوم هذا المثبت بعد ذلك تلقائيًا بتنزيل واجهة برمجة تطبيقات التعديل ويمكنك تثبيت التعديل عبر واجهة سهلة الاستخدام.
يعمل التعديل من خلال واجهة برمجة تطبيقات Hollow Knight Modding. بعد تثبيت واجهة برمجة التطبيقات (API)، يمكن تثبيت هذا التعديل عن طريق إسقاط ملف DLL المترجم في مجلد التعديل الخاص بك، والذي يمكن العثور عليه في تثبيت 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
يتم تخزين روابط المفاتيح في شكل رمز مفتاح، يرجى الرجوع إلى هذه القائمة للتعرف على جميع خيارات رمز المفتاح الممكنة.
بالإضافة إلى واجهة مستخدم قائمة الإيقاف المؤقت، هناك نافذة دردشة تسمح للمستخدمين بإدخال الأوامر. يمكن فتح مدخلات الدردشة باستخدام مفتاح ربط ( T
بشكل افتراضي)، والذي يتميز بالأوامر التالية:
connect <address> <port> <username>
: اتصل بالخادم على العنوان والمنفذ المحددين باستخدام اسم المستخدم المحدد.host <start|stop> [port]
: بدء تشغيل خادم على المنفذ المحدد أو إيقاف خادم موجود.list
: قائمة بأسماء اللاعبين المتصلين حاليًا.set <setting name> [value]
: قراءة أو كتابة الإعداد بالاسم المحدد والقيمة المحددة. للحصول على قائمة بالإعدادات الممكنة، راجع القسم أدناه.announce <message>
: قم ببث رسالة دردشة إلى جميع اللاعبين المتصلين.kick <auth key|username|ip address>
: قم بركل اللاعب باستخدام مفتاح المصادقة أو اسم المستخدم أو عنوان IP المحدد.ban <auth key|username>
: قم بحظر المشغل باستخدام مفتاح المصادقة أو اسم المستخدم المحدد. إذا تم إعطاؤك اسم مستخدم، فلن يتم إصدار الحظر إلا إذا كان المستخدم الذي يحمل اسم المستخدم المحدد متصلًا حاليًا بالخادم.unban <auth key>
: قم بإلغاء حظر المشغل باستخدام مفتاح المصادقة المحدد.banip <auth key|username|ip address>
: قم بحظر عنوان IP الخاص بالمشغل باستخدام مفتاح المصادقة أو اسم المستخدم أو عنوان IP المحدد. إذا تم إعطاؤك مفتاح مصادقة أو اسم مستخدم، فلن يتم إصدار الحظر إلا إذا كان المستخدم الذي لديه مفتاح المصادقة أو اسم المستخدم المحدد متصلًا حاليًا بالخادم.unbanip <ip address>
: قم بإلغاء حظر IP الخاص بالمشغل بعنوان IP المحدد.سيقوم كل مستخدم بإنشاء مفتاح مصادقة محليًا للمصادقة والترخيص. يمكن استخدام هذا المفتاح لإدراج مستخدمين محددين في القائمة البيضاء وتفويضهم للسماح لهم بالانضمام إلى الخادم أو تنفيذ الأوامر التي تتطلب إذنًا أعلى.
whitelist [args]
: إدارة القائمة البيضاء بالخيارات التالية:whitelist <on|off>
: تمكين/تعطيل القائمة البيضاء.whitelist <add|remove> [name|auth key]
: إضافة/إزالة اسم المستخدم المحدد أو مفتاح المصادقة إلى/من القائمة البيضاء. إذا تم إعطاؤك اسم مستخدم لا يتوافق مع لاعب عبر الإنترنت، فسيتم إضافة اسم المستخدم إلى "القائمة المسبقة". ثم إذا قام لاعب جديد لديه اسم مستخدم في هذه القائمة بتسجيل الدخول، فسيتم إدراجه تلقائيًا في القائمة البيضاء.whitelist <clear> [prelist]
: امسح القائمة البيضاء (أو القائمة المسبقة إذا تم تقديم prelist
كوسيطة).auth [name|auth key]
: قم بتفويض اللاعب عبر الإنترنت باستخدام اسم المستخدم أو مفتاح المصادقة المحدد.deauth [name|auth key]
: قم بإلغاء ترخيص اللاعب عبر الإنترنت باستخدام اسم المستخدم أو مفتاح المصادقة المحدد. من الممكن تشغيل خادم مستقل على أنظمة التشغيل Windows وLinux وMac. يمكن العثور على أحدث ملف قابل للتنفيذ للخادم على صفحة الإصدارات. بالنسبة لنظام التشغيل Linux وMac، يمكن تشغيل الخادم مع تثبيت Mono. بعد تثبيت Mono، يمكن تشغيل نفس الملف القابل للتنفيذ باستخدام mono HKMPServer.exe <port>
. حاليًا، وسيطة سطر الأوامر الوحيدة هي المنفذ الذي يجب استضافة الخادم عليه.
وبدلاً من ذلك، تتوفر صورة Docker على DockerHub (مقدمة منmaximalmax90).
سيقوم الخادم بقراءة/إنشاء ملف إعدادات يسمى serversettings.json
، والذي يمكن تغييره لتغيير إعدادات بدء التشغيل الافتراضية للخادم. وبدلاً من ذلك، يمكن تغيير الإعدادات عن طريق تشغيل أمر الإعدادات في سطر الأوامر. بالإضافة إلى الأوامر الموضحة أعلاه، يحتوي الخادم المستقل أيضًا على الأوامر التالية:
exit
: سيتم الخروج من الخادم بأمان وفصل مستخدميه.هناك الكثير من الإعدادات القابلة للتكوين التي يمكنها تغيير كيفية عمل التعديل. تتوفر إعدادات العميل في واجهة مستخدم قائمة الإيقاف المؤقت للنظام، بينما يمكن تغيير إعدادات الخادم باستخدام أمر الإعدادات.
تحتوي إعدادات العميل على الإدخالات التالية:
يحتوي هذا القسم على إعدادات الخادم. يمكن قراءة هذه القيم وتعديلها بواسطة أمر set
الموضح أعلاه. جميع أسماء الإعدادات غير حساسة لحالة الأحرف، ولكنها مكتوبة من أجل الوضوح.
IsPvpEnabled
: ما إذا كان تم تمكين ضرر اللاعب مقابل اللاعب.pvp
IsBodyDamageEnabled
: سواء تم تمكين تلف الاتصال، أي عند لمس نماذج المشغل، فسيتم تلف كليهما. لن يكون لهذا تأثير إلا إذا تم تمكين حماية الأصناف النباتية أيضًا.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
) يمكن تثبيت الأسطح عن طريق إسقاط مجلد في دليل الأسطح ( <steam>/Hollow Knight/hollow_knight_Data/Managed/Mods/HKMP/Skins
). إذا لم تكن بنية الدليل هذه موجودة بعد، فيجب إنشاؤها بمجرد تشغيل اللعبة مرة واحدة على الأقل مع تثبيت HKMP. يمكن تسمية هذا المجلد بأي شيء، ولكن يجب أن تكون الملفات عبارة عن أوراق نسيج يستخدمها Hollow Knight أيضًا بشكل طبيعي. بعد تشغيل اللعبة مع تثبيت الأسطح، يجب أن يحتوي كل دليل من أدلة الأسطح هذه على ملف id.txt
مطابق تم إنشاؤه. يحتوي ملف المعرف هذا على عدد صحيح واحد يمثل معرف ذلك الجلد. يمكن بعد ذلك استخدام هذا المعرف داخل اللعبة لتحديد المظهر من قائمة إعدادات العميل. عادةً، تبدأ هذه المعرفات عند 1
وتزيد تدريجيًا من الأسطح التي تستخدمها، ولكن من الممكن تحرير ملفات المعرفات يدويًا لاستخدام معرفات أخرى.
هناك عدة طرق يمكنك من خلالها المساهمة في هذا المشروع، وكلها موضحة أدناه. يرجى أيضًا قراءة دليل المساهمة والالتزام به.
إذا كان لديك أي اقتراحات أو تقارير أخطاء، يرجى تركها في صفحة المشكلات. تأكد من تصنيف المشكلات بشكل صحيح وتقديم تفسير مناسب. يمكن تسمية الاقتراحات أو طلبات الميزات بـ "التحسين"، وتقارير الأخطاء بـ "الأخطاء"، وما إلى ذلك.
يمكن أيضًا إنشاء نموذج HKMP من البداية. يتطلب هذا بعض التبعيات من لعبة Hollow Knight وواجهة برمجة تطبيقات التعديل. وهي التجميعات التالية مطلوبة من واجهة برمجة تطبيقات التعديل :
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 من دليل الإصدار الخاص بمشروع التعديل ولا يلزم نسخه يدويًا. ومع ذلك، يمكن العثور على مكتبة 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