Autoit -> silkroad -> Autobuffer

11/10/2010 20:27 lopion556#1
Hey ,
Hab ne kurze Frage...
Ich wollte mir zum MMORPG Silkroad ein kleines Tool machen wie der Titel schon sagt ein Autobuffer bzw. ein Autoresser...
Soo.. Das ist jetzt mein Code ...
PHP Code:
HotKeySet "1" , ("autoresser") )
While 
1
    Sleep 
1000 )
    
WEnd

Func autoresser
()
While 
1
Send 
"5" )
Sleep 1000 )
Send "5" )
WEnd
EndFunc 
Soll halt für den Anfang simpel sein ...
Klappt auch soweit gut wenn ich es im Notepad benutze allerding möchte ich ja , dass dieser "Mini-Bot" sich auf das Fenster silkroad bezieht...
Sodass ich das Spiel starte den "Mini-Bot" starte , wieder ins spiel reinswitche... 1 drücke und er mir jede sekunde eine 5 gibt ... Gibt es da den befehl damit der bot sich auf ein spiel bezieht?
Bitte um Hilfe... Danke =)
11/10/2010 20:52 ~De@dly Silence~#2
PHP Code:
HotKeySet "1" "autoresser")
While 
1
    Sleep 
1000 )
    
WEnd

Func autoresser
()
WinActivate("der fenstername")
WinWaitActive ("nochmal der fenstername")
While 
1
Send 
"5" )
Sleep 1000 )
WEnd
EndFunc 
//Edit: Kurze Erklärung: Per WinActivate lässt sich ein angegebenes Fenster aktivieren und durch WinWaitActive wartet AutoIt, bis das entsprechende Fenster aktiv ist, ehe der Code weiter ausgeführt wird.
PS: Ich hab das 2. Send entfernt, da es sonst "5 senden > 1 Sekunde warten > 5 senden > 5 senden > wieder 1 Sekunde warten > ..." gewesen wäre.
11/10/2010 21:20 lopion556#3
okey das habe ich jetzt probiert einzubauen ... klappt auch soweit das er sofort in das silkroad fenster switcht allerdings mach sich der send 5 befehl im silkroad fenster garnicht erst bemerkbar ...=( trotzdem danke für deine hilfe
11/10/2010 21:24 Belur#4
Muss der unbedingt ins Fenster switchen?

Sonst kannste das über ControlSend machen. Dh er sendet an das Fenster auch wenns nicht im Vordergrund ist. Kannste dann ja manuell wann du grad Lust hast in den Vordergrund holen.
11/10/2010 21:45 lopion556#5
Sry ich glaube ich hab mich flasch ausgedrückt ( nicht böse gemeint wie in so filmzitaten ne ) ich will gar nicht das der ins fenster reinswitcht ich möchte einfach das der befehl im fenster ankommt aber wenn ich nach diesem script: [PHP/]HotKeySet ( "1" , ("autoresser") )
HotKeySet ( "2" , ("ende") )
HotKeySet ( "3" , ("pause") )
While 1
Sleep ( 1000 )
WEnd

Func autoresser()
While 1
Send ( "5" )
Sleep ( 1000 )
Send ( "5" )
WEnd
EndFunc

Func ende()
While 1
Exit
WEnd
EndFunc

Func pause ()
While 1
Sleep ( 1000000 )
WEnd
EndFunc[PHP] vorgehe kommt er im silkroad fenster nicht an also der send 5 befehl aber im notepad funktioniert es... hat es etwas mit controlsend zu tun gibt es da vllt nen kleines tut zu link oder kleine erläuterung wäre nett =)
11/10/2010 21:52 PenGuin :O#6
Einfach mal die Hilfe zu ControlSend durchlesen.
11/10/2010 23:45 ~De@dly Silence~#7
Deine Pausefunktion ist doof o:
Die wird nie, nie, nieeeeemals beendet.
11/11/2010 12:43 Memphiisto#8
Bessa so ;)

PHP Code:
Func Pause()
    
$Paused Not $Paused
    
While $Paused
        Sleep
(100)
        
$nMsg GUIGetMsg()
        Switch 
$nMsg
            
Case $GUI_EVENT_CLOSE
                
Exit
                
ExitLoop
        
EndSwitch
    
WEnd
EndFunc 
11/11/2010 13:41 PenGuin :O#9
Code:
Func Pause()
    $Paused = Not $Paused
    While $Paused And Sleep(100)
        If GUIGetMsg() = -3 Then Exit
    WEnd
EndFunc
fix'd