Crée un BOT Nostale

    Publicités

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

xg7xg7pat

Membre Banni
Sep 17, 2011
52
0
311
[Tutoriel]

Création d'un BOT Nostale comme celui de Manny.

Lien:Bot de Manny


Le but du BOT:

1) Attaquer
2) Ramasser les objets
3) Utiliser des sorts
4) Pouvoir aller sur Internet tous en utilisant le BOT

Ils y en a peu être qui croit que c'est dur de faire cela,
Je vous stop tous de suite, j'ai apris a programmer il y a 1 semaine, et j'ai réussi a le faire.

Vous avez besoin de :

- Autoit
- Koda ( pas obliger, c'est pour crée des GUI )
- un cerveau en état de marche ...

----------------------------------------------------------​

Premièrement, vous devez crée un Fenêtre avec Koda.
Crée un Bouton seulement .

Vous devriez avoir quelque chose comme sa :

212509Image1.jpg

Maintenant, faites OUTILS >> Générer le code de l'interface .

Vous devriez avoir quelque chose comme sa :

#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Nostale", 342, 440, 511, 220)
$Button1 = GUICtrlCreateButton("Button1", 136, 168, 75, 41)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit

EndSwitch
WEnd

Le plus facile est fait ;)

Maintenant que l'ont a notre Fenêtre et notre beaux bouton, il va falloir lui dire quoi faire a se bouton ...
Sinon, il ne sert a rient ><

Le bouton doit faire :

1) Afficher un message comme quoi le BOT va se lancer
2) Ont doit crée une Boucle dans lequel ont appellera la Fonction Sectionner les moob, Ramasser les objets, Attaquer avec des sorts.

Let's go ?

#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Nostale", 342, 440, 511, 220)
$Button1 = GUICtrlCreateButton("Button1", 136, 168, 75, 41)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1

While 1

ToolTip("NostaleBot BOT = ON ", 0, 0)
RAMASSE()
SELECTMOB()
COMBAT()

WEnd


EndSwitch
WEnd

Bien, maintenant ont crée les Fonctions .....

Mais avant sa il faut s'avoir comment dire au programme d'appuyer sur tel ou tel touche ....

Vous allez peut être vous dire avec Send :

Send("r")

C'est pas sa que l'ont cherche car si ont fait sa, Cela va appuyer sur la touche R dans la fenêtre active.

Nous ont veut que l'ont appuie sur R que dans Nostale.

Vous ne voyez pas ?

Ont va utiliser ControlSend

Je vais vous donnez un exemple avec le Bloc Note, ensuite essayer de faire de même avec Nostale, car le meilleur moyen de progresser et d'essayer !



ControlSend("[CLASS:Notepad]", "", "Edit1", "This is a line of text in the notepad window")


C'est quoi "[CLASS:Notepad]" humm a vrais dire, je ne c'est pas exactement donc je ne préfère pas tros en dire dessus.

C'est selon moi un NOM, ont l’obtient grace a Autoit windows info

215440Iamge2.jpg

Vous avez tous pour réussir !!!
Donc finit de dormir et essayer par vous même.

Vous avez pas un intérrer a cliquer sur se bouton avant d'avoir trouver la solution !

#RequireAdmin


HotKeySet("{F8}", "Pause")
HotKeySet("{F10}", "Quitter")
Global $PAUSE


#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Nostale", 342, 440, 511, 220)
$Button1 = GUICtrlCreateButton("Button1", 136, 168, 75, 41)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1

While 1

ToolTip("NostaleBot BOT = ON ", 0, 0)
RAMASSE()
SELECTMOB()
COMBAT()

WEnd


EndSwitch
WEnd

Func SELECTMOB()
Sleep(500)
ControlSend("[CLASS:TNosTaleMainF]", "", 0, "{SPACE}")
EndFunc

Func RAMASSE()
Sleep(500)
ControlSend("[CLASS:TNosTaleMainF]", "", 0, "r")
EndFunc


Func COMBAT()
Sleep(100)
ControlSend("[CLASS:TNosTaleMainF]", "", 0, "1")
Sleep(100)
ControlSend("[CLASS:TNosTaleMainF]", "", 0, "2")
Sleep(100)
ControlSend("[CLASS:TNosTaleMainF]", "", 0, "3")
Sleep(100)
ControlSend("[CLASS:TNosTaleMainF]", "", 0, "4")
EndFunc



Func ATTENDRE()
While 1
ToolTip("NostaleBot ...", 0, 0)
Sleep(7000)

WEnd
EndFunc

Func PAUSE()
$PAUSE = Not $PAUSE
While $PAUSE
ToolTip("NostaleBot = OFF", 0, 0)
Sleep(400)
WEnd
EndFunc

Func QUITTER()
ToolTip("NostaleBot Fermeture ", 0, 0)
Sleep(1000)
Exit

EndFunc
 

Rhutz

Membre
Apr 4, 2013
13
1
904
30
Désolé de up un sujet aussi vieux mais quelque chose me passe par la tête,
J'ai dans l'idée de faire mon propre bot, j'ai beaucoup hésité entre le C ou l'autoit étant donné que je n'ai pas beaucoup de connaissance en autoit (même si c'est plutôt simple il faut l'avouer ).
Mon problème étant que je voudrai faire quelque chose de concret, pas juste un bot qui spam une touche non stop donc j'aimerai savoir si pour les connaisseurs d'autoit c'est possible de crée une interface qui récupérera la vie actuel du personnage (et des mates, a config), le chat du jeu et qui pourra spam des touches en fonction de tel ou tel prérequis avec certain cd. Qu'en pensez vous ? Es-ce que c'est faisable en autoit ou pas du tout ?
 

ragnarock

Membre actif
Mar 22, 2010
194
0
917
Salut,

Le problème n'est pas vraiment le langage, mais plutôt la récup' des infos du jeu. Si tu fais ça via la mémoire c'est tout à fait faisable avec AutoIt (cherches l'include NomadMemory.au3 pour 2-3 fonctions utiles). Si tu veux faire ça via les sockets ça risque d'être plus facile en C.

Mais si tu connais le C, t'as aucune raison d'utiliser AutoIt, qui est lui même un wrapper (c'est surement pas le bon mot, mais là je cale...) de fonctions écrites en cpp. La seule diff est que tu vas prendre peut-être plus de temps si tu fais ça en C.
 

Rhutz

Membre
Apr 4, 2013
13
1
904
30
Bah le problème c'est qu'avec le C j'ai pas mal de problème concernant la récupération des informations et l'envoie de commandes.

En autoit l'envoie de commandes et de move souris ce fait plutôt facilement donc c'est pas trop un problème, par contre la récupération d'informations je sèche.
D'ailleurs, je n'ai aucune idée de ce que tu veux dire par faire sa via la mémoire et les sockets j'ai pas encore appris en C comment les gérés (j'ai oublié de précisé, j'ai de bonne bases en C mais j'suis pas un pro non plus ^^)
 

ragnarock

Membre actif
Mar 22, 2010
194
0
917
En gros via la mémoire ça veut dire passer par les fonction Ce lien n'est pas visible, veuillez vous connecter pour l'afficher. Je m'inscris!/Ce lien n'est pas visible, veuillez vous connecter pour l'afficher. Je m'inscris! pour retrouver les valeurs que tu recherches dans la mémoire du process.
Mais faut au préalable trouver où se situe ce que tu cherches dans la mémoire (trouver les adresses). Pour ça faut soit passer par Cheat Engine (ou autre...), soit désassembler le programme.

Via les sockets ça veut dire intercepter/modifier/créer/... les messages envoyés du serv' au client sur ton ordi et inversement.

Pour les 2 méthodes y'a pleins de tuto sur le net.

Et comme je l'ai dit, pour le langage, prends celui qui t'intéresse le plus^^ y'a pas de fonction pré-faites en C pour simuler des clics/touches, mais ça se crée facilement avec l'api Windows.
 

RintoX

V
Jul 29, 2013
1,017
7
764
25
In the No Pain No Gain Land
Que signifie toute Cette section ?

#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Nostale", 342, 440, 511, 220)
$Button1 = GUICtrlCreateButton("Button1", 136, 168, 75, 41)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

---------- Message ajouté à 02h32 ---------- Le message précédent était à 02h23 ----------

Ah ok c'est le GUI , mais comment je le fais moi même car tu ne sera pas toujours là pour me le donner ^^

De plus , j'aimerais savoir celui ci s'il te plaît ;):
[CLASS:TNosTaleMainF]
 

Evaelis

La Voix de la Sagesse
V
Ancien staff
Apr 28, 2010
22,949
468
1,699
Valhalla
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
On inclue les librairies
$Form1 = GUICreate("Nostale", 342, 440, 511, 220)
$Button1 = GUICtrlCreateButton("Button1", 136, 168, 75, 41)
GUISetState(@SW_SHOW)
On créait des contrôles pour la fenêtre et on l'affiche
[CLASS:TNosTaleMainF]
Cela désigne une fenêtre si je ne me trompe pas, en utilisant son nom de processus
 

BrickMe

Membre actif
Jul 15, 2013
180
0
742
Proxima du Centaure
#include permet d'inclure un script autoit dans ton script.

Ce sont des scripts pré-faits et généralement documentés.

Par exemple t'as un fichier A qu'on nommera "fichierA.au3" qui contient la fonction A

Code:
Func FonctionA()

MsgBox(0, "", "")

EndFunc


Dans un fichier B si tu écris #include <fichierA.au3> tu pourras alors utiliser la fonction FonctionA() sans l'avoir mise en entière dans ton fichier B.

Code:
#include <fichierA.au3>

FonctionA()