Este é um fix bem simples, mas que ainda não tem nas versões clássicas.
Como o problema ocorre?
Quando um player cria uma conta e coloca o login em maiúsculo para logar no servidor, a conta entra normal e não mostra nenhum personagem, muitas vezes eles entram em contato com o Admin falando q perdeu seus personagens, quando na verdade foi só um erro na hora de fazer login.
Código:
#define GCJoinResult ((void(*)(BYTE result, int aIndex)) 0x00417140) //97d ok
struct PMSG_IDPASS { /*<thisrel this+0x0>*/ /*|0x3|*/ struct PBMSG_HEAD h;
/*<thisrel this+0x3>*/ /*|0x1|*/ unsigned char subcode;
/*<thisrel this+0x4>*/ /*|0xa|*/ char Id[10];
/*<thisrel this+0xe>*/ /*|0xa|*/ char Pass[10];
/*<thisrel this+0x18>*/ /*|0x4|*/ unsigned long TickCount;
/*<thisrel this+0x1c>*/ /*|0x5|*/ unsigned char CliVersion[3];
/*<thisrel this+0x21>*/ /*|0x10|*/ unsigned char CliSerial[16];
};
void ICSPJoinIdPassRequest(PMSG_IDPASS * lpMsg, int aIndex)
{
char id[11];
id[10] = 0;
memcpy(id, lpMsg->Id, sizeof(lpMsg->Id));
BuxConvert(id, MAX_ACCOUNT_LEN);
for (int i = 0; i < MAX_ACCOUNT_LEN; i++)
{
if ('A' <= id[i] && id[i] <= 'Z')
{
GCJoinResult(0x01, aIndex);
return;
}
}
CSPJoinIdPassRequest(lpMsg, aIndex);
}
Créditos: Romário Leite