GTAOnline.net
San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Showroom SA:MP => Discussion démarrée par: karimos le 25 Juin 2012, 15:02:27
-
bonjours je suis entrain de développer mon propre GM , et j'ai decidé de partager quelque bout de code donc voici un script pour verifier si le nom du joueur est RP, je precise que je me suis inspiré d'un GM appelé vortex :
PS : je précise que je l'ai posté sur un autre forum avec un compte nommé "Dead-Zone"
V1
/**** RolePlay Name Check ****/
new charCount[4], playerName[MAX_PLAYER_NAME];
GetPlayerName(playerid, playerName, MAX_PLAYER_NAME);
for(new i = 0; i < MAX_PLAYER_NAME; i++)
{
switch(playerName[i])
{
case '[', ']', '(', ')' : charCount[0]++;
case '0' .. '9' : charCount[1]++;
case 'a' .. 'z' : charCount[2]++;
case 'A' .. 'Z' : charCount[3]++;
}
}
if(charCount[0])
{
SendClientMessage(playerid, COLOR_RED, "Votre nom est invalide. \nil contient un caractére interdit.");
SendClientMessage(playerid, COLOR_ORANGE, "Exemple de nom_prenom valide : John_Carter");
return Kick(playerid);
}
if(charCount[1])
{
SendClientMessage(playerid, COLOR_RED, "Votre nom est invalide.\n il contient un chiffre.");
SendClientMessage(playerid, COLOR_ORANGE, "Exemple de nom_prenom valide : John_Carter");
return Kick(playerid);
}
if(charCount[2] < 3)
{
SendClientMessage(playerid, COLOR_RED, "un nom doit contenir au minimum 3 caractéres minuscules");
SendClientMessage(playerid, COLOR_ORANGE, "Exemple de nom_prenom valide : John_Carter");
return Kick(playerid);
}
if(charCount[3] != 2)
{
SendClientMessage(playerid, COLOR_RED, "un nom_prenom doivent commencer par des majuscules");
SendClientMessage(playerid, COLOR_ORANGE, "Exemple de nom_prenom valide : John_Carter");
return Kick(playerid);
}
else ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_LIST, "Menu Inscription", "Suivre le tutoriel RolePlay\nS'incrire", "Choisir", "Annuler");
V2 - Utilisation des regex -- Lien du plugin : http://forum.sa-mp.com/showthread.php?t=247893 (http://forum.sa-mp.com/showthread.php?t=247893)
if(regex_match(playerName, "^[A-Z]{1}[a-zA-Z]{2,12}_[A-Z]{1}[a-z]{2,12}$"))
{
/ **** que faire si le nom est valide ****/
}
else // nom invalide
{
SendClientMessage(playerid, COLOR_RED, "Votre est incorrect. veuillez inserer un nom correct");
SendClientMessage(playerid, COLOR_ORANGE, "Exemple : John_Carter");
}
-
Le test n'est absolument pas complet est peut valider les noms suivant:
A__b__c__D__e__f
ABcdef__________
__________ABcdef
Ensuite, le fait de continuer à boucler lorsqu'un utilisateur à un nom déjà invalide est inutile.
-
merci pour l'info. je vais utiliser plutôt les regex je viens de télécharger le plugin^^
-
Évite les dépendances pour les scripts que tu partage.