Was ist da falsch?

09/14/2008 22:19 darthwitch#1
PHP Code:
[COLOR="Red"]Func bosscheck()
    If 
PixelChecksum(4072159731) = 2898646607 Then
        RandomSleep
(500700)
        
Call("fight1")
    Else
        
RandomSleep(200400)
        
Send("{TAB}")
        If 
PixelChecksum(4072159731) = 2898646607 Then
            RandomSleep
(500700)
            
Call("fight1")
        Else
            
RandomSleep(200400)
            
Send("{TAB}")
            If 
PixelChecksum(4072159731) = 2898646607 Then
                RandomSleep
(500700)
                
Call("fight1")
            Else
                
RandomSleep(200400)
                
Send("{TAB}")
                If 
PixelChecksum(4072159731) = 2898646607 Then
                    RandomSleep
(500700)
                    
Call("fight1")
                Else
                    
RandomSleep(200400)
                    
Send("{TAB}")
                    If 
PixelChecksum(4072159731) = 2898646607 Then
                        RandomSleep
(500700)
                        
Call("fight1")
                    EndIf
;
### Tidy Error -> "endfunc" is closing previous "if"
                
EndFunc   ;==>bosscheck[/COLOR
Wo liegt hier das problem möchste das er den boss anwählt und kein nebenmonster und das ganze wollte ich durch pixelchecksum machen doch was ist jetz das prob wieso sollte des nicht funktionieren?!
09/14/2008 22:36 wadimwadim#2
if,then,if,then,if,then.... Kraaaaaaaaampf
mach das in ne schleife rein, bitte^^

Code:
Func bosscheck()
        While $check <> 2898646607
	         RandomSleep(200, 400)
	         Send("{TAB}")	
	         $check = PixelChecksum(407, 21, 597, 31)
        WEnd
        RandomSleep(500, 700)
        fight1()
EndFunc
Quote:
Wo liegt hier das problem
vllt ist die region falsch?... du hast da auch noch ein paar 'endif's vergessen^^
09/14/2008 23:20 darthwitch#3
Thx im prinzip hat sich das nu erledigt der kknb hat mir schon per icq geholfen doch kannst du mir die schleife etwas genauer erklären ich denke das hat viele vorteile^^

Edit: Die "Schleife" Will einfach keine Schleife sein xD also er macht einmal tab und dann nicht wieder^^ was muss ich ändern? der soll ja solange tab machen bis er den boss hat^^
09/15/2008 08:30 blauwiggle#4
Ist AA aus oder stimmt überhaupt der Wert?
09/15/2008 08:37 emtec22#5
schau mal in die hilfe,

wenn du so viele ifs verschateln willst solltest du elsif nutzen


If $var > 0 Then
MsgBox(4096,"", "Wert ist positiv.")
ElseIf $var < 0 Then
MsgBox(4096,"", "Wert ist negativ.")
Else
If StringIsXDigit ($var) Then
MsgBox(4096,"", "Wert könnte hexadezimal sein!")
Else
MsgBox(4096,"", "Wert ist entweder eine Zeichenkette oder 0!")
EndIf
EndIf




Wichtig eben bei dir da oben sind näturlich noch die endif

Kannst das aber auch in Funtions schreiben

sagen wir mal so

Func test()

;teste irgendwas
;falls true

bossweg()

falls false

test2()

Endfunc


so springt der nur zu Functions und du brauchst keine verschachtelung dort einbauen
09/15/2008 14:14 darthwitch#6
Thx @Blauwiggle ja der wert ist richtig^^ funktioniert auch alles^^ nur irgendwie sag ich mal bei 10 runs verpeilt er dann im durchschnitt 2-3 mal den boss und tab't weiter...dann habe ich sleeptimes höher gemacht klappt aber immer noch nicht
09/15/2008 19:37 kknb#7
das sollte auch gehen


Code:
Func bosscheck()
PixelChecksum(407, 21, 597, 31)

for $i=1 to 5
	$check=PixelChecksum(407, 21, 597, 31)
	if $check=2898646607 Then
		ExitLoop
	endif
	sleep(500)
	Send("{TAB}")
	next
fight1()
EndFunc
09/16/2008 15:39 | Moep |#8
Scheinbar willst du solange Tab drücken lassen, bis du den Boss angewählt hast?!
Würd ich persönlich mit einer "Do...Until" Schleife lösen.

Code:
Func bosscheck()

	Do
		Send("{TAB}")
		sleep(500)
		 $check = PixelChecksum(407, 21, 597, 31)
		
	Until  $check = 2898646607
	
EndFunc
müsste eigentlich so funzen, habs nich probiert...

Als "Sicherheit" bau ich dann immer noch n Timer in die Schleife ein,
damit er falls der Boss überhaupt nich gefunden wird wenigstens noch weiter macht und resignt oder sowas.

Code:
Func bosscheck()
$T_INIT = TimerInit()
	Do
		Send("{TAB}")
		sleep(500)
		$check = PixelChecksum(407, 21, 597, 31)
		$T_DIFF = TimerDiff($T_INIT)
		
	Until ($check = 2898646607) or ($T_DIFF > 10000)
	
EndFunc
Jetz "Tabbt" er solange bis 10secs rum sind oder der boss gefunden wurde.

so long, hf