AutoIT fragen/Fehlersuche/kA

04/19/2009 14:00 lonbi#1
Hi,

///////////EDIT verbessert...

//////////EDIT erneut verbessert!


ich hab mir grade ein AutoIT script für ein spiel zusammen gebaut, leider fehlen mir nich einige Funktionen -> kommt unten gleich

Das Script

Code:
HotKeySet ("{c}","start") ;Start Taste
HotKeySet ("{x}","ende") ;ende Taste
HotKeySet ("{f}","Shotgun") ;startet unten das Shotgun Makro 
;::::::::::::::::::::::::::::::::
While 1
WEnd
;::::::::::::::::::::::::::::::
Func start()
While 1
send ("{space}" ;jump
sleep(50) ;Pause in milisekunden
WEnd
EndFunc
;:::::::::::::::::::::::::::::::
Func ende()
While 1
WEnd
EndFunc 
;::::::::::::::::::::::::::::::
; Das Makro soll sich aktivieren wen man "f" drückt, und nur einmal ausgeführt werden bis zum nächsten drücken:::
Func Shotgun()
Send("{3}")
sleep(500) ; pause vor dem Schiesen
Send("{LCTRL}") ; schiesen
Send("{1}") ; Andere waffe
EndFunc
(erstes Makro)
Das erste soll bewirken, das er auf dem Buchstaben "c" Permanent space im takt drückt, und auf dem Buchstaben X wieder aufhört.

(Zweites Makro)
Das zweite soll bewirken, das wen ich die Taste "f" drücke, das er hintereinander -> "3" drückt, "LinksStrg" , "1".

Frage: Ist alels Richtig und würd es funktionieren?

So, Ich will dort jetzt ein art "Master" Ein/ausschalter einbauen, also das alles aktiviert wird wen ich "EINFG" drücke und alles Deaktiviert wen ich es nochmal drücke.
Wofür? Zum chatten im Spiel.







Wäre für Hilfe sehr dankbar, leider finde ich sehr wenige ansätze...
04/19/2009 14:52 recking#2
[Only registered and activated users can see links. Click Here To Register...]

Quote:
Sleep

Pausiert die Skript Ausführung.

Sleep ( delay )



Parameter
delay Zeitdauer der Pause (in Millisekunden).
04/19/2009 15:17 lonbi#3
Quote:
Originally Posted by recking View Post
[Only registered and activated users can see links. Click Here To Register...]
ja nun, pausiert... das war mir schon klar, aber

Quote:


Wielange er bzw ich warten muss nach der ausführung?

Würde mich die Zeit behindern wen ich die aktion früher als die da, stehende Zeit ausführen will?
04/19/2009 16:16 lonbi#4
/////EDIT

Nur noch eine frage, bitte beantworten -> oben!
04/20/2009 12:02 gotstyle#5
Code:
HotKeySet("{DEINE TASTE}", "TogglePause")



Func TogglePause()						;function to pause script
    $Paused = NOT $Paused
    While $Paused
        sleep(100)
        ToolTip('Script is "Paused"',0,0)
    WEnd
    ToolTip("")
EndFunc
so müsste das funktionieren
04/20/2009 15:58 __wadim#6
jetzt mal im ernst.. wäre es nicht sinvoll eine extra autoit sektion einzurichten? irgendwie hat ja hier fast jeder zweite thread was mit autoit zu tun :) sory das es grad nicht zum thema passt, aber wollte ich unbedingt loswerden :P
04/20/2009 16:33 felixli93#7
Quote:
Originally Posted by __wadim View Post
jetzt mal im ernst.. wäre es nicht sinvoll eine extra autoit sektion einzurichten? irgendwie hat ja hier fast jeder zweite thread was mit autoit zu tun :) sory das es grad nicht zum thema passt, aber wollte ich unbedingt loswerden :P
fände ich eine gute idee, müsste aber wo anders diskutiert werden!
04/20/2009 17:34 lonbi#8
Code:
HotKeySet("{0}", "TogglePause")


Func TogglePause()						;function to pause script
    $Paused = NOT $Paused
    While $Paused
        sleep(100)
        ToolTip('Script is "Paused"',0,0)
    WEnd
    ToolTip("")
EndFunc

HotKeySet ("{c}","start") ;Start Taste
HotKeySet ("{x}","ende") ;ende Taste
HotKeySet ("{f}","Shotgun") ;startet unten das Shotgun Makro 
;::::::::::::::::::::::::::::::::
While 1
WEnd
;::::::::::::::::::::::::::::::
Func start()
While 1
send ("{space}" ;jump
sleep(50) ;Pause in milisekunden
WEnd
EndFunc
;:::::::::::::::::::::::::::::::
Func ende()
While 1
WEnd
EndFunc 
;::::::::::::::::::::::::::::::
; Das Makro soll sich aktivieren wen man "f" drückt, und nur einmal ausgeführt werden bis zum nächsten drücken:::
Func Shotgun()
Send("{3}")
sleep(500) ; pause vor dem Schiesen
Send("{LCTRL}") ; schiesen
Send("{1}") ; Andere waffe
EndFunc
hm so hab ichs bei mir jetzt stehen, aber klappt irgendwie nicht.. grml
04/20/2009 19:26 felixli93#9
Quote:
Originally Posted by lonbi View Post
Code:
HotKeySet("{0}", "TogglePause")


Func TogglePause()						;function to pause script
    $Paused = NOT $Paused
    While $Paused
        sleep(100)
        ToolTip('Script is "Paused"',0,0)
    WEnd
    ToolTip("")
EndFunc

HotKeySet ("{c}","start") ;Start Taste
HotKeySet ("{x}","ende") ;ende Taste
HotKeySet ("{f}","Shotgun") ;startet unten das Shotgun Makro 
;::::::::::::::::::::::::::::::::
While 1
WEnd
;::::::::::::::::::::::::::::::
Func start()
While 1
send [COLOR="Red"]("{space}"[/COLOR] ;fehlte die Klammer ")"
sleep(50) ;Pause in milisekunden
WEnd
EndFunc
;:::::::::::::::::::::::::::::::
Func ende()
While 1
WEnd
EndFunc 
;::::::::::::::::::::::::::::::
; Das Makro soll sich aktivieren wen man "f" drückt, und nur einmal ausgeführt werden bis zum nächsten drücken:::
Func Shotgun()
Send("{3}")
sleep(500) ; pause vor dem Schiesen
Send("{LCTRL}") ; schiesen
Send("{1}") ; Andere waffe
EndFunc
hm so hab ichs bei mir jetzt stehen, aber klappt irgendwie nicht.. grml
köntest du genauer erklären, was nicht passt?
ach ja: das mit rot im script ist schon mal ein fehler
dürfte error in expression kommen
04/20/2009 20:20 lonbi#10
ja space hab ich schon selbst berichtigt, naja ich glaub einfach es liegt am Nprotect gameguard.. hm wie könnte man den wohl umgehen? Irgendwie crypten grml.
04/20/2009 20:25 felixli93#11
Quote:
Originally Posted by lonbi View Post
ja space hab ich schon selbst berichtigt, naja ich glaub einfach es liegt am Nprotect gameguard.. hm wie könnte man den wohl umgehen? Irgendwie crypten grml.
ich weiß zwar nicht, was das für ein guard ist, aber wenn er was macht, dann einfach hotkeys blockieren? oder irre ich mich?
denn normalerweiße kann er nicht zwischen tastatureingaben und makros unterscheiden!
04/20/2009 20:28 lonbi#12
hm Gunz Nprotect GameMon rev 1283

Apropo hotkeys.. ich hab gestern irgendwo in einem Englishen forum gelesen das man das Makro ohne Hotkey schreiben soll, aber wie soll das gehen? Bzw mit den selben funktionen?
04/21/2009 13:55 __wadim#13
Quote:
Originally Posted by lonbi View Post
hm Gunz Nprotect GameMon rev 1283

Apropo hotkeys.. ich hab gestern irgendwo in einem Englishen forum gelesen das man das Makro ohne Hotkey schreiben soll, aber wie soll das gehen? Bzw mit den selben funktionen?
hier ein beispiel ohne hotkeyset :)
Code:
While True
	$r = Abs( _WinAPI_GetAsyncKeyState(0xKey) )
	if $r > 0 Then DeineFuntion( )
WEnd
habs nicht getestet!
04/21/2009 16:14 lonbi#14
Quote:
Originally Posted by __wadim View Post
hier ein beispiel ohne hotkeyset :)
Code:
While True
	$r = Abs( _WinAPI_GetAsyncKeyState(0xKey) )
	if $r > 0 Then DeineFuntion( )
WEnd
habs nicht getestet!
Hmm, leider kapier ich diesen "code" nicht wirklich, was welche funktion hat.. hmm

könntest du bitte für mich mein script darauf umschreiben? Wäre sehr dankbar!
(Oder ein anderer der es versteht)

Code:
HotKeySet("{0}", "TogglePause")


Func TogglePause()						;function to pause script
    $Paused = NOT $Paused
    While $Paused
        sleep(100)
        ToolTip('Script is "Paused"',0,0)
    WEnd
    ToolTip("")
EndFunc

HotKeySet ("{c}","start") ;Start Taste
HotKeySet ("{x}","ende") ;ende Taste
HotKeySet ("{f}","Shotgun") ;startet unten das Shotgun Makro 
;::::::::::::::::::::::::::::::::
While 1
WEnd
;::::::::::::::::::::::::::::::
Func start()
While 1
send ("{space}" ;jump
sleep(50) ;Pause in milisekunden
WEnd
EndFunc
;:::::::::::::::::::::::::::::::
Func ende()
While 1
WEnd
EndFunc 
;::::::::::::::::::::::::::::::
; Das Makro soll sich aktivieren wen man "f" drückt, und nur einmal ausgeführt werden bis zum nächsten drücken:::
Func Shotgun()
Send("{3}")
sleep(500) ; pause vor dem Schiesen
Send("{LCTRL}") ; schiesen
Send("{1}") ; Andere waffe
EndFunc
04/21/2009 17:10 __wadim#15
Quote:
könntest du bitte für mich mein script darauf umschreiben? Wäre sehr dankbar!
(Oder ein anderer der es versteht)
leider bin ich gegen sowas, dass man jemand ein C&P fertigen code liefert, denn dadurch verstehst du es nicht und wirst mehr fragen stellen! ich hoffe auch das kein anderer ihm einen fertigen code hinschreibt, der soll ma was lernen.
was ich machen kann, ist dir den teil zu erklären!

Quote:
While True // unaufhörliche schleife oO
$r = Abs( _WinAPI_GetAsyncKeyState(0xKey) ) // getasynckeystate erwartet ein int key.. die könntest du zb [Only registered and activated users can see links. Click Here To Register...] nachschauen
if $r > 0 Then DeineFuntion( ) // wenn der positive rückgabewert von getasynckeystate größer als 0 ist, heisst in dem fall das dein key gedrückt wurde, wird eine funktion aufgerufen..
WEnd
mit ein bischen logischem denken müsstest du dir das auch jetzt anpassen können!