2.0 [Tuto] [AutoIt] Déplacements en combat.

    Publicités

Users Who Are Viewing This Thread (Total: 0, Members: 0, Guests: 0)

Status
Not open for further replies.

Bit-X

V
Jan 11, 2012
703
1
924
Dans un livre
Discord
kolibry#8414
Voici un petit tutoriel utilisant mes sources pour que votre bot maitrise les déplacements stratégique en combat.
Vous devez avoir de bonnes notions sur le programme AutoIt et un bot déjà bien complet car ici nous verrons uniquement le déplacement en combat et rien d'autre.

Cette méthode utilise la fonction PixelSearch, qui comme son nom l'indique, recherche un pixel sur une zone de l'écran.
Notez bien que dans ce tutoriel n'est pas un bot.

Ici, nous utiliserons Dofus en résolution 800 x 600 et position 0x0.
PHP:
WinMove("Nom_de_la_fenêtre","",0,0,800,600)

Voici les détails les la fonction:
PHP:
// Utilisation:
// CBT_Deplacement()
//
//  Retourne:
//    1 si un déplacement à été effectué.
//    0 si le pixel $Monstre est dans la zone aveugle autour de $Perso.
//    -1 si un monstre est proche de vous et qu'aucun déplacement n'a été effectué.

PHP:
;~ xxxxxxxxxxxxxxx|xxxxx|xxxxxxxxxxxxxxx        Voici un petit schéma pour mieu comprendre
;~ xxxxxxxxxxxxxxx|xxxxx|xxxxxxxxxxxxxxx        le fonctionnement de la fonction qui suit.
;~ xxxxxxxxxxxxxxx|xxxxx|xxxxxxxxxxxxxxx
;~ xxxxxxxxxxxxxx_|_ _ _|_xxxxxxxxxxxxxx        |_ délimite les differents champs de vision.
;~ _ _ _ _ _ _ _| G  G  G |_ _ _ _ _ _ _        G Sybolise les points de déplacement.
;~ xxxxxxxxxxxxx|         |xxxxxxxxxxxxx	     OO Symbolise le joueur
;~ xxxxxxxxxxxxx| G  OO  G|xxxxxxxxxxxxx        xx symbolise le champ visuel de détéction
;~ xxxxxxxxxxxxx|         |xxxxxxxxxxxxx
;~ _ _ _ _ _ _ _|_G  G  G |_ _ _ _ _ _ _
;~ xxxxxxxxxxxxxxx|_ _ _|xxxxxxxxxxxxxxx
;~ xxxxxxxxxxxxxxx|xxxxx|xxxxxxxxxxxxxxx
;~ xxxxxxxxxxxxxxx|xxxxx|xxxxxxxxxxxxxxx
;~ xxxxxxxxxxxxxxx|xxxxx|xxxxxxxxxxxxxxx
Dans un premier temps nous allons déclarer les constantes contenant les couleurs utiles pour les détections ainsi que quelques variables pour le stockage des positions des pixels.
PHP:
$Perso=0xFF0000 ; Couleur du cercle rouge du personnage.
$Monstre=0x0000FF ; Couleur du cercle bleu du monstre.
Global $Return001,$Return002

Ensuite, en bas de notre script, on place la fonction qui nous servira a ce déplacer.
PHP:
Func CBT_Deplacement() ; Déplacement en combat par Bit-X
    $Return001=PixelSearch(42,32,753,510,$Perso,3)
    If IsArray($Return001) Then
        $Return002=PixelSearch($Return001[0]-100,$Return001[1]-70,$Return001[0]+100,$Return001[1]+70,$Monstre,3)
        If IsArray($Return002) Then
            Return -1 ; Retourne -1 si le pixel $Monstre est dans le rectangle de 200px par 140px autour du pixel $Perso
        Else
            Sleep(10)
        EndIf
    EndIf
    $Return002=PixelSearch(42,32,753,510,$Monstre,3)
    $Return001=PixelSearch(42,32,753,510,$Perso,3)
    If IsArray($Return002) And IsArray($Return001) Then
        If $Return002[0]<$Return001[0]-70 And $Return002[1]<$Return001[1]-70 Then ; Si monstre = haut gauche
            Click_Left($Return001[0]-65,$Return001[1]-35)
        ElseIf $Return002[1]<$Return001[1]+70 And $Return002[1]>$Return001[1]-70 And $Return002[0]<$Return001[0]-70 Then ; Si monstre = gauche pure
            Click_Left($Return001[0]-58,$Return001[1])
        ElseIf $Return002[0]<$Return001[0]-70 And $Return002[1]>$Return001[1]+70 Then ; Si monstre = bas gauche
            Click_Left($Return001[0]-65,$Return001[1]+35)
        ElseIf $Return002[0]<$Return001[0]+70 And $Return002[0]>$Return001[0]-70 And $Return002[1]>$Return001[1]+70 Then ; Si monstre = bas pure
            Click_Left($Return001[0],$Return001[1]+27)
        ElseIf $Return002[0]>$Return001[0]+70 And $Return002[1]>$Return001[1]+70 Then ; Si monstre = bas droite
            Click_Left($Return001[0]+65,$Return001[1]+35)
        ElseIf $Return002[1]<$Return001[1]+70 And $Return002[1]>$Return001[1]-70 And $Return002[0]>$Return001[0]+70 Then ; Si monstre = droite pure
            Click_Left($Return001[0]+58,$Return001[1])
        ElseIf $Return002[0]>$Return001[0]+70 And $Return002[1]>$Return001[1]-70 Then ; Si monstre = haut droite
            Click_Left($Return001[0]+65,$Return001[1]-35)
        ElseIf $Return002[0]<$Return001[0]+70 And $Return002[0]>$Return001[0]-70 And $Return002[1]<$Return001[1]-70 Then ; Si monstre = haut pure
            Click_Left($Return001[0],$Return001[1]-27)
        Else
            Sleep(150)
            Return 0 ; Retourne 0 si le pixel $Monstre est dans la zone aveugle autour de $Perso
        EndIf
    EndIf
    Sleep(3000)
    Return 1 ; Retourne 1 si un déplacement à été effectué
EndFunc
 
Last edited:

thom123

Membre
Feb 14, 2011
29
0
426
Hum, pardon, mais il existerais un tuto pour débutant? Je veux dire, pour apprendre les 'bases' d'AutoIt?
Sinon, ça a l'air super^^
 

yoguill

Nouveau membre
Dec 20, 2011
2
0
306
merci sa aide beaucoup =)!! j'ai une question et que "l'epee" est deriere un arbre tu fai comment pour rejoindre l’épée (la couleur etan cacher :/)
 
D

Deleted member 117167

L'avantage du bot socket c'est que toutes ces actions sont évitable grace à la simple notion de vecteur :D
Ce serait également possible ici mais il faut détecter la taille de la fenêtre (simple) et la taill des cases :D (chaud) et prendre en compte l'inclinaison du repère (chaud aussi)
 

Bit-X

V
Jan 11, 2012
703
1
924
Dans un livre
Discord
kolibry#8414
Hum, pardon, mais il existerais un tuto pour débutant? Je veux dire, pour apprendre les 'bases' d'AutoIt?
Sinon, ça a l'air super^^
Cherche un peu plus loin que le bout de ton nez, tu trouvera !


merci sa aide beaucoup =)!! j'ai une question et que "l'epee" est deriere un arbre tu fai comment pour rejoindre l’épée (la couleur etan cacher :/)
Je ne vois pas du tout de quoi tu parle...


L'avantage du bot socket c'est que toutes ces actions sont évitable grace à la simple notion de vecteur :D
Ce serait également possible ici mais il faut détecter la taille de la fenêtre (simple) et la taill des cases :D (chaud) et prendre en compte l'inclinaison du repère (chaud aussi)

Tu trouve ça chaud de faire des simples addition et soustraction?
 
D

Deleted member 117167

Je trouve ton morceau de code un êu incompréhensible:
-pourquoi tu ne donnes pas de noms plus clairs à tes variables?
je sais que tu a mis des commentaires, mais on s'y perd :)

-L'indentation pique les yeux, mais bon c'est autoit donc j'imagine que ya pas trop le choix

M'enfin sinon c'est bien trouver :)
 

soudainm

Membre
Jun 17, 2012
28
0
301
31
Tout d'abords merci beaucoup pour ce partage :)
Ensuite,
J'essaye de creer un bot avec autoit je rentre ton code mais rien ne se passe quand j'appui sur f5 .. Que faut-il faire stp ? ( Je débute dans la programation ) En attente de ta réponse :)
 
May 28, 2012
534
63
944
merci sa aide beaucoup =)!! j'ai une question et que "l'epee" est deriere un arbre tu fai comment pour rejoindre l’épée (la couleur etan cacher :/)

Tout simplement afficher toutes les textures : Afficher les personnages en transparence.
Pour plus de pratique :
- Faire en sorte à ce que le mode tactique soit toujours activé en combat
- Décochez : Autoriser les ombres d'interface

Un petit + :
- Jouez en qualité graphique faible pour un meilleur repère ;)
 
Status
Not open for further replies.