Ich habe mich entschlossen auch mal mit Autoit anzufangen und solche einfachen Leertasten Bots u.ä. bekomm ich auch hin aber irgendwie hab ich grade Probleme mit nem Pixelsearch Bot und zwar:
Mein Bot soll einen selbst Auswählbaren Bereich Nach einer Bestimmten Farbe "absuchen" und wenn diese Farbe kommt soll er einen Ton von sich geben - gleichzeitig soll er aber auch Botten. Mein script sieht im Moment so aus:
Für die Profis unter euch vermutlich sehr schlecht geschrieben^^
Aber egal, auf jeden Fall funktioniert der Bot nicht, denn wenn ich Dann F1 drücke um den Bot zu starten kommt ein Fehler der besagt:
Code:
$pixel=PixelSearch($p1,$p1,$p2,$p2, "0x" & Hex($color,5),5)
$pixel=pixelSearch(^ERROR
Error:Variable used without being declared.
Achja und Außerdem kann ich die Koordinaten nur bestimmen wenn Nostale nicht im Vordergrund ist 0.o? Kann man das irgendwie richtig machen?
Falls jemand eine Idee haben sollte, wie man das richtig macht, ist vermutlich für die meisten hier eine Sache von 3 Minuten, dann wäre es schön, wenn ihr mir helfen könntet!
Achja sorry für den langen Text! =)
Edit: Cool mein 123. Beitrag xDDD
Zu deinem Hauptfehler würde ich sagen, das du erst die anderen Hotkeys drücken musst und dann erst F1. Weil in der Funktion _starten werden
$p1, $p1 ,$p2 ,$p2 und $color abgefragt.
Diese Variablen werde aber erst in den Anderen Funktionen bestimmt.
Schreibe am besten das an den Anfang des Skriptes:
Code:
Global $p1,$p2,$color
Und in die Funktion starten()
Code:
If $p1 = "" Then
MsgBox(0,"","Bitte Punkt 1 bestimmen.")
Return
ElseIf $p2 = "" Then
MsgBox(0,"","Bitte Punkt 2 bestimmen.")
Return
ElseIf $color = "" Then
MsgBox(0,"","Bitte die Farbe bestimmen.")
Return
EndIf
Außerdem hast du in der While Schleife die Punkte falsch kontrolliert.
So müsste es aussehen:
Hallo, der Befehl Beep(500, 1000) ist richtig und funktioniert bei mir auch.
Der Ton ist nur relativ leise also überprüfe am besten noch mal ob du den Ton vielleicht nicht einfach überhört hast.
Ansonsten kann man auch mit dem Befehl "Beep" kleine Spielereien machen wie z.B. Songs.
Dann scheint er wohl nicht in deine Bedingung rein zu springen wenn weder der Beep noch das Exit klappt.
Hast du mal versucht das Array ausgeben zu lassen und geschaut ob da überhaupt was drin steht?
Weil in deiner Bedingung fragst du ja ab ob $pixel ein Array ist oder nicht, und nur wenn es eins ist springt der ja zum Beep.
Also schau am besten mal ob $pixel überhaupt als Array ankommt und wenn ja ob da überhaupt was drin steht.
Das wäre es eine Sache die mir spontan einfällt und die ich auch überprüfen würde.
Ich geh mal davon aus dass dein Programm in der While Schleife die ControlSend Befehle ausführt.
Somit kommentiere einfach mal deine Bedingung aus (If) und lass dir die Variable $pixel mal in einer MessageBox ausgeben.
Ansonsten schreib mir per PM mal deine Icq Nummer falls du Icq nutzt dann kann ich dir da vlt. besser weiter helfen.
Wenn du ansaztweise in die Hilfe geschaut hättest, dann wüstest du jetzt das MouseGetPos ein Array zurückgibt. $p[1] = x und $p[2] = y
So da dies geklärt ist, gibt es eine verbesserung:
Dein Script sollte eine Warnung geben. Undzwar das $p nicht declariert ist.
Schreib mal ganz oben hin: Global $p, $p2, $color
So dann beim Pixelsearch wandelst du dein Wert in ein Hex wert um. Für was?
AutoIt kanns auch so lesen, es wandelt eher dein Hex Code in ein Dec Code zurück
mfg Freaky
Okay danke, aber das hat eigentlich auch Trojan schon gesagt...
Naja Kann mal irgendjemand testen obs bei ihm geht? Bei mir kommt nichts Ich kann alles festlegen und er bottet auch, aber es kommt kein Ton oder irgendwas!
Oder falls jemand ein besseres script hat oder machen könnte wäre es mir auch recht^^
Ich könnte natürlich auch 2 Bots machen, einen Normalen Bot und einen der die ganze Zeit kontrolliert ob jemand was flüstert, aber in einem Bot fände ich das besser!
Ich hab den Beep schon einfach so als Befehl getestet und ich hab ihn klar und deutlich gehört, Ich weiss nicht was falsch ist 0.o?
vermutlich was daran:
Code:
While 1
$pixel=PixelSearch($p1[0], $p1[1] ,$p2[0] ,$p2[1], "0x" & Hex($color, 5), 5)
If isArray($pixel) then
Beep(500, 1000)
Endif
[....]
WEnd
Achja das mit dem Beep Test ist ja mal witzig vorallem wenn man (wie ich) Als Minianwendung einen Spectrum Analyser hat^^
AutoIt Pixelsearch Problem 05/26/2010 - General Coding - 20 Replies Hallo Users,
ich habe mir gedacht ich schreib mal einen Bot für Nostale der beim Minigame Steinbruch immer lvl 5 Belohnung holen soll. Nur das Problem ist dass ich nicht weiss wie ich mit Pixelsearch umgehen soll, also hab ich mir den Pixelsearch-Teil von einem Bot rüberkopiert. Doch mein Bot will jetzt nicht funktionieren
So sieht der jetzt im Moment aus
Beim roten Teil liegt mein Problem. Kann mir bitte einer helfen? :handsdown:
mfg
Mr.K
Kleines Problem mit PixelSearch 04/08/2010 - AutoIt - 4 Replies Da bin ich mal wieder >_>
Is eig ganz simpel:
Do
$pixel2=PixelSearch(351,249,431,532,0xFFFFFF, 5)
Until IsArray($pixel2)
If IsArray($pixel2) Then
If $get2 = "German" Then
MouseClick(360, 346)
ElseIf $get2 = "English" Then
MouseClick(400, 293)
AutoIt PixelSearch Problem 02/07/2010 - AutoIt - 3 Replies Hi,
Ich bin gerade an einem Bot,
beschäftigt und möchte in diesem Bot gerne PixelSearch benutzen
Nur wenn ich das in einer While Schleife mache klickt er nur noch und macht die anderen Sachen nicht mehr ..
Hoffe ihr könnt mir helfen
Mfg Selman99
pixelsearch problem 09/27/2009 - GW Bots - 4 Replies hi,
will mir nen bot schreiben komme aba ned weiter QQ
also er soll etwas solange tun bis er via pixelsearch die angegebene farbe ned mehr findet. so weit so gut nur bekomme ich das nich so richtig hin QQ.
hier meine versuche:
nr1:
do
send("1")
sleep(200)
send("2")
[AutoIt] Problem mit PixelSearch. 08/19/2007 - General Coding - 3 Replies Moin moin.
Ich hatte die Idee, dass man mit AutoIt ein PickIt Programm fuer D2 schreiben koennte. Hier erstmal der Code..
Soweit, so gut.. hm. Meine Idee dahinter war es, dass ich ein Script einfach nach der Farbe des Unique Tags in D2 (#958166) suchen und dann einen Mausklick auf das/die entsprechenden Pixel ausfuehren lasse..
Problem: Zurzeit funktioniert daran nichts, ausser die Terminate Funktion. Vielleicht kann mir ja jemand auch diesmal weiterhelfen ;>