30.04.2011, 19:38
pawn Код:
stock GetRPName(name[])
{
new f = 0, pos, Right[MAX_PLAYER_NAME];
/*
* убиваем сразу 3х зайцев:
* 1) проверяем есть ли "_"
* 2) запоминаем где находится "_"
* 3) убеждаемся что "_" не стоит в нулевой позиции, ники типа "_AlexStoyn"
* PS если тебя не кстраивают ники типа A_lexStoyn ставь вместо нуля еденицу. Ну и так далее, если у тебя есть минимальная длина для имени.
*/
if((pos = strfind( name, "_", true)) > 0) f++;
for(new i ;i < strlen(name); i++)
if( '0' <= name[i] <= '9') //равносильно, твоей но нагляднее
{
f--;
break;//нашли одну цифру, обрываем цикл, нафига бежать далее если ник уже не соответствует.
}
if('A' <= name[0] <= 'Z' && 'A' <= name[pos+1] <= 'Z')f++;//все генеальное просто :)
strmid(Right, name, pos+1, strlen(name), MAX_PLAYER_NAME);
if(strcmp(name, Right, true))f++;//вторая переменная не нужна
if(f == 3) return 1;
return 0;
}
