GTAOnline.net
San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: Nikko™ le 21 Août 2008, 14:53:53
-
Cucu tout le monde,
Sur mon serveur comme sur tout les serveur, il arrive que des joueurs bugs.
Mais sur mon serveur, quand on bug en étant en dm (joueur_DM) et que le joueur revient tout de suite apres, il a toujour le "_DM"
Est ce qu'il existe un truc pour vérifier quand un joueur se connecte, sil a le "_DM" a son nom et que ca s'enleve.
Merci bien
++
nikko
-
Tu fait la même chose que ce qu'il y a dans ta commande "/dm quit" ;)
NV.
-
Jy avais pensé mais moi dans ma commande dm quit, ca récupere le nom stocker dans une variable créé dans ma commande /dm...
++
nikko
-
ba comme di native ta laisser le DM quand le joueur quite le dm je vois pas d'autre solution ;) ::)
-
Je crois que tu na pas bien compris
++
nikko
-
ah oui autant pour moi :boulz :bangin :jesors
-
strfind + strmid
-
Tu pourrai redonner la fonction stp :)
Merci
++
nikko
-
essaye de réflechir s'est pas dure, [reflechir a... un gros probleme ....]
-
En recherchant un peu jai trouver ca:
strmid(PlayerInfo[playerid][pPassword], valtmp, 0, strlen(valtmp)-1, 255);>> Exemple que tu avait donné a pinouf42.
new sendername[MAX_PLAYER_NAME];
GetPlayerName(playerid, sendername, sizeof(sendername));
new pseudo = strfind(sendername, "Fu**", true);
if(pseudo == 1)
{
SetPlayerName(playerid, "Pas_Bien");
return 1;
}>> Exemple de feldbrau pour reconnaitre des mauvais pseudo.
Mais le probleme cest que pas tout le monde arrive sur le serveur avec _DM, donc je vois pas trop comment faire...
jai esseyer de faire ca:
new sendername[MAX_PLAYER_NAME];
GetPlayerName(playerid, sendername, sizeof(sendername));
new pseudo = strfind(sendername, "_DM", true); >> Je bloque ici
strmid(GetPlayerName[playerid], valtmp, 0, strlen(valtmp)-3, 255);
return 1;
}
++
nikko
-
Tu fait un strfind sur le nom du joueur en recherchant si dans son pseudo ya "_DM" si oui (le strfind retourne 1 je pense)
Alor tu t'arrange pour couper le pseudo du joueur et enlever le "_DM" et tu lui fait un SetPlayerName avec le pseudo "nettoyer"
-
Tu fait un strfind sur le nom du joueur en recherchant si dans son pseudo ya "_DM" si oui (le strfind retourne 1 je pense)
Justement je cherche a créé cette condition ... :-X
++
nikko
-
Pas dur
new plname[MAX_PLAYER_NAME];
GetPlayerName(playerid, plname, sizeof(plname));
new namestring = strfind(plname, "_DM", true);
if(namestring != -1)
{
//chose a faire si on trouve "_DM" dans le pseudo
}
Bon je suis pas sur que c'est corect mais sa doit etre un truc dans le genre
-
Sinon, il y a plus simple.
Il suffit d'utiliser la fonction strreplace qui remplace un morceau de chaine par un autre.
Exemple :
new name[256];
GetPlayerName (playerid, name, sizeof(name));
name = strreplace ("_DM", "", name); // On remplace "_DM" par "" et si "_DM" n'est pas trouvé, cette fonction ne fait rien
SetPlayerName (playerid, name);
++
Syg
-
Merci bien .. :)
++
nikko