GTAOnline.net

San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: ApocKalipsS le 07 Août 2009, 21:08:25

Titre: Si le nom est = à XXX alors...
Posté par: ApocKalipsS le 07 Août 2009, 21:08:25
Bonjour,
Je souhaiterais savoir comment définir une condition "si le nom est = à.."
Exemple :

if(name == lepro49)
{
}

Merci d'avance de vos aides !
Titre: Re : Si le nom est = à XXX alors...
Posté par: cristab le 07 Août 2009, 21:12:44
c'est assez simpliste enfaite


new name[18];
GetPlayerName(playerid, name, sizeof(name));
if(strcmp(name,"lepro49", true)==0)
{
//ton code
}


sa semble fonctionner de cette manier apres peu etre qu'autrement sa fonctionne ;=)
Titre: Re : Si le nom est = à XXX alors...
Posté par: S!m le 07 Août 2009, 23:29:34
Salut,

c'est la seule et meilleure méthode que je connaisse (quoi que l'on puisse aussi faire la comparaison caractère à caractère...)

par contre tu devrais changer la taille de ta chaine, utilise plutôt la constante MAX_PLAYER_NAME qui est plus adaptée à ce cas ci....

++Sim++
Titre: Re : Si le nom est = à XXX alors...
Posté par: ApocKalipsS le 08 Août 2009, 10:23:36
Merci à vous !
Titre: Re : Si le nom est = à XXX alors...
Posté par: ApocKalipsS le 10 Août 2009, 14:24:31
Désolé double post, mais en fait ca marche pas, je voulais que quand il spawn, et que son nom = ... alors il ai une arme spécifique.
Titre: Re : Si le nom est = à XXX alors...
Posté par: cristab le 10 Août 2009, 14:31:36
new name[MAX_PLAYER_NAME];

GetPlayerName(playerid, name, sizeof(name));

if(strcmp(name,"lepro49", true)==0)
{
SendClientMessage(playerid,Orange,"Si j'apparait c'est que le code fonctionne ^^);
}

test ceci dans le OnPlayerConnect et come dit la phrase si sa apparait c'est que sa fonctionne

dan ce cas rajoute un condition


New Arme[MAX_PLAYERS];
dans le on playerconnecte

Arme[playerid] = 0;
new name[MAX_PLAYER_NAME];

GetPlayerName(playerid, name, sizeof(name));

if(strcmp(name,"lepro49", true)==0)
{
Arme[playerid] = 1;
}

enfin dans le onplayerspawn

if(Arme[playerid] == 1)
{
GivePlayerWeapon(playerid, 26, 9999);
}


PS j'ai changer Sim la valeur de Name mais j'avais mis 18 car je pense que les pseudo on maxi 18 de caractere (sans en etre sur j'ai pas regarder)
Titre: Re : Si le nom est = à XXX alors...
Posté par: ApocKalipsS le 10 Août 2009, 15:25:08
16, ils en ont, et merci à toi, vais tester !
Titre: Re : Si le nom est = à XXX alors...
Posté par: S!m le 11 Août 2009, 00:23:42
Salut,

la longueur maximale du nom d'un joueur pour être accepté à la connexion est 16, mais en cours de jeux on peut lui changer son nom et se rendre à MAX_PLAYER_NAME

++Sim++