
FlamethrowerReconnectFix
Corrige el bug de BetterArmory donde el lanzallamas deja de disparar fuego / gastar munición tras morir y reconectar al servidor.FlamethrowerReconnectFix
Parche no oficial para BetterArmory (com.y4ngz.betterarmory) que corrige
el bug donde el lanzallamas deja de disparar fuego y de gastar munición
después de morir y reconectarte al servidor (la animación de disparo sigue
funcionando, pero no pasa nada más).
Causa del bug (confirmada por ingeniería inversa del DLL)
FlamethrowerStreamDriver.RegisterNetworkHandlers() registra sus 5 handlers
de red (Y4NGZ_Flamethrower_Use/Aim/Reload/State/GroundFire) una sola vez,
comparando NetworkManager.Singleton contra un campo estático cacheado.
Ese NetworkManager sobrevive a la reconexión (mismo objeto), pero Unity
Netcode sí crea un CustomMessagingManager nuevo en cada StartClient().
Como la comparación no detecta ese cambio, los handlers quedan "colgados"
del CustomMessagingManager viejo y el lanzallamas deja de funcionar en red.
Este mod detecta cuando aparece un CustomMessagingManager nuevo y limpia
por reflexión el campo cacheado de BetterArmory, forzando que sus handlers
se vuelvan a registrar correctamente. No modifica el DLL original de
BetterArmory, todo pasa en tiempo de ejecución vía Harmony.
Cómo compilarlo
Necesitas Visual Studio, VS Code + C# Dev Kit, o Rider, con el SDK de .NET instalado.
-
Abre
FlamethrowerReconnectFix.csprojy edita la línea:<LethalCompanyDir>C:\Program Files (x86)\Steam\steamapps\common\Lethal Company</LethalCompanyDir>poniendo la ruta real donde tienes instalado el juego (clic derecho en Lethal Company en Steam → Administrar → Explorar archivos locales).
-
Compila en modo Release:
dotnet build -c Release(o simplemente "Build" desde tu IDE).
-
Esto genera
bin\Release\net472\FlamethrowerReconnectFix.dll.
Cómo instalarlo
Copia FlamethrowerReconnectFix.dll a:
<Lethal Company>\BepInEx\plugins\FlamethrowerReconnectFix\FlamethrowerReconnectFix.dll
Si usas r2modman/Thunderstore Mod Manager, puedes en vez de eso empaquetar
esta carpeta como mod local (con el manifest.json incluido) e importarla ahí,
para que se instale junto a tu perfil de 67 mods sin tocar nada a mano.
Debe cargar después de BetterArmory (el BepInDependency ya se encarga
de eso automáticamente).
Cómo confirmar que funciona
En el log de BepInEx (BepInEx/LogOutput.log), después de morir y reconectar
deberías ver una línea nueva:
[Info :FlamethrowerReconnectFix] Nuevo CustomMessagingManager detectado (reconexión). Forzando re-registro de los handlers del lanzallamas.
Justo después de eso, el lanzallamas debería volver a disparar fuego y gastar munición con normalidad.
Nota
Este es un parche "puente" hecho para tu instalación. Lo ideal a mediano plazo es reportarle este bug al autor de BetterArmory (Y4NGZ313) con este mismo diagnóstico, para que lo arregle en el mod original y no necesites este parche extra.