VB/VB.Net Problème lie au 5816.

A

Anonymous

Invité
#1
Bonjour,
Me revoilà sur le forum après une longue absence. J'ai fais les mise à jour tout fonctionnait très bien jusqu’à maintenant : je reçois le BasicLatencyStatsRequestMessage et ensuite bam ! déconnexion. Alors je me suis dit bein on va lui donner ce qu'il veut après tout.

Au premier BasicLatencyStatsRequestMessage je réponds avec sur les 3 paramètres des 0 : ça passe, aucune déconnexion.
Au deuxième j’envoie une latence correspondant a peu près à la mienne et la déconnexion juste après ma réponse !

Cela fait 2h que je cherche une solution mais à chaque fois au deuxième BasicLatencyStatsRequestMessage je me fais déco ( je le reçois environ 6 mn après la connexion donc c'est hyper long a debug).

Si quelqu'un a déjà eu le même problème :)

Merci
 
A

Anonymous

Invité
#2
Un ami d'anodu94 a eu ce souci. Contact le il a peut etre trouvé
 
A

Anonymous

Invité
#3
Je l'ai MP. Si quelqu'un a une suggestion je suis toujours ouvert
 
Inscrit
21 Janvier 2012
Messages
39
Reactions
0
#4
Tu lui réponds? Et à la deuxième réponse tu dois ajouter un checksum à la variable latencyAvg (le code se trouve dans un SWF caché dans l'I18n)
 
A

Anonymous

Invité
#5
Merci,
Oui je lui envoi des informations : pings que je génère aléatoirement vu qu'il peut pas vérifier et ça m'évite les calculs. Pouvez-vous m'en dire plus a propos de ce lien avec l'i18n, car dans les classes qui gèrent les messages de latence je ne vois pas le checksum. Il s'agit de quelle classe ?

Edit : je comprends pas pourquoi mais j'ai arrêté d'y répondre et ça ne me déco pas. Le seul truc qui a change (peut être autre chose mais je vois pas quoi) est que je réponds au SequenceNumberMessage. Je suis toujours partant pour avoir plus d'info sur les swf des i18n quand même.
 
A

Anonymous

Invité
#6
Il s'agit des D2o, une dll est disponible sur le forum de permettant de lire ces classes. Elle contiennent diverses informations sur des ids qui correspondent à des noms. Par exemple le serveur de dofus te donne un id pour un objet de ton inventaire et avec cet id et les D2o tu pourra connaitre le nom de cet objet.
 
A

Anonymous

Invité
#7
Merci. Je sais tout ça. Et ça ne m'aide pas plus en ce qui concerne le swf qui se cache dedans. Je sais pas comment on le récupère lui.
 
Inscrit
21 Janvier 2012
Messages
39
Reactions
0
#8
gaetan13 a dit:
Merci,
Oui je lui envoi des informations : pings que je génère aléatoirement vu qu'il peut pas vérifier et ça m'évite les calculs. Pouvez-vous m'en dire plus a propos de ce lien avec l'i18n, car dans les classes qui gèrent les messages de latence je ne vois pas le checksum. Il s'agit de quelle classe ?

Edit : je comprends pas pourquoi mais j'ai arrêté d'y répondre et ça ne me déco pas. Le seul truc qui a change (peut être autre chose mais je vois pas quoi) est que je réponds au SequenceNumberMessage. Je suis toujours partant pour avoir plus d'info sur les swf des i18n quand même.
Oui, c'est le SequenceNumberMessage qui déconnectes, il suffit d'incrémenter à chaque fois la valeur. Pour le BasicLatencyStatsRequestMessage, il faut absolument lui donner la bonne valeur pour "sampleCount", qui est le nombre de packets envoyés.

Pour le checksum, c'est là qu'est la subtilité, le code ajoutant le checksum est caché.

lolodu92 a dit:
Il s'agit des D2o, une dll est disponible sur le forum de permettant de lire ces classes. Elle contiennent diverses informations sur des ids qui correspondent à des noms. Par exemple le serveur de D. te donne un id pour un objet de ton inventaire et avec cet id et les D2o tu pourra connaitre le nom de cet objet.
L'I18n est un fichier .d2i, pas un .d2o

gaetan13 a dit:
Merci. Je sais tout ça. Et ça ne m'aide pas plus en ce qui concerne le swf qui se cache dedans. Je sais pas comment on le récupère lui.
Cherches dans le code de Dofus!
 
A

Anonymous

Invité
#9
Merci. J'avais déjà fait le sequencenumber. Il fonctionne bien. Je présume que pour ce qui est du checksum le code n'est pas dans le dofusinvoker. Je l'ai vérifié au moins dix fois mais quand je rentre je relis le connectionhandler. Merci en tout cas :D
 
Inscrit
16 Aout 2011
Messages
184
Reactions
0
#10
Désolé pour cette réponse un peu tardive, j'ai pas mal été occupé ces derniers jours. J'ai lu ton MP mais j'ai préféré répondre ici. Tout ce que j'ai lu ici est "du nouveau" pour moi. En effet, je ne pensais pas du tout que le problème pouvait se révéler si chi**t. Ce qui me fait un peu plus peur c'est que ça t'arrive aussi à toi. C'est que donc ça peut probablement m'arriver. Je n'ai rien à apporter de plus, je vais sûrement reprendre mon bot pendant ces vacances, si j'ai le temps et je donnerais des nouvelles en conséquence.
A bientôt, anodu94
 
A

Anonymous

Invité
#11
Bonjour,
Petit message pour vous tenir au courant de l'avancement et d'un nouveau probleme. Le déplacement fonctionne, il n'y a plus de déconnexions soudaines. Par contre au bout de 4-5 changement de map dans le trajet je me fais ban...

Au début je me suis dit que j'envoyais toujours les ordres de déplacement au même timing donc maintenant je fais des temps d'attente aléatoires. J'ai l'impression que je me fais ban moins vite mais ban quand même. Je voulais savoir s'il y avait des sécurités connues pour ban les bots et si le temps d'attente entre la réception du 951 et l'envoi du 952 avait une importance. (Actuellement je renvoi direct le 952 contrairement au serveur mais ça ne me deco pas)

Merci

Edit : Pour ce qui est de ce checksum il n'y en a pas de traces dans le Dofus Invoker a ce que j'ai pu voir.
 

Geraff

Administrateur
Membre du personnel
Inscrit
13 Mars 2008
Messages
564
Reactions
0
#12
Si tu fais suivre trop de personnages trop proche avec les même déplacements tu peux te faire ban ^^.
 
A

Anonymous

Invité
#13
Merci,
La il est tout en fait. Je lui fait faire un tour d'une zone.
 
A

Anonymous

Invité
#14
Quand tu envoi le 951 tu dois attendre que ton personnage ait finit son deplacement pour envoyer le 952, c'est tres tres important. Il ne faut pas envoyer le paquet en avance sinon tu te fais banne.

Je te donnerais les valeurs des couts de deplacements et les calculs a faire demain.
 
A

Anonymous

Invité
#15
Merci. mais si par exemple un personnage est en train de se déplacer donc on doit envoyer un 952 dans 10s. Si entre t=0 et t=10s on décide de changer de map alors il faudra annuler l'envoi de ce 952 ? (vu qu'on sera plus sur la même map que le joueur ayant demande le déplacement )
 
A

Anonymous

Invité
#16
Je le sens mal ^^ Pas envie de tout refaire x)

Edit : Typiquement il se passe ça :

Au bout d'un moment (environ 10-15 changement de maps) il se passe ca :
Code:
envoie : id = 950, taille = 14
0x0004519550F540F45046050C0802
recu : id = 951 taille = 56
recu : id = 176 taille = 0
recu : id = 5632 taille = 95
recu : id = 951 taille = 52
envoie : id = 952, taille = 0
0x
recu : id = 176 taille = 0
envoie : id = 221, taille = 4
0x050C0602
recu : id = 176 taille = 0
recu : id = 951 taille = 8
recu : id = 951 taille = 12
envoie : id = 952, taille = 0
0x
recu : id = 176 taille = 0
envoie : id = 952, taille = 0
0x
recu : id = 176 taille = 0
recu : id = 251 taille = 4
envoie : id = 952, taille = 0
0x
recu : id = 176 taille = 0
recu : id = 951 taille = 10
envoie : id = 952, taille = 0
0x
recu : id = 176 taille = 0
Le serveur ignore la demande de changement de map ce qui a pour effet d’arrêter mon trajet, et si j'insiste trop à le relancer à chaque fois que ça s’arrête bein ça me ban.

PS 1 : Je viens de régler le probleme de timing pour les 952 : j'ai mis 500*x pour marcher et 300*x pour courir.
PS 2 : je viens de régler un probleme avec le LatencyStatsRequestMessage : le trajet tient beaucoup plus longtemps mais même problème que PS 1 au bout d'un certain temps. Je n'envoi tjrs pas de checksum avec le LatencyStatsRequestMessage n'ayant rien trouve dessus dans les sources.
 
A

Anonymous

Invité
#17
Donc tu envoi le 950, tu fais ce calcul
Dim wait As Integer
If Path.chemin.Count <= 2 Then
wait = Path.chemin.Count * 500 'ici Path.Chemin.count c'est le nombre de case a parcourrir en gros c'est le nombre de cellule de ton chemin
Else
wait = Path.chemin.Count * 300
End If
pause(wait)

Friend Sub pause(ByVal ms_to_wait As Long)
Dim endwait As Double
endwait = Environment.TickCount + ms_to_wait
While Environment.TickCount < endwait
System.Threading.Thread.Sleep(1)
Application.DoEvents()
End While
End Sub

Donc la tu fais la pause et tu envoi apres le
GameMapMovementConfirmMessage, 952.

Verifie si sa ressemble en gros a sa ton code. Sinon montre nous ton pathfinding en entier ou par mp si tu préféres.
 
A

Anonymous

Invité
#18
Je fais la même chose mais avec un DateAndTime.Timer et ensuite je converti en seconde. Et je le fais dans un autre thread pour éviter de freezer l’interprétation..
Sinon j'ai de sérieux doutes sur ce LatencyStatsMessage quelques paquets avant le bug je le reçois souvent.
 
A

Anonymous

Invité
#19
Sur les exemples toutes les cases sont marchables. Et j'utilise bien tout ce qu'il faut en combat mais la c'est hors combat que ca bug.
 
Haut Bas