[AutoIt] HotKeySet Problem.

10/07/2010 13:45 Belur#1
Hey E*pvpers.

Ich arbeite mich grad durch das Tutorial von Remus und wollte die Funktion
mit den HotKeySet mal ausprobieren.

Hab also als kleinen Test geschrieben:

Code:
HotKeySet("{F4}", "start")

Func start()
ControlSend("Dragonica (Client Ver : 0.914.24)", "", "","(D)")

EndFunc

Nach meinem Verständnis sollte eigentlich ein "D" zu Dragonica geschickt werden wenn ich F4 drücke.

Allerdings passiert garnichts. Weiss jmd warum?

Und 2. Frage:

Könnte ich zwischen Func ... EndFunc theoretisch ne Schleife mit While und WEnd einbauen? Hatte das auch versucht allerdings bin ich mir nicht sicher wie das genau geht.

Hoffe mir kann da jmd helfen.

Danke

Lg
Belur
10/07/2010 13:57 BlackHybrid#2
Also fehler hast du eig keinen gemacht nur du schickst an das spiel nicht D sondern (D).
Es kann aber auch sein, dass das Spiel ein Hackingshield oder sonstiges hat und der befehl somit nicht geht.
Eine While schleife kann man ganz leicht einbauen:
PHP Code:
HotKeySet("{F4}""start")

Func start()
While 
1
ControlSend
("Dragonica (Client Ver : 0.914.24)""""","D")
Wend
EndFunc 
10/07/2010 14:40 Belur#3
Quote:
Originally Posted by BlackHybrid View Post
Also fehler hast du eig keinen gemacht nur du schickst an das spiel nicht D sondern (D).
Es kann aber auch sein, dass das Spiel ein Hackingshield oder sonstiges hat und der befehl somit nicht geht.
Eine While schleife kann man ganz leicht einbauen:
PHP Code:
HotKeySet("{F4}""start")

Func start()
While 
1
ControlSend
("Dragonica (Client Ver : 0.914.24)""""","D")
Wend
EndFunc 
Also: Ich hab die Klammern um das D mal weggemacht allerdings ohen Erfolg.

Wenn ich nur den ControlSend Befehl sende und das HotKeySet und den Func rausmache klappt es irgendwie, dh. imgame wird D gedrückt.

Allerdings wärs schon gut, wenn der irgendwie drin bleiben könnte. Hab nur keine Ahnung warum der dann nichts macht.
10/07/2010 15:15 lolkop#4
Quote:
Originally Posted by Belur View Post
Also: Ich hab die Klammern um das D mal weggemacht allerdings ohen Erfolg.

Wenn ich nur den ControlSend Befehl sende und das HotKeySet und den Func rausmache klappt es irgendwie, dh. imgame wird D gedrückt.

Allerdings wärs schon gut, wenn der irgendwie drin bleiben könnte. Hab nur keine Ahnung warum der dann nichts macht.
du musst ersteinmal dafür sorgen, dass das script endlos läuft
Code:
HotKeySet("{F4}", "go")

While 1
    Sleep(1000)
WEnd

Func go()
    ControlSend("Dragonica (Client Ver : 0.914.24)", "", "","D")
EndFunc
wenn du willst, das das ganze in einer endlosschleife läuft, würde ich die funktion lieber eine variable setzen lassen.

bsp:
Code:
HotKeySet("{F4}", "go")
Dim $go=False

While 1
    If $go Then ControlSend("Dragonica (Client Ver : 0.914.24)", "", "","D")
    Sleep(100)
WEnd

Func go()
    $go = Not $go
EndFunc
prinziep sollte klar sein. du definierst $go = falsch. nun lässt du eine endlosschleife laufen, in der controlsend ausgeführt ist wenn $go wahr ist.
mit F4 machst du $go = nicht $go. dh wenn go war ist ist es danach nicht wahr also falsch. mit falsch natürlich das gleiche
10/07/2010 15:54 Belur#5
Hmm ja. Laufen tuts auf jeden Fall.

Den ersten Code blick ich auch noch, beim 2ten check ich das schon nicht mehr so ganz sry.

Aber egal welchen ich benutze: Bei beiden wird ingame "D" gedrückt wenn ich F4 drücke.
Was ist genau der Unterschied zwischen den beiden?

Lg
10/07/2010 16:00 omer36#6
eig. hatt er es ja schon erklärt...

durch F4 startest du es und durch F4 kanns tdu es gleichzeitig pausieren...


also der erste lässt es permanent laufen, ohne eine "stop" function...
mit den 2. kannst du es starten/pausieren
10/07/2010 16:08 Belur#7
Hmm. Wenn ich es mache drücke ich F4, er macht es 1 mal und dann nie wider xD
10/07/2010 16:30 omer36#8
Quote:
Originally Posted by Belur View Post
Hmm. Wenn ich es mache drücke ich F4, er macht es 1 mal und dann nie wider xD
ähh..
PHP Code:
HotKeySet("{F4}""go")

While 
1
    Sleep
(1000)
WEnd

Func go
()
    
ControlSend("Dragonica (Client Ver : 0.914.24)""""","D")
EndFunc 
so macht er es einmal.

PHP Code:
HotKeySet("{F4}""go")

While 
1
    Sleep
(1000)
WEnd

Func go
()
while 

ControlSend
("Dragonica (Client Ver : 0.914.24)""""","D")
wend
EndFunc 
so inner schleife,

und so ist es am besten, inner schleife mit pause/start:

PHP Code:
HotKeySet("{F4}""go")
Dim $go=False

While 1
    
If $go Then ControlSend("Dragonica (Client Ver : 0.914.24)""""","D")
    
Sleep(100)
WEnd

Func go
()
    
$go Not $go
EndFunc