WhatsApp Discord
[FIX] Visualización de Daño Elevado (Dmg > 65k) - Source 5.2 Pegasus / Mudream - Source Mu - Mu Server Files
 

[FIX] Visualización de Daño Elevado (Dmg > 65k) - Source 5.2 Pegasus / Mudream

Publicado por Dakosmu, Abr 02, 2026, 05:06 AM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Keywords Source 5.2 Pegasus

Dakosmu

[FIX] Visualización de Daño Elevado (Dmg > 65k) - Source 5.2 Pegasus / Mudream

Este fix corrige el bug visual donde los números de daño dejan de mostrarse al atacar monstruos cuando el valor supera los 65,535 (límite de un WORD). Al pasar estas variables a DWORD/QWORD, el cliente podrá procesar y mostrar cifras de daño masivas correctamente.

1. Modificación de Estructuras (Protocols):
Primero, debemos actualizar las estructuras en los encabezados del proyecto para que soporten valores de 32 o 64 bits para el daño.

Busca y reemplaza las siguientes estructuras:
// Estructura PRECEIVE_DIE
typedef struct {
PBMSG_HEADER Header;
BYTE KeyH;
BYTE KeyL;
BYTE ExpH;
BYTE ExpL;
DWORD ViewDamageHP;
} PRECEIVE_DIE, * LPPRECEIVE_DIE;

// Estructura PRECEIVE_DIE2
typedef struct {
PBMSG_HEADER Header;
BYTE KeyH;
BYTE KeyL;
WORD ExpH;
WORD ExpL;
DWORD ViewDamageHP;
} PRECEIVE_DIE2, * LPPRECEIVE_DIE2;

// Estructura PRECEIVE_ATTACK
typedef struct {
PBMSG_HEADER Header;
BYTE KeyH;
BYTE KeyL;
BYTE DamageH;
BYTE DamageL;
BYTE DamageType;
BYTE ShieldDamageH;
BYTE ShieldDamageL;
DWORD ViewCurHP;
DWORD ViewCurSD;
#if(FixDmgQWORD)
QWORD ViewDamageHP;
QWORD ViewDamageSD;
#else
DWORD ViewDamageHP;
DWORD ViewDamageSD;
#endif
} PRECEIVE_ATTACK, * LPPRECEIVE_ATTACK;

2. Implementación en el Protocolo de Daño:
Debes reemplazar la función ReceiveAttackDamage para que utilice los nuevos campos de daño extendido.

Este cambio es crítico. Asegúrate de que las definiciones de ViewDamageHP coincidan entre tu GameServer y el Cliente para evitar desincronización (DC).

  • Busca la función void ReceiveAttackDamage(BYTE* ReceiveBuffer)
  • Reemplaza todo su contenido por el código que maneja DWORD Damage = Data->ViewDamageHP; y el soporte para ShieldDamage.
  • Esto permitirá que al llamar a CreatePoint, el valor pasado sea el acumulado real y no un valor truncado.

3. Fix en la Experiencia y Muerte (DieExp):
También es necesario corregir las funciones que muestran el daño final al morir el objetivo:

  • ReceiveDieExp: Actualizado para leer Data->ViewDamageHP.
  • ReceiveDieExpLarge: Actualizado para manejar experiencias y daños de alta capacidad.

Con estas modificaciones, los daños excelentes, críticos y combos se mostrarán sin importar qué tan alta sea la cifra, mejorando la experiencia visual en servidores High Exp o con ítems Custom.

Si utilizas la opción FixDmgQWORD, asegúrate de que tu compilador soporte tipos de datos de 64 bits y que el GameServer envíe la misma estructura de red.

Keywords:
MuOnline, Pegasus, Mudream, Fix Damage, Dmg 65k, Source Code, C++, Protocolo, ViewDamageHP, Game Development, Season 6, Tutorial.

¿Te funcionó el fix? Si los números siguen sin aparecer, verifica que el archivo Protocol.cpp de tu GameServer esté enviando el paquete con el mismo tamaño de bytes.

Aporte para la comunidad de MuServerFiles
Bon Dia

🡱 🡳
Real Time Web Analytics