Avide de curiosité, j'ai décidé d'explorer les entrailles de la bête (entendez le client), et je me suis lancé dans la création d'une petite commande qui me plaisait bien. (cf : http://www.landes-eternelles.com/phpBB/ ... 21&t=15917)
Voici donc la fonction en question, que j'ai mise dans le fichier console.c :
Code : Tout sélectionner
/*Commande pour déplacer plusieurs items du dépot vers l'inventaire*/
int command_inventaire(char *text, int len)
{
int i, type_arg = 0;
Uint8 str[5];
str[0] = WITHDRAW_ITEM;
for(i = 0; i < len; i++) //On extrait chaque argument
{
if(text[i] == ' ')
{
if(type_arg)
{
str[1] = strtol(&text[i+1], NULL, 0);
type_arg = 0;
my_tcp_send(my_socket, str, 4); // lorsqu'on a le n° de l'item et sa quantité, on envoit au serveur.
}
else
{
*((Uint32*)(str+2))=SDL_SwapLE32(strtol(&text[i+1], NULL, 0));
type_arg = 1;
}
}
}
return 1;
}
Code : Tout sélectionner
add_command("inventaire", &command_inventaire);
Néanmoins, il subsiste deux problèmes :
-Le premier, le numéro de l'item n'est valable que pour un dépôt spécifique (et donc ça signifie qu'il faut chercher le numéro de l'item pour chaque joueur, ce qui rend la commande inutile en somme)
-Le second, on ne peut pas mettre un objet dans l'inventaire, si la catégorie en question n'est pas ouverte (ce qui encore une fois, limite la commande)
Par exemple en tapant la commande : &inventaire 150 54
qui devrait me permettre de mettre 150 os dans mon inventaire, je reçois un beau message du serveur si je tape la commande en étant par exemple dans la catégorie "armes" :
Voilà, je ne vois pas vraiment comment régler ces deux soucis, si quelqu'un a une piste, je suis preneurserveur a écrit :Et alors, on essaie d'atteindre une catégorie que tu n'as pas consultée
