Render Item Color Border Main 5.2 - Source Mu - Mu Server Files
 

Noticias:

SMF - Just Installed!

Menú principal

Render Item Color Border Main 5.2

Publicado por Dakosmu, Nov 23, 2025, 10:34 PM

Tema anterior - Siguiente tema

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

Dakosmu

Render Item Color Border Main 5.2

Mejora Visual: Bordes de Items Dropeados

Mejora visual en la renderización de los items dropados con bordes de acuerdo al tipo de item.

---

Imágenes de la Mejora

Imágenes:



---

Archivos a Actualizar

Archivos actualizados: ZzzInventory.cpp & ZzzOpenData.cpp

---

Paso a Paso: Edición de ZzzOpenData.cpp

  • Paso 1: Abra el archivo ZzzOpenData.cpp.
  • Paso 2: Busque la función:
    void OpenImages()
  • Paso 3: Agregue las siguientes líneas al final de la función
    OpenImages():
        LoadBitmap("Interface\\tooltip_bg01.tga", 542047);
        LoadBitmap("Interface\\tooltip_bg02.tga", 542048);
        LoadBitmap("Interface\\tooltip_bg03.tga", 542049);
        LoadBitmap("Interface\\tooltip_bg04.tga", 542050);
        LoadBitmap("Interface\\tooltip_bg06.tga", 542051);
        LoadBitmap("Interface\\tooltip_bg07.tga", 542052);
        LoadBitmap("Interface\\tooltip_bg08.tga", 542053);
        LoadBitmap("Interface\\tooltip_bg09.tga", 542054);
        LoadBitmap("Interface\\tooltip_bg05.tga", 542055);
  • Paso 4: Agregue los archivos .TGA (que debe descargar) en la carpeta "Data/Interface" de su cliente.
  • Paso 5: Descargue los archivos .TGA desde aquí: Regístrate para ver el enlace

---

Paso a Paso: Edición de ZzzInventory.cpp

  • Paso 1: Abra el archivo ZzzInventory.cpp.
  • Paso 2: Busque la siguiente función:
void RenderItemName(int i, OBJECT* o, int ItemLevel, int ItemOption, int ItemExtOption, bool Sort)
  • Paso 3: Reemplace TODO el código de esa función por el siguiente código: (El código de reemplazo no se proporcionó en el HTML original)

Nota Importante: El contenido original que proporcionaste termina justo después de la instrucción de "reemplazar el código" de ZzzInventory.cpp, sin incluir el código de reemplazo. Asegúrate de tener ese código para que la guía esté completa.

void RenderItemName(int i, OBJECT* o, int ItemLevel, int ItemOption, int ItemExtOption, bool Sort)
{
    char Name[80];

    int Level = (ItemLevel >> 3) & 15;

    g_pRenderText->SetFont(g_hFont);
    g_pRenderText->SetTextColor(255, 255, 255, 255);
    g_pRenderText->SetBgColor(0, 0, 0, 255);

    bool bFirstOK = true;
    bool gDrawBarCustom = true;


    if (o->Type == MODEL_POTION + 15)
    {
        glColor3f(1.f, 0.8f, 0.1f);
        sprintf(Name, "%s %d", ItemAttribute[o->Type - MODEL_ITEM].Name, ItemLevel);
    }
    else if ((o->Type == MODEL_POTION + 13)
        || gCustomJewel.CheckCustomJewelByItem(o->Type - MODEL_ITEM)
        || (o->Type == MODEL_POTION + 14)
        || (o->Type == MODEL_POTION + 16)
        || (o->Type == MODEL_WING + 15)
        || (o->Type == MODEL_POTION + 22)
        || (o->Type == MODEL_POTION + 31)
        || (o->Type == MODEL_HELPER + 14)
        || (o->Type == MODEL_POTION + 41)
        || (o->Type == MODEL_POTION + 42)
        || (o->Type == MODEL_POTION + 43)
        || (o->Type == MODEL_POTION + 44)
        )
    {
        g_pRenderText->SetFont(g_hFontBold);
        glColor3f(1.f, 0.8f, 0.1f);
        sprintf(Name, "%s", ItemAttribute[o->Type - MODEL_ITEM].Name);
    }
    else if (o->Type == MODEL_WING + 11)
    {
        glColor3f(0.7f, 0.7f, 0.7f);
        sprintf(Name, "%s %s", SkillAttribute[30 + Level].Name, GlobalText[102]);
    }
    else if (o->Type == MODEL_HELPER + 46)
    {
        glColor3f(0.9f, 0.53f, 0.13f);
        sprintf(Name, ItemAttribute[ITEM_HELPER + 46].Name);
    }
    else if (o->Type == MODEL_HELPER + 47)
    {
        glColor3f(0.9f, 0.53f, 0.13f);
        sprintf(Name, ItemAttribute[ITEM_HELPER + 47].Name);
    }
    else if (o->Type == MODEL_HELPER + 48)
    {
        glColor3f(0.9f, 0.53f, 0.13f);
        sprintf(Name, ItemAttribute[ITEM_HELPER + 48].Name);
    }
    else if (o->Type == MODEL_POTION + 54)
    {
        glColor3f(0.9f, 0.53f, 0.13f);
        sprintf(Name, ItemAttribute[ITEM_POTION + 54].Name);
    }
    else if (o->Type >= MODEL_POTION + 58 && o->Type <= MODEL_POTION + 62)
    {
        glColor3f(0.9f, 0.53f, 0.13f);
        sprintf(Name, ItemAttribute[o->Type - MODEL_ITEM].Name);
    }
    else if (o->Type >= MODEL_POTION + 145 && o->Type <= MODEL_POTION + 150)
    {
        glColor3f(0.9f, 0.53f, 0.13f);
        sprintf(Name, ItemAttribute[o->Type - MODEL_ITEM].Name);
    }
    else if (o->Type == MODEL_HELPER + 125)
    {
        glColor3f(0.9f, 0.53f, 0.13f);
        sprintf(Name, ItemAttribute[ITEM_HELPER + 125].Name);
    }
    else if (o->Type == MODEL_HELPER + 126)
    {
        glColor3f(0.9f, 0.53f, 0.13f);
        sprintf(Name, ItemAttribute[ITEM_HELPER + 126].Name);
    }
    else if (o->Type == MODEL_HELPER + 127)
    {
        glColor3f(0.9f, 0.53f, 0.13f);
        sprintf(Name, ItemAttribute[ITEM_HELPER + 127].Name);
    }
    else if (o->Type == MODEL_POTION + 53)
    {
        glColor3f(0.9f, 0.53f, 0.13f);
        sprintf(Name, ItemAttribute[ITEM_POTION + 53].Name);
    }
    else if (o->Type == MODEL_HELPER + 43 || o->Type == MODEL_HELPER + 44 || o->Type == MODEL_HELPER + 45)
    {
        glColor3f(0.9f, 0.53f, 0.13f);
        sprintf(Name, ItemAttribute[o->Type - MODEL_HELPER].Name);
    }
    else if (o->Type >= ITEM_POTION + 70 && o->Type <= ITEM_POTION + 71)
    {
        glColor3f(0.9f, 0.53f, 0.13f);
        sprintf(Name, ItemAttribute[o->Type - MODEL_ITEM].Name);
    }
    else if (o->Type >= ITEM_POTION + 72 && o->Type <= ITEM_POTION + 77)
    {
        glColor3f(0.9f, 0.53f, 0.13f);
        sprintf(Name, ItemAttribute[o->Type - MODEL_ITEM].Name);
    }
    else if (o->Type == ITEM_HELPER + 59)
    {
        glColor3f(0.9f, 0.53f, 0.13f);
        sprintf(Name, ItemAttribute[o->Type - MODEL_ITEM].Name);
    }
    else if (o->Type >= ITEM_HELPER + 54 && o->Type <= ITEM_HELPER + 58)
    {
        glColor3f(0.9f, 0.53f, 0.13f);
        sprintf(Name, ItemAttribute[o->Type - MODEL_ITEM].Name);
    }
    else if (o->Type >= ITEM_POTION + 78 && o->Type <= ITEM_POTION + 82)
    {
        glColor3f(0.9f, 0.53f, 0.13f);
        sprintf(Name, ItemAttribute[o->Type - MODEL_ITEM].Name);
    }
    else if (o->Type == ITEM_HELPER + 60)
    {
        glColor3f(0.9f, 0.53f, 0.13f);
        sprintf(Name, ItemAttribute[o->Type - MODEL_ITEM].Name);
    }
    else if (o->Type == ITEM_HELPER + 61)
    {
        glColor3f(0.9f, 0.53f, 0.13f);
        sprintf(Name, ItemAttribute[o->Type - MODEL_ITEM].Name);
    }
    else if (o->Type == MODEL_POTION + 83)
    {
        glColor3f(0.9f, 0.53f, 0.13f);
        sprintf(Name, ItemAttribute[o->Type - MODEL_ITEM].Name);
    }
    else if (o->Type == MODEL_HELPER + 43 || o->Type == MODEL_HELPER + 44 || o->Type == MODEL_HELPER + 45)
    {
        glColor3f(0.9f, 0.53f, 0.13f);
        sprintf(Name, ItemAttribute[o->Type - MODEL_HELPER].Name);
    }
    else if (o->Type == MODEL_POTION + 91)
    {
        glColor3f(0.9f, 0.53f, 0.13f);
        sprintf(Name, ItemAttribute[ITEM_POTION + 91].Name);
    }
    else if (o->Type == MODEL_POTION + 92)
    {
        glColor3f(0.9f, 0.53f, 0.13f);
        sprintf(Name, ItemAttribute[ITEM_POTION + 92].Name);
    }
    else if (o->Type == MODEL_POTION + 93)
    {
        glColor3f(0.9f, 0.53f, 0.13f);
        sprintf(Name, ItemAttribute[ITEM_POTION + 93].Name);
    }
    else if (o->Type == MODEL_POTION + 95)
    {
        glColor3f(0.9f, 0.53f, 0.13f);
        sprintf(Name, ItemAttribute[ITEM_POTION + 95].Name);
    }
    else if (o->Type == MODEL_POTION + 94)
    {
        glColor3f(0.9f, 0.53f, 0.13f);
        sprintf(Name, ItemAttribute[ITEM_POTION + 94].Name);
    }
    else if (o->Type == MODEL_POTION + 84)
    {
        glColor3f(0.9f, 0.53f, 0.13f);
        sprintf(Name, ItemAttribute[ITEM_POTION + 84].Name);
    }
    else if (o->Type == MODEL_POTION + 85)
    {
        glColor3f(0.9f, 0.53f, 0.13f);
        sprintf(Name, ItemAttribute[ITEM_POTION + 85].Name);
    }
    else if (o->Type == MODEL_POTION + 86)
    {
        glColor3f(0.9f, 0.53f, 0.13f);
        sprintf(Name, ItemAttribute[ITEM_POTION + 86].Name);
    }
    else if (o->Type == MODEL_POTION + 87)
    {
        glColor3f(0.9f, 0.53f, 0.13f);
        sprintf(Name, ItemAttribute[ITEM_POTION + 87].Name);
    }
    else if (o->Type == MODEL_POTION + 88)
    {
        glColor3f(0.9f, 0.53f, 0.13f);
        sprintf(Name, ItemAttribute[ITEM_POTION + 88].Name);
    }
    else if (o->Type == MODEL_POTION + 89)
    {
        glColor3f(0.9f, 0.53f, 0.13f);
        sprintf(Name, ItemAttribute[ITEM_POTION + 89].Name);
    }
    else if (o->Type == MODEL_POTION + 90)
    {
        glColor3f(0.9f, 0.53f, 0.13f);
        sprintf(Name, ItemAttribute[ITEM_POTION + 90].Name);
    }
    else if (o->Type == MODEL_HELPER + 62) {
        glColor3f(0.9f, 0.53f, 0.13f);
        sprintf(Name, ItemAttribute[ITEM_HELPER + 62].Name);
    }
    else if (o->Type == MODEL_HELPER + 63) {
        glColor3f(0.9f, 0.53f, 0.13f);
        sprintf(Name, ItemAttribute[ITEM_HELPER + 63].Name);
    }
    else if (o->Type == MODEL_POTION + 97)
    {
        glColor3f(0.9f, 0.53f, 0.13f);
        sprintf(Name, ItemAttribute[ITEM_POTION + 97].Name);
    }
    else if (o->Type == MODEL_POTION + 98)
    {
        glColor3f(0.9f, 0.53f, 0.13f);
        sprintf(Name, ItemAttribute[ITEM_POTION + 98].Name);
    }
    else if (o->Type == MODEL_POTION + 96)
    {
        glColor3f(0.9f, 0.53f, 0.13f);
        sprintf(Name, ItemAttribute[ITEM_POTION + 96].Name);
    }
    else if (o->Type == MODEL_HELPER + 64)
    {
        glColor3f(0.9f, 0.53f, 0.13f);
        sprintf(Name, ItemAttribute[ITEM_HELPER + 64].Name);
    }
    else if (o->Type == MODEL_HELPER + 65)
    {
        glColor3f(0.9f, 0.53f, 0.13f);
        sprintf(Name, ItemAttribute[ITEM_HELPER + 65].Name);
    }
    else if (o->Type == MODEL_HELPER + 67)
    {
        glColor3f(0.9f, 0.53f, 0.13f);
        sprintf(Name, ItemAttribute[ITEM_HELPER + 67].Name);
    }
    else if (o->Type == MODEL_HELPER + 80)
    {
        glColor3f(0.9f, 0.53f, 0.13f);
        sprintf(Name, ItemAttribute[ITEM_HELPER + 80].Name);
    }
    else if (o->Type == MODEL_HELPER + 106)
    {
        glColor3f(0.9f, 0.53f, 0.13f);
        sprintf(Name, ItemAttribute[ITEM_HELPER + 106].Name);
    }
    else if (o->Type == MODEL_HELPER + 123)
    {
        glColor3f(0.9f, 0.53f, 0.13f);
        sprintf(Name, ItemAttribute[ITEM_HELPER + 123].Name);
    }
    else if (o->Type == MODEL_HELPER + 68)
    {
        glColor3f(0.9f, 0.53f, 0.13f);
        sprintf(Name, ItemAttribute[ITEM_HELPER + 68].Name);
    }
    else if (o->Type == MODEL_HELPER + 76)
    {
        glColor3f(0.9f, 0.53f, 0.13f);
        sprintf(Name, ItemAttribute[ITEM_HELPER + 76].Name);
    }
    else if (o->Type == MODEL_HELPER + 122)
    {
        glColor3f(0.9f, 0.53f, 0.13f);
        sprintf(Name, ItemAttribute[ITEM_HELPER + 122].Name);
    }
#ifdef LJH_ADD_ITEMS_EQUIPPED_FROM_INVENTORY_SYSTEM

    else if (o->Type == MODEL_HELPER + 128)
    {
        glColor3f(0.9f, 0.53f, 0.13f);
        sprintf(Name, ItemAttribute[ITEM_HELPER + 128].Name);
    }
    else if (o->Type == MODEL_HELPER + 129)
    {
        glColor3f(0.9f, 0.53f, 0.13f);
        sprintf(Name, ItemAttribute[ITEM_HELPER + 129].Name);
    }
    else if (o->Type == MODEL_HELPER + 134)
    {
        glColor3f(0.9f, 0.53f, 0.13f);
        sprintf(Name, ItemAttribute[ITEM_HELPER + 134].Name);
    }
#endif //LJH_ADD_ITEMS_EQUIPPED_FROM_INVENTORY_SYSTEM
#ifdef LJH_ADD_ITEMS_EQUIPPED_FROM_INVENTORY_SYSTEM_PART_2
    else if (o->Type == MODEL_HELPER + 130)
    {
        glColor3f(0.9f, 0.53f, 0.13f);
        sprintf(Name, ItemAttribute[ITEM_HELPER + 130].Name);
    }
    else if (o->Type == MODEL_HELPER + 131)
    {
        glColor3f(0.9f, 0.53f, 0.13f);
        sprintf(Name, ItemAttribute[ITEM_HELPER + 131].Name);
    }
    else if (o->Type == MODEL_HELPER + 132)
    {
        glColor3f(0.9f, 0.53f, 0.13f);
        sprintf(Name, ItemAttribute[ITEM_HELPER + 132].Name);
    }
    else if (o->Type == MODEL_HELPER + 133)
    {
        glColor3f(0.9f, 0.53f, 0.13f);
        sprintf(Name, ItemAttribute[ITEM_HELPER + 133].Name);
    }
#endif //LJH_ADD_ITEMS_EQUIPPED_FROM_INVENTORY_SYSTEM_PART_2
    else if (COMGEM::NOGEM != COMGEM::Check_Jewel_Com(o->Type, true))
    {
        int iJewelItemIndex = COMGEM::GetJewelIndex(COMGEM::Check_Jewel_Com(o->Type, true), COMGEM::eGEM_NAME);
        g_pRenderText->SetFont(g_hFontBold);
        glColor3f(1.f, 0.8f, 0.1f);
        sprintf(Name, "%s", GlobalText[iJewelItemIndex]);
    }
    else if (o->Type == MODEL_COMPILED_CELE)
    {
        g_pRenderText->SetFont(g_hFontBold);
        glColor3f(1.f, 0.8f, 0.1f);
        sprintf(Name, "%s", ItemAttribute[MODEL_POTION + 13 - MODEL_ITEM].Name);
    }
    else if (o->Type == MODEL_COMPILED_SOUL)
    {
        g_pRenderText->SetFont(g_hFontBold);
        glColor3f(1.f, 0.8f, 0.1f);
        sprintf(Name, "%s", ItemAttribute[MODEL_POTION + 14 - MODEL_ITEM].Name);
    }
    else if (o->Type == MODEL_POTION + 17 || o->Type == MODEL_POTION + 18 || o->Type == MODEL_POTION + 19)
    {
        g_pRenderText->SetFont(g_hFontBold);
        glColor3f(1.f, 0.8f, 0.1f);
        if (((ItemLevel >> 3) & 15) == 0)
        {
            sprintf(Name, "%s", ItemAttribute[o->Type - MODEL_ITEM].Name);
        }
        else
        {
            sprintf(Name, "%s +%d", ItemAttribute[o->Type - MODEL_ITEM].Name, ((ItemLevel >> 3) & 15));
        }
    }
    else if (o->Type == MODEL_POTION + 11 && Level == 7)
    {
        glColor3f(1.f, 0.8f, 0.1f);
        sprintf(Name, GlobalText[111]);
    }
    else if (o->Type == MODEL_POTION + 12)
    {
        switch (Level)
        {
        case 0:sprintf(Name, GlobalText[100]); break;
        case 1:sprintf(Name, GlobalText[101]); break;
        case 2:sprintf(Name, GlobalText[104]); break;
        }
    }
    else if (o->Type == MODEL_HELPER + 15)
    {
        glColor3f(1.f, 0.8f, 0.1f);
        switch (Level)
        {
        case 0:sprintf(Name, "%s %s", GlobalText[168], ItemAttribute[o->Type - MODEL_ITEM].Name); break;
        case 1:sprintf(Name, "%s %s", GlobalText[169], ItemAttribute[o->Type - MODEL_ITEM].Name); break;
        case 2:sprintf(Name, "%s %s", GlobalText[167], ItemAttribute[o->Type - MODEL_ITEM].Name); break;
        case 3:sprintf(Name, "%s %s", GlobalText[166], ItemAttribute[o->Type - MODEL_ITEM].Name); break;
        case 4:sprintf(Name, "%s %s", GlobalText[1900], ItemAttribute[o->Type - MODEL_ITEM].Name); break;
        }
    }
    else if (o->Type == MODEL_HELPER + 31)
    {
        glColor3f(1.f, 0.8f, 0.1f);
        switch (Level)
        {
        case 0:sprintf(Name, "%s of %s", ItemAttribute[o->Type - MODEL_ITEM].Name, GlobalText[1187]); break;
        case 1:sprintf(Name, "%s of %s", ItemAttribute[o->Type - MODEL_ITEM].Name, GlobalText[1214]); break;
        }
    }
    else if (o->Type == MODEL_EVENT + 16)
    {
        glColor3f(1.f, 0.8f, 0.1f);
        sprintf(Name, GlobalText[1235]);
    }
    else if (o->Type == MODEL_EVENT + 4)
    {
        sprintf(Name, GlobalText[105]);
    }
    else if (o->Type == MODEL_EVENT + 5)
    {
        glColor3f(1.f, 0.8f, 0.1f);
        switch (Level)
        {
        case 14:
            sprintf(Name, GlobalText[1650]);
            break;

        case 15:
            sprintf(Name, GlobalText[1651]);
            break;

        default:
            sprintf(Name, GlobalText[106]);
            break;
        }
    }
    else if (o->Type == MODEL_EVENT + 6)
    {
        if (Level == 13)
        {
            glColor3f(1.f, 0.8f, 0.1f);
            sprintf(Name, "%s", GlobalText[117]);
        }
        else
        {
            sprintf(Name, GlobalText[107]);
        }
    }
    else if (o->Type == MODEL_EVENT + 7)
    {
        sprintf(Name, GlobalText[108]);
    }
    else if (o->Type == MODEL_EVENT + 8)
    {
        sprintf(Name, GlobalText[109]);
    }
    else if (o->Type == MODEL_EVENT + 9)
    {
        sprintf(Name, GlobalText[110]);
    }
    else if (o->Type == MODEL_EVENT + 10)
    {
        sprintf(Name, "%s +%d", GlobalText[115], Level - 7);
    }
    else if (o->Type == MODEL_WING + 32)
    {
        glColor3f(1.f, 0.3f, 0.3f);
        sprintf(Name, ItemAttribute[ITEM_WING + 32].Name);
    }
    else if (o->Type == MODEL_WING + 33)
    {
        glColor3f(0.3f, 1.0f, 0.3f);
        sprintf(Name, ItemAttribute[ITEM_WING + 33].Name);
    }
    else if (o->Type == MODEL_WING + 34)
    {
        glColor3f(0.3f, 0.3f, 1.f);
        sprintf(Name, ItemAttribute[ITEM_WING + 34].Name);
    }
    else if (o->Type == ITEM_HELPER + 49)
    {
        glColor3f(1.f, 0.8f, 0.1f);
        sprintf(Name, ItemAttribute[ITEM_HELPER + 49].Name);
    }
    else if (o->Type == ITEM_HELPER + 50)
    {
        glColor3f(1.f, 0.8f, 0.1f);
        sprintf(Name, ItemAttribute[ITEM_HELPER + 50].Name);
    }
    else if (o->Type == ITEM_HELPER + 51)
    {
        glColor3f(1.f, 0.8f, 0.1f);
        sprintf(Name, ItemAttribute[ITEM_HELPER + 51].Name);
    }
    else if (o->Type == MODEL_POTION + 64)
    {
        glColor3f(1.f, 0.8f, 0.1f);
        sprintf(Name, ItemAttribute[ITEM_POTION + 64].Name);
    }
    else if (o->Type == MODEL_WING + 48)//
    {
        glColor3f(1.f, 1.f, 1.f);
        sprintf(Name, ItemAttribute[ITEM_WING + 48].Name);
    }
    else if (o->Type == MODEL_WING + 35)
    {
        glColor3f(1.f, 1.f, 1.f);
        sprintf(Name, ItemAttribute[ITEM_WING + 35].Name);
    }
    else if (o->Type == MODEL_POTION + 45)
    {
        glColor3f(0.9f, 0.53f, 0.13f);
        sprintf(Name, ItemAttribute[ITEM_POTION + 45].Name);
    }
    else if (o->Type == MODEL_POTION + 46)
    {
        glColor3f(0.9f, 0.53f, 0.13f);
        sprintf(Name, ItemAttribute[ITEM_POTION + 46].Name);
    }
    else if (o->Type == MODEL_POTION + 47)
    {
        glColor3f(0.9f, 0.53f, 0.13f);
        sprintf(Name, ItemAttribute[ITEM_POTION + 47].Name);
    }
    else if (o->Type == MODEL_POTION + 48)
    {
        glColor3f(0.9f, 0.53f, 0.13f);
        sprintf(Name, ItemAttribute[ITEM_POTION + 48].Name);
    }
    else if (o->Type == MODEL_POTION + 49)
    {
        glColor3f(0.9f, 0.53f, 0.13f);
        sprintf(Name, ItemAttribute[ITEM_POTION + 49].Name);
    }
    else if (o->Type == MODEL_POTION + 50)
    {
        glColor3f(0.9f, 0.53f, 0.13f);
        sprintf(Name, ItemAttribute[ITEM_POTION + 50].Name);
    }
    else if (o->Type == MODEL_POTION + 32)
    {
        int i = MODEL_POTION + 32;
        int k = ITEM_POTION + 32;
        if (Level == 0)
        {
            glColor3f(1.f, 0.3f, 1.f);
            sprintf(Name, ItemAttribute[ITEM_POTION + 32].Name);
        }
        else
            if (Level == 1)
            {
                glColor3f(1.f, 0.3f, 1.f);
                sprintf(Name, GlobalText[2012]);
            }
    }
    else if (o->Type == MODEL_POTION + 33)
    {
        if (Level == 0)
        {
            glColor3f(1.0f, 0.3f, 0.3f);
            sprintf(Name, ItemAttribute[ITEM_POTION + 33].Name);
        }
        else
            if (Level == 1)
            {
                glColor3f(1.0f, 0.3f, 0.3f);
                sprintf(Name, GlobalText[2013]);
            }
    }
    else if (o->Type == MODEL_POTION + 34)
    {
        if (Level == 0)
        {
            glColor3f(0.3f, 0.3f, 1.f);
            sprintf(Name, ItemAttribute[ITEM_POTION + 34].Name);
        }
        else
            if (Level == 1)
            {
                glColor3f(0.3f, 0.3f, 1.f);
                sprintf(Name, GlobalText[2014]);
            }
    }
    else if (o->Type == MODEL_EVENT + 21)
    {
        glColor3f(1.f, 0.3f, 1.f);
        sprintf(Name, GlobalText[2012]);
    }
    else if (o->Type == MODEL_EVENT + 22)
    {
        glColor3f(1.0f, 0.3f, 0.3f);
        sprintf(Name, GlobalText[2013]);
    }
    else if (o->Type == MODEL_EVENT + 23)
    {
        glColor3f(0.3f, 0.3f, 1.f);
        sprintf(Name, GlobalText[2014]);
    }
    else if (o->Type == MODEL_EVENT + 11)
    {
        glColor3f(1.f, 0.8f, 0.1f);
        {
            sprintf(Name, GlobalText[810]);
        }
    }
    else if (o->Type == MODEL_EVENT + 12)
    {
        glColor3f(1.f, 0.8f, 0.1f);
        sprintf(Name, GlobalText[906]);
    }
    else if (o->Type == MODEL_EVENT + 13)
    {
        glColor3f(1.f, 0.8f, 0.1f);
        sprintf(Name, GlobalText[907]);
    }
    else if (o->Type == MODEL_EVENT + 14)
    {
        glColor3f(1.f, 0.8f, 0.1f);
        switch (Level)
        {
        case 2:
            sprintf(Name, GlobalText[928]);
            break;
        case 3:
            sprintf(Name, GlobalText[929]);
            break;
        default:
            sprintf(Name, GlobalText[922]);
            break;
        }
    }
    else if (o->Type == MODEL_EVENT + 15)
    {
        glColor3f(1.f, 0.8f, 0.1f);
        sprintf(Name, GlobalText[925]);
    }
    else if (o->Type == MODEL_WING + 11)
    {
        sprintf(Name, "%s %s", SkillAttribute[30 + Level].Name, GlobalText[102]);
    }
    else if (o->Type == MODEL_HELPER + 10)
    {
        for (int i = 0; i < MAX_MONSTER; i++)
        {
            if (SommonTable[Level] == MonsterScript[i].Type)
            {
                sprintf(Name, "%s %s", MonsterScript[i].Name, GlobalText[103]);
                break;
            }
        }
    }
    else if (o->Type == MODEL_POTION + 21 && Level == 3)
    {
        glColor3f(1.f, 0.8f, 0.1f);
        sprintf(Name, GlobalText[1290]);
    }
    else if (o->Type == MODEL_POTION + 7)
    {
        switch (Level)
        {
        case 0: sprintf(Name, GlobalText[1413]); break;
        case 1: sprintf(Name, GlobalText[1414]); break;
        }
    }
    else if (o->Type == MODEL_HELPER + 7)
    {
        switch (Level)
        {
        case 0: sprintf(Name, GlobalText[1460]); break;
        case 1: sprintf(Name, GlobalText[1461]); break;
        }
    }
    else if (o->Type == MODEL_HELPER + 11)
    {
        switch (Level)
        {
        case 0: sprintf(Name, GlobalText[1416]); break;
        case 1: sprintf(Name, GlobalText[1462]); break;
        }
    }
    else if (o->Type == MODEL_EVENT + 18)
    {
        sprintf(Name, GlobalText[1462]);
    }
    else
    {
        bFirstOK = false;
    }

    if (bFirstOK == false)
    {
        if ((o->Type >= MODEL_WING + 60 && o->Type <= MODEL_WING + 65)
            || (o->Type >= MODEL_WING + 70 && o->Type <= MODEL_WING + 74)
            || (o->Type >= MODEL_WING + 100 && o->Type <= MODEL_WING + 129))
        {
            glColor3f(0.7f, 0.4f, 1.0f);    // TEXT_COLOR_VIOLET
            strcpy(Name, ItemAttribute[o->Type - MODEL_ITEM].Name);
        }
        else if (o->Type == MODEL_HELPER + 66)
        {
            glColor3f(0.6f, 0.4f, 1.0f);
            sprintf(Name, ItemAttribute[ITEM_HELPER + 66].Name);
        }
        else if (o->Type == MODEL_POTION + 100)
        {
            glColor3f(1.0f, 0.8f, 0.1f);
            sprintf(Name, ItemAttribute[ITEM_POTION + 100].Name);
        }
        else if (o->Type >= MODEL_TYPE_CHARM_MIXWING + EWS_BEGIN
            && o->Type <= MODEL_TYPE_CHARM_MIXWING + EWS_END)
        {
            glColor3f(0.9f, 0.53f, 0.13f);
            sprintf(Name, ItemAttribute[o->Type - MODEL_ITEM].Name);
        }
        else if (o->Type == MODEL_HELPER + 97 || o->Type == MODEL_HELPER + 98 || o->Type == MODEL_POTION + 91)
        {
            glColor3f(1.0f, 0.8f, 0.1f);
            sprintf(Name, ItemAttribute[o->Type].Name);
        }
        else if (o->Type == MODEL_HELPER + 99)
        {
            glColor3f(1.0f, 0.8f, 0.1f);
            sprintf(Name, ItemAttribute[ITEM_HELPER + 99].Name);
        }
        else if (o->Type == MODEL_HELPER + 109)
        {
            glColor3f(1.0f, 0.8f, 0.1f);
            sprintf(Name, ItemAttribute[MODEL_HELPER + 109].Name);
        }
        else if (o->Type == MODEL_HELPER + 110)
        {
            glColor3f(1.0f, 0.8f, 0.1f);
            sprintf(Name, ItemAttribute[MODEL_HELPER + 110].Name);
        }
        else if (o->Type == MODEL_HELPER + 111)
        {
            glColor3f(1.0f, 0.8f, 0.1f);
            sprintf(Name, ItemAttribute[MODEL_HELPER + 111].Name);
        }
        else if (o->Type == MODEL_HELPER + 112)
        {
            glColor3f(1.0f, 0.8f, 0.1f);
            sprintf(Name, ItemAttribute[MODEL_HELPER + 112].Name);
        }
        else if (o->Type == MODEL_HELPER + 113)
        {
            glColor3f(1.0f, 0.8f, 0.1f);
            sprintf(Name, ItemAttribute[MODEL_HELPER + 113].Name);
        }
        else if (o->Type == MODEL_HELPER + 114)
        {
            glColor3f(1.0f, 0.8f, 0.1f);
            sprintf(Name, ItemAttribute[MODEL_HELPER + 114].Name);
        }
        else if (o->Type == MODEL_HELPER + 115)
        {
            glColor3f(1.0f, 0.8f, 0.1f);
            sprintf(Name, ItemAttribute[MODEL_HELPER + 115].Name);
        }
        else if (o->Type == MODEL_POTION + 112)
        {
            glColor3f(1.0f, 0.8f, 0.1f);
            sprintf(Name, ItemAttribute[MODEL_POTION + 112].Name);
        }
        else if (o->Type == MODEL_POTION + 113)
        {
            glColor3f(1.0f, 0.8f, 0.1f);
            sprintf(Name, ItemAttribute[MODEL_POTION + 113].Name);
        }
        else
        {
            if (o->Type == MODEL_STAFF + 10 || o->Type == MODEL_SWORD + 19 || o->Type == MODEL_BOW + 18 || o->Type == MODEL_MACE + 13)
            {
                glColor3f(1.f, 0.1f, 1.f);
            }
            else if (g_SocketItemMgr.IsSocketItem(o))
            {
                glColor3f(0.7f, 0.4f, 1.0f);    // TEXT_COLOR_VIOLET
            }
            else if ((ItemOption & 63) > 0 && (o->Type<MODEL_WING + 3 || o->Type>MODEL_WING + 6) && o->Type != MODEL_HELPER + 30
                && (o->Type<MODEL_WING + 36 || o->Type>MODEL_WING + 40)
                && (o->Type<MODEL_WING + 42 || o->Type>MODEL_WING + 43 || !gCustomWing.CheckCustomWingByItem(o->Type - MODEL_ITEM)))
            {
                glColor3f(0.1f, 1.f, 0.5f);
            }
            else if (MODEL_POTION + 101 <= o->Type && o->Type <= MODEL_POTION + 109)
            {
                glColor3f(1.f, 0.8f, 0.1f);
                sprintf(Name, ItemAttribute[o->Type].Name);
            }
            else if (o->Type == MODEL_POTION + 111)
            {
                glColor3f(1.f, 0.8f, 0.1f);
                sprintf(Name, ItemAttribute[o->Type].Name);
            }
            else if (o->Type == MODEL_POTION + 120)
            {
                glColor3f(1.f, 0.8f, 0.1f);
                sprintf(Name, ItemAttribute[o->Type].Name);
            }
            else if (o->Type == MODEL_POTION + 121)
            {
                glColor3f(1.f, 0.8f, 0.1f);
                sprintf(Name, ItemAttribute[o->Type].Name);
            }
            else if (o->Type == MODEL_POTION + 122)
            {
                glColor3f(1.f, 0.8f, 0.1f);
                sprintf(Name, ItemAttribute[o->Type].Name);
            }
            else if (o->Type == MODEL_POTION + 123)
            {
                glColor3f(1.f, 0.8f, 0.1f);
                sprintf(Name, ItemAttribute[o->Type].Name);
            }
            else if (o->Type == MODEL_POTION + 124)
            {
                glColor3f(1.f, 0.8f, 0.1f);
                sprintf(Name, ItemAttribute[o->Type].Name);
            }
            else if (MODEL_POTION + 134 <= o->Type && o->Type <= MODEL_POTION + 139)
            {
                glColor3f(1.f, 0.8f, 0.1f);
                sprintf(Name, ItemAttribute[o->Type].Name);
            }
            else if (o->Type == MODEL_HELPER + 116)
            {
                glColor3f(0.9f, 0.53f, 0.13f);
                sprintf(Name, ItemAttribute[o->Type].Name);
            }

            else if (ITEM_WING + 130 <= o->Type &&
#ifdef PBG_ADD_NEWCHAR_MONK_ITEM
                o->Type <= ITEM_WING + 135
#else //PBG_ADD_NEWCHAR_MONK_ITEM
                o->Type <= ITEM_WING + 134
#endif //PBG_ADD_NEWCHAR_MONK_ITEM
                )
            {
                glColor3f(0.9f, 0.53f, 0.13f);
                sprintf(Name, ItemAttribute[o->Type].Name);
            }

            else if (MODEL_POTION + 114 <= o->Type && o->Type <= MODEL_POTION + 119)
            {
                glColor3f(1.f, 0.8f, 0.1f);
                sprintf(Name, ItemAttribute[o->Type].Name);
            }
            else if (MODEL_POTION + 126 <= o->Type && o->Type <= MODEL_POTION + 129)
            {
                glColor3f(1.f, 0.8f, 0.1f);
                sprintf(Name, ItemAttribute[o->Type].Name);
            }
            else if (MODEL_POTION + 130 <= o->Type && o->Type <= MODEL_POTION + 132)
            {
                glColor3f(1.f, 0.8f, 0.1f);
                sprintf(Name, ItemAttribute[o->Type].Name);
            }
            else if (MODEL_HELPER + 121 == o->Type)
            {
                glColor3f(1.f, 0.8f, 0.1f);
                sprintf(Name, ItemAttribute[o->Type].Name);
            }
            else if (o->Type >= MODEL_POTION + 141 && o->Type <= MODEL_POTION + 144)
            {
                glColor3f(0.9f, 0.53f, 0.13f);
                sprintf(Name, ItemAttribute[o->Type].Name);
            }
            else if (o->Type == MODEL_WING + 25)
            {
                glColor3f(1.f, 0.8f, 0.1f);
            }
            else if (o->Type == MODEL_POTION + 28 || o->Type == MODEL_POTION + 29)
            {
                glColor3f(1.f, 0.8f, 0.1f);
            }
            else if (Level >= 7)
            {
                glColor3f(1.f, 0.8f, 0.1f);
            }
            else if (((ItemLevel >> 7) & 1) || ((ItemLevel >> 2) & 1) || ((ItemLevel >> 1) & 1) || (ItemLevel & 1))
            {
                glColor3f(0.4f, 0.7f, 1.f);
            }
            else if (Level == 0)
            {
                glColor3f(0.7f, 0.7f, 0.7f);
            }
            else if (Level < 3)
            {
                glColor3f(0.9f, 0.9f, 0.9f);
            }
            else if (Level < 5)
            {
                glColor3f(1.f, 0.5f, 0.2f);
            }
            else if (Level < 7)
            {
                glColor3f(0.4f, 0.7f, 1.f);
            }

            char TextName[64];
            if (g_csItemOption.GetSetItemName(TextName, o->Type - MODEL_ITEM, ItemExtOption))
            {
                glColor3f(1.f, 1.f, 1.f);
                g_pRenderText->SetFont(g_hFontBold);
                g_pRenderText->SetTextColor(0, 255, 0, 255);
                g_pRenderText->SetBgColor(60, 60, 200, 255);

                strcat(TextName, ItemAttribute[o->Type - MODEL_ITEM].Name);
            }
            else
            {
                strcpy(TextName, ItemAttribute[o->Type - MODEL_ITEM].Name);
            }

            if (Level == 0)
                sprintf(Name, "%s", TextName);
            else
                sprintf(Name, "%s +%d", TextName, Level);

            if ((ItemLevel >> 7) & 1)
            {
                if (o->Type != MODEL_HELPER + 3)
                    strcat(Name, GlobalText[176]);
                else
                {
                    strcat(Name, " +");
                    strcat(Name, GlobalText[179]);
                }
            }
            if ((ItemLevel & 3) || ((ItemOption >> 6) & 1))
                strcat(Name, GlobalText[177]);
            if ((ItemLevel >> 2) & 1)
                strcat(Name, GlobalText[178]);
        }
    }

    GLfloat fCurColor[4] = { 1.f, 1.f, 1.f, 0.0f };
    glGetFloatv(GL_CURRENT_COLOR, fCurColor);
    if (fCurColor[0] < 0.9f || fCurColor[1] < 0.9f || fCurColor[2] < 0.9f)
        g_pRenderText->SetTextColor(fCurColor[0] * 255, fCurColor[1] * 255, fCurColor[2] * 255, 255);

    // Calculate text dimensions for background
    SIZE TextSize;
    g_pMultiLanguage->_GetTextExtentPoint32(g_pRenderText->GetFontDC(), Name, lstrlen(Name), &TextSize);

    float fWidth = TextSize.cx / g_fScreenRate_x;
    float fHeight = TextSize.cy / g_fScreenRate_y;

    int renderX, renderY;
    if (!Sort)
    {
        renderX = MouseX;
        renderY = MouseY - 15;
    }
    else
    {
        renderX = o->ScreenX;
        renderY = o->ScreenY - 15;
    }

    // Add padding to background
    fWidth += -3;
    fHeight += -15;

    // Center the background
    float bgX = renderX - fWidth / 2;
    float bgY = renderY - fHeight / 2;

    // Render custom background if enabled
    if (gDrawBarCustom)
    {
        EnableAlphaTest();

        const float border_size = 16.0f / g_fScreenRate_x;
        const float border_height = 16.0f / g_fScreenRate_y;

        glColor3f(fCurColor[0], fCurColor[1], fCurColor[2]);
        glEnable(GL_TEXTURE_2D);

        // Render background components
        RenderBitmap(542055, bgX, bgY, fWidth, fHeight);
        RenderBitmap(542048, bgX, bgY - border_height, fWidth, border_height);
        RenderBitmap(542053, bgX, bgY + fHeight, fWidth, border_height);
        RenderBitmap(542050, bgX - border_size, bgY, border_size, fHeight);
        RenderBitmap(542051, bgX + fWidth, bgY, border_size, fHeight);
        RenderBitmap(542047, bgX - border_size, bgY - border_height, border_size, border_height);
        RenderBitmap(542049, bgX + fWidth, bgY - border_height, border_size, border_height);
        RenderBitmap(542052, bgX - border_size, bgY + fHeight, border_size, border_height);
        RenderBitmap(542054, bgX + fWidth, bgY + fHeight, border_size, border_height);

        DisableAlphaBlend();

        // Restore color for text
        glColor3f(fCurColor[0], fCurColor[1], fCurColor[2]);
    }

    // Render the text
    if (!Sort)
    {
        g_pRenderText->RenderText(MouseX, MouseY - 19, Name, 0, 0, RT3_WRITE_CENTER);
    }
    else
    {
        g_pRenderText->RenderText(o->ScreenX, o->ScreenY - 20, Name, 0, 0, RT3_WRITE_CENTER);
    }

    g_pRenderText->SetTextColor(255, 230, 200, 255);
    g_pRenderText->SetBgColor(0, 0, 0, 255);
}

Creditos by GDA
Bon Dia

🡱 🡳
Real Time Web Analytics