Bonsoir à tous,
Je suis ultra débutant en Pawn, et j'ai télécharger le FS X-Administration, que je traduis pour mon "serveur test" (ayant seulement pour but de m'exercer et non d'être mis en ligne). Pour la commande /mute (muter le joueur), j'ai rajouter des SendClientMessage à l'admin ainsi qu'au joueur muté, et un SendClientMessageToAll.
Mon problème est que dans ma dernière fonction, je n'arrive pas à afficher la deuxième information, c'est-à-dire la raison.
Quand je teste la commande IG (Connexion en lan avec deux ordis pour tester les cmds avec relations), les SendClientMessage s'affichent correctement mais SendClientMessageToAll affiche :
"[STAFF] L'administrateur Kreys à muté Kreys2 . Raison : ."
La raison ne s'affiche tout simplement pas (alors que les deux premieres variables s'affichent sans problème). J'ai bien-sûr regardé d'autres script de commandes comprenant plusieurs strtok, mais je ne n'ai quand même pas réussi à saisir le fonctionnement de la chose (j'ai essayer plusieurs choses, sans succès).
Apres un long moment de recherche, je m'en remet à vous afin de pouvoir enfin trouver la solution au problème.
J'ai essayer de développer le plus possible mon problème, en espérant que ça vous aidera :)
Voici le code de la commande : (Je l'ai jugé assez court pour l'insérer directement, dites-le moi si je dois plutôt le mettre sur pastbin)
if (!strcmp(Cmd, "/mute", true))
{
if (Levels[playerid] >= 1)
{
new Jid,Tmp[256], Tmp2[256], String[256], Raison;
new Jour,Mois,An;
new Heure,Minute,Seconde;
Tmp = strtok(cmdtext, Idx);
Tmp2 = strtok(cmdtext, Idx);
if ((!strlen(Tmp)) || (!strlen(Tmp2)))
{
SendClientMessage(playerid, ZAZOLIN, "USAGE : /mute [Playerid] [Raison]");
return 1;
}
Jid = strval(Tmp);
Raison = strval(Tmp2);
if (!(IsPlayerConnected(Jid)) && (Levels[playerid] >= 1))
{
SendClientMessage(playerid, color_gris, "Ce joueur n'est pas connecté.");
return 1;
}
getdate(An,Mois,Jour);
getdate(Heure,Minute,Seconde);
new Texte[125], Nom_admin[MAX_PLAYER_NAME];
new Texte2[125], Nom[MAX_PLAYER_NAME];
new Texte3[256];
GetPlayerName(playerid, Nom_admin, MAX_PLAYER_NAME);
GetPlayerName(Jid, Nom, MAX_PLAYER_NAME);
if(Levels[playerid] <=2)
{
format(Texte3, sizeof(Texte3), "[STAFF] Le modérateur %s à muté %s . Raison : %s .", Nom_admin, Nom, Raison);
SendClientMessageToAll(color_rouge, Texte3);
}
else
{
format(Texte3, sizeof(Texte3), "[STAFF] L'administrateur %s à muté %s . Raison : %s .", Nom_admin, Nom, Raison);
SendClientMessageToAll(color_rouge, Texte3);
}
format(Texte, sizeof(Texte), "Vous êtes muté !");
SendClientMessage(Jid,ZAZOLIN, Texte);
format(Texte2, sizeof(Texte2), "Vous avez muté %s !", Nom);
SendClientMessage(playerid, ZAZOLIN, Texte2);
Mute[Jid]=true;
BK(String);
Cordialement,
Kreys.