Ok, i have found the way to do it, buuut, to make it well i need to spend a lot of time patching things in the exe, time that i dont have, so if anyone is interested and have a bit of knowledge of asm, search for GetUserGradeIDColor function, this function takes 3 parameters, the first is the UGradeID to check if there is a color for it, the second is a MCOLOR struct pointer and the third parameter is a char* to store the 'Administrator' string if the UGradeID is 255 or 254.
the definition of the function is:
bool GetUserGradeIDColor( int UGradeID, struct MCOLOR& Color, char* szName );
the MCOLOR structs have this implementation.
Code:
struct MCOLOR
{
char r;
char g;
char b;
char a;
};
you can create your own function and implements more colors to differents UGradeID's, you can set the blue color to the ugradeid 88 for example.
the implementation of the function can be like that (written by myself based on the asm code )
Code:
bool GetUserGradeIDColor( int UGradeID, struct MCOLOR& Color, char* szName )
{
bool bRet = false;
if( UGradeID == 255 )
{
Color.a = 255;
Color.r = 128;
Color.g = 64;
Color.b = 0;
char* szString = ZApplication->GetInstance()->GetMessenger()->GetString( 9004 ); //Administrator String
while( *szString != '\0' )
{
*szName = *szString;
szName++;
szString++;
}
bRet = true;
}else if( UGradeID == 254 )
{
Color.r = 128;
Color.g = 64;
Color.b = 0;
char* szString = ZApplication->GetInstance()->GetMessenger()->GetString( 9005 ); //Developer String
while( *szString != '\0' )
{
*szName = *szString;
szName++;
szString++;
}
bRet = true;
}else{
bRet = false;
}
return bRet;
}