[Hilfe] Bei meinen ersten Bot

07/30/2009 22:20 razeakrait#1
Hallo,
Ich interessiere mich jetzt schon länger für AutoIT, und habe jetzt schon viele Sch*elerVZ-Spam Bots, und Account-Stealer und all sowas geschrieben, nun hab ich mich an meinen ersten Guild Wars Bot gewagt, er soll in Factions beim Marktplatz farmen.
Das Fight-Script funktioniert soweit, nur am Anfang hab ich ein Problem mit den Befehl "CheckArea"
also wenn ich das Script starte, beendet es sich sofort,
es passiert leider nichts,
ich hoffe ihr könnt mir helfen.
(Ich benutze die Funktionen von Stables GWAddon)

PHP Code:
#include <GWAddon.au3>
$Fenster "Guild Wars"
$range 400

Func start
()
    If 
CheckArea ($Fenster1331816401$rangeThen
        MoveTo
($Fenster,13306,16417)
        
MoveTo($Fenster,13034,16525)
        
MoveTo($Fenster,12602,16295)
        
MoveTo($Fenster,11971,15728)
        
MoveTo($Fenster,11683,15448)
        
MoveTo($Fenster,11590,15357)
        
MoveTo($Fenster,11541,15310)

    ElseIf 
CheckArea ($Fenster13322718193$rangeThen
        MoveTo
($Fenster,12979,18209)
        
MoveTo($Fenster,12737,18001)
        
MoveTo($Fenster,12729,17645)
        
MoveTo($Fenster,12805,17284)
        
MoveTo($Fenster,12808,16569)
        
MoveTo($Fenster,12629,16320)
        
MoveTo($Fenster,12120,15935)
        
MoveTo($Fenster,11648,15463)
        
MoveTo($Fenster,11575,15371)
        
MoveTo($Fenster,11515,15292)

    ElseIf 
CheckArea ($Fenster116511717$rangeThen
        MoveTo
($Fenster,11721,17001)
        
MoveTo($Fenster,12321,16875)
        
MoveTo($Fenster,12750,16722)
        
MoveTo($Fenster,12814,16545)
        
MoveTo($Fenster,12564,16272)
        
MoveTo($Fenster,11727,15472)
        
MoveTo($Fenster,11581,15325)
    EndIf
EndFunc

start
() 
07/30/2009 22:22 kknb#2
vor dem laufen preparemoveto() danach stopmoveto() wenn du durch nen portal gehen willst den run mit keepmoveto() beenden.
07/30/2009 22:28 razeakrait#3
Also sollte ich lieber die TT6 Funktionen Sammlung benutzen? Nicht die von ValvePro? Denn da gibt es diese Befehle leider nicht.
07/30/2009 22:43 kknb#4
huch sry dachte das wären die moveto funktion aus der tt6. welche du nimmst das ist dir überlassen, ich persönlich würde die tt6 bevorzugen weil man da einfach weiß was man hat. da es open source ist. nichts gegen valve, aber bei ner dll weiß man nie was da noch so drinsteckt.

falls die funktionen von valve nicht bei dir laufen, dann kann es sein du du die dll nicht ordnungsgemäß injeziert hast.
07/30/2009 22:52 razeakrait#5
Okey ich werde dann zukünftig die TT6 nehmen, auch wenn ich leider noch nicht die Syntax vom CheckArea Befehl bei TT& verstanden habe. =/
07/30/2009 22:58 kknb#6
joa bei der tt6 liegt ne readme datei mit bei, dort sind alle wichtigen sachen erklärt.
07/31/2009 16:42 razeakrait#7
also ich bin jetzt so weit:
PHP Code:
#include <tt6.au3>

$range 300

WinActivate 
("Guild Wars")
_levelgo()
Func _levelgo()
    If 
checkarea(13344,16370Then
        PrepMoveTo
()
        
moveto(1,13300,16401)
        
moveto(1,12985,16502)
        
moveto(1,12531,16270)
        
moveto(1,11984,15781)
        
moveto(1,11747,15537)
        
moveto(1,11670,15457)
        
moveto(1,11590,15375)
        
moveto(1,11553,15337)
        
moveto(1,11499,15281)
        
KeepMoveTo()

    ElseIf 
checkarea(11648,16997Then
        PrepMoveTo
()
        
moveto(1,11947,16985)
        
moveto(1,12283,17113)
        
moveto(1,12681,17253)
        
moveto(1,12785,16924)
        
moveto(1,12640,16403)
        
moveto(1,12323,16033)
        
moveto(1,11986,15702)
        
moveto(1,11707,15425)
        
moveto(1,11610,15331)
        
moveto(1,11533,15258)
        
KeepMoveTo()

    ElseIf 
checkarea(13304,18209Then
        PrepMoveTo
()
        
moveto(1,13311,17980)
        
moveto(1,13329,17496)
        
moveto(1,13344,17066)
        
moveto(1,13174,16615)
        
moveto(1,12589,16254)
        
moveto(1,12153,15910)
        
moveto(1,11706,15486)
        
moveto(1,11576,15346)
        
KeepMoveTo()
    Else
        
moveto(1,12841,17732)
        
moveto(1,12843,17321)
        
moveto(1,12805,16568)
        
moveto(1,12531,16144)
        
moveto(1,11946,15637)
        
moveto(1,11600,15378)
        
moveto(1,11525,15316)
    EndIf

EndFunc 
Nur leider bleibt es das gleiche Problem wie vorher,
der Bot startet, und beendet sich sofort wieder, ohne das etwas passiert.
07/31/2009 16:49 InToxic#8
Quote:
Originally Posted by razeakrait View Post
also ich bin jetzt so weit:
PHP Code:
#include <tt6.au3>

$range 300

Func _levelgo
()
    If 
checkarea(13344,16370Then
        PrepMoveTo
()
        
moveto(1,13300,16401)
        
moveto(1,12985,16502)
        
moveto(1,12531,16270)
        
moveto(1,11984,15781)
        
moveto(1,11747,15537)
        
moveto(1,11670,15457)
        
moveto(1,11590,15375)
        
moveto(1,11553,15337)
        
moveto(1,11499,15281)
        
KeepMoveTo()

    ElseIf 
checkarea(11648,16997Then
        PrepMoveTo
()
        
moveto(1,11947,16985)
        
moveto(1,12283,17113)
        
moveto(1,12681,17253)
        
moveto(1,12785,16924)
        
moveto(1,12640,16403)
        
moveto(1,12323,16033)
        
moveto(1,11986,15702)
        
moveto(1,11707,15425)
        
moveto(1,11610,15331)
        
moveto(1,11533,15258)
        
KeepMoveTo()

    ElseIf 
checkarea(13304,18209Then
        PrepMoveTo
()
        
moveto(1,13311,17980)
        
moveto(1,13329,17496)
        
moveto(1,13344,17066)
        
moveto(1,13174,16615)
        
moveto(1,12589,16254)
        
moveto(1,12153,15910)
        
moveto(1,11706,15486)
        
moveto(1,11576,15346)
        
KeepMoveTo()
    EndIf
EndFunc 
Nur leider bleibt es das gleiche Problem wie vorher,
der Bot startet, und beendet sich sofort wieder, ohne das etwas passiert.
Schonmal daran gedacht die Funktion auch aufzurufen?!
07/31/2009 16:54 razeakrait#9
hab ich gemacht, hat nichts geholfen,
is auch bei mir drin, hab nur vergessen in den code zu stellen.
funktioniert aber trotzdem nicht.
07/31/2009 16:58 InToxic#10
Dann mach mal ein
PHP Code:
Else

msgbox(0,"","Wrong Position"
rein, um zu gucken, ob du vllt an der falschen Stelle bist o.Ä.
07/31/2009 17:01 razeakrait#11
ja ich bekomme nun die Fehlermeldung,
dabei habe ich die Koordinaten mit kknb´s waypointer aufgezeichnet, und auch (meines wissens) die akutellsten Speicheradressen benutzt.
07/31/2009 17:03 InToxic#12
stell doch mal alles hierrein, dann kann ich dir auch weiterhelfen
07/31/2009 17:46 buFFy!#13
Mit Sicherheit stimmt einer der folgenden Punkte nicht:

-Aktuelle Speicheraddressen
-Funktion aufgerufen
-Richtige Koordinaten
-Else-Befehl mit Begründung.

Das Problem an der TT6 ist, das er dir halt nur sagt das es nicht so ist / das es so ist.
Sollte aber der fall False eintreten ist es halt False ohne SetError, d.h. Fehleranalyse mehr als kompliziert.

Check Area hat als Returnvalue nur 1/0 und keine weiteren werte die dir z.B. sagen das die Memories möglicherweise nicht aktuell sind oder deine Koordinaten garnicht vorhanden / falsch sind.

Die Spielerei mit den verschiedenen Modi beherrscht die tt6 gut.. den Rest leider nur mäßig.
07/31/2009 17:52 emtec22#14
checkarea(11648,16997) lohnt sich nur für feste Punkte wenn der Platz nun voll ist ist der char +-50 entfernt davon , d.h. du solltest dir eine Areafunction bauen, dann dort einstellen das er eben +-200 xy werte sucht und dann haste den spawn in einem grossen raum abgesichert
07/31/2009 18:20 razeakrait#15
Danke für Eure antworten, dann steige ich doch lieber wieder auf Valves MoveTo um, da es einen CheckArea befehl mit "Range" hat.
mfG