Analizuje sobie kod i może jestem jakiś lekko upo, ale w kodzie input_login.cpp nie widzie nigdzie zdeklarowanego db_clientdesc, chciałbym się dowiedzieć jak to działa. Po ostatnim moim pytaniu wnioskuje ze jest db_clientdesc który czeka na pakiety i GD, ale tu pojawia się moje następne pytanie czy są pakiety DG?
Analizuje sobie kod i może jestem jakiś lekko upo, ale w kodzie input_login.cpp nie widzie nigdzie zdeklarowanego db_clientdesc, chciałbym się dowiedzieć jak to działa. Po ostatnim moim pytaniu wnioskuje ze jest db_clientdesc który czeka na pakiety i GD, ale tu pojawia się moje następne pytanie czy są pakiety DG?
void CInputLogin::Login(LPDESC d, const char * data) { TPacketCGLogin * pinfo = (TPacketCGLogin *) data; char login[LOGIN_MAX_LEN + 1]; trim_and_lower(pinfo->login, login, sizeof(login)); sys_log(0, "InputLogin::Login : %s", login); TPacketGCLoginFailure failurePacket; if (!test_server) { failurePacket.header = HEADER_GC_LOGIN_FAILURE; strlcpy(failurePacket.szStatus, "VERSION", sizeof(failurePacket.szStatus)); d->Packet(&failurePacket, sizeof(TPacketGCLoginFailure)); return; } if (g_bNoMoreClient) { failurePacket.header = HEADER_GC_LOGIN_FAILURE; strlcpy(failurePacket.szStatus, "SHUTDOWN", sizeof(failurePacket.szStatus)); d->Packet(&failurePacket, sizeof(TPacketGCLoginFailure)); return; } if (g_iUserLimit > 0) { int iTotal; int * paiEmpireUserCount; int iLocal; DESC_MANAGER::instance().GetUserCount(iTotal, &paiEmpireUserCount, iLocal); if (g_iUserLimit <= iTotal) { failurePacket.header = HEADER_GC_LOGIN_FAILURE; strlcpy(failurePacket.szStatus, "FULL", sizeof(failurePacket.szStatus)); d->Packet(&failurePacket, sizeof(TPacketGCLoginFailure)); return; } } TLoginPacket login_packet; strlcpy(login_packet.login, login, sizeof(login_packet.login)); strlcpy(login_packet.passwd, pinfo->passwd, sizeof(login_packet.passwd)); db_clientdesc->DBPacket(HEADER_GD_LOGIN, d->GetHandle(), &login_packet, sizeof(TLoginPacket)); }
Edytowane przez theblabil