Do..Until Schleife läuft nicht

06/08/2009 13:21 Pexus#1
PHP Code:
$MobHP PixelGetColor (47661) ;12976128
$PlayerDown 
PixelGetColor (5842) ;10289152
func _stop
()
   Exit
endFunc
HotKeySet
("^{F9}","_stop")

While 
true
    send 
("{tab}")
    
sleep (100)
    If 
$MobHP 12976128 then
        send 
("2")
        
sleep (1000)
        
send ("3}")
        
sleep (5500)
        
send ("3")
        
sleep (5500)
Do 
if 
$MobHP 12976128 Then
    send 
("3")
    
sleep (5500)
    
send ("3")
    
sleep (5500)
until $MobHP <> 12976128
        
if $MobHP <> 12976128 then
            send 
("f")
            
sleep (100)
            
mousemove (562322)
            
MouseClick ("left")
    Else
    
send ("{d down}")
    
sleep (300)
    
send ("{d up}")
EndIf
EndIf
EndIf
WEnd 

"Until" statement with no matching "Do" statement.:
Warum funktioniert die do..until schleife nicht?
Das Ganze soll so laufen: Das script läuft bis zum "DO". Der folgende Teil des Scriptes (Bis zum "UNTIL") soll so lange durchgeführt werden, bis $MobHP <> 12976128. Dann soll das script einfach nach dem "UNTIL" weitermachen.
Wer weitere Fehler findet, darf sie gerne ausbessern & mir Bericht erstatten. ;)
06/08/2009 14:14 bingbongman#2
PHP Code:
$MobHP PixelGetColor (47661) ;12976128
$PlayerDown 
PixelGetColor (5842) ;10289152
func _stop
()
   Exit
endFunc
HotKeySet
("^{F9}","_stop")

While 
true
    send 
("{tab}")
    
sleep (100)
    If 
$MobHP 12976128 then
        send 
("2")
        
sleep (1000)
        
send ("3}")
        
sleep (5500)
        
send ("3")
        
sleep (5500)
Do 
if 
$MobHP 12976128 Then
    send 
("3")
    
sleep (5500)
    
send ("3")
    
sleep (5500)
    endif  ;
// HIER WAR DEIN FEHLER
until $MobHP <> 12976128
        
if $MobHP <> 12976128 then
            send 
("f")
            
sleep (100)
            
mousemove (562322)
            
MouseClick ("left")

    Else
    
send ("{d down}")
    
sleep (300)
    
send ("{d up}")
EndIf
EndIf
WEnd 
Du hast eine If-Abfrage zu spät beendet. So sollte es funktionieren.
06/08/2009 15:19 Pexus#3
Ah..Stimmt. Vielen dank. Eine Frage hab ich noch. Ich hab gemerkt, dass ich mit den genauen Werten von PixelGetColor nicht hinkomme. Also bin ich auf Pixelsearch mit nem True Statement hintendran umgestiegen.. Allerdings weiß ich nciht, wie ich die Until schleife beenden soll, da
PHP Code:
until PixelSearch (470536679570xC6000010False 
nicht geht. Gibts ne Alternative? Wichtig ist nur, dass es mit Pixelsearch geht, weil ich die 10 Shades Abweichung brauche.
06/08/2009 15:33 bingbongman#4
PHP Code:
until PixelSearch (470536679570xC6000010) = False 
So sollte das eigentlich funktionieren.
06/08/2009 16:13 Pexus#5
Uff.Stimmt. ;) Thx