AutoIt WoW Disconnect Abfrage

12/09/2011 11:21 iDerBaum#1
Hi,

ich habe einen kleinen WoW Bot, der ständig in einer While Schleife in 2 verschiedenen WoW Fenstern (das eine ist im Hintergrund) etwas ausführt.
Wie bekomme ich es nun hin, das wenn ein Account einen Disconnect bekommt, die While Schleife des Bots unterbrochen, neu eingeloggt und die While Schleife neu von vorne ausgeführt wird? Und das möglichst in beiden WoW Fenstern (mit unterschiedlichen Accounts).

Viele Grüße

Baum
12/09/2011 12:04 MoepMeep#2
Entsprechende Adresse auslesen.
12/09/2011 12:27 Ludder231#3
Ich würd dafür ne funktion anlegen. Also If $Dc = True then _login() endif oderso, mit ner funk kannst du while immer unterbrechen....

MfG Ludder231
12/09/2011 13:07 iDerBaum#4
Wie bekomme ich es hin, das die Schleife mit den Abläufen nach dem Login wieder aufgenommen wird?
12/09/2011 13:08 MoepMeep#5
Einfach die Funktion in der Schleife aufrufen.
12/09/2011 13:15 Njahs#6
Quote:
Originally Posted by iDerBaum View Post
Wie bekomme ich es hin, das die Schleife mit den Abläufen nach dem Login wieder aufgenommen wird?
PHP Code:
While 1

; Do your thinks

If $dc true then
   _Login
()
endif
WEnd 
Fertig... ne funktion unterbricht die while schleife
12/09/2011 13:22 iDerBaum#7
Mein Problem ist, das ich in der Schleife PixelSearch Abfragen habe wie folgt:

Do
$PSCreateCharacter = PixelSearch(1564, 606, 1564, 606, 0x57544C)
sleep(100)
Until isArray($PSCreateCharacter)

Bedeutet, wenn er an einer solchen Stelle ist, und ein DC vorkommt, dann hängt er unendlich in dem Do Until... Gibt es hier eine bessere Lösung?
12/09/2011 13:30 MoepMeep#8
Sowas z.b.
Code:
switch(state)
{
     case 1: 
             state = funktion1()
      case 2:
             state = funktion2()
      ...
}
dcCheck()
12/09/2011 13:33 iDerBaum#9
Ich habe den Login Dank eurer Hilfe hinbekommen, allerdings habe ich leider immer noch das Problem mit den Do...Until Passagen. Da bleibt das ganze hängen.
12/09/2011 13:54 MoepMeep#10
Quote:
Originally Posted by iDerBaum View Post
Ich habe den Login Dank eurer Hilfe hinbekommen, allerdings habe ich leider immer noch das Problem mit den Do...Until Passagen. Da bleibt das ganze hängen.
Ein Post drüber steht, wie du das umgehen kannst. Wie wär es mal mit lesen?
12/09/2011 13:56 iDerBaum#11
Ich habe das nicht ganz verstanden, kannst du es bitte mal erklären?
12/09/2011 14:00 MoepMeep#12
Code:
switch(state)
{
     case 1: 
             $PSCreateCharacter = PixelSearch(1564, 606, 1564, 606, 0x57544C)
             if(isArray($PSCreateCharacter)) state = 2
      case 2:
             state = funktion2()
      ...
}
dcCheck()
Natürlich ein wenig schöner machen :p
12/09/2011 14:17 Freddy​#13
Quote:
Originally Posted by MoepMeep View Post

Natürlich ein wenig schöner machen :p
Jetzt noch in AutoIt
PHP Code:
_Main()
Func _Main()
While 
1
    PixelSearch
(156460615646060x57544C)
    If 
Not @error Then
        
;einloggen
    
EndIf
    ;
rest vom Script
WEnd
EndFunc 
12/09/2011 14:25 MoepMeep#14
Quote:
Originally Posted by Snivel View Post
Jetzt noch in AutoIt
PHP Code:
_Main()
Func _Main()
While 
1
    PixelSearch
(156460615646060x57544C)
    If 
Not @error Then
        
;einloggen
    
EndIf
    ;
rest vom Script
WEnd
EndFunc 

Hat nur leider garnichts mehr mit dem Prinzip das ich ihm zeigen wollte zu tun.
12/09/2011 15:45 iDerBaum#15
das müsste gehen, oder? Also statt Do...Until, das folgende:

While True
If isArray(PixelSearch(1017, 866, 1017, 866, 0XA8EEFF)) Then
Exitloop
ElseIf isArray(PixelSearch(162, 861, 162, 861, 0xFFFBFF)) Then
_login()
EndIf
Sleep(10)
WEnd