Frage zu AdlibEnable

10/13/2009 00:40 Rolle85#1
Hi, hab mal ne Frage zu AdlibEnable. Ich möchte eine Function nach einer gewissen Zeit starten also so, AdlibEnable("Beispiel",180000), dann soll halt ganz normal alles weiter gehen und wenn alles Koreckt durchgelaufen ist, möchte ich halt wieder AdlibDisable() (Die "Beispiel" Function) und wenn der halt Stuckt soll er nach 3min die "Beispiel" Function ausführen. Desweiteren habe ich das ganze noch in eine Schleifen gepackt. Also mein Problem liegt darin, dass der wenn er das erste Mal die AdlibEnable Function ausführt ( habs mal auf 10sec gestellt, also das er nich Disable macht), dass er beim 2.Durchlauf die "Beispiel" Function nicht nochmal startet. Ist die Zahl hinter der Function vllt die Gesammtlaufzeit von dem Prog oder das er ab da an die Function startet?

Hier mal nen kurzer Ausschnitt
Code:
Func Start()
	For $i=1 To 20
	AdlibEnable("Beispiel",180000)
        .
        .
        .
        AdlibDisable()
	Next
EndFunc
Jemand ne Idee wie ich das machen kann?
10/13/2009 07:28 roho808#2
er ruft nur alle 3 minuten die beispiel-funktion auf. also weder gesamtlaufzeit, noch funktionsstartpunkt.

wenn du in ner schleife immer am anfang was checken willst, brauchst du kein adlibenable. da reicht einfach ein funktionsaufruf!
10/14/2009 00:35 Rolle85#3
Quote:
Originally Posted by roho808 View Post
er ruft nur alle 3 minuten die beispiel-funktion auf. also weder gesamtlaufzeit, noch funktionsstartpunkt.

wenn du in ner schleife immer am anfang was checken willst, brauchst du kein adlibenable. da reicht einfach ein funktionsaufruf!
Na ich will ja das der die Hauptfunction ausführt und wenn er nich bis zum Ende kommt, soll er halt z.B. in die Gildenhalle reisen. Also Hauptfunction => Stuck => 3min Gh reisen oder => von vorn wenn er alles bis zum Ende macht.
10/14/2009 04:40 in MIND#4
sowas in die richtung?
Code:
$timer = TimerInit()
Do
func1()
func2()
.
.
.
$counter = 1
Until $counter = 1 Or TimerDiff($timer) > 30000
travelGH()
10/14/2009 12:44 Syc0n#5
Code:
Func Start()
	AdlibEnable("Beispiel",180000)
	For $i=1 To 20
        .
        .
        .
	Next
	AdlibDisable()
EndFunc
Ich versteh deine Frage ehrlich nicht ganz, aber 20 mal die Adlibenable Funktion aufzurufen ist unsinnig. Poste mal dein ganzes Skript pls.
10/17/2009 12:57 Rolle85#6
Also hier kurz ein kleiner Ausschnitt. Der Zweck von der Adlib ist das er wenn er irgendwo hängenbleibt und nicht mehr weiter im Script geht, das er irgendwann halt z.b. zur GH reist oder vllt resignt.

Code:
Func Start()
	For $i=1 To 20
	AdlibEnable("AntiStuck",180000)
	prepmoveto()
	If Checkarea(7651, -29365) Then
		MoveTo(1, 7560, -29816)
		MoveTo(1, 7343, -30877)
		MoveTo(1, 7288, -32486)
		StopMoveTo()
		KeySend("r")
		Sleep (8000)
	EndIf
	prepmoveto()
	If Checkarea(22701, 6955) Then 
		MoveTo(1, 22720, 5364)
        MoveTo(1, 22706, 4684)
		MoveTo(1, 22346, 3730)
		MoveTo(1, 21637, 2860)
		MoveTo(1, 20896, 2182)
		MoveTo(1, 20427, 2117)
		MoveTo(1, 19660, 702)
		MoveTo(1, 18612, -1401)
		MoveTo(1, 17534, -2798)
		MoveTo(1, 16343, -4444)
		MoveTo(1, 16074, -5524)
		StopMoveTo()
		KeySend("ö")
		KeySend("SPACE")
		Sleep (2000)
                .
                .
                .
		AdlibDisable()
		Aufgeben()
	EndIf
	Next
EndFunc
10/17/2009 20:02 in MIND#7
da gibts mehrere möglichkeiten:

entweder du benutzst einfach die movetovariante mit blockcheck
Code:
moveto(3,$x,$y)
oder mit einer eigenen funktion wie z.b. diese:

Code:
$pos1 = $xkoordinate
$timer = TimerInit()
moveto($x,$y)
Do
            Sleep(200)
            $oldxcoord = $pos1
            $pos1 = $xkoordinate
            If $oldxcoord = $pos1 Then moveto($x,$y)
Until Checkarea($x,$y) Or TimerDiff($timer) > 30000
mfg
10/17/2009 20:46 Rolle85#8
[QUOTE=in MIND;3246494]da gibts mehrere möglichkeiten:

entweder du benutzst einfach die movetovariante mit blockcheck
Code:
moveto(3,$x,$y)
Oh man, wenn man mal richtig lesen würde wär das ja alles ganz einfach.^^ Besten Dank, hatte mich eigentlich schon gefragt was die Zahlen vor den Koords bedeuten, aber irgendwie nie dran gedacht das das ja auch in der Beschreibung drin steht. ;)
Nochmal danke.:handsdown: