Using strcmp() FR

From SA-MP Wiki

(Difference between revisions)
Jump to: navigation, search
Revision as of 14:15, 4 March 2013
Smithy (Talk | contribs)

← Previous diff
Revision as of 16:47, 24 January 2014
Connor Mead (Talk | contribs)
(Add category)
Next diff →
Line 1: Line 1:
-'''Utilisez strcmp() dans [[OnPlayerCommandText_FR|OnPlayerCommandText]] pour crée vos commandes'''+'''Utilisez strcmp() dans [[OnPlayerCommandText_FR|OnPlayerCommandText]] pour créer vos commandes'''
Ouvrez Pawno, File > New. Ouvrez Pawno, File > New.
Line 57: Line 57:
Vous savez maintenant comment faire des commandes avec strcmp() (et [[strtok]] pour les paramètres !) Vous savez maintenant comment faire des commandes avec strcmp() (et [[strtok]] pour les paramètres !)
-[[ru:Использование_strcmp]]+[[Category: Tutorials FR]]

Revision as of 16:47, 24 January 2014

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], les quatres premiers caractères vont être supprimés et ré-inséré après l'utilisation de cmdtext. Donc si je marque "/me blabla", cmdtext[4] vaudra "blabla".

Utilisons le strtok()

Le 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 !)