Hotkayset pause kann mann ein stellen wo er weiter der skribt volgt?
Moin moin leute
ich habe/ schreibe einen bot soweit sogut
wenn ich z.b. F1 drück dann startet der bot
wenn ich dann z.b. F2 drück pausirt der bot
kann mann es hinbekommen das wenn ich dann wieder F2 drücke das er dann in der skribt da weitermacht wo er aufgehört hat?
also das er z.b. da was hinschreibt z.b. pause und wenn ich dann die pause beende macht er ab dem wort pause weiter und löscht er logischerweise dann auch das wort pause in der skribt wieder?
;~ Feld 14 neu
MouseClick ("left",151,867)
Sleep (50)
;~ Feld 15 neu
MouseClick ("left",111,891)
Sleep (50)
;~ Feld 16 neu
MouseClick ("left",210,961)
Sleep (50)
;~ Feld 17 neu
MouseClick ("left",270,936)
Sleep (50)
;~ Feld 14
MouseClick ("left",342,893)
Sleep (0)
;~ Feld 15
MouseClick ("left",401,863)
Sleep (0)
;~ Feld 16
MouseClick ("left",464,836)
Sleep (0)
;~ Feld 17
MouseClick ("left",535,803)
Sleep (0)
;~ Feld 18
MouseClick ("left",575,778)
Sleep (0)
;~ Feld 19
MouseClick ("left",665,734)
Sleep (0)
;~ Feld 20
MouseClick ("left",714,708)
Sleep (0)
;~ Feld 21
MouseClick ("left",777,675)
Sleep (0)
;~ Feld 22
MouseClick ("left",828,646)
Sleep (0)
;~ Feld 23
MouseClick ("left",881,621)
Sleep (0)
;~ Feld 24
MouseClick ("left",953,581)
Sleep (0)
;~ Feld 25
MouseClick ("left",1013,551)
Sleep (0)
;~ Feld 26
MouseClick ("left",1078,520)
Sleep (0)
;~ Feld 27
MouseClick ("left",1264,548)
Sleep (0)
;~ Feld 28
MouseClick ("left",1203,581)
Sleep (0)
;~ Feld 29
MouseClick ("left",1137,613)
Sleep (0)
;~ Feld 30
MouseClick ("left",1069,649)
Sleep (0)
;~ Feld 31
MouseClick ("left",1019,678)
Sleep (0)
;~ Feld 32
MouseClick ("left",961,711)
Sleep (0)
;~ Feld 33
MouseClick ("left",884,749)
Sleep (0)
;~ Feld 34
MouseClick ("left",834,755)
Sleep (0)
;~ Feld 35
MouseClick ("left",767,803)
Sleep (0)
;~ Feld 36
MouseClick ("left",711,834)
Sleep (0)
;~ Feld 37
MouseClick ("left",645,868)
Sleep (0)
;~ Feld 38
MouseClick ("left",590,894)
Sleep (0)
;~ Feld 39
MouseClick ("left",520,939)
Sleep (0)
;~ Feld 40
MouseClick ("left",459,960)
Sleep (0)
;~ New Feld 41
MouseClick ("left",394,989)
Sleep (50)
;~ New Feld 42
MouseClick ("left",350,1009)
;~ Feld 41
MouseClick ("left",901,868)
Sleep (0)
;~ Feld 42
MouseClick ("left",953,843)
Sleep (0)
;~ Feld 43
MouseClick ("left",1018,808)
Sleep (0)
;~ Feld 44
MouseClick ("left",1074,775)
Sleep (0)
;~ Feld 45
MouseClick ("left",1132,746)
Sleep (0)
;~ Feld 46
MouseClick ("left",1199,712)
Sleep (0)
;~ Wartezeit das der char alles geernetet hat
ToolTip ("Auf den Helfer gewartet F1=start F2=pause F3=beenden",1663,942,"Was würd gemacht?")
Sleep (80000)
zunächst mal ist es DAS script, nicht DIE script :P
und nun zu deinem problem... willst du eine pause funktion in dein script einbauen, nutzt du hierfür einen einfachen schalter.
implementieren kann man das zb so:
Code:
HotKeySet("{F1}", 'pause')
Dim $pause = False
While True
If Not $pause Then
<hier kommt dein hauptpart>
EndIf
WEnd
Func pause()
$pause = Not $pause
EndFunc
willst du nun noch an der stelle weiter machen, wo du angefangen hast, kannst du noch einen befehlszähler hinzufügen, und in deinem hauptscript, jeweils den befehl abfragen und ausführen.
da beim groben überblicken deines scriptes alle deine befehle so aufgebaut sind:
Code:
MouseClick ("left",[...],[...])
Sleep ([...])
kannst du dir hierfür eine kleine vereinfachende funktion schreiben:
Code:
Func Click($x, $y, $sleep, $befehl)
If $befehlszaehler = $befehl Then
MouseClick('left', $x, $y)
Sleep($sleep)
$befehlszaehler += 1
EndIf
EndFunc
letztendlich sieht dein script dann etwa so aus:
Code:
HotKeySet("{F1}", 'pause')
Dim $pause = False, $befehlszaehler = 1
While True
If Not $pause Then
Click(1185, 997, 50, 1)
Click(958, 450, 50, 2)
Click(894, 483, 50, 3)
Click(830, 517, 50, 4)
Click(771, 548, 50, 5)
Click(709, 578, 500, 6)
[...]
EndIf
WEnd
Func pause()
$pause = Not $pause
EndFunc
Func Click($x, $y, $sleep, $befehl)
If $befehlszaehler = $befehl Then
MouseClick('left', $x, $y)
Sleep($sleep)
$befehlszaehler += 1
EndIf
If $befehlszaehler > [gesamtanzahl befehle] Then $befehlszaehler = 1
EndFunc
Ich würde alle Klick Koordinaten in ein Array packen und dann alles über eine For Schleife lösen. Bei einer Pause einfach die Zählvariable speichern und später mit dieser die For Schleife fortsetzen.
Macht ja sinn das so zuschreiben also soweit ich das als einanfänger der 5 tage sich damit beschäfit das beurteiln kann :P
Wenn ich dass, aber einbaue und dann "F1" "pause" drücke
dann leuft das scribt trosdem weiter bis er "unten" angekommen ist und dann pausirt es erst.
Warum denn nicht? wenn er da nichtaleine mehr rauskommen soll ist das ja eigendlich geal oder nicht?
weil man in scriptsprachen immer nur als eine art automat arbeitet.
man gelangt von einem zustand in den anderen.
wichtig ist, das die zustände immer alle in EINEM kreislauf bzw EINER endlosschleife laufen. laufen wir plötzlich in eine neue schleife, so sind wir plötzlich in einem neuen Automaten, und haben somit keine übersicht mehr über die zustände des alten automaten.
ein kleines beispiel:
Code:
GuiCreate(..)
$button = GuiCtrlCreateButton(...)
[...]
While True ; Automat 1
$msg = GuiGetMsg()
; $msg enthält nun den jeweiligen zustand des Guis.
; solange wir in Automat 1 Bleiben, haben wir immer den überblick über
; unseren $msg Zustand!
If $msg = $button Then Funktion()
[...]
WEnd
Func Funktion()
While True ; Automat 2
; Wir betreten Automat 2. dementsprechend verlieren wir den Überblick
; über Zustände des Automaten 1. $msg kann nicht mehr aktualisiert
; werden, und ist somit nicht mehr verfügbar. Die folge ist, das wir
; nichtmehr auf guiaktivitäten reagieren können
[...]
WEnd
EndFunc
zusammen gefasst: zustände werden über variablen definiert. starten wir eine neue endlosschleife, gehen sämtliche informationen aus der ersten zwangsweise verloren, bzw müssten wieder neu eingebaut werden, was ein sinnloser mehraufwand wäre.
So thx für die antworten,
Da der bot jetzt ja ziemlich benutzer unfreundlich ist da er nur left wenn der andere die felder genau so hingestelt hat we ich und hald auch die bildschirmauflösung von 1920x1080 haben muss damit der bot bei ihm auch geht hätte ich 2 fragen:
1.
kann mann simpel autoit den ganzen bildschirm scannen lassen und dann hald die felder raussuchen und dann da raufklicken lassen?
2
dann hätte ich noch die idee dass, ich z.b. wenn ich eine belibege taste drücke er die korardinaten von der maus einspeichert und das ich das hald so oft machen kann wie ich will also dementsprechen das er dann nicht nur die eine koradrinate einspeichert sondern
die dann hald hintereinander speichert.
Hier ein Bild von dem spiel :
da er es nicht anzeigt hier noch mal der link :
Erstmal thx für die antworten :P
dann hätte ich noch 2 fragen da der bot jetzt ja nur bei denen leuft /oder hald nur solange wie ich ncihts veränder wenn ich mehr felder hinzufüge muss ich den ja neu schreiben also die koradrinaten überall reinschreiben daher die fragen:
kann ich autoit den ganzen bildschirm scanenn lassen und die felder finden lassen ohne das cih da jeden pixel reinschreiben muss den er scanen soll? wäre ne ziemiche arbeit bei ne auflösung von 1920x1280 und auf nem andern bildschirm gehts dann ja schonwieder nicht...
die 2 wäre das mann eine taste belegt und wenn man die drück speicher er die koradrdinaten in eine "tabelle" und wenn mann den dann ausführt nimmt er die koradinaten? wobei ich mich frage muss ich dann z.b. wenn mann damit mit variablen macht dann müste ich ja wenn ich das für 20 mache immer 20 eingeben und wenn ich mehr hab muss ich es wieder umschreiben oder wie sieht das aus?
So thx für die antworten,
Da der bot jetzt ja ziemlich benutzer unfreundlich ist da er nur left wenn der andere die felder genau so hingestelt hat we ich und hald auch die bildschirmauflösung von 1920x1080 haben muss damit der bot bei ihm auch geht hätte ich 2 fragen:
1.
kann mann simpel autoit den ganzen bildschirm scannen lassen und dann hald die felder raussuchen und dann da raufklicken lassen?
2
dann hätte ich noch die idee dass, ich z.b. wenn ich eine belibege taste drücke er die korardinaten von der maus einspeichert und das ich das hald so oft machen kann wie ich will also dementsprechen das er dann nicht nur die eine koradrinate einspeichert sondern
die dann hald hintereinander speichert.
Hier ein Bild von dem spiel :
da er es nicht anzeigt hier noch mal der link :
Erstmal thx für die antworten :P
dann hätte ich noch 2 fragen da der bot jetzt ja nur bei denen leuft /oder hald nur solange wie ich ncihts veränder wenn ich mehr felder hinzufüge muss ich den ja neu schreiben also die koradrinaten überall reinschreiben daher die fragen:
kann ich autoit den ganzen bildschirm scanenn lassen und die felder finden lassen ohne das cih da jeden pixel reinschreiben muss den er scanen soll? wäre ne ziemiche arbeit bei ne auflösung von 1920x1280 und auf nem andern bildschirm gehts dann ja schonwieder nicht...
die 2 wäre das mann eine taste belegt und wenn man die drück speicher er die koradrdinaten in eine "tabelle" und wenn mann den dann ausführt nimmt er die koradinaten? wobei ich mich frage muss ich dann z.b. wenn mann damit mit variablen macht dann müste ich ja wenn ich das für 20 mache immer 20 eingeben und wenn ich mehr hab muss ich es wieder umschreiben oder wie sieht das aus?
hier ein bild vom spiel:
schon mal ein thx im voraus
Bitte achte auf deine Rechtschreibung und Grammatik!
Func start ()
While 1
$result=_ImageSearch("beetleer.png",1,$x1,$y1,0)
If $result=1 Then
MouseClick ("left",1185,997)
MouseClick ("left"$x1,$y1)
MouseClick ("left",1370,626)
EndIf
WEnd
EndFunc
Func ende ()
Exit
EndFunc
Die Fehlermeldung kommt dann:
Quote:
C:\Users\Orlando\Desktop\Projektordner MWbot autosearch\OrliMwbot.au3 (13) : ==> Variable used without being declared.:
$result=_ImageSearch("beetleer.png",1,$x1,$y1,0)
$result=_ImageSearch("beetleer.png",1,^ ERROR
>Exit code: 1 Time: 4.415
was muss ich tuhn?
Was ich bis jetzt rausgefunden habe ist das der fehler beim bild liegt aber dateifahrt muss ich doch nicht angebenoder? habe die fotos imgleichenordner
fähigkeitsbuch pause 07/14/2010 - Metin2 - 9 Replies huhu
gibt ja sone pause da.. kann man die iwie durch bug oder so wegmachen?
MfG
sry es heißt fertigkeitsbuch-.-
Stuck at pause 04/07/2010 - Shaiya - 3 Replies Hello,
I was woundering if i could get help. I am stuck at the pause stage and when i go to change it to the ">" thing they all go but session. And then they all turn back to pause after lil.
Any help?
Shaiya pause? 10/21/2009 - Shaiya - 2 Replies I'm a new player to shaiya and and a big googler. with the fact i can click 3-4 screens away i thought Wow my duel screen set-up would be wonderful to google questions i have with the game. but for some reason my game pauses even with no game guard.
it there a fix for this?
thank you for your help a head of time and thanks for the wonderful forum.
pause bei autoit 02/25/2009 - AutoIt - 2 Replies Hi,
wie mache ich das mein bot wenn ich auf 0 drücke sich pausiert? habe autoit
Mfg Christian