Como sugiere el nombre, Hollow Knight Multiplayer (HKMP) es un mod multijugador para el popular juego de acción y aventuras en 2D Hollow Knight. El objetivo principal de este mod es permitir que las personas organicen juegos y que otros se unan a ellos en sus aventuras. Hay un servidor de Discord dedicado para el mod donde puedes hacer preguntas o hablar en general sobre el mod. Además, puedes dejar sugerencias o informes de errores. Los últimos anuncios se publicarán allí.
Existe una guía creada por la comunidad para comenzar fácilmente con el mod. Si no tienes experiencia con la modificación de Github y/o Hollow Knight, esta es la forma recomendada de comenzar a usar la modificación. Alternativamente, las secciones siguientes ilustran cómo obtener el mod desde el instalador o instalarlo manualmente.
La última versión del mod se puede encontrar en Lumafly, un instalador de mods para Hollow Knight 1.5. Al utilizar este enlace, se descargará automáticamente la versión correcta del instalador de Lumafly para su sistema operativo. Este instalador descargará automáticamente la API de modificación y podrá instalar el mod a través de una interfaz fácil de usar.
El mod funciona a través de la API de modificación de Hollow Knight. Después de instalar la API, este mod se puede instalar colocando la DLL compilada en su carpeta de mods, que se puede encontrar en su instalación de Steam: (tenga en cuenta que estas son las ubicaciones predeterminadas. Su instalación puede realizarse en una unidad diferente, en ese caso cambia tu camino en consecuencia.)
C:Program Files (x86)SteamsteamappscommonHollow Knighthollow_knight_DataManagedMods
~/Library/Application Support/Steam/steamapps/common/Hollow Knight/hollow_knight.app/
, luego haga clic en "abrir contenido del paquete" y content -> resources -> data -> managed -> mods
~/.local/share/Steam/steamapps/common/Hollow Knight/hollow_knight_Data/Managed/Mods/
La última versión de la DLL compilada se puede encontrar en la página de lanzamientos.
La interfaz principal del mod se puede encontrar en el menú de pausa del juego. Hay una opción para albergar un juego en el puerto ingresado y una opción para unirse a un juego en la dirección y el puerto ingresados. Jugar en modo multijugador con personas en tu LAN es sencillo, pero jugar en Internet requiere algo de trabajo adicional. Es decir, el puerto del juego alojado debe reenviarse en su enrutador para que apunte al dispositivo en el que está alojando. Alternativamente, puede utilizar un software para facilitar la ampliación de su LAN, como Hamachi.
La interfaz también se puede ocultar presionando una combinación de teclas ( right ALT
de forma predeterminada). Esta combinación de teclas se puede cambiar en la configuración del mod, que se puede encontrar en las siguientes ubicaciones según el sistema operativo:
%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
Las combinaciones de teclas se almacenan en forma de código clave; consulte esta lista para conocer todas las opciones posibles de código clave.
Además de la interfaz de usuario del menú de pausa, hay una ventana de chat que permite a los usuarios ingresar comandos. La entrada del chat se puede abrir con una combinación de teclas ( T
de forma predeterminada), que incluye los siguientes comandos:
connect
: Conéctese a un servidor en la dirección y el puerto indicados con el nombre de usuario indicado.host [port]
: inicia un servidor en el puerto dado o detiene un servidor existente.list
: enumera los nombres de los jugadores actualmente conectados.set [value]
: lee o escribe una configuración con el nombre y el valor dados. Para obtener una lista de posibles configuraciones, consulte la sección siguiente.announce
: transmite un mensaje de chat a todos los jugadores conectados.kick
: Expulsa al jugador con la clave de autenticación, nombre de usuario o dirección IP proporcionada.ban
: prohíbe al jugador con la clave de autenticación o nombre de usuario proporcionado. Si se le proporciona un nombre de usuario, solo emitirá la prohibición si un usuario con ese nombre de usuario está actualmente conectado al servidor.unban
: Desbanea al jugador con la clave de autenticación proporcionada.banip
: Prohibir la IP del jugador con la clave de autenticación, nombre de usuario o dirección IP proporcionada. Si se le proporciona una clave de autenticación o un nombre de usuario, solo emitirá la prohibición si un usuario con la clave de autenticación o el nombre de usuario proporcionado está actualmente conectado al servidor.unbanip
: Desbanea la IP del reproductor con la dirección IP proporcionada.Cada usuario generará localmente una clave de autenticación para autenticación y autorización. Esta clave se puede utilizar para incluir en la lista blanca y autorizar a usuarios específicos para permitirles unirse al servidor o ejecutar comandos que requieran un permiso mayor.
whitelist [args]
: administre la lista blanca con las siguientes opciones:whitelist
: activa/desactiva la lista blanca.whitelist [name|auth key]
: agrega/elimina el nombre de usuario o la clave de autenticación proporcionados a/desde la lista blanca. Si se le proporciona un nombre de usuario que no se corresponde con un jugador en línea, el nombre de usuario se agregará a la 'lista previa'. Luego, si un nuevo jugador con un nombre de usuario en esta lista inicia sesión, se incluirá automáticamente en la lista blanca.whitelist [prelist]
: borra la lista blanca (o la prelista si prelist
se proporcionó como argumento).auth [name|auth key]
: autoriza al jugador en línea con el nombre de usuario o la clave de autenticación proporcionados.deauth [name|auth key]
: Desautoriza al jugador en línea con el nombre de usuario o la clave de autenticación proporcionados. Es posible ejecutar un servidor independiente en Windows, Linux y Mac. El último ejecutable del servidor se puede encontrar en la página de lanzamientos. Para Linux y Mac, el servidor se puede ejecutar con Mono instalado. Después de instalar Mono, se puede ejecutar el mismo ejecutable usando mono HKMPServer.exe
. Actualmente, el único argumento de la línea de comandos es el puerto en el que debe alojarse el servidor.
Alternativamente, hay una imagen de Docker disponible en DockerHub (cortesía de maximalmax90).
El servidor leerá/creará un archivo de configuración llamado serversettings.json
, que se puede cambiar para alterar la configuración de inicio predeterminada del servidor. Alternativamente, la configuración se puede cambiar ejecutando el comando de configuración en la línea de comando. Además de los comandos descritos anteriormente, el servidor independiente también tiene los siguientes comandos:
exit
: Saldrá elegantemente del servidor y desconectará a sus usuarios.Hay muchas configuraciones configurables que pueden cambiar el funcionamiento del mod. La configuración del cliente está disponible en la interfaz de usuario del menú de pausa del mod, mientras que la configuración del servidor se puede cambiar con el comando de configuración.
La configuración del cliente contiene las siguientes entradas:
Esta sección contiene la configuración del servidor. Estos valores se pueden leer y modificar mediante el comando set
descrito anteriormente. Todos los nombres de las configuraciones no distinguen entre mayúsculas y minúsculas, pero están escritos en mayúsculas y minúsculas para mayor claridad.
IsPvpEnabled
: si el daño jugador contra jugador está habilitado.pvp
IsBodyDamageEnabled
: si el daño por contacto está habilitado, es decir, cuando los modelos de los jugadores se tocan, ambos se dañarán. Esto sólo tiene efecto si PvP también está habilitado.bodydamage
AlwaysShowMapIcons
: si las ubicaciones del mapa del jugador siempre se comparten en el mapa del juego.globalmapicons
OnlyBroadcastMapIconWithWaywardCompass
: si la ubicación del mapa de un jugador solo se comparte cuando tiene el amuleto Wayward Compass equipado. Tenga en cuenta que si las ubicaciones del mapa siempre se comparten, esta configuración no tiene ningún efecto.compassicon
, compassicons
, waywardicon
, waywardicons
DisplayNames
: si se deben mostrar los nombres generales.names
TeamsEnabled
: si los equipos de jugadores están habilitados. Los jugadores del mismo equipo no pueden dañarse entre sí. Los equipos se pueden seleccionar desde el menú de configuración del cliente.teams
AllowSkins
: si se permiten máscaras de jugador. Si está deshabilitado, los jugadores no podrán usar un aspecto localmente ni se transmitirá a otros jugadores.skins
AllowParries
: si se pueden detener los cortes de uñas y los diseños de uñas. Solo se aplica cuando IsPvpEnabled
es verdadero.parries
El resto de la configuración contiene entradas para los valores de daño de la mayoría de los hechizos y habilidades habilitados para PvP. Establecerlos en un valor de 0
desactivará completamente el daño. A continuación se muestra una lista de los nombres de configuración para estos junto con sus alias entre paréntesis:
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
) Las máscaras se pueden instalar colocando una carpeta en el directorio de máscaras (
). Si esta estructura de directorio aún no está presente, debería generarse una vez que hayas iniciado el juego al menos una vez con HKMP instalado. Esta carpeta puede tener cualquier nombre, pero los archivos deben ser hojas de textura que Hollow Knight también usa normalmente. Después de ejecutar el juego con los skins instalados, cada uno de estos directorios de skins debería tener generado un archivo id.txt
correspondiente. Este archivo de ID contiene un único número entero que representa el ID de esa máscara. Esta ID se puede usar en el juego para seleccionar la máscara en el menú de configuración del cliente. Normalmente, estos ID comienzan en 1
y aumentan progresivamente cuanto más máscaras usa, pero es posible editar manualmente los archivos de ID para usar otros ID.
Hay algunas maneras en que puede contribuir a este proyecto, que se describen a continuación. Lea también y respete la guía de contribución.
Si tiene alguna sugerencia o informe de error, déjelo en la página de problemas. Asegúrese de etiquetar los problemas correctamente y proporcionar una explicación adecuada. Las sugerencias o solicitudes de funciones se pueden etiquetar con "Mejora", los informes de errores con "Error", etc.
El mod HKMP también se puede crear desde cero. Esto requiere algunas dependencias del juego Hollow Knight y de la API de modificación. Es decir, se necesitan los siguientes ensamblados de la API de modificación :
Assembly-CSharp.dll (modified by the modding API)
MMHOOK_Assembly-CSharp.dll
MMHOOK_PlayMaker.dll
MonoMod.Utils.dll
Y se necesitan los siguientes ensamblajes del juego 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
Todos los archivos anteriores se pueden encontrar en el siguiente directorio según su sistema operativo (y pueden variar según la instalación):
C:Program Files (x86)SteamsteamappscommonHollow Knighthollow_knight_DataManaged
.~/Library/Application Support/Steam/steamapps/common/Hollow Knight/hollow_knight.app/
, luego haga clic en "abrir contenido del paquete" y content -> resources -> data -> managed
~/.local/share/Steam/steamapps/common/Hollow Knight/hollow_knight_Data/Managed
Con estos ensamblajes a mano (ya sea en su directorio original de Hollow Knight o movidos a otro lugar), debe copiar y cambiar el nombre del archivo HKMP/LocalBuildProperties_example.props
a HKMP/LocalBuildProperties.props
y completar las rutas que contiene con las rutas utilizadas localmente. Después de esto, el código fuente se puede compilar en una DLL, ¡y debería estar listo!
El servidor independiente también se puede crear desde cero. Técnicamente existen dos dependencias para el servidor:
HKMP.dll
)Newtonsoft.Json.dll
) La DLL del mod HKMP está vinculada desde el directorio de lanzamiento del proyecto del mod y no es necesario copiarla manualmente. La biblioteca Newtonsoft JSON, sin embargo, se puede encontrar en su instalación modificada de Hollow Knight como se indica arriba. Esta DLL debe colocarse en el directorio HKMPServer/Lib/
y se incrustará junto con la DLL HKMP durante el proceso de compilación.
Asegúrese de crear primero el mod HKMP antes de crear el servidor para asegurarse de que esté integrada la última versión.
Si te gusta este proyecto y estás interesado en su desarrollo, considera la posibilidad de colaborar en Patreon. Obtendrá acceso a publicaciones de desarrollo, adelantos y acceso temprano a nuevas funciones. Además, recibirás un rol en el servidor de Discord con acceso a canales exclusivos.
HKMP es una modificación del juego para Hollow Knight que agrega modo multijugador.
Copyright (C) 2023 Extremadamented1
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