Доступ к готовым решениям

Переход в группу "Пользователь"

300.00 ₽
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

Функция GetNameAndSurname (Разделение РП ника на Имя и Фамилию)

Гарольд

Умник
Здравствуйте

Я решил создать такую хорошую и простую функцию, разделение РП ника на Имя и Фамилию
Примечание: не использовать на нонРП ники, а то получится полная ерунда.

PHP:
stock GetNameAndSurname(playerid, name[], surname[])  {  // name, surname - переменные, куда записываем имя и фамилию
    new plname[24];
    GetPlayerName(playerid, plname, 24); // узнаем ник игрока
    new RP = strfind(plname, "_"); // Узнаем индекс символа '_' в нике
    strmid(name, plname, 0, RP - 1, 255); // внедряем в переменную имени имя (стартуем с начала имени, кончаем перед '_')
    strmid(surname, plname, RP, strlen(plname), 255);  // внедряем в переменную фамилии фамилию (стартуем с символа '_', кончаем в конце ника)
    return true;
}
Применение:

new name[24], surname[24];
GetNameAndSurname(playerid, name, surname);

Проверка на РП ник от OKStyle:

PHP:
new PlayerName[MAX_PLAYER_NAME],upper; 
GetPlayerName(playerid,PlayerName,sizeof(PlayerName)); 
if(strfind(PlayerName,"_",true) != -1) 
{ 
    SendClientMessage(playerid,0xFF0000FF,"Ваш ник не соответствует разрешённым на сервере."); 
    Kick(playerid); 
} 
for(new a; a < strlen(PlayerName); a++) 
{ 
    if(a >= 0x30 && a <= 0x39) // если цифры в нике 
    { 
        SendClientMessage(playerid,0xFF0000FF,"Ваш ник не соответствует разрешённым на сервере."); 
        Kick(playerid); 
    } 
    if(PlayerName[a] == '_') 
    { 
         
        { 
            if((PlayerName[0] >= 0x61 && PlayerName[0] <= 0x7A) && (PlayerName[a+1] >= 0x61 && PlayerName[a+1])) // если ааа_ббб, а не Ааа_Ббб 
            { 
                SendClientMessage(playerid,0xFF0000FF,"Ваш ник не соответствует разрешённым на сервере."); 
                Kick(playerid); 
            } 
        } 
    } 
    if(a >= 0x41 && a <= 0x5A) // если ААа_Ббб или любая комбинация, где больше 2х заглавных букв 
    { 
        upper++; 
        if(upper>2) 
        { 
            SendClientMessage(playerid,0xFF0000FF,"Ваш ник не соответствует разрешённым на сервере."); 
            Kick(playerid); 
        } 
    } 
}
 
Последнее редактирование:
Сверху Снизу