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

Titre: [Script] RolePlay NameV2 !!
Posté 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
Citer
/**** 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)
Citer

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");

}
Titre: Re : RolePlay Name[Script]
Posté par: Xartrick le 25 Juin 2012, 16:42:44
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.
Titre: Re : RolePlay Name[Script]
Posté par: karimos le 25 Juin 2012, 20:01:05
merci pour l'info. je vais utiliser plutôt les regex je viens de télécharger le plugin^^
Titre: Re : [Script] RolePlay NameV2 !!
Posté par: Xartrick le 27 Juin 2012, 21:16:49
Évite les dépendances pour les scripts que tu partage.