Plusieurs questions par rapport aux bot

    Publicités

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

gavau

Membre actif
Aug 16, 2011
159
0
917
34
bonjour, ayant des difficultés (énormes) à programmer en C++ seul avec un livre (et n'ayant pas les moyens de me payer un prof ^^), suite à mes nombreux échecs, j'ai décidé de me jetter sur un autre langage, mais je me pose diverses questions :
1) J'ai déjà vu des bots tourner en arrière plan (le bot tourne sur un jeu ou autre, et l'utilisateur en même temps écrit des messages sur skype/ redimensionne une fenêtre, sans que cela ne gêne le bot, comment se fait il ? (je pensais que le programme utilisais des touches/mouvements de souris sur ce qui est au premier plan)
2) Est il possible d'intégrer un exécutable dans un autre exécutable ? par exemple créer le bot en .exe et ensuite rajouter une GUI par dessus ? (je débute et n'arrive pas à mettre un foutu raccourcis qui lance le bot)
3) On m'a parlé de autoit (qui ne faisait pas que des bot :D), mais de quel langage se rapproche il le plus ? est il possible de créer un bot sous autoit qui fonctionnerai sur une fenêtre en arrière plan ? ou il sagit d'une sorte d'autoclick capable de chercher des pixels ?

merci d'avance à ceux qui prendront de leur temps pour m'éclaircir
 

oli4584

Membre actif
Nov 2, 2010
245
0
922
33
Autoit peux cliquer sur des fenêtres en arrière plan il y a même un tutoriel sur ce site mais pour la recherche de pixel il faut que la fenêtre sois visible , ensuite tu peux te tourner vers le Visual basic ou le C# qui sont des langages du framework .net il t'offre la possibilité de créer une gui au départ et ensuite ajouter ton code et si tu programme un bot en Socket tu n'as même pas besoin d'avoir le jeux d'ouvert.
 

gavau

Membre actif
Aug 16, 2011
159
0
917
34
merci, je me suis lancé sur autoit et ai commencé mes propres bot (et je crois que je n'ai plus besoin d'utiliser 2 executables : le gui + le bot... Une nouvelle question me vient à l'esprit : j'ai créé un bot qui farm des monstres, les déplacements et compétences semblent fonctionner, mais je n'arrive pas à choisir les objets à ramasser (actuellement j'utilise "M" : cibler l'objet le plus proche, et espace : action...).
En fait j'aimerais deux choses :
I) Un bout de script qui sélectionnerai l'objet dont le nom est en jaune et clickerai dessus pour le ramasser (uniquement les objets gold), ou alors une indication pour parvenir à le créer moi même ^^
le script ressemblerai à ça :
1)Le bot se lance et tue les monstres
2)Le bot vérifie si il n'y a pas de gold
3)Si il détecte un objet gold, il le ramasse, puis passe à l'étape 4, si il ne trouve pas d'objet gold, il refait une recherche (au cas où), puis passe à l'étape 4
4)Le bot se relance

II) j'aimerai si possible une explication sur la boucle while (car avec mon bot par exemple, je ne sais pas comment je relancerai le bot après la détection de gold, et il est trop rapide pour que l'on s'amuse à clicker sur démarrer le bot toutes les 30 secondes

PS : si quelqu'un a déjà créé des bot quel que soit le jeu, et commenté, j'aimerai avoir vos sources pour analyser et comprendre (parce que les tuto style site du zero, je ne les comprends pas, je les comprends uniquement en analysant des sources). Tronquez les si vous voulez pour que les déplacements ou autre ne fonctionnent pas afin de ne pas pouvoir utiliser/partager votre script ^^
Ou si quelqu'un sait faire, fournissez en moi des décompilés (j'ai essayé de décompiler des bot faits sous autoit, mais il y a que les miens que j'arrive à décompiler, et mon bot passe de 100 lignes à 800 lignes Oo)

Merci à ceux qui prendront la peine de m'avancer dans mon apprentissage de autoit ^^
Au passage, ça existe des "profs particuliers" pour la programmation via le net ? c'est cher ? serieu ? car j'aimerais vraiment me remettre au C/C++, que j'ai fail lamentablement

EDIT : mon bot est pret, il ne me reste plusque à savoir ramasser uniquement les gold... mais il y a un problème :

Le bot tue les monstres (cette partie ne pose pas de problème)
; ramassage drop
Do
$nbgold = 1
$coord_gold = PixelSearch (0, 0, 1024, 768, "0xFFCC55")
If not @error Then
MouseClick ("Left", $coord_gold [0], $coord_gold [1])
Else
; resign
Sleep (1000)
Send ("{BS}")
Sleep (100)
Send ("{NUMPADDIV}")
Sleep (100)
Send ("resign")
Sleep (200)
Send ("{ENTER}")
Sleep (3000)
MouseClick("left", 514, 415, 1)
Sleep (1000)
Sleep (6000)
EndIf
Until $nbgold = 26
Wend

En fait le truc qui m'arrive, c'est que lorsque le bot a tué les monstres, et qu'il commence le ramassage des gold, si il y a un gold, il est ramassé (je pense, pas encore eu l'occasion d'en trouver un), mais surtout, après la phase de recherche de gold, il lance la suite (ce que j'ai mis dans Else) en boucle, en gros après le ramassage, ça abandonne en boucle la partie, d'où vient le problème ?

Mon script se compose comme ceci :
While 1 --->si GUI fermé = exit
..............l
..............l-> Bouton 1 = passer le jeu au 1er plan+ redimension + While 2------>Bot tue les mobs puis ..............l..........................................................................récupère les gold si il y a (premier spoiler)
..............l
..............l-> Bouton 2 = Exit
.........->EndSwitch
Wend
 

DARK-APO

Membre actif
Sep 4, 2011
314
0
321
Pour le I/, pour rechercher un gold, tu peux faire une recherche de pixel comme tu l'as mis dans ton EDIT , donc je suppose que cette partie la est bonne.

Pour le II/, While signifie "tant que", tu met donc une condition dedans, si tu veux que ca le fasse à l'infinie tu peux mettre while (1).
Personnellement je ne fais pas de GUI (je suis en console en C++), mais pour l'organisation du code si je récapitule :
----taches----
Tue montre
Vérifie gold
----------------
Donc je verrais bien :

--------------------------------------------------------------------
Func combat ()
.... ta fonction de combat
Endfunc

Func gold ()
/* Ta fonction de vérification gold */
Pixelsearch (.....)
If not @error then
....
Endif
If @error then
Sleep (1)
Endif
Endfunc


While (1)
combat()
gold()
Wend

-------------------------------------------------------------------------
Dans ma boucle principale je fais toujours appels aux fonctions personnellement.
Évite de mettre tout autre while dans combat() ou gold () car sinon ça s’arrêterait bêtement à cet endroit la ...


3/ Les cours en effet sont très cher, pour des particulier c'est dans les 50€ de l'heure mais avec la déduction fiscale ça tombe a 30€ il me semble.
Après via le net, il existe des "cours", mais je n'en sais pas assez pour te dire si tu as un vrai prof qui te consacre du temps et tout ...
 

gavau

Membre actif
Aug 16, 2011
159
0
917
34
problème réglé, j'ai refait mon bot de A à Z grâce à DARK-APO, au lieu de faire un enchaînement de commandes à la con suivi d'un fonction, j'aiannoncé mes fonctions et leur contenu (farm, puis ramassage des drop (x3 pour être sur), puis abandon de la partie), ce qui donne :

Func Farm ()
....le bot
EndFunc

Func Gold ()
If not @ error Then
.... Identification du pixel jaune puis click dessus
If @ error Then
..... Sleep (100)
EndFunc

Func Resign ()
..... le Bot tape /resign
EndFunc

Et au final la boucle devient très simple, clair aérée
While 1
..... Farm ()
..... Gold () ; 3 fois pour être sur de ne pas rater de gold en cas de chance monumentale
..... Gold ()
..... Gold ()
..... Resign ()
Wend

Au final moins de lignes, code plus clair, moins de chance de se tromper, avec mon ancien script pour faire la triple verification de gold, j'aurais ajouté une 30aine de lignes alors que là seulement trois lignes ^^ en plus les boucles sont carement plus simples à faire, bref, magnifique aide reçue :D, très bon prof et très patient face à mon noobisme avancé ^^
Plus que à régler mon problème d'image dans ma GUI qui s'affiche pas (je pensais que ça pouvait s'afficher par le biais d'une URL, mais non ^^)