Fix Shop Title y Habilidades DL (Cuervo) en Source 5.2 Pegasus/Mudream - Source Mu - Mu Server Files
 

Fix Shop Title y Habilidades DL (Cuervo) en Source 5.2 Pegasus/Mudream

Publicado por Dakosmu, Dic 07, 2025, 04:04 AM

Tema anterior - Siguiente tema

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

Dakosmu

FIX 1: CORRECCIÓN DE POSICIÓN DEL TÍTULO DE LA TIENDA (SHOP TITLE)


Esta corrección soluciona el problema de que el texto del título de la tienda personal (Personal Shop) se dibuje demasiado abajo, superponiéndose o quedando fuera de lugar.

  • Archivo a Modificar: (Debes buscar el archivo donde se encuentra la clase o función de dibujo del título, generalmente relacionado con UI o CPersonalShopTitleImp.)
  • Función a Modificar: void CPersonalShopTitleImp::CShopTitleDrawObj::Draw(int iPkLevel)
  • Pasos:

Paso 1: Añadir el Desplazamiento (offset)
Busca la siguiente línea dentro de la función Draw:
int iLineHeight = FontHeight / g_fScreenRate_y;Inmediatamente después, añade la variable de desplazamiento:
int offsetY = 25;(El valor 25 desplaza el texto 25 unidades hacia arriba. Puedes ajustarlo si es necesario.)

Paso 2: Aplicar el Desplazamiento al Renderizado
Localiza el bloque de código encargado de dibujar los textos de la tienda.
Reemplaza el bloque de código original (donde se utiliza RenderPos.y) por el siguiente bloque completo que incluye la resta - offsetY en cada llamada a RenderText.

        g_pRenderText->SetFont(g_hFontBold);
        g_pRenderText->SetBgColor(iIconBkColor);
        g_pRenderText->SetTextColor(iIconTextColor);
        g_pRenderText->RenderText(RenderPos.x, RenderPos.y - offsetY, GlobalText[1104], RenderIconSize.cx, iLineHeight);

        g_pRenderText->SetBgColor(iNameBkColor);
        g_pRenderText->SetTextColor(iNameTextColor);
        g_pRenderText->RenderText(RenderPos.x + RenderIconSize.cx, RenderPos.y - offsetY, m_fullname.c_str(),
          RenderBoxSize.cx - RenderIconSize.cx, iLineHeight);
        RenderPos.y += iLineHeight;

        g_pRenderText->SetFont(g_hFont);

        // Render shop title
        if (!m_bottomTitle.empty())
        {
            g_pRenderText->SetBgColor(108, 57, 41, 200);
            g_pRenderText->SetTextColor(255, 255, 255, 255);
            g_pRenderText->RenderText(RenderPos.x, RenderPos.y - offsetY, m_topTitle.c_str(), RenderBoxSize.cx, iLineHeight);
            RenderPos.y += iLineHeight;
            g_pRenderText->RenderText(RenderPos.x, RenderPos.y - offsetY, m_bottomTitle.c_str(), RenderBoxSize.cx, iLineHeight);
        }
        else if (!m_topTitle.empty())
        {
            g_pRenderText->SetBgColor(108, 57, 41, 200);
            g_pRenderText->SetTextColor(255, 255, 255, 255);
            g_pRenderText->RenderText(RenderPos.x, RenderPos.y - offsetY, m_topTitle.c_str(), RenderBoxSize.cx, iLineHeight);
        }

    }



---

FIX 2: CORRECCIÓN DE SKILL DEL CUERVO DEL DARK LORD (MUHELPER)

Este fix asegura que las habilidades de comando de mascota (como el Cuervo) sean identificadas correctamente, especialmente cuando se utiliza el sistema de ayuda automática (MuHelper), evitando que fallen o no se activen.

  • Archivo a Modificar: (Busca el archivo donde se gestionan las habilidades y la lógica del MuHelper.)
  • Código Previo (Si existe): WORD bySkillType = (TypeMuHelper == 1) ? iIndex : CharacterAttribute->Skill[iIndex];
  • Pasos:

Paso 1: Identificar la lógica de obtención del SkillType
Localiza la parte del código donde se asigna el valor inicial a bySkillType.

Paso 2: Reemplazar por la nueva lógica de validación
Reemplaza la línea inicial que asigna bySkillType (o el bloque de código relacionado) por este nuevo bloque completo:

    if (iIndex >= AT_PET_COMMAND_DEFAULT)
    {
        bySkillType = iIndex;
    }
    else
    {
        bySkillType = (TypeMuHelper == 1) ? iIndex : CharacterAttribute->Skill[iIndex];
    }


    if (bySkillType == 0)
    {
        return;
    }


    if (bySkillType < AT_PET_COMMAND_DEFAULT)
    {
        if (!gSkillManager.FindHeroSkill((ActionSkillType)bySkillType))
        {
            return;
        }
    }
  • Explicación de la Lógica: La condición if (iIndex >= AT_PET_COMMAND_DEFAULT) fuerza al sistema a usar el índice de la habilidad directamente si se trata de un comando de mascota (como el Cuervo), evitando que la lógica del MuHelper o la validación estricta de gSkillManager lo descarte.

---
[/code]

Bon Dia

🡱 🡳
Real Time Web Analytics