VB/VB.Net Lecteur D2oManager

Inscrit
7 Avril 2010
Messages
151
Reactions
2
#1
Bonjour à tous,
Voila je suis actuellement sur la lecture des InfoMessage,
J'utilise alors D2oManager pour les lires, mais pour les lire je fait comme ceci :
Code:
            Case TextInformationMessage.ProtocolID
                Dim tim As New TextInformationMessage
                Dim infomess As InfoMessage = _manager.ReadIndex(D2oManager.D2o.D2oFileEnum.InfoMessages, tim.msgId)
                SetChat("[Dofus] " & infomess.Textid & vbCrLf)
Mais lorsque je me connecte j'obtient
[DOFUS] id du message mais j'obtient pas la phrase bienvenue sur dofus etc..
Si vous savez pourquoi.
Merci de votre aide
 

ToOnS

Membre Actif
Inscrit
8 Avril 2009
Messages
974
Reactions
0
#2
tim.msgType * 10000 + tim.msgId
 
Inscrit
7 Avril 2010
Messages
151
Reactions
2
#3
Je remplace donc ceci :
Dim infomess As InfoMessage = _manager.ReadIndex(D2oManager.D2o.D2oFileEnum.InfoMessages, tim.msgId)
par ceci :
Dim infomess As InfoMessage = _manager.ReadIndex(D2oManager.D2o.D2oFileEnum.InfoMessages, tim.msgType * 10000 + tim.msgId)
et
SetChat("[D.] " & infomess.Textid & vbCrLf) c'est bon ou pas ?
 

ToOnS

Membre Actif
Inscrit
8 Avril 2009
Messages
974
Reactions
0
#4
ouais c'est toujours pas bon mais c'est mieux , il faut deserializer tim avant le _manager , faire plutot comme ca :
Dim tim As New TextInformationMessage
tim.Deserialize(PacketData)
SetChat("[D.] " & _manager.ReadIndex(D2oManager.D2o.D2oFileEnum.InfoMessages, tim.msgType * 10000 + tim.msgId) & vbCrLf)
 
Inscrit
7 Avril 2010
Messages
151
Reactions
2
#5
Alors j'ai fait comme ceci :
Code:
 Case TextInformationMessage.ProtocolID
                Dim tim As New TextInformationMessage
                tim.Deserialize(Content)
                      SetChat("[Dofus] " & _manager.ReadIndex(D2oManager.D2o.D2oFileEnum.InfoMessages, tim.msgType * 10000 + tim.msgId).ToString & vbCrLf)
lorsque je me log j'obtient ceci :
[Dofus] D2oManager.DataCenter.InfoMessage
[Dofus] D2oManager.DataCenter.InfoMessage
[Dofus] D2oManager.DataCenter.InfoMessage
 

ToOnS

Membre Actif
Inscrit
8 Avril 2009
Messages
974
Reactions
0
#6
mets un point d'arret sur la ligne de setchat , un espion sur _manager.ReadIndex(D2oManager.D2o.D2oFileEnum.InfoMessages, tim.msgType * 10000 + tim.msgId) , sur tim.msgType et sur tim.msgId , puis postes les resultats

ce manager je le connais pas mais a l'epoque je fesais avec la dll de bouh2 comme ca :
Case 780 ' Message d'informations
ID_Message = New Network.Messages.Game.Basic.TextInformationMessage
ID_Message.Deserialize(PacketData)
RTB_CHAT.Invoke(Chater, "", Decode(I18nFile.ReadText(InfoMessages.ReadObject(ID_Message.msgType * 10000 + ID_Message.msgId).textId)), CUInt(10), CUInt(0), False, ID_Message.Parameters, ID_Message.msgType)
 
Inscrit
7 Avril 2010
Messages
151
Reactions
2
#7
j'aurai bien mis un espion mais je le trouve pas dans le menu debuguer =S
 

ToOnS

Membre Actif
Inscrit
8 Avril 2009
Messages
974
Reactions
0
#8
"Pour ajouter un espion, vous devez d’abord déboguer le programme. Ensuite sélectionner la variable et faites un clique droit puis sélectionner Ajouter un espion. L’espion apparaît dans la fenêtre des espions. Elle affichera la valeur de la variable à chaque instant."
 
Inscrit
7 Avril 2010
Messages
151
Reactions
2
#9
Merci voila ce que j'obtiens :
 

ToOnS

Membre Actif
Inscrit
8 Avril 2009
Messages
974
Reactions
0
#10
regardes dans l'arborescence de _manager , le reste c'est bon , la je peux pas aider plus ne connaissant pas cette dll mais apperement elle est utilsée par plusieurs personnes qui sauront t'aider
 
Inscrit
7 Avril 2010
Messages
151
Reactions
2
#11
Voila résolue,
fallais faire ceci :
Code:
   Case TextInformationMessage.ProtocolID
                Dim tim As New TextInformationMessage
                tim.Deserialize(Content)
                Dim item As InfoMessage = _manager.ReadIndex(D2oManager.D2o.D2oFileEnum.InfoMessages, tim.msgType.ToString * 10000 + tim.msgId.ToString)
                SetChat("[Dofus] " & (item.Text).ToString & vbCrLf)
j'ai une autres question j’obtiens ceci :
[Dofus] Précédente connexion sur ce compte : %3/%2/%1 à %4:%5
Comment avoir comme dans dofus c'est à dire la date + heure?
 
A

Anonymous

Invité
#12
La regarde dans ta class tu a un integer.

J'ai pas mon PC mais fais un truc de ce genre:
Code:
For i = 0 to variableinteger.count -1 ' remplace variableinteger par le integer se trouvant dans ta class
Text = text.replace("%", variableinteger(i))
Next
 
Inscrit
7 Avril 2010
Messages
151
Reactions
2
#13
j'ai pas vraiment compris.
Je doit regarder dans la class textinformationMessage ?
 
A

Anonymous

Invité
#14
Eu tu dois plutôt avoir dans TextInformation des paramètres sous forme de tableau si je me souviens bien.
Tu doit t'en servir et remplacer les % avec eux.
 
Inscrit
7 Avril 2010
Messages
151
Reactions
2
#15
Je doit bien faire comme ce ci :
Code:
                For i = 0 To tim.parameters.Count - 1 
                    tabutilisateur.chatbox.text = Replace("%", tim.parameters(i))
                Next
Non ?
 
A

Anonymous

Invité
#16
Edit:
Code:
   Case TextInformationMessage.ProtocolID
                Dim tim As New TextInformationMessage
                tim.Deserialize(Content)
                Dim item As InfoMessage = _manager.ReadIndex(D2oManager.D2o.D2oFileEnum.InfoMessages, tim.msgType.ToString * 10000 + tim.msgId.ToString)
For i = 0 To tim.parameters.Count - 1 
                   Item.text = item.text.replace("%",parameters(i))
Next
                SetChat("[D.] " & (item.Text).ToString & vbCrLf)
 

ToOnS

Membre Actif
Inscrit
8 Avril 2009
Messages
974
Reactions
0
#17
oupsss moi aussi j'edite :mrgreen:
 
A

Anonymous

Invité
#18
Je pense qu'il vaut mieux faire un replace au niveau de item.text, si sa textbox contient un % ne devant pas etre remplace sa risque de donner n'importe quoi. J'ai editer mon message au dessus.
 
A

Anonymous

Invité
#20
Bah le % et a la place je met parameters(i).
Test et dit nous, j'ai pas de sources sur moi la.
 
Haut Bas