Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > AutoIt
You last visited: Today at 09:34

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



Hotkayset pause

Discussion on Hotkayset pause within the AutoIt forum part of the Coders Den category.

Reply
 
Old   #1
 
elite*gold: 0
Join Date: Oct 2010
Posts: 20
Received Thanks: 0
Talking 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?
bauerorli is offline  
Old 05/13/2012, 19:37   #2
 
Achat's Avatar
 
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
Achat is offline  
Old 05/14/2012, 23:00   #3
 
elite*gold: 0
Join Date: Oct 2010
Posts: 20
Received Thanks: 0
Hier die script

bauerorli is offline  
Old 05/14/2012, 23:39   #4


 
Lawliet's Avatar
 
elite*gold: 2
Join Date: Jul 2009
Posts: 14,456
Received Thanks: 4,685
[spoiler-]text[/-spoiler] ohne die Bindestriche.
Lawliet is offline  
Old 05/15/2012, 08:52   #5
 
lolkop's Avatar
 
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
lolkop is offline  
Old 05/15/2012, 11:38   #6


 
Lawliet's Avatar
 
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.
Lawliet is offline  
Thanks
1 User
Old 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.
bauerorli is offline  
Old 05/15/2012, 16:31   #8
 
Achat's Avatar
 
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
Achat is offline  
Old 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
BotofWar is offline  
Old 05/15/2012, 21:19   #10
 
lolkop's Avatar
 
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...
lolkop is offline  
Old 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?
bauerorli is offline  
Old 05/16/2012, 13:38   #12
 
lolkop's Avatar
 
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
Quote:
Originally Posted by bauerorli View Post
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.
lolkop is offline  
Thanks
1 User
Old 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
bauerorli is offline  
Old 05/16/2012, 16:13   #14
 
Achat's Avatar
 
elite*gold: 528
Join Date: Jan 2012
Posts: 2,127
Received Thanks: 2,403
Quote:
Originally Posted by bauerorli View Post
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
Achat is offline  
Thanks
1 User
Old 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
bauerorli is offline  
Reply


Similar Threads 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.


Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2025 elitepvpers All Rights Reserved.