Lethal Company
You are viewing a potentially older version of this package. View Latest Version
Install with App

Details

Date Uploaded
4 weeks ago
Downloads
1K
Size
52KB

BetterArmoryFix

Parches y diagnósticos puntuales, no oficiales, para bugs de reconexión en BetterArmory (com.y4ngz.betterarmory) y Lategame Upgrades / More Ship Upgrades (com.malco.lethalcompany.moreshipupgrades).

Gracias, Yangz313 🔥

Este mod nació como un fix para el lanzallamas, que dejaba de disparar fuego y de gastar munición después de morir y reconectarte al servidor. Ese bug específico (el registro de handlers de red) ya fue corregido oficialmente por Yangz313 en BetterArmory 1.0.6+ — gracias por el arreglo rápido y prolijo. Este mod mantiene un parche de respaldo para ese mismo caso por las dudas, pero no debería hacer falta si tenés BetterArmory actualizado.

Estado actual: investigación activa

BetterArmory 1.0.7 reescribió buena parte del sistema del lanzallamas (agregó validación server-side de propiedad del arma), y el síntoma original volvió a reportarse pese al fix oficial. Esta versión (2.3.0) es principalmente una build de diagnóstico: no solo corrige lo que ya sabemos, sino que loguea en detalle los puntos donde el bug podría seguir escondido, para poder confirmarlo con datos reales antes de escribir un fix definitivo nuevo.

Qué corrige / vigila esta versión

1. Lanzallamas — registro de handlers de red (respaldo)

FlamethrowerStreamDriver.RegisterNetworkHandlers() podía quedar registrado sobre un CustomMessagingManager viejo tras reconectar. Ya corregido oficialmente en BetterArmory 1.0.6+; este mod detecta el mismo caso como red de seguridad adicional.

2. Y4NGZWeaponItem.get_Shotgun() — crash en cadena

Podía lanzar una NullReferenceException real sobre un arma con referencia obsoleta, rompiendo la animación de armas en primera persona en cadena. Se atrapa con un Harmony Finalizer y se devuelve null de forma segura.

3. Stats de Lategame Upgrades distintas entre host y cliente

Al reconectar, el cliente puede cargar su guardado personal (por SteamID) en vez del estado compartido y en vivo del host, mostrando niveles de mejora desactualizados (fuerza de espalda, pulmones, etc., que deberían ser iguales para todo el equipo). Este mod sustituye temporalmente el SteamID de búsqueda por el del host al detectar este momento, forzando a que el cliente cargue la copia correcta. Es una dependencia opcional: si no tenés Lategame Upgrades instalado, este parche no hace nada.

4. Diagnóstico: lanzallamas sin fuego/munición pese al fix de Yangz

Instrumenta los 4 puntos posibles de falla — desde el clic ([DIAG2]), pasando por la lógica local ([DIAG]) y el envío ([DIAG3]), hasta la validación del lado del host ([DIAG4-HOST], nuevo en BetterArmory 1.0.7) — para localizar exactamente dónde se pierde el disparo del cliente reconectado.

5. Diagnóstico: armas invisibles para el cliente al inicio de partida

El cliente reporta no ver las armas hasta que el host las agarra y las suelta. [DIAG5-VISIBILIDAD] loguea, en ambos lados, cada vez que una copia local de un arma de BetterArmory se inicializa, con su NetworkObjectId — permite comparar host vs. cliente y confirmar si el objeto nunca llegó a mostrarse del lado del cliente.

No modifica ningún DLL original — todo pasa en tiempo de ejecución vía Harmony.

Instalación

Con Thunderstore Mod Manager / r2modman

Buscá BetterArmoryFix en el mod manager de tu perfil e instalalo desde ahí con un clic. Se activa automáticamente en tu próxima partida.

Manual

  1. Descargá el .zip de la página de Thunderstore.
  2. Extraé BetterArmoryFix.dll.
  3. Copialo a:
    <Lethal Company>\BepInEx\plugins\BetterArmoryFix\BetterArmoryFix.dll
    
  4. Asegurate de tener BetterArmory instalado (dependencia obligatoria) y BepInEx funcionando. Lategame Upgrades es opcional.

Cómo leer los logs

Al arrancar, revisá primero las líneas [STARTUP] en BepInEx/LogOutput.log — confirman si cada parche encontró su objetivo. Si alguna dice "NO ENCONTRADO", significa que el mod correspondiente cambió de versión y ese parche puntual no se está aplicando.

Después, durante el juego, según qué estés investigando:

  • Lanzallamas sin fuego/munición: revisá [DIAG], [DIAG2], [DIAG3] en el log del cliente, y [DIAG4-HOST] en el log del host, en el momento exacto del intento de disparo fallido.
  • Stats de Lategame Upgrades distintas: revisá [DIAG-LGU] en el log del cliente, justo después de reconectar.
  • Armas invisibles al inicio: compará las líneas [DIAG5-VISIBILIDAD] del host contra las del cliente, buscando el mismo NetworkObjectId.

Ejemplo de confirmación de los parches ya corregidos (no deberían aparecer si todo anda bien, o solo una vez por sesión si el bug igual ocurre):

[Info   :BetterArmoryFix] Nuevo CustomMessagingManager detectado (reconexión). Forzando re-registro de los handlers del lanzallamas (respaldo).
[Info   :BetterArmoryFix] Contuve un crash en Y4NGZWeaponItem.get_Shotgun() (arma con referencia obsoleta). Devolviendo null de forma segura. (Este aviso solo se muestra una vez por sesión.)
[Info   :BetterArmoryFix] Forzando que el cliente cargue las stats del host (SteamID host=XXXXXXXXXXXXXXXXX) en vez de su copia personal.
Thunderstore development is made possible with ads. Please consider making an exception to your adblock.