Tudom, hogy már van fent a fórumon két mu ebbol a fajtából, de Gamestar változata könnyen kijátszható, Spatriké pedig szerintem kicsit hosszú. Ezért én is megírtam a magamét, ami 11 sorba belefoglal mindent, ami egy helytelen RP név kiszuréséhez kell.
stock bool: isupper( const chr ) { if( toupper( chr ) == chr ) return true; return false; }
bool: HasValidRPName( playerid ) {
new szName[ MAX_PLAYER_NAME ],
iBigChars,
iUnderlines;
GetPlayerName( playerid, szName, sizeof szName );
for( new index = 0; index < strlen( szName ); ++index ) {
if( isupper( szName[ index ] ) && szName[ index ] != \'_\' ) ++iBigChars;
if( szName[ index ] == \'_\' ) ++iUnderlines;
}
if( !isupper( szName[ 0 ] ) || !isupper( szName[ strfind( szName, \"_\" ) + 1 ] ) || iUnderlines != 1 || iBigChars != 2 || strfind( szName, \"_\" ) == strlen( szName ) - 1 || strfind( szName, \"_\" ) == 0 ) return false;
return true;
}
Egyszeruen meghívjuk az
OnPlayerConnect függvényben. Példa:
public OnPlayerConnect( playerid ) {
if( !HasValidRPName( playerid ) ) {
SendClientMessage( playerid, 0xFF0000AA, \"Válassz valós nevet! ( Vezetéknév_Keresztnév )\" );
Kick( playerid );
}
return 1;
}
Megjegyzés: A fenti eljárás lecsatlakoztat, ha nem egy alávonás van a nevünkben, ha nem 2 nagybetu van a nevünkben, vagy ha az alávonás rossz helyen van( nem a második nagybetu elott ).Remélem tetszik.
ZeRo