Приветствую Вас Гость | RSS

Все для SA-MP

Воскресенье, 29.06.2025, 17:02
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Создаем качественную проверку на RP ник
Подполковник

massa Администраторы

Сообщения:
145
Симпатия:
1
Часто встречал кривые системы на проверку RP ника, которые было легко обойти, поэтому решил опубликовать эту(вырезал их CRP). Данную проверку обойти не как не получится, разве что смогут зайти с нонRP ником, но с правильным синтаксисом, к примеру: Nonrp_Nick
Ниже написал, что куда вставлять.

В OnPlayerConnect:
Code
    new plname[MAX_PLAYER_NAME];
     if(!IsRPNick(playerid))
     {
         GetPlayerName(playerid, plname, sizeof(plname));
         Kick(playerid); // Кикаем игрока с нонРП ником
         return 1;
     }

В конец мода:
Code
IsRPNick(playerid)
{
     new plname[MAX_PLAYER_NAME];
     GetPlayerName(playerid, plname, MAX_PLAYER_NAME);
     for(new i=0;i<strlen(plname);i++){
         if( !((plname[i]>='a'&&plname[i]<='z') || (plname[i]>='A'&&plname[i]<='Z') || plname[i]=='_') ){
             return 0; // недопустимые символы в нике
         }
     }
     new d = strfind(plname, "_");
     if( d==-1 ) return 0;   // нет _ в нике
     if(strfind(plname, "_", false, d+1) != -1) return 0; // больше одного _ в нике
     new name[10];
     strmid(name, plname, 0, d, sizeof name);
     new surname[10];
     strmid(surname, plname, d+1, strlen(plname), sizeof surname);
     if(strlen(name)<3 || strlen(name)>9) return 0;  // неверная длина имени
     if(strlen(surname)<3 || strlen(surname)>9) return 0;    // неверная длина фамилии
     if(!(name[0]>='A' && name[0]<='Z')) return 0;   // первая буква имени не заглавная
     if(!(surname[0]>='A' && surname[0]<='Z')) return 0; // первая буква фамилии не заглавная
     for(new i=1;i<strlen(name);i++){
         if(!(name[i]>='a'&&name[i]<='z')) return 0; // неверные буквы в имени
     }
     for(new i=1;i<strlen(surname);i++){
         if(!(surname[i]>='a'&&surname[i]<='z')) return 0;   // неверные буквы в фамилии
     }
     return 1;   // все ok
}


ТРЕБУЮТСЯ МОДЕРАТОРЫ НА ФОРУМ!

 
Нездешний

Skinny_Doggs Пользователи

Сообщения:
5
Симпатия:
0
Как всегда,на высоте :)
 
  • Страница 1 из 1
  • 1
Поиск: