[FIX]Beholder Neck

#1
En sus src de Cliente, en la clase CGame agreguen el siguiente metodo:

Code: Select all

bool CGame::bCheckItemEquiped(char itemName[])
{
    for (int i = 0; i < DEF_MAXITEMS; i++) 
    {
        if (m_pItemList[i] != NULL)
        {
            if (strcmp(m_pItemList[i]->m_cName, itemName) == 0) 
            {
                for (int x = 0; x < DEF_MAXITEMEQUIPPOS; x++)
                {
                      if (m_sItemEquipmentStatus[x] == i)
                         return true;
                }
            }
        }
    }

    return false;
}
Acuerdense de agregarle la cabecera en el header !
La funcion de este metodo es buscar un item equipado en el cliente segun su nombre, que se pasa por parametro.
Si tenemos esto, lo unico que falta es condicionar en el momento que dibuja los sprites transparentes para la invisibilidad de los demas clientes.
Hacemos lo siguiente, seguimos en la clase CGame:
Buscan todas las veces que aparesca (5 o 6):

Code: Select all

else if( _iGetFOE(_tmp_sStatus) == 1 ) bInv = TRUE;
Justo arriba de eso agregan:

Code: Select all

else if (bCheckItemEquiped("NecklaceOfBeholder") == true) bInv = TRUE;
Modifican el argumento por el nombre del Beholder Neck que tienen en su CFG (ese es el default).
Entonces, aca condicionamos que si el cliente posee equipado el Beholder, bInv pase a ser true.. que luego se condiciona para dibujar el cliente enemigo/aliado como invisible..

Y listo!
Centuu.-

Sol Lucet Omnibus.-

Who is online

Users browsing this forum: No registered users and 1 guest

cron