Nouvelle commande.

Avatar de l’utilisateur
tosh
Messages : 2379
Inscription : 01 sept. 2007, 01:09
Localisation : Quelque part sur la planete Terre.

Nouvelle commande.

Message 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 :)
Guerrier dans l'âme.

Membre de l'équipe.
Développeur Client & Serveur.

Avatar de l’utilisateur
Teylae
Messages : 152
Inscription : 15 oct. 2007, 20:52

Re: Nouvelle commande.

Message par Teylae »

* explications en jeu *

=> bon courage !!! 8)

:roll:
Avant de vous demander ce que les autres peuvent faire pour vous... demandez vous ce que vous pouvez faire pour les autres !!!

Répondre