C# Probleme avec D2COM.dll

A

Anonymous

Invité
#1
Bonjour, j'utilise ma librairie mis a dispostion , D2com.dll mais j'ai des petites souci d'utilisation et de formatage des données.

Le principe est simple (je pars du principe ou tout fonctionne du premier coup!!), je me connecte ou serveur d'authentification sur le port 5555 et je reçois 2 paquets vide d’identification 1 et 3 (je sais pas a quoi il correspond). bref j'envoie un autre paquets avec un id au pif et une valeur au pif mais pas moyen de ré affiché le paquet que j'ai envoyé!!! Convert.ToString(writer.Bytes).

apres je peux me tromper mais la je suis un peu perdu... d'autant plus que la connexion et coupé apres l'envoie de 3 requets , a mon avis c normal , j'envoie n'importe quoi ><!

pour appli , il y a un bouton pour ce connecter au serveur, une textebox pour rentré un id, une autre textebox pour la valeur , et un bouton pour envoyer le paquet associé à l'id et la valeur.

voici mon code:

Code:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using D2Com;
using D2Com.Network;
using System.Net.Sockets;
using D2Com.IO;


namespace Projet_Dofus_sockets
{
    public partial class CInterface : Form
    {
        private D2Connection ServerConnection = new D2Connection();
        private DataWriter writer;
        private DataReader reader;

        public CInterface()        
        {
            InitializeComponent();
            this.ServerConnection.PacketReceived += new EventHandler<PacketDataEventArgs>(ServerConnection_PacketReceived);
            this.ServerConnection.PacketSend += new EventHandler<PacketDataEventArgs>(ServerConnection_PacketSend);
            reader = new DataReader();
            writer = new DataWriter();
        }

        private void ServerConnection_PacketReceived(object sender, PacketDataEventArgs e)
        {
            byte[] byteTabRead = new byte[e.Content.Length];
            
            // Action à faire lorsqu'un paquet est reçu
            // Ajouter une ligne au log par exemple...
            // e.ProtocolID => ID du paquet
            // e.Content => Tableau d'octets du contenu du paquet
            // e.WholePacket => Tableau d'octets du contenu du paquet avec le header compris (id, taille de la taille, taille et contenu)
            // Cela permet parfois de déboguer vos paquets
            reader.Content = byteTabRead;

            labelResult.Text = labelResult.Text + "\n[Reçu] ID = " + e.ProtocolID + "| Taille = " + e.Content.Length + "\n [PAQUETS]" + reader.ReadString();
        }

        private void ServerConnection_PacketSend(object sender, PacketDataEventArgs e)
        {
            byte[] byteTabRead = new byte[e.Content.Length];
           // Action à faire lorsqu'un paquet est envoyé au serveur
           // Ajouter une ligne au log par exemple...
           // e.ProtocolID => ID du paquet
           // e.Content => Tableau d'octets du contenu du paquet
           // e.WholePacket => Tableau d'octets du contenu du paquet avec le header compris (id, taille de la taille, taille et contenu)
           // Cela permet parfois de déboguer vos paquets
            reader.Content = writer.Bytes;



            labelResult.Text = labelResult.Text + "\n[Envoyé] ID = " + e.ProtocolID + "| Taille = " + e.Content.Length + "\n [PAQUETS]" + Convert.ToString(writer.Bytes);
        }

        private void buttonConnec_Click(object sender, EventArgs e)
        {
                this.ServerConnection.DispatchMethod = this.Invoke;
                // On crée une socket pour se connecter au serveur d'authentification du jeu et on la donne à D2Connect.
                Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
                
                try
                {   
                    //213.248.126.155",443 reeky errel
                    socket.Connect("213.248.126.180", 5555);
                    this.ServerConnection.Socket = socket;
                }
                catch
                {
                    MessageBox.Show("Echec");
                }

                //connection serveur
                ServerConnection.Start();
        }

        private void CInterface_FormClosing(object sender, FormClosingEventArgs e)
        {
            //deconnection
            ServerConnection.Stop();            
        }

        private void buttonSend_Click(object sender, EventArgs e)
        {
            writer.ProtocolID = Convert.ToInt32(textBoxid.Text);
            writer.Write((short)Convert.ToInt32(textdonnee.Text));
            ServerConnection.Send(writer.ProtocolID, writer);
        }

    }
}
Voila je vous remerci de porter attention à mon message.
 
A

Anonymous

Invité
#2
Bonsoir l'ami,

Je suis le développeur de D2Com. Je m'étais absenté du développement il y a quelques temps et donc j'ai arrêté de produire D2Com.
Par conséquent cette librairie est devenue obsolète et n'est donc pas opérationnelle. Désolé pour toi.
 
A

Anonymous

Invité
#3
Oh non!!! mais il existe des librairies que l'on peux utiliser ou bien il faut te refaire de A à Z ? (je parle niveau connexion et mise en forme des paquets)
Pasque le protocole n'est pas simple et j'avou que je galère un peu (beaucoup) :?
 
A

Anonymous

Invité
#4
Si tu veux développer ton bot, je te conseille vivement d'apprendre de A à Z comment la connexion fonctionne.
C'est l'unique façon d'avoir un contrôle sur ton bot et de pouvoir vraiment ajouter des fonctionnalités que tu désires.

Il doit exister d'autres librairies, me je t'avoue que je viens de revenir et je suis entrain de me mettre à jour.
 
A

Anonymous

Invité
#5
Ok , merci quand même^^ je vais voir ce que je peux faire tout seul^^ si jamais j'arrive a faire un truc je partagerais ;)
 
Inscrit
29 Septembre 2011
Messages
393
Reactions
3
#6
Blood a fait une librairies une simple petit recherche dans la page précédentes est tu trouvera.
allez je suis sympa aujourd’hui je te passe le lien :p
je sais pas si il est toujours a jour -dll-facilitant-la-programmation-de-bot.359/]viewtopic.php?f=6&t=783
mais un conseille un bot qui par de A à Z est beaucoup mieux tu comprend mieux a se que tu fait.
 
Inscrit
19 Octobre 2010
Messages
214
Reactions
0
#7
tifoux a dit:
mais un conseille un bot qui par de A à Z est beaucoup mieux tu comprend mieux a se que tu fait.
Oh, zut :( Parce que là, moi j'ai rien compris du tout.

Euh, Tifoux, tu comprends ce que tu écris, ou bien ce sont juste des mots pris au hasard ? :mrgreen:
 
Inscrit
29 Septembre 2011
Messages
393
Reactions
3
#8
Désolé si je me suis mal exprimer **' j'été sur mon phone de plus je voulais juste dire que c'est beaucoup mieux de faire son bot de A à Z pour déjà mieux comprendre le protocole est suivre son code exemple tu fait la connexion avec la dll a blood tu c'est même pas se qui se passe tu envoi ton ndc et mdp est il te le fait seul (certaine personne on même pas idée comment fonctionne le cryptage) etc...
 
A

Anonymous

Invité
#9
Yoyo,
merci du conseil tifoux.

En faite ce dont j'avais besoin c'est d'une .ddl qui gère la lecture et l'ecriture dans un tableau de byte. J avais remarqué que plein de gens en proposais mais a chaque fois j'avais du mal à les utiliser^^ . finalement je les ais refaites^^
Maintenant j'ai compris comment le protocole fonctionne à peu près.

tifoux, quand tu parles de cryptage , c'est du genre dire que "Salut" => A35éh ou comment les paquets sont construits?? Ça m’intéresse de savoir de quoi tu parles ^^
 
Haut Bas