Die Klasse ist in Visual C++ (MFC) geschrieben und Unicode kompatibel.
Zur Zeit hat es nur 6 Funktionen:
SendKey(), um einen Tastendruck zu simulieren mit VKs. SendText(), um einen ganzen Text zu senden bzw. einen CString. TargetWindow(), um ein Fensterhandle zu holen. MemoryRead(), um eine Adresse auszulesen. sRead(), um aus einer ini Datei Werte zu lesen. MouseClick(), um einen Mausklick zu simulieren.
Die Funktionen wurden in der Klasse so weit wie möglich vereinfacht, damit man sie leicht benutzten kann. Außerdem sind die Funktionen so programmiert, dass sie im Hintergrund laufen. Sprich wenn der Bot läuft, könnt ihr das Spiele Fenster minimieren und etwas anderes machen.
CBotEngine.h:
PHP Code:
#pragma once
/***************************************************************************
* CBotEngine v 1.0
* SendKey() Sendet einen Tastendruck. Benutztung mit Virtual Key Codes
* SendText() Sendet einen Text. Benutzung mit CString
* TargetWindow() Holt sich den Window Handle
* MemoryRead() Liest Speicheradresse aus
* sRead() Liest einen String aus einer INI Datei aus
* MouseClick() Maus macht einen Klick an einer bestimmten Koordinate
***************************************************************************/
class CBotEngine
{
public:
CBotEngine(void);
~CBotEngine(void);
void SendKey(unsigned int KEY, DWORD DELAY=20);
void SendText(CString strText);
void TargetWindow(CString strWnd);
int MemoryRead(unsigned address);
CString sRead(CString strIniName, CString AppName, CString KeyName);
void MouseClick(int xPos, int yPos, DWORD DELAY=100);
unsigned int *iText;
iText = new unsigned int[strText.GetLength()];
for (int i =0;i <= strText.GetLength();i++)
{
iText[i] = strText[i];
pWnd->PostMessage(WM_KEYDOWN,iText[i],0);
Sleep(70);
}
}
[-]Beispielcode/Benutzung
Ihr müsst als erstes die CBotEngine.h und CBotEngine.cpp in euer Projekt einbinden. Im Anhang hab ich diese nochmal gepackt und dort ist auch eine VKC.h die nochmal die Virutal Key Codes beinhaltet, da (bei mir jedenfalls) in MFC nicht alle Codes definiert sind. Nachdem ihr die Header eingebunden habt, braucht ihr nur euer Objekt erstellen und könnt dann die Funktionen nutzen.
Beispielcode:
Fensterhandle holen und Key Senden, Text Senden
PHP Code:
CBotEngine MyBot; /* Objekt wird erstellt */
CString WindowName = _T("MeinSpiel"); /* CString Variable mit Namen des Spiels wird erstellt */
CString CustomText = _("/giveup"); /* CString Variable mit einem Text wird erstellt */
MyBot.TargetWindow(WindowName); /* CBotFunktion wird aufgerufen und die Variable WindowName übergeben, jetzt haben wir das Handle um an das Fenster senden zu können */
MyBot.SendKey(VK_I); /* Simuliert den Tastendruck, der Taste I und sendet ihn an das Spielefenster. Zum Beispiel um das Inventar zu öffnen */
Sleep(200); /* Damit die nächste Taste nicht zu schnell hintereinander kommt, brauchen wir hier ein Sleep um eine verzögerung rein zu bringen */
MyBot.SendKey(VK_RETURN); /* Drückt die Enter Taste um z.B. den Chat zu öffnen */
Sleep(200);
MyBot.SendText(CustomText); /*Sendet den Inhalt der Variable Custom Text an die Funktion. Das heißt in userem Fall es wird "/giveup" in den Chat eingegeben */
Sleep(200);
MyBot.SendKey(VK_RETURN) /* Es wird nochmal Enter gedrückt. Text im Chat wird also abgeschickt */
Beispielcode #2:
Werte aus einer INI Datei Lesen.
Sagen wir unsere INI Datei (settings.ini) ist so aufgebaut:
So könnt ihr mit Arrays auch mehrere INI dateien auslesen. Wenn ihr z.B. eine update.ini und settings.ini habt, macht ihr CString ininame auch als array und packt beide rein und beim auslesen macht ihr ininame halt auch als array.
[-]Nachwort
Die Klasse sollte eigentlich bei allen Spielen Funktionieren. Ich hoffe ich konnte euch damit etwas Arbeit ersparen. Auch wenn diese Klasse nicht das Gelbe vom Ei ist.
1. ) delete[] iText in SendText vergessen?
2. ) zu deinem dtor: Rule of three (C++ programming) - Wikipedia, the free encyclopedia
3. ) CBotEngine(void); sowas machte man frueher in c, aber nicht in C++.
4. ) Wieso definierst du den ctor/dtor obwohl du garnix drin machst? ^^
Ansonsten nett, obwohl ich persoenlich kein MFC fan bin. ^^
Ja MFC ist Geschmackssache. Ich wurde in der Vergangenheit über Jahre gezwungen MFC zu benutzten, deswegen bin ich auch dabei geblieben. Eigentlich nur aus der Gemüdlichkeit heraus. Wobei eigentlich in dem Source nur CWnd wirklich MFC Spezifisch ist. Kann man also ohne viel Aufwand umschreiben um es auch ohne MFC nutzen zu können.
So ein delete wär wohl nicht schlecht bei SendText. Danke. Hab die Klasse mal so nebenbei geschrieben und eigentlich auch noch nie wirklich verwendet. Nur testweise.
Ja das void kann man weg lassen, muss man aber nicht. Hat soweit ich weiß keinen Einfluss auf die Funktionalität.
ctor und dtor werden bei Visual Studio automatisch mit angelegt wenn man eine Klasse erstellt. Und bin zu faul des weg zu löschen :P ^^
Wie gesagt die Klasse ist nix tolles, bietet aber Leuten die vorher noch nie einen Bot programmiert haben, einen kleinen Einstieg. Ob sie jetzt die Klasse benutzten oder sich nur die Funktionen anschauen und selber nachbauen.
Ja MFC ist Geschmackssache. Ich wurde in der Vergangenheit über Jahre gezwungen MFC zu benutzten, deswegen bin ich auch dabei geblieben. Eigentlich nur aus der Gemüdlichkeit heraus. Wobei eigentlich in dem Source nur CWnd wirklich MFC Spezifisch ist. Kann man also ohne viel Aufwand umschreiben um es auch ohne MFC nutzen zu können.
So ein delete wär wohl nicht schlecht bei SendText. Danke. Hab die Klasse mal so nebenbei geschrieben und eigentlich auch noch nie wirklich verwendet. Nur testweise.
Ja das void kann man weg lassen, muss man aber nicht. Hat soweit ich weiß keinen Einfluss auf die Funktionalität.
ctor und dtor werden bei Visual Studio automatisch mit angelegt wenn man eine Klasse erstellt. Und bin zu faul des weg zu löschen :P ^^
Wie gesagt die Klasse ist nix tolles, bietet aber Leuten die vorher noch nie einen Bot programmiert haben, einen kleinen Einstieg. Ob sie jetzt die Klasse benutzten oder sich nur die Funktionen anschauen und selber nachbauen.
Man sieht das du dich am meisten mit MFC beschäftigt hast, sieht man ja da du die Ungarische Notation vorziehst, wie jeder MFC typ ^^. Ansonsten, zum jeden "new" muss ein "delete" kommen, dass gleiche gilt für "new []" & "delete []" Ich denke mal, dass du das allerdingst schon wusstest, wollts nur mal andeuten, für die anderen die sich den thread anguggn. Ein tipp, du könntest dir "visual assist x" runterladen, top plugin für ms vs, viel besser als die intellisense von ms. Nun, muss weg, cu.
ich find es gut, eine funktion um eine ini zu schreiben wäre vllt noch sinnvoll da man bei einem bot ja auch einstellungen speichert, ist benutzerfreundlicher wenn man das über eine GUI macht als dass die user selbst in der ini rumpfuschen ^^ aber die funktion kann man ja auch selbst einbauen, die funktion zum lesen ist ja schon da kann man ja fast kopieren xD
what is the best class to grind metin2 yang(class selection guide for newbies) 07/07/2012 - Metin2 - 1 Replies Again, I am using Enligsh. So if you cant read it well, just turn to google online translation.
If i am supposed to say or answer what is the best class for grinding metin2 yang in Metin2, of course the most efficiently, i strongly recommand the Warrior, and promote to Sword Warrior at level 5. This class has both high defense and attack, as well as great area attack skill and control skill(I mean the stun skill). I recommend the BM sura as your second choice,because he has the sweetest...
ANybody Knows how to change class to another class 08/20/2009 - Cabal Online - 5 Replies I ve been wondering if a WA could wear a martial set or a wizard could wear battleset..Any one knows how to change class? ;)
Pet Class 06/10/2009 - Rappelz - 3 Replies Hi people,
I want to know, what kind of pet class should I pick - I only thinks about GAIA and DEVA one, to be honest I don't like ASURA as much as these two :).
So... what should I pick - evoker or breeder? What's the + and - of these two?
Class change to TBC Class (bloodelf & Danei) 11/03/2006 - World of Warcraft - 127 Replies habe das hier vor kurzem mal im icq gesendet bekommen, hoffe das steht hier noch net ^^
es ist zwar buggy z.b. wenn ihr ein troll mit tatoos in der fratze habt usw aber man kann es durch aus usen.
am besten neuen char machen und richtig einstellen :).
Anleitung:
ladet die datei runter in euer World of Warcraft\Data ordner und benennt sie in speech2.mpq um, dan einfach in wow einloggen
wenn es ein stick wert ist bitte sticken :)