J'ai toujours eu du mal avec ça...
Si j'ai bien compris (Si quelqu'un peut me corriger au cas où), strtok "sépare" le texte de la commande en 2 (ou plus) dès qu'il y a un espace, et retourne ce qu'il y a écrit après. (Un peu comme split(); sur IV:MP)
Donc normalement, si la commande est
/kick [ID], strtok retournera [ID].
Mais comme le wiki SA:MP le dit, cette fonction est obsolète et elle doit être utilisée le moins possible. Pourtant... Je vois très peu de GM/FS codés avec sscanf qui est plus compliqué au début, mais qui après même pas 1h de pratique devient très simple.
Et en plus, sscanf et zcmd permettent de réduire le nombre de lignes :
if(strcmp(cmd, "/kick", true) == 0) { new tmp[128]; tmp = strtok(cmdtext, idx); if(strlen(tmp) == 0) return SendClientMessage(playerid, 0xFFFFFFFF, "USAGE: /kick [playerid]"); Kick(strval(tmp)); return 1; } |
CMD:kick(playerid,params[]) { new pid; if(sscanf(params,i,pid)) return SendClientMessage(playerid,0xFFFFFFFF, "USAGE: /kick [playerid]"); else { Kick(pid); } return 1; }
|
(Pour 1 paramètre, même longueur, mais si on veut ajouter un paramètre "Raison" par exemple, alors là il y a pas photo :happy)
++