Bräuchte mal eure Hilfe

07/19/2010 22:15 Darkbanner#1
Hallo :)
Ich bin grade dabei mit Auto Hot Key einen Bot für Famerama zu schreiben, klappt schon fast :D
Ich hab da nur ein problem!
Bei jeder Bildschirmauflösung müsste der Bot ja wo anders ghinklicken oder je nachdem ob jemand runtergescrollt hat oder so klickt der bot ja uach daneben :(
ich bräuchte einen script, dass de ruser am aufgefordert wird die felder die der bot anklicken soll anzuklicken.
Also so:
1. Eine Msg Box oder ähnliches mit diesem inhalt "bitte klicke die zu bepflanzenden und felder an.
2. der bot übernimmt den klick als variable (z.b. x=213, y=498)
3. er übernimmts im script:
MouseClick, left, %x%, %y%

Da fällt mir grad nochwas ein o.O :D
Am anfang müsste man dann natürlich festlegen können wie viele klicks er machen müsste also wie viele felder es sind und nach jedem klick auf ein zu bepflanzendes pfeld müsste der bot dann natürlich am besten pixel scannen um z.b. auotmatisch auf die position des salats wählen.


Hier ein beispiel wie es am ende mit dem klciken ausehen sollte im script:

Code:
Progress, b w200, Bitte warten, Pflanzen, FarmeramaBot Beta
MouseClick, left,  %x1%,  %y1% 
Progress, 1
Sleep, 200
MouseClick, left, %POSITON DES SALATES%
Sleep, 200
Progress, 3
MouseClick, left,  %x2%,  %y2% 
Sleep, 200
MouseClick, left,  %POSITON DES SALATES%
Sleep, 200
MouseClick, left,  %x3%,  %y3%
Früher wusste ich mal wie es geht :/
Bite helft mir! :D

Danke im Vorraus :)
07/19/2010 22:53 djpromo#2
Dafür habe wir eine AutoIt Sektion,


#moved
07/19/2010 22:56 Darkbanner#3
oh sorry ^^
hab ich nicht gesehen
07/19/2010 22:57 PenGuin :O#4
´Schau dir mal _IsPressed und MouseGetPos an (in der Hilfe)

Kleines Beispiel:

Code:
#include <Misc.au3>

MsgBox(0, "", "bitte klicke die zu bepflanzenden und felder an.")
$Time = TimerInit()
Do
	If _IsPressed(01) And (TimerDiff($Time) > 200) Then
		$X = MouseGetPos(0)
		$Y = MouseGetPos(1)
		$Time = TimerInit()
	EndIf
	Sleep(50)
Until _IsPressed(23) ;Ende drücken um das Speichern zu unterbrechen.

MsgBox(0, "", "Zum Klicken bitte F8 drücken.")

While 1
	If _IsPressed(77) Then MouseClick("left", $X, $Y, 1)
	Sleep(50)
WEnd
07/19/2010 23:05 Darkbanner#5
thx, habe damit leider kaum erfahrung ^^
zudem wird dsa so mit ahk nicht klappen :(

neue überlegung

Code:
 MouseGetPos, Xpflanzenfeld1, Ypflanzenfeld1
 MouseGetPos, XSALAT1, YSALAT1
 MouseGetPos, Xpflanzenfeld2, Ypflanzenfeld2
 MouseGetPos, XSALAT2, YSALAT2
MouseClick, %Xpflanzenfeld1%, %Ypflanzenfeld1%
MouseClick, %Xsalat1%, %Ysalat1%
MouseClick, %Xpflanzenfeld2%, %Ypflanzenfeld2%
MouseClick, %Xsalat2%, %Ysalat2%
einzigstes problem:
wie bekomm ich es hin, dass die maus position nur bei dem drücken einer bestimmten taste übermittelt wird?
07/20/2010 01:24 PenGuin :O#6
Ja schau doch meinen Post an.
Beim drücken der linken Maustaste, wird die Position ermittelt.
07/20/2010 01:54 Darkbanner#7
geht das auch mit ner andren taste?
bei mir kommt dann leider nur "misc.a3" couldn't be opend.
kann das sein dass dasproblem einfach dabei liegt dass ich autohotkey benutze?
geht das auch mit irgendeinem "if" befehl?
07/20/2010 18:04 PenGuin :O#8
Es heißt auch "Misc.au3"
Und markier mal "_IsPressed" im Editor und drück F1, wenn du die deutsche Hilfe haben willst, dann geh auf [Only registered and activated users can see links. Click Here To Register...] und schau auf der linken Seite.
In der Hilfe ist eine Tabelle, aller Hexzahlen, für die Tastaturenanschläge.
01 ist linke Maustaste 02 die rechte.
07/20/2010 20:08 Darkbanner#9
Ich benutze AutoHotKey kein AutoIt :D