Page 1 sur 1

Nouvelle commande.

Publié : 18 nov. 2009, 16:02
par tosh
Bonjour à tous.
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;
}
en rajoutant la ligne dans la fonction init_commands() du même fichier :

Code : Tout sélectionner

add_command("inventaire", &command_inventaire);
Ça à l'air de fonctionner.
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" :
serveur a écrit :Et alors, on essaie d'atteindre une catégorie que tu n'as pas consultée
Voilà, je ne vois pas vraiment comment régler ces deux soucis, si quelqu'un a une piste, je suis preneur :)

Re: Nouvelle commande.

Publié : 18 nov. 2009, 17:31
par Teylae
* explications en jeu *

=> bon courage !!! 8)

:roll: