Using strcmp() FR
From SA-MP Wiki
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 !)