Advertisement
frog163

is_rp_str(string)

Oct 24th, 2012
172
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /****************************************************************************************************
  2. is_rp_str(string)
  3. Функция проверяет является ли string "RP ником", вернет true если является, иначе false.
  4. Пример использования:
  5. public OnPlayerConnect(playerid){
  6.     new player_name[MAX_PLAYER_NAME];
  7.     GetPlayerName(playerid, player_name, MAX_PLAYER_NAME);
  8.     if(!is_rp_nickname(player_name))return kick(playerid);//кикнем игрока, если у него "NON RP ник"
  9.     return true;
  10. }
  11. Автор функции: frog163
  12. ****************************************************************************************************/
  13. is_rp_str(true_name[]){//by frog163
  14.     if(!(0x5a > true_name[0] > 0x41))return false;//если первый символ не в верхнем регистре - завершим работу функции и вернем false
  15.     new underscore_use, f, len = 1;
  16.     while(true_name[++f]){//пробежимся по всем символам строки
  17.         if(true_name[f] == 0x5F){//если в строке найден андескор
  18.             if(!(0x5a > true_name[++f] > 0x41) || !(2 < len < 9))return false;//если символ после андескора не в верхнем регистре или длина имени меньше 3(больше 8) символов - завершим работу функции и вернем false
  19.             len = 1, ++underscore_use;
  20.             continue;
  21.         }
  22.         ++len;
  23.         if(0x60 < true_name[f] < 0x7b)continue;//если символ является латинским - продолжим поиск
  24.         return false;//символ не латинский и не андескор - завершим функцию и вернем false
  25.     }
  26.     if(underscore_use == 1 && 2 < len < 9)return true;//если андескор используется 1 раз и длина строки после него больше 2-ух и меньше 9-ти символов - вернем true
  27.     return false;//иначе вернем false
  28. }
Advertisement
RAW Paste Data Copied
Advertisement