• 05 Juin 2026, 22:09:15


Auteur Sujet: En quoi consiste "cmdtext[x]"?  (Lu 3128 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne Xolokos

  • PAWN/XHTML/CSS/PHP/SQL/JS
  • *
  • Grand Banditisme
  • What are you waiting for ?
  • Messages: 681
    • Voir le profil
Re : En quoi consiste "cmdtext[x]"?
« Réponse #15 le: 06 Juillet 2011, 18:55:55 »
Ca vérifie si ton Level Administrateur est supérieur a 0 supérieur a joueur pour t'envoyer son report dons si tu est Administrateur et que tu rapport tu le vois 2 fois, si tu a été Administrateur une fois et que tu te déconnecte ça enregistre que t'es Administrateur et a ta prochaine reconnexion tu seras directement Administrateur.
Nippah !

Hors ligne Karika

  • *
  • Criminel
  • Messages: 43
    • Voir le profil
Re : En quoi consiste "cmdtext[x]"?
« Réponse #16 le: 06 Juillet 2011, 19:24:49 »
Ok merci !
J'ai voulu modifier 2/3 trucs : Que le rapporteur reçoive "Rapport envoyé!" et que l'admin reçoive "Rapport de %s : %s"

J'ai essayé 2/3 trucs mais ça ne fonctionne pas car j'arrive pas ré-indiquer en quoi sagit %s et %s à l'admin.
J'ai un peu restauré du début :

if (!strcmp(Cmd, "/rapport", true))
{
        new Tmp[256];
        Tmp = strtok(cmdtext, Idx);
if (!strlen(Tmp))
{
SendClientMessage(playerid, BLANC, "[Usage] /rapport [Texte]");
return 1;
}
new Str[256];
GetPlayerName(playerid, Str, sizeof(Str));
format(Str, sizeof(Str), "[Info] Rapport envoyé!", Str, cmdtext[8]); // envoyé au rapporteur
        SendClientMessage(playerid, info, Str);
        Rapport(Str);
for(new i=0; i<MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i) && Levels[i] != 0)
{

SendClientMessage(i, info,"[Info] Rapport de %s : %s"); // envoyé a l'admin à GTAo : j'ai essayé de rajouter Str et cmdtext pour copier celui du dessus mais je sais pas comment faire pour l'envoyer dans la deuxième variable

    }
    }
  return 1;
« Modifié: 06 Juillet 2011, 19:42:09 par Karika »
[Information sur le développement d'un futur serveur STUNT / DM]
[Administration terminée à 0%]
[Mapping terminé à 0%]
[Commandes diverses terminé à 0%]
[Serveur en général terminé à 0%]

[Bases du serveur remises à 0!]

Hors ligne Xolokos

  • PAWN/XHTML/CSS/PHP/SQL/JS
  • *
  • Grand Banditisme
  • What are you waiting for ?
  • Messages: 681
    • Voir le profil
Re : En quoi consiste "cmdtext[x]"?
« Réponse #17 le: 06 Juillet 2011, 20:13:54 »
Je vais essayé d'âtre clair ( Tu vois la subtilité ?)
Ton code et t'es erreurs avec les commentaires //

Code: (pawn) [Sélectionner]
if (!strcmp(Cmd, "/rapport", true))
{
        new Tmp[256];
        Tmp = strtok(cmdtext, Idx);
if (!strlen(Tmp))
{
SendClientMessage(playerid, BLANC, "[Usage] /rapport [Texte]");
return 1;
}
new Str[256];//Une chaine de 256
GetPlayerName(playerid, Str, sizeof(Str));//Tu prend son nom
format(Str, sizeof(Str), "[Info] Rapport envoyé!", Str, cmdtext[8]); //  Tu formate le message alors que tu met pas le nom ?
        SendClientMessage(playerid, info, Str);// Tu envoie le message formaté qui sert a rien.
        Rapport(Str);
for(new i=0; i<MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i) && Levels[i] != 0)
{

SendClientMessage(i, info,"[Info] Rapport de %s : %s"); // Et la tu formate pas le message tu récupère pas son nom tu lui dit %s et %s

    }
    }
  return 1;

La réponse + les explication le code de départ de mon FS.


Code: (pawn) [Sélectionner]
if (!strcmp(Cmd, "/rapport", true))
{
        new Tmp[256];
        Tmp = strtok(cmdtext, Idx);
if (!strlen(Tmp))
{
SendClientMessage(playerid, GRIS, "USAGE: /rapport [Votre Texte]");
return 1;
}
new Str[256];//On créer une chaine de caractère de 256 on peut mettre 256 lettre dedans en bref.
GetPlayerName(playerid, Str, sizeof(Str));//On récupéré le nom du playerid suis qui fait la commande et on le stock dans le Str qu'on a créer plus haut.
format(Str, sizeof(Str), "[[REPORT %s]]-[%s]", Str, cmdtext[8]);//On formate je pense que tu comprend pas ici je t'expliquerais plus bas.
        SendClientMessage(playerid, ZAZOLIN, Str);//On envoie le message formaté.
        Rapport(Str);
for(new i=0; i<MAX_PLAYERS; i++)//Une boucle elle vas tourné jusqu'à t'en que i le new i arrive a MAX_PLAYERS sois 500 elle passe par tout les joueurs
{
if(IsPlayerConnected(i) && Levels[i] != 0)//Si le joueur est connecter(i) && que son Levels[i] (!=) est différent de 0
{

SendClientMessage(i, ZAZOLIN, Str);//On lui envoi aussi le message formaté plus haut.

    }
    }
  return 1;
}

Pour l’explication de formaté

Code: (pawn) [Sélectionner]
new Str[256];//On créer une chaine de caractère de 256 on peut mettre 256 lettre dedans en bref.
GetPlayerName(playerid, Str, sizeof(Str));//On récupéré le nom du playerid suis qui fait la commande et on le stock dans le Str qu'on a créer plus haut.
format(Str, sizeof(Str), "[[REPORT %s]]-[%s]", Str, cmdtext[8]);//Voilà donc le format ! penons la fin elle est intéressante !
        SendClientMessage(playerid, ZAZOLIN, Str);//On envoie le message formaté.

format(Str, sizeof(Str), "[[REPORT %s]]-[%s]", Str, cmdtext[8]);
Comme tu le remarque il y a Str la chaine de caractère qu'on a fait + haut.

GetPlayerName(playerid, Str, sizeof(Str));
La on prend son nom et on le met dans Str.
Et dans le format on le met a la fin pourquoi ?
Pour savoir l'ordre d'affichage pardi ! [[REPORT Xolokos]] et le cmdtext[8] c'est la commande a partir du caractère numéros 8 de la chaine !
Donc Str pour le nom ce qui nous fait [[REPORT Xolokos]] et cmdtext[8] pour mon texte ensuite a savoir que pour mettre une chaine de caractère dans un format ( dans le "[[REPORT %s]]-[%s]") c'est un %s et mettre un nombre simple %d et un Float un nombre avec une virgule %f. En exemple le playerid c'est l'ID du joueur donc si je fait ça :

format(Str, sizeof(Str), "[[REPORT %s ID [%d] ]]-[%s]", Str,playerid,cmdtext[8]);
On auras son ID magnifique non ? Bon ok je m'emballe !
Pour ton rapport voiçi :
if (!strcmp(Cmd, "/rapport", true))
{
        new Tmp[256];
        Tmp = strtok(cmdtext, Idx);
if (!strlen(Tmp))
{
SendClientMessage(playerid, GRIS, "USAGE: /rapport [Votre Texte]");
return 1;
}
new Str[256];
GetPlayerName(playerid, Str, sizeof(Str));
format(Str, sizeof(Str), "[Informatation] Rapport de %s  ID[%d] : %s", Str, playerid, cmdtext[8]);
       
                SendClientMessage(playerid, ZAZOLIN, "Rapport envoyé avec succès !");
               
                Rapport(Str);
for(new i=0; i<MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i) && Levels[i] != 0)
{

SendClientMessage(i, ZAZOLIN, Str);

    }
    }
  return 1;
}

Alors maintenant explique moi ce code ? Héhé ? Heu.
Nippah !

Hors ligne Karika

  • *
  • Criminel
  • Messages: 43
    • Voir le profil
Re : En quoi consiste "cmdtext[x]"?
« Réponse #18 le: 08 Juillet 2011, 15:52:00 »
Alors il faut que j'inverse quoi :D
[Information sur le développement d'un futur serveur STUNT / DM]
[Administration terminée à 0%]
[Mapping terminé à 0%]
[Commandes diverses terminé à 0%]
[Serveur en général terminé à 0%]

[Bases du serveur remises à 0!]