Merci de ton tuto , j'ai voulu m'y mettre il y'a une petite semaine pour me faire un serv pour le lycée en LAN , ça aide bien. :)
C'est clair, mais je te donne un conseil, si tu es débutant , apprends le ZCMD+sscanf :)
C'est BEAUUUUUUUCOUP plus lisible et BEAUUUUUCOUP plus simple que le strtok...
Personnellement, je trouve le strtok beaucoup plus lisible que ZCMD&sscanf
Exemple:
COMMAND:givemoney(playerid, params[])
{
if (IsPlayerAdmin(playerid))
{
new
toplayerid, // the player we want to give money to
amount;
// extracting player's ID and amount from params
if (!sscanf(params, "ii", toplayerid, amount))
{
if (toplayerid != INVALID_PLAYER_ID)
{
new
message[40];
GivePlayerMoney(toplayerid, amount);
format(message, sizeof(message), "You got $%d from admin!", amount);
SendClientMessage(toplayerid, 0x00FF00FF, message);
}
else SendClientMessage(playerid, 0xFF0000FF, "That player is not connected");
}
else SendClientMessage(playerid, 0xFFFFFFFF, "Usage: /givemoney <playerid> <amount>");
}
else SendClientMessage(playerid, 0xFF0000FF, "Only admins can use this command!");
return 1;
}
Et pour strtok:
public OnPlayerCommandText(playerid, cmdtext[])
{
new cmd[128], idx, tmp[128];
cmd=strtok(cmdtext, idx); //On récupère le tout premier paramètre, qui n'en est pas un, car c'est la commande en elle même)
if(!strcmp(cmd, "/givemoney", true)) //La commande
{
new amount, message[40];
tmp=strtok(cmdtext, idx); //On récupère le vrai premier paramètre, l'id du joueur
amount=strtok(cmdtext, idx); //On récupère le deuxième paramètre, le montant à donner
if(strlen(tmp)==null||strlen(amount)==null) return SendClientMessage(playerid, 0xFFFFFFFF, "Usage: /givemoney <playerid> <amount>");
if(!isPlayerConnected(tmp)) return SendClientMessage(playerid, 0xFF0000FF, "That player is not connected");
if(IsPlayerAdmin(playerid)) SendClientMessage(playerid, 0xFF0000FF, "Only admins can use this command!");
GivePlayerMoney(strval(tmp), strval(amount));
format(message, sizeof(message), "You got $%d from admin!", strval(amount));
SendClientMessage(toplayerid, 0x00FF00FF, message);
return 1;
}
return 0;
}
Le strtok est une chose très simple à comprendre, il y a juste à savoir que variable=strtok(cmdtext, idx); récupère le prochain paramètre existant
**Le joueur tape "/commande test atest testa"**
new cmd[128], var[128], avar[128], vara[128];
cmd= strtok(cmdtext, idx); //Récupère "/commande"
var = strtok(cmdtext, idx); //Récupère "test"
avar = strokt(cmdtext, idx); //Récupère "atest"
vara = strtok(cmdtext, idx); //Récupère "testa"