Como o nome pode sugerir, Hollow Knight Multiplayer (HKMP) é um mod multijogador para o popular jogo de ação e aventura 2D Hollow Knight. O principal objetivo deste mod é permitir que as pessoas hospedem jogos e que outros se juntem a elas em suas aventuras. Existe um servidor Discord dedicado para o mod, onde você pode fazer perguntas ou falar sobre o mod de maneira geral. Além disso, você pode deixar sugestões ou relatórios de bugs. Os últimos anúncios serão postados lá.
Existe um guia feito pela comunidade para começar facilmente com o mod. Se você não tem experiência com modding do Github e/ou Hollow Knight, esta é a maneira recomendada de começar a usar o mod. Alternativamente, as seções abaixo ilustram como obter o mod do instalador ou instalá-lo manualmente.
A versão mais recente do mod pode ser encontrada no Lumafly, um instalador de modding para Hollow Knight 1.5. Usar este link baixará automaticamente a versão correta do instalador Lumafly para o seu sistema operacional. Este instalador baixará automaticamente a API de modding e você poderá instalar o mod por meio de uma interface fácil de usar.
O mod funciona através da API Hollow Knight Modding. Depois de instalar a API, este mod pode ser instalado soltando a DLL compilada na pasta mods, que pode ser encontrada na instalação do Steam: (Cuidado, esses são os locais padrão. Sua instalação pode estar em uma unidade diferente, nesse caso mude seu caminho de acordo.)
C:Program Files (x86)SteamsteamappscommonHollow Knighthollow_knight_DataManagedMods
~/Library/Application Support/Steam/steamapps/common/Hollow Knight/hollow_knight.app/
e clique em "abrir conteúdo do pacote" e content -> resources -> data -> managed -> mods
~/.local/share/Steam/steamapps/common/Hollow Knight/hollow_knight_Data/Managed/Mods/
A versão mais recente da DLL compilada pode ser encontrada na página de lançamentos.
A interface principal do mod pode ser encontrada no menu de pausa do jogo. Existe uma opção de hospedar um jogo na porta inserida e uma opção de ingressar em um jogo no endereço e na porta inseridos. Jogar no modo multijogador com pessoas na sua LAN é simples, mas jogar pela Internet requer algum trabalho extra. Ou seja, a porta do jogo hospedado deve ser encaminhada no seu roteador para apontar para o dispositivo que você está hospedando. Alternativamente, você pode usar um software para facilitar a extensão da sua LAN, como o Hamachi.
A interface também pode ser ocultada pressionando uma tecla ( right ALT
por padrão). Este atalho de teclado pode ser alterado na configuração do mod, que pode ser encontrado nos seguintes locais, dependendo do sistema operacional:
%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
Os atalhos de teclado são armazenados em formato de código-chave. Consulte esta lista para obter todas as opções de código-chave possíveis.
Além da interface do menu de pausa, há uma janela de bate-papo que permite aos usuários inserir comandos. A entrada do chat pode ser aberta com um atalho de teclado ( T
por padrão), que apresenta os seguintes comandos:
connect
: Conecte-se a um servidor no endereço e porta fornecidos com o nome de usuário fornecido.host [port]
: inicia um servidor na porta especificada ou interrompe um servidor existente.list
: lista os nomes dos jogadores atualmente conectados.set [value]
: lê ou escreve uma configuração com o nome e o valor fornecidos. Para obter uma lista de configurações possíveis, consulte a seção abaixo.announce
: Transmita uma mensagem de bate-papo para todos os jogadores conectados.kick
: Kicka o jogador com a chave de autenticação, nome de usuário ou endereço IP fornecido.ban
: Bane o jogador com a chave de autenticação ou nome de usuário fornecido. Se for fornecido um nome de usuário, o banimento só será emitido se um usuário com o nome de usuário fornecido estiver atualmente conectado ao servidor.unban
: Desbane o jogador com a chave de autenticação fornecida.banip
: Bane o IP do jogador com a chave de autenticação, nome de usuário ou endereço IP fornecido. Se receber uma chave de autenticação ou nome de usuário, o banimento só será emitido se um usuário com a chave de autenticação ou nome de usuário fornecido estiver atualmente conectado ao servidor.unbanip
: Desbane o IP do player com o endereço IP fornecido.Cada usuário gerará localmente uma chave de autenticação para autenticação e autorização. Essa chave pode ser usada para colocar na lista de permissões e autorizar usuários específicos para permitir que eles ingressem no servidor ou executem comandos que exijam permissão mais alta.
whitelist [args]
: Gerencie a lista de permissões com as seguintes opções:whitelist
: Ativa/desativa a lista de permissões.whitelist [name|auth key]
: Adicione/remova o nome de usuário ou chave de autenticação fornecido à/da lista de permissões. Se for fornecido um nome de usuário que não corresponda a um jogador online, o nome de usuário será adicionado à 'pré-lista'. Então, se um novo jogador com um nome de usuário nesta lista fizer login, ele será automaticamente colocado na lista de permissões.whitelist [prelist]
: Limpa a lista branca (ou a pré-lista se prelist
foi fornecida como argumento).auth [name|auth key]
: autoriza o player online com o nome de usuário ou chave de autenticação fornecido.deauth [name|auth key]
: Desautoriza o player online com o nome de usuário ou chave de autenticação fornecido. É possível executar um servidor independente em Windows, Linux e Mac. O executável mais recente do servidor pode ser encontrado na página de lançamentos. Para Linux e Mac, o servidor pode ser executado com o Mono instalado. Após instalar o Mono, o mesmo executável pode ser executado usando mono HKMPServer.exe
. Atualmente, o único argumento da linha de comando é a porta na qual o servidor deve estar hospedado.
Alternativamente, uma imagem Docker está disponível no DockerHub (cortesia de maximalmax90).
O servidor irá ler/criar um arquivo de configurações chamado serversettings.json
, que pode ser alterado para alterar as configurações de inicialização padrão do servidor. Alternativamente, as configurações podem ser alteradas executando o comando settings na linha de comando. Além dos comandos descritos acima, o servidor autônomo também possui os seguintes comandos:
exit
: sairá normalmente do servidor e desconectará seus usuários.Existem muitas configurações configuráveis que podem alterar o funcionamento do mod. As configurações do cliente estão disponíveis na interface do menu de pausa do mod, enquanto as configurações do servidor podem ser alteradas com o comando de configurações.
As configurações do cliente contêm as seguintes entradas:
Esta seção contém as configurações do servidor. Esses valores podem ser lidos e modificados pelo comando set
descrito acima. Todos os nomes das configurações não diferenciam maiúsculas de minúsculas, mas são escritos com maiúsculas e minúsculas para maior clareza.
IsPvpEnabled
: se o dano jogador contra jogador está habilitado.pvp
IsBodyDamageEnabled
: se o dano por contato estiver habilitado, ou seja, quando os modelos dos jogadores se tocam, ambos serão danificados. Isso só terá efeito se o PvP também estiver ativado.bodydamage
AlwaysShowMapIcons
: se as localizações do jogador no mapa são sempre compartilhadas no mapa do jogo.globalmapicons
OnlyBroadcastMapIconWithWaywardCompass
: se a localização do mapa de um jogador só é compartilhada quando ele tem o amuleto Wayward Compass equipado. Observe que se as localizações do mapa forem sempre compartilhadas, esta configuração não terá efeito.compassicon
, compassicons
, waywardicon
, waywardicons
DisplayNames
: se os nomes indiretos devem ser exibidos.names
TeamsEnabled
: Se as equipes de jogadores estão habilitadas. Os jogadores da mesma equipe não podem causar danos uns aos outros. As equipes podem ser selecionadas no menu de configurações do cliente.teams
AllowSkins
: Se as skins dos jogadores são permitidas. Se desativado, os jogadores não poderão usar uma skin localmente, nem ela será transmitida a outros jogadores.skins
AllowParries
: se cortes de unhas e nail arts podem ser aparados. Aplicável apenas quando IsPvpEnabled
é verdadeiro.parries
O restante das configurações contém entradas para valores de dano da maioria dos feitiços e habilidades habilitados para PvP. Configurá-los para um valor 0
desativará completamente o dano. A seguir está uma lista dos nomes de configuração para eles, juntamente com seus aliases entre parênteses:
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
) Skins podem ser instaladas soltando uma pasta no diretório de skins (
). Se esta estrutura de diretórios ainda não estiver presente, ela deverá ser gerada assim que você iniciar o jogo pelo menos uma vez com o HKMP instalado. Esta pasta pode ter qualquer nome, mas os arquivos devem ser folhas de textura que Hollow Knight também usa normalmente. Depois de executar o jogo com skins instaladas, cada um desses diretórios de skins deverá ter um arquivo id.txt
correspondente gerado. Este arquivo de ID contém um único número inteiro que representa o ID desse skin. Este ID pode então ser usado no jogo para selecionar a skin no menu de configurações do cliente. Normalmente, esses IDs começam em 1
e aumentam gradativamente quanto mais skins você usa, mas é possível editar manualmente os arquivos de ID para usar outros IDs.
Existem algumas maneiras de contribuir para este projeto, todas descritas abaixo. Leia também e siga o guia de contribuição.
Se você tiver alguma sugestão ou relatório de bug, deixe-os na página de problemas. Certifique-se de rotular os problemas corretamente e fornecer uma explicação adequada. Sugestões ou solicitações de recursos podem ser rotuladas como "Aprimoramento", relatórios de bugs com "Bug", etc.
O mod HKMP também pode ser construído do zero. Isso requer algumas dependências do jogo Hollow Knight e da API de modding. Ou seja, os seguintes assemblies são necessários na API de modding :
Assembly-CSharp.dll (modified by the modding API)
MMHOOK_Assembly-CSharp.dll
MMHOOK_PlayMaker.dll
MonoMod.Utils.dll
E as seguintes montagens são necessárias no jogo 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 os arquivos acima podem ser encontrados no seguinte diretório com base no seu sistema operacional (e podem variar dependendo da instalação):
C:Program Files (x86)SteamsteamappscommonHollow Knighthollow_knight_DataManaged
.~/Library/Application Support/Steam/steamapps/common/Hollow Knight/hollow_knight.app/
e clique em "abrir conteúdo do pacote" e content -> resources -> data -> managed
~/.local/share/Steam/steamapps/common/Hollow Knight/hollow_knight_Data/Managed
Com esses assemblies à mão (em seu diretório Hollow Knight original ou movidos para outro lugar), você deve copiar e renomear o arquivo HKMP/LocalBuildProperties_example.props
para HKMP/LocalBuildProperties.props
e preencher os caminhos nele com os caminhos usados localmente. Depois disso, o código-fonte pode ser compilado em uma DLL e você deve estar pronto!
O servidor independente também pode ser construído do zero. Existem tecnicamente duas dependências para o servidor:
HKMP.dll
)Newtonsoft.Json.dll
) A DLL do mod HKMP está vinculada ao diretório Release do projeto mod e não precisa ser copiada manualmente. A biblioteca Newtonsoft JSON, no entanto, pode ser encontrada em sua instalação modificada do Hollow Knight, conforme indicado acima. Esta DLL deve ser colocada no diretório HKMPServer/Lib/
e será incorporada junto com a DLL HKMP durante o processo de construção.
Certifique-se de primeiro construir o mod HKMP antes de construir o servidor para garantir que a versão mais recente esteja incorporada.
Se você gosta deste projeto e tem interesse em seu desenvolvimento, considere se tornar um apoiador do Patreon. Você terá acesso a postagens de desenvolvimento, prévias e acesso antecipado a novos recursos. Além disso, você receberá uma função no servidor Discord com acesso a canais exclusivos.
HKMP é uma modificação de jogo para Hollow Knight que adiciona multijogador.
Copyright (C) 2023 Extremamented1
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