- if( thisclient->accesslevel < Config.MinimumAccessLevel )
- { //The server are under inspection
- ADDBYTE( pak, 0 );
- ADDDWORD( pak, 0 );
- thisclient->SendPacket( &pak );
- DB->QFree( );
- return true;
- }
- if ( thisclient->accesslevel > 0 )
- {
- thisclient->userid = atoi(row[0]);
- thisclient->isLoggedIn = true;
- DB->QFree( );
- //OK!
- ADDDWORD( pak, 0x0c000000 );
- ADDBYTE( pak, 0 );
- result = DB->QStore( "SELECT id,name FROM channels WHERE type=1" );
- if(result==NULL) return false;
- while( row = mysql_fetch_row(result) )
- {
- ADDBYTE( pak, 48 + atoi( row[0] ) );
- ADDSTRING( pak, row[1] );
- ADDBYTE( pak, 0 );
- ADDBYTE(pak, atoi( row[0] ) );
- ADDBYTE( pak, 0 );
- ADDWORD( pak, 0 );
- }
- DB->QFree( );
- }
- else{
- //BANNED
- ADDBYTE( pak, 5 );
- ADDDWORD( pak, 0 );
- DB->QFree( );
- }
- change :
by :
- if(thisclient ->accesslevel ==0)
- { //BANED
- ADDBYTE( pak, 5 );
- ADDDWORD( pak, 0 );
- DB->QFree( );
- }
- if( thisclient->accesslevel < Config.MinimumAccessLevel )
- { //The server are under inspection
- ADDBYTE( pak, 0 );
- ADDDWORD( pak, 0 );
- thisclient->SendPacket( &pak );
- DB->QFree( );
- return true;
- }
- if ( thisclient->accesslevel > 0 )
- {
- thisclient->userid = atoi(row[0]);
- thisclient->isLoggedIn = true;
- DB->QFree( );
- //OK!
- ADDDWORD( pak, 0x0c000000 );
- ADDBYTE( pak, 0 );
- result = DB->QStore( "SELECT id,name FROM channels WHERE type=1" );
- if(result==NULL) return false;
- while( row = mysql_fetch_row(result) )
- {
- ADDBYTE( pak, 48 + atoi( row[0] ) );
- ADDSTRING( pak, row[1] );
- ADDBYTE( pak, 0 );
- ADDBYTE(pak, atoi( row[0] ) );
- ADDBYTE( pak, 0 );
- ADDWORD( pak, 0 );
- }
- DB->QFree( );
- }
Else your code is a nonsense : a ban player will alway see "The server are under inspection" and not "Your account is ban"...
I found another mistake , but i can't remember where (it's was on the channel list , i think)