KillCounter

Aus AutoItBot

Wechseln zu: Navigation, Suche

In diesem Tutotrial werde Ich euch zeigen wie man einen Kill Counter, der eure Kills in einem MMORPG oder RPG zählt, coded.
Ihr benötigt hierfür:
- Ein geeignetes MMO/RPG(HP Bar der Monster/Gegner muss vorhanden sein!)
- Ein Script Editor für AutoIt (Beispielsweise Scite Download: Scite)
- Ein Tool um Mauskoordinaten + Farbe herauszufinden (Hier: MouseColor)
- Ein wenig Zeit

Installiert alles was ihr benötigt: Scite, MouseColor und euer MMO/RPG!

Nun erstellt ihr euch einen Ordner für euer neues Projekt um alles übersichtlich zu halten, nennt ihn wie ihr wollt.
Nun stellt ihr per Kontextmenu(Rechtsklick in euren Ordner) ein neues *.au3-Script und nennt es am besten KillCounter.au3 oder einen anderen beliebigen Namen.

In eure KillCounter.au3 fügt ihr folgenden Code ein:

#include <GUIConstants.au3>
#include <WindowsConstants.au3>

$Form = GUICreate("Kill Counter", 73, 21, 0, 0,$WS_POPUP,$WS_EX_TOPMOST)
$Counter = GUICtrlCreateInput("0", 0, 0, 73, 21)
GUICtrlSetState(-1,$GUI_DISABLE)
GUISetState(@SW_SHOW)

While 1
	Sleep(100)
WEnd

Dieser Code erzeugt einen deaktivierten Input im oberen linken Bildschirmrand in ihm werden die Kills gezählt.

Nun müsst ihr einmal euer RPG starten und euch einen Pixel der Monster HP-Bar besorgen, am besten einen der sich am Ende der Bar befindet sodass auch nur tote Monster gezählt werden und nicht nur leicht angeschlagene.
Hier einmal ein Beispiel:
Bild:Monster.jpg
Haltet den Mauszeiger über den gewünschten Pixel und drückt die Leertaste, die Farbe des Pixels sollte sich nun in einem Textdokument des Mausaufzeichners befinden.

In dem Dokument steht nun etwas wie: Position: 701:452 | Color: FFFFFF (Position: $XCoord,$YCoord | Color: $Color)
Diese Daten benötigt ihr im nächsten Schritt.

Nun beginnt die eigentliche Funktion:

While 1
  Sleep(100)
  PixelSearch($XCoord,$YCoord,$XCoord,$YCoord,$Color)
    If Not @Error Then
      While 1
        PixelSearch($XCoord,$YCoord,$XCoord,$YCoord,$Color)
          If Not @Error Then
            Sleep(100)
          Else
            GUICtrlSetData($Counter,GUICtrlRead($Counter)+1)
            ExitLoop
      WEnd
    EndIf
WEnd

In dieser kleinen While-Schleife befindet sich der ganze Code. Hier wird er einmal von oben nach unten erklärt:
-Zuerst wird eine While Schleife gestartet die ständig überprüft ob ein Monster anvisiert ist oder nicht
-Wenn ein Monster anvisiert ist, dann ab in die nächste While Schleife, wenn nicht nochmal überprüfen ob ein Monster anvisiert ist
-Wenn nun ein Monster gefunden wurde wird von der nächsten While Schleife ständig überprüft ob es noch lebt wenn ja weiter überprüfen, wenn nicht, dann den Counter +1 setzen und die While Schleife beenden, danach landet das Programm wieder in der ersten While Schleife, in der überprüft wird ob ein Monster anvisiert ist.

So geht es Monster für Monster weiter.

Euer gesamter Code sollte nun ungefähr so aussehen:

#include <GUIConstants.au3>
#include <WindowsConstants.au3>

$Form = GUICreate("Kill Counter", 73, 21, 0, 0,$WS_POPUP,$WS_EX_TOPMOST)
$Counter = GUICtrlCreateInput("", 0, 0, 73, 21)
GUICtrlSetState(-1,$GUI_DISABLE)
GUISetState(@SW_SHOW)

While 1
  Sleep(100)
  PixelSearch($XCoord,$YCoord,$XCoord,$YCoord,$Color)
    If Not @Error Then
      While 1
        PixelSearch($XCoord,$YCoord,$XCoord,$YCoord,$Color)
          If Not @Error Then
            Sleep(100)
          Else
            GUICtrlSetData($Counter,GUICtrlRead($Counter)+1)
            ExitLoop
          EndIf
      WEnd
    EndIf
WEnd

Pause/Beenden/Fortsetzen über Tray!(Oder man macht sich zB. Hotkeys o.ä. rein)


Wenn ihr nun einen Bot baut könnt ihr zB. solch einen KillCounter in ihm einbauen um hinterher zu sehen wieviel Monster euer Bot gekillt hat.


Persönliche Werkzeuge