static int _client_anongame_set_icon(t_connection * c, t_packet const * const packet) if (desired_icon==0){ std::strcpy(user_icon,"NULL"); eventlog(eventlog_level_info,_FUNCTION_,"[%d] Set icon packet to DEFAULT ICON [%4.4s]",conn_get_socket(c),user_icon); }else{ std::memcpy(user_icon,&desired_icon,4); eventlog(eventlog_level_info,_FUNCTION_,"[%d] Set icon packet to ICON [%s]",conn_get_socket(c),user_icon); } if (test_user_icon(conn_get_account(c),user_icon,ctag) == 0) { std::strcpy(user_icon,"NULL"); eventlog(eventlog_level_error,_FUNCTION_,"[%s] читер, установка icon на DEFAULT [%s]", conn_get_username(c),user_icon); account_set_user_icon(conn_get_account(c),conn_get_clienttag(c),user_icon); conn_set_state(c,conn_state_destroy); } else { account_set_user_icon(conn_get_account(c),conn_get_clienttag(c),user_icon); } extern int test_user_icon(t_account * account, const char * user_icon, t_clienttag ctag) { unsigned int i, len; char temp_str[2]; char rasa; int number; len = std::strlen(user_icon); if (len != 4) eventlog(eventlog_level_error,__FUNCTION__,"got invalid user icon '%s'",user_icon); for (i=0; i 24) { return 1; break; } eventlog(eventlog_level_error,__FUNCTION__,"[%s] Обнаружен читер, побед за людей \"%d\" а нужно \"25\" ", account_get_name(account),account_get_racewins(account,W3_RACE_HUMANS,ctag)); return 0; break; case 3: if (account_get_racewins(account,W3_RACE_HUMANS,ctag) > 149) { return 1; break; } eventlog(eventlog_level_error,__FUNCTION__,"[%s] Обнаружен читер, побед за людей \"%d\" а нужно \"150\" ", account_get_name(account),account_get_racewins(account,W3_RACE_HUMANS,ctag)); return 0; break; case 4: if (account_get_racewins(account,W3_RACE_HUMANS,ctag) > 349) { return 1; break; } eventlog(eventlog_level_error,__FUNCTION__,"[%s] Обнаружен читер, побед за людей \"%d\" а нужно \"350\" ", account_get_name(account),account_get_racewins(account,W3_RACE_HUMANS,ctag)); return 0; break; case 5: if (account_get_racewins(account,W3_RACE_HUMANS,ctag) > 749) { return 1; break; } eventlog(eventlog_level_error,__FUNCTION__,"[%s] Обнаружен читер, побед за людей \"%d\" а нужно \"750\" ", account_get_name(account),account_get_racewins(account,W3_RACE_HUMANS,ctag)); return 0; break; case 6: if (account_get_racewins(account,W3_RACE_HUMANS,ctag) > 1499) { return 1; break; } eventlog(eventlog_level_error,__FUNCTION__,"[%s] Обнаружен читер, побед за людей \"%d\" а нужно \"1500\" ", account_get_name(account),account_get_racewins(account,W3_RACE_HUMANS,ctag)); return 0; break; } return 0; } if (rasa == 'O') { switch (number) { case 2: if (account_get_racewins(account,W3_RACE_ORCS,ctag) > 24) { return 1; break; } eventlog(eventlog_level_error,__FUNCTION__,"[%s] Обнаружен читер, побед за орков \"%d\" а нужно \"25\" ", account_get_name(account),account_get_racewins(account,W3_RACE_ORCS,ctag)); return 0; break; case 3: if (account_get_racewins(account,W3_RACE_ORCS,ctag) > 149) { return 1; break; } eventlog(eventlog_level_error,__FUNCTION__,"[%s] Обнаружен читер, побед за орков \"%d\" а нужно \"150\" ", account_get_name(account),account_get_racewins(account,W3_RACE_ORCS,ctag)); return 0; break; case 4: if (account_get_racewins(account,W3_RACE_ORCS,ctag) > 349) { return 1; break; } eventlog(eventlog_level_error,__FUNCTION__,"[%s] Обнаружен читер, побед за орков \"%d\" а нужно \"350\" ", account_get_name(account),account_get_racewins(account,W3_RACE_ORCS,ctag)); return 0; break; case 5: if (account_get_racewins(account,W3_RACE_ORCS,ctag) > 749) { return 1; break; } eventlog(eventlog_level_error,__FUNCTION__,"[%s] Обнаружен читер, побед за орков \"%d\" а нужно \"750\" ", account_get_name(account),account_get_racewins(account,W3_RACE_ORCS,ctag)); return 0; break; case 6: if (account_get_racewins(account,W3_RACE_ORCS,ctag) > 1499) { return 1; break; } eventlog(eventlog_level_error,__FUNCTION__,"[%s] Обнаружен читер, побед за орков \"%d\" а нужно \"1500\" ", account_get_name(account),account_get_racewins(account,W3_RACE_ORCS,ctag)); return 0; break; } return 0; } if (rasa == 'U') { switch (number) { case 2: if (account_get_racewins(account,W3_RACE_UNDEAD,ctag) > 24) { return 1; break; } eventlog(eventlog_level_error,__FUNCTION__,"[%s] Обнаружен читер, побед за нежить \"%d\" а нужно \"25\" ", account_get_name(account),account_get_racewins(account,W3_RACE_UNDEAD,ctag)); return 0; break; case 3: if (account_get_racewins(account,W3_RACE_UNDEAD,ctag) > 149) { return 1; break; } eventlog(eventlog_level_error,__FUNCTION__,"[%s] Обнаружен читер, побед за нежить \"%d\" а нужно \"150\" ", account_get_name(account),account_get_racewins(account,W3_RACE_UNDEAD,ctag)); return 0; break; case 4: if (account_get_racewins(account,W3_RACE_UNDEAD,ctag) > 349) { return 1; break; } eventlog(eventlog_level_error,__FUNCTION__,"[%s] Обнаружен читер, побед за нежить \"%d\" а нужно \"350\" ", account_get_name(account),account_get_racewins(account,W3_RACE_UNDEAD,ctag)); return 0; break; case 5: if (account_get_racewins(account,W3_RACE_UNDEAD,ctag) > 749) { return 1; break; } eventlog(eventlog_level_error,__FUNCTION__,"[%s] Обнаружен читер, побед за нежить \"%d\" а нужно \"750\" ", account_get_name(account),account_get_racewins(account,W3_RACE_UNDEAD,ctag)); return 0; break; case 6: if (account_get_racewins(account,W3_RACE_UNDEAD,ctag) > 1499) { return 1; break; } eventlog(eventlog_level_error,__FUNCTION__,"[%s] Обнаружен читер, побед за нежить \"%d\" а нужно \"1500\" ", account_get_name(account),account_get_racewins(account,W3_RACE_UNDEAD,ctag)); return 0; break; } return 0; } if (rasa == 'N') { switch (number) { case 2: if (account_get_racewins(account,W3_RACE_NIGHTELVES,ctag) > 24) { return 1; break; } eventlog(eventlog_level_error,__FUNCTION__,"[%s] Обнаружен читер, побед за эльфов \"%d\" а нужно \"25\" ", account_get_name(account),account_get_racewins(account,W3_RACE_NIGHTELVES,ctag)); return 0; break; case 3: if (account_get_racewins(account,W3_RACE_NIGHTELVES,ctag) > 149) { return 1; break; } eventlog(eventlog_level_error,__FUNCTION__,"[%s] Обнаружен читер, побед за эльфов \"%d\" а нужно \"150\" ", account_get_name(account),account_get_racewins(account,W3_RACE_NIGHTELVES,ctag)); return 0; break; case 4: if (account_get_racewins(account,W3_RACE_NIGHTELVES,ctag) > 349) { return 1; break; } eventlog(eventlog_level_error,__FUNCTION__,"[%s] Обнаружен читер, побед за эльфов \"%d\" а нужно \"350\" ", account_get_name(account),account_get_racewins(account,W3_RACE_NIGHTELVES,ctag)); return 0; break; case 5: if (account_get_racewins(account,W3_RACE_NIGHTELVES,ctag) > 749) { return 1; break; } eventlog(eventlog_level_error,__FUNCTION__,"[%s] Обнаружен читер, побед за эльфов \"%d\" а нужно \"750\" ", account_get_name(account),account_get_racewins(account,W3_RACE_NIGHTELVES,ctag)); return 0; break; case 6: if (account_get_racewins(account,W3_RACE_NIGHTELVES,ctag) > 1499) { return 1; break; } eventlog(eventlog_level_error,__FUNCTION__,"[%s] Обнаружен читер, побед за эльфов \"%d\" а нужно \"1500\" ", account_get_name(account),account_get_racewins(account,W3_RACE_NIGHTELVES,ctag)); return 0; break; } return 0; } if (rasa == 'R') { switch (number) { case 2: if (account_get_racewins(account,W3_RACE_RANDOM,ctag) > 24) { return 1; break; } eventlog(eventlog_level_error,__FUNCTION__,"[%s] Обнаружен читер, побед за рэндом \"%d\" а нужно \"25\" ", account_get_name(account),account_get_racewins(account,W3_RACE_RANDOM,ctag)); return 0; break; case 3: if (account_get_racewins(account,W3_RACE_RANDOM,ctag) > 149) { return 1; break; } eventlog(eventlog_level_error,__FUNCTION__,"[%s] Обнаружен читер, побед за рэндом \"%d\" а нужно \"150\" ", account_get_name(account),account_get_racewins(account,W3_RACE_RANDOM,ctag)); return 0; break; case 4: if (account_get_racewins(account,W3_RACE_RANDOM,ctag) > 349) { return 1; break; } eventlog(eventlog_level_error,__FUNCTION__,"[%s] Обнаружен читер, побед за рэндом \"%d\" а нужно \"350\" ", account_get_name(account),account_get_racewins(account,W3_RACE_RANDOM,ctag)); return 0; break; case 5: if (account_get_racewins(account,W3_RACE_RANDOM,ctag) > 749) { return 1; break; } eventlog(eventlog_level_error,__FUNCTION__,"[%s] Обнаружен читер, побед за рэндом \"%d\" а нужно \"750\" ", account_get_name(account),account_get_racewins(account,W3_RACE_RANDOM,ctag)); return 0; break; case 6: if (account_get_racewins(account,W3_RACE_RANDOM,ctag) > 1499) { return 1; break; } eventlog(eventlog_level_error,__FUNCTION__,"[%s] Обнаружен читер, побед за рэндом \"%d\" а нужно \"1500\" ", account_get_name(account),account_get_racewins(account,W3_RACE_RANDOM,ctag)); return 0; break; } return 0; } if (rasa == 'D') { switch (number) { case 2: if (account_get_racewins(account,W3_RACE_DEMONS,ctag) > 9) { return 1; break; } eventlog(eventlog_level_error,__FUNCTION__,"[%s] Обнаружен читер, побед за турниры \"%d\" а нужно \"10\" ", account_get_name(account),account_get_racewins(account,W3_RACE_DEMONS,ctag)); return 0; break; case 3: if (account_get_racewins(account,W3_RACE_DEMONS,ctag) > 74) { return 1; break; } eventlog(eventlog_level_error,__FUNCTION__,"[%s] Обнаружен читер, побед за турниры \"%d\" а нужно \"75\" ", account_get_name(account),account_get_racewins(account,W3_RACE_DEMONS,ctag)); return 0; break; case 4: if (account_get_racewins(account,W3_RACE_DEMONS,ctag) > 149) { return 1; break; } eventlog(eventlog_level_error,__FUNCTION__,"[%s] Обнаружен читер, побед за турниры \"%d\" а нужно \"150\" ", account_get_name(account),account_get_racewins(account,W3_RACE_DEMONS,ctag)); return 0; break; case 5: if (account_get_racewins(account,W3_RACE_DEMONS,ctag) > 249) { return 1; break; } eventlog(eventlog_level_error,__FUNCTION__,"[%s] Обнаружен читер, побед за турниры \"%d\" а нужно \"250\" ", account_get_name(account),account_get_racewins(account,W3_RACE_DEMONS,ctag)); return 0; break; case 6: if (account_get_racewins(account,W3_RACE_DEMONS,ctag) > 499) { return 1; break; } eventlog(eventlog_level_error,__FUNCTION__,"[%s] Обнаружен читер, побед за турниры \"%d\" а нужно \"500\" ", account_get_name(account),account_get_racewins(account,W3_RACE_DEMONS,ctag)); return 0; break; } return 0; } return 0; }