Using strcmp() FR

From SA-MP Wiki

Jump to: navigation, search

Utilisez strcmp() dans OnPlayerCommandText pour créer vos commandes

Ouvrez Pawno, File > New.


Création d'une commande /me

Dans cette section vous allez apprendre a créer une commande /me sans strtok ! Sachez tout d'abord que strcmp() est utilisé pour la comparaison de deux chaines de caractères, ce qui peux permettre de faire des commandes. Explication : Je tape la commande "/vivesampwikifr" dans le chat. Et grace à strcmp, je vais comparer dans la callback OnPlayerCommandText() si cmdtext vaudra "/vivesampwikifr" Si tel est le cas, ça voudra dire que un joueur a tapé la commande "/vivesampwikifr"

public OnPlayerCommandText(playerid, cmdtext[])
{
    if(!strcmp(cmdtext, "/me", true, 3)) // 3 is the length of /me
    {
        if(!cmdtext[3])return SendClientMessage(playerid, 0xFF0000FF, "USAGE: /me [action]");
        new str[128];
        GetPlayerName(playerid, str, sizeof(str));
        format(str, sizeof(str), "* %s %s", str, cmdtext[4]);
        SendClientMessageToAll(0xFFFF00AA, str);
        return 1;
    }
    return 0;
}

Notre commande /me est faite ! Maintenant passons aux explications

Si j'utilise cmdtext[4] à la place de cmdtext, les quatre premiers caractères seront ignorés. Donc si je marque "/me blabla" et que je n'utilise que les quatre premiers caractères, c'est "blabla" qui sera affiché.

Utilisons le strtok()

strtok est très utilisé pour les commandes avec paramètres. Par exemple, dans la commande /say Salut !, je pourrais faire en sorte que "Salut" soit stocké dans une variable, "/say" dans une autre et "!" dans encore une autre variable !

public OnPlayerCommandText(playerid, cmdtext[])
{
    new cmd[30], idx;
    cmd = strtok(cmdtext, idx);
 
    if(strcmp(cmd, "/sayhello", true) == 0)
    {
        new tmp[30];
        //tmp vaudra ce qui sera écrit après "/sayhello".
        tmp = strtok(cmdtext, idx);
        if(IsPlayerConnected(otherplayer)) SendClientMessage(otherplayer, 0xFFFF00AA, "Salut !");
        return 1;
    }
    return 0;
}

Pour que ce code fonctionne n'oubliez pas d'inserer le strtok dans votre code ! Vous savez maintenant comment faire des commandes avec strcmp() (et strtok pour les paramètres !)