VB/VB.Net Fonction follow, kick au bout d'une minute

A

Anonymous

Invité
#1
Bonsoir,

j'ai un petit problème, je me suis fais une petite fonction follow mais après 1/2 minute d'utilisation je me fais kick.
Je ne sais pas a quoi cela est du, voici mon code.
If Suivre = True And infight = False And ID_Message.actorid = ID_Chef Then
Id_CellBack = ID_Cell
Dim param1 As New Dofus.DofusWriter
Dim number As Integer = 0
For i = 0 To ID_Message.keymovements.count - 1
number = number + 1
Next
param1.WriteUShort(number) 'ici on envoi le nombre de cell
For y = 0 To ID_Message.keymovements.count - 1
ID_Cell = ID_Message.keymovements(y)
param1.WriteUShort(ID_Cell) 'on envoi les cells une par une
Next
param1.WriteUInt32(ID_Map) 'la map id
Dofus.DofusWriter.Send(950, _socket_Jeu) 'on envoi tout
Dofus.DofusWriter.Send(952, _socket_Jeu)
End If

Voila, pourrait-il y avoir un rapport avec un mauvais renseignement de la map id ?
Car j'ai un peu trafiquer mon code.

Bonne soirée
 

Sparkdaemon

Staff
Membre du personnel
Inscrit
7 Avril 2009
Messages
556
Reactions
3
#2
Crée ton propre pathfinding en prenant soin d'éviter celui du Maître.
Laisse un laps d'environ 1,5 secondes entre chaque déplacement de l'esclave.
 
A

Anonymous

Invité
#3
J'y travaille spark pour le path.
Si je met une attente il fot verifier que tout les membre du groupe sois sur la map dans ce cas.

Merci de ton aide, je vous tient au courant
 

ToOnS

Membre Actif
Inscrit
8 Avril 2009
Messages
974
Reactions
0
#4
tu peux suivre exactement le chemin du chef (donc pas besoin de pathfinding pour ca) ce qui est logique car 2 perso qui partent de la meme case pour aller sur la meme case prendront le meme chemin mais comme le dit spark il faut une pause avant le deplacement et aussi apres (pour lui laisser le temps d'arriver) car sinon ils savent que c'est un bot et te kick (2 perso ou plus qui se deplacent au meme moment c'est louche et quand ca se repete c'est tres louche)
 
A

Anonymous

Invité
#5
D'accord je vais faire des test merci bien
Mais le probleme c'est que un thread sleep bloque tout le programme...
La fonction hbwait du createur de compte de je ne sais plus qui^^ ferait l'affaire ?
 

ToOnS

Membre Actif
Inscrit
8 Avril 2009
Messages
974
Reactions
0
#6
essais avec ca :
Code:
    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
pause(750)
 
A

Anonymous

Invité
#7
Je te conseil ça, histoire d'avoir un comportement un tout petit peu plus humain :D
ça permet d'avoir des temps d'attentes aléatoires
Code:
    Friend Sub wait(ByVal msMini As Long, ByVal msMax As Long)
        Dim rnd As System.Random = New System.Random
        Dim ms_to_wait As Long

        ms_to_wait = rnd.Next(msMini, msMax)
        Dim endwait As Double
        endwait = Environment.TickCount + ms_to_wait
        While Environment.TickCount < endwait
            System.Threading.Thread.Sleep(1)

            System.Windows.Forms.Application.DoEvents()
        End While
    End Sub
 
Inscrit
1 Aout 2010
Messages
44
Reactions
0
#8
Normalement entre le temps d'envoie du chemin (950) et la fin tu dois avoir un temps bien précis (Mieux long que court, sa peut passer pour un lag).
Ce temps est en fonction du chemin, et tu type de map.
 
A

Anonymous

Invité
#9
De nouveau kick, décidément ! J'ai mis 500ms d'attente pour tant. 1/2min de test^^
 

RedBust

Membre Actif
Inscrit
1 Decembre 2009
Messages
260
Reactions
0
#10
Ouais, là ça risque d'être compliqué avec la nouvelle version...
 

Geraff

Administrateur
Membre du personnel
Inscrit
13 Mars 2008
Messages
564
Reactions
0
#11
Il me semble que si une personne est en train de faire le chemin, quand on va cliquer pour faire le même chemin avec un deuxième personnage, il va faire en sorte de prendre un chemin un poil différent histoire d'éviter la collision des personnages.

Le meilleur résultat 100% officiel consisterai à utiliser le pathfinder de Dofus.
 

Sparkdaemon

Staff
Membre du personnel
Inscrit
7 Avril 2009
Messages
556
Reactions
3
#13
geraff viens de te la donner.
Tu peux:
Soit créer un pathfinder qui évitera la collision,
Soit utiliser celui de D.
 
A

Anonymous

Invité
#14
Desole j'avais pas vu le lessage de geraff ^^
j'aimerais bien utiliser celui de dofus mais j'ai du mal a l'utiliser
 

ToOnS

Membre Actif
Inscrit
8 Avril 2009
Messages
974
Reactions
0
#15
c'est juste un A* a la sauce ank@ma
 
A

Anonymous

Invité
#16
Bon je m'y met un peu je vous tient au courant
 
A

Anonymous

Invité
#17
Bonsoir,

J'ai bien etudier le path de dofus durant le week end, je comprend un peu mieux le fonctionnement mais bon j'ai toujours du mal. J'ai quelque questions:
- A quoi servent les class de type interface ? Public interface...
- il y a plein de sous class je pense qu'une bonne partie de celle-ci ne me sont pas utile, les quelles ? Les fonctions aussi, il y en a pas mal qui n'ont pas l'air de servir a mon bot mais plus au client de dofus. En clair qu'est qui faudrait que je conserve ?

Bonne soiree
 
Haut Bas