|
You last visited: Today at 09:34
Advertisement
Hotkayset pause
Discussion on Hotkayset pause within the AutoIt forum part of the Coders Den category.
05/12/2012, 20:25
|
#1
|
elite*gold: 0
Join Date: Oct 2010
Posts: 20
Received Thanks: 0
|
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?
|
|
|
05/13/2012, 19:37
|
#2
|
elite*gold: 528
Join Date: Jan 2012
Posts: 2,127
Received Thanks: 2,403
|
Immer zuerst Stickys lesen und darin posten
Poste bitte mal dein Script
MfG
|
|
|
05/14/2012, 23:00
|
#3
|
elite*gold: 0
Join Date: Oct 2010
Posts: 20
Received Thanks: 0
|
Hier die script
ToolTip ("F1=start F2=pause F3=beenden",1680,90,"HotKeySet")
HotKeySet ("{F3}", "lol")
HotKeySet ("{F1}", "start")
HotKeySet ("{F2}", "rauchen")
Func rauchen()
ToolTip ("F1=start F2=pause F3=beenden",1680,90,"HotKeySet")
While 1
Sleep (100)
WEnd
EndFunc
Func lol()
Exit
EndFunc
Func start()
ToolTip ("F10=start F11=pause F12=beenden",1680,90,"HotKeySet")
While 1
ToolTip ("Gesäät F1=start F2=pause F3=beenden",1663,942,"was würd gemacht?")
;~ Aus wahl verfahren der saat
MouseClick ("left",1185,997)
Sleep (50)
;~ Aussaat
;~ Feld 1
MouseClick ("left",958,450)
Sleep (50)
;~ Feld 2
MouseClick ("left",894,483)
Sleep (50)
;~ Feld 3
MouseClick ("left",830,517)
Sleep (50)
;~ Feld 4
MouseClick ("left",771,548)
Sleep (50)
;~ Feld 5
MouseClick ("left",709,578)
Sleep (500)
;~ Feld 6
MouseClick ("left",645,613)
Sleep (50)
;~ Feld 7
MouseClick ("left",589,644)
Sleep (50)
;~ Feld 8
MouseClick ("left",522,674)
Sleep (00)
;~ Feld 9
MouseClick ("left",456,708)
Sleep (50)
;~ Feld 10
MouseClick ("left",396,741)
Sleep (50)
;~ Feld 11
MouseClick ("left",342,770)
Sleep (50)
;~ Feld 12
MouseClick ("left",285,800)
Sleep (50)
;~ Feld 13
MouseClick ("left",206,829)
Sleep (50)
;~ 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 (50)
;~ Feld 15
MouseClick ("left",401,863)
Sleep (50)
;~ Feld 16
MouseClick ("left",464,836)
Sleep (50)
;~ Feld 17
MouseClick ("left",535,803)
Sleep (50)
;~ Feld 18
MouseClick ("left",586,770)
Sleep (50)
;~ Feld 19
MouseClick ("left",643,739)
Sleep (50)
;~ Feld 20
MouseClick ("left",714,708)
Sleep (50)
;~ Feld 21
MouseClick ("left",777,675)
Sleep (50)
;~ Feld 22
MouseClick ("left",828,646)
Sleep (50)
;~ Feld 23
MouseClick ("left",881,621)
Sleep (50)
;~ Feld 24
MouseClick ("left",953,581)
Sleep (50)
;~ Feld 25
MouseClick ("left",1013,551)
Sleep (50)
;~ Feld 26
MouseClick ("left",1078,520)
Sleep (50)
;~ Feld 27
MouseClick ("left",1264,548)
Sleep (50)
;~ Feld 28
MouseClick ("left",1203,581)
Sleep (50)
;~ Feld 29
MouseClick ("left",1137,613)
Sleep (50)
;~ Feld 30
MouseClick ("left",1069,649)
Sleep (50)
;~ wegklicken der saat
MouseClick ("left",1370,626)
;~ Aus wahl verfahren der saat
MouseClick ("left",1185,997)
Sleep (50)
;~ Feld 31
MouseClick ("left",1019,678)
Sleep (50)
;~ Feld 32
MouseClick ("left",961,711)
Sleep (50)
;~ Feld 33
MouseClick ("left",884,749)
Sleep (50)
;~ Feld 34
MouseClick ("left",834,755)
Sleep (50)
;~ Feld 35
MouseClick ("left",767,803)
Sleep (50)
;~ Feld 36
MouseClick ("left",711,834)
Sleep (50)
;~ Feld 37
MouseClick ("left",645,868)
Sleep (50)
;~ Feld 38
MouseClick ("left",590,894)
Sleep (50)
;~ Feld 39
MouseClick ("left",520,939)
Sleep (50)
;~ Feld 40
MouseClick ("left",459,960)
Sleep (50)
;~ New Feld 41
MouseClick ("left",394,989)
Sleep (50)
;~ New Feld 42
MouseClick ("left",350,1009)
;~ Feld 41
MouseClick ("left",901,868)
Sleep (50)
;~ Feld 42
MouseClick ("left",953,843)
Sleep (50)
;~ Feld 43
MouseClick ("left",1018,808)
Sleep (50)
;~ Feld 44
MouseClick ("left",1074,775)
Sleep (50)
;~ Feld 45
MouseClick ("left",1132,746)
Sleep (50)
;~ Feld 46
MouseClick ("left",1199,712)
Sleep (50)
;~ wegklicken der saat
MouseClick ("left",1370,626)
;~ Wartezeit bis die pflanzen fertig sind#
ToolTip ("auf die pföanzen gewartet F1=start F2=pause F3=beenden",1663,942,"Was würd gemacht?")
Sleep (180000)
;~ Erte vorgang
ToolTip ("Geärntet",1663,942,"was würd gemacht?")
;~ Feld 1
MouseClick ("left",958,450)
Sleep (0)
;~ Feld 2
MouseClick ("left",894,483)
Sleep (0)
;~ Feld 3
MouseClick ("left",830,517)
Sleep (0)
;~ Feld 4
MouseClick ("left",771,548)
Sleep (0)
;~ Feld 5
MouseClick ("left",709,578)
Sleep (0)
;~ Feld 6
MouseClick ("left",645,613)
Sleep (0)
;~ Feld 7
MouseClick ("left",589,644)
Sleep (0)
;~ Feld 8
MouseClick ("left",522,674)
Sleep (0)
;~ Feld 9
MouseClick ("left",456,708)
Sleep (0)
;~ Feld 10
MouseClick ("left",396,741)
Sleep (0)
;~ Feld 11
MouseClick ("left",342,770)
Sleep (0)
;~ Feld 12
MouseClick ("left",285,800)
Sleep (0)
;~ Feld 13
MouseClick ("left",206,829)
Sleep (0)
;~ 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)
WEnd
EndFunc
While 1
Sleep (100)
WEnd
|
|
|
05/14/2012, 23:39
|
#4
|
elite*gold: 2
Join Date: Jul 2009
Posts: 14,456
Received Thanks: 4,685
|
[spoiler-]text[/-spoiler] ohne die Bindestriche.
|
|
|
05/15/2012, 08:52
|
#5
|
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
|
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
|
|
|
05/15/2012, 11:38
|
#6
|
elite*gold: 2
Join Date: Jul 2009
Posts: 14,456
Received Thanks: 4,685
|
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.
|
|
|
05/15/2012, 13:12
|
#7
|
elite*gold: 0
Join Date: Oct 2010
Posts: 20
Received Thanks: 0
|
zurück zu: lolkop
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.
|
|
|
05/15/2012, 16:31
|
#8
|
elite*gold: 528
Join Date: Jan 2012
Posts: 2,127
Received Thanks: 2,403
|
Mach doch in deine Click func einfach
Code:
If $pause = false then
;DEIN CODE
Endif
MfG
|
|
|
05/15/2012, 16:50
|
#9
|
elite*gold: 0
Join Date: Feb 2010
Posts: 92
Received Thanks: 11
|
Code:
Func Pause()
$anzeigetext="Pause- Weiter mit ENDE-Taste"
Anzeige()
While 1
Sleep ( 100 )
If _IsPressed("23", $dll) Then; End Taste
ExitLoop
EndIf
WEnd
EndFunc
Func Anzeige()
ToolTip("Bot läuft" & @CR & _
"MSG : " & $anzeigetext,1,50)
EndFunc
|
|
|
05/15/2012, 21:19
|
#10
|
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
|
niemals in funktionen endlosschleifen beginnen... das ist einer der schlimmsten anfängerfehler, die man begehen kann...
|
|
|
05/16/2012, 13:07
|
#11
|
elite*gold: 0
Join Date: Oct 2010
Posts: 20
Received Thanks: 0
|
Warum denn nicht? wenn er da nichtaleine mehr rauskommen soll ist das ja eigendlich geal oder nicht?
|
|
|
05/16/2012, 13:38
|
#12
|
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
|
Quote:
Originally Posted by bauerorli
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.
|
|
|
05/16/2012, 15:04
|
#13
|
elite*gold: 0
Join Date: Oct 2010
Posts: 20
Received Thanks: 0
|
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
|
|
|
05/16/2012, 16:13
|
#14
|
elite*gold: 528
Join Date: Jan 2012
Posts: 2,127
Received Thanks: 2,403
|
Quote:
Originally Posted by bauerorli
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!
1.
2. Hotkeyset -> _Func Array -> MouseGetPos() Endfunc
3. Nicht Tabelle....Array
Hier mal Beispiel
Code:
#include <Array.au3>
HotKeySet('{1}','_Pos')
HotKeySet('{2}','_Show')
global $asPos[1][2] = [['X-Koordinate','Y-Koordinate']]
func _Pos()
ReDim $asPos[UBound($asPos)+1][2] ;Array um eine Zeile erweitern
$aiPos=MouseGetPos()
$asPos[UBound($asPos)-1][0] = $aiPos[0]
$asPos[UBound($asPos)-1][1] = $aiPos[1]
EndFunc
func _Show()
_ArrayDisplay($asPos)
EndFunc
while 1
sleep(1)
WEnd
|
|
|
05/16/2012, 17:29
|
#15
|
elite*gold: 0
Join Date: Oct 2010
Posts: 20
Received Thanks: 0
|
Sorry hab ziemlich stark LRS ;(
Hab noch mal ne frage.
Wo ist der fehler?
Quote:
#include<ImageSearch.au3>
HotKeySet("{F1}","start")
HotKeySet("{F2}","ende")
While 1
Sleep (100)
WEnd
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
|
|
|
Similar Threads
|
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
|
All times are GMT +1. The time now is 09:37.
|
|