kleine autoit frage bezüglich hotkeys

04/22/2010 12:23 schmuselord1#1
Code:
HotKeySet("{ENTER}", "enter") 

Global $scriptactive = True
Global $entercounter = 0

Func enter()
	Send("{ENTER}")
	$scriptactive = False
	$entercounter += 1
	If mod($entercounter, 2) == 0 Then
		$scriptactive = True
	EndIf
EndFunc
warum funktioniert das nicht? oO
wenn ich enter drücke, wird der hotkey geblockt. mit anderen tasten geht das auch. zb

Code:
HotKeySet("q", "skillq")

Global $scriptactive = True

Func skillq()
	If $scriptactive == True Then
		Send("c")
	Else
		Send("q")
	EndIf
EndFunc
funktioniert einwandfrei.

btw: ich kann beim enterdrücken alles senden zb send("1"), send("{NUMPAD3}"), usw, aber nur nicht send("{ENTER}").

vielen dank für die hilfe ^^

nochma das gesamte script:

Code:
HotKeySet("q", "skillq") ;skill 1
HotKeySet("w", "skillw") ;skill 2
HotKeySet("r", "skillw") ;skill 4
HotKeySet("{NUMPAD3}", "ende") ;to exit bot
HotKeySet("{ENTER}", "enter") ;to exit bot

Global $scriptactive = True
Global $entercounter = 0

Func skillq()
	If $scriptactive == True Then
		Send("c")
	Else
		Send("q")
	EndIf
EndFunc

Func skillw()
	If $scriptactive == True Then
		Send("e")
	Else
		Send("w")
	EndIf
EndFunc

Func skillr()
	If $scriptactive == True Then
		Send("d")
	Else
		Send("r")
	EndIf
EndFunc

Func enter()
	Send("{ENTER}")
	$scriptactive = False
	$entercounter += 1
	If mod($entercounter, 2) == 0 Then
		$scriptactive = True
	EndIf
EndFunc

Func ende()
	Exit
EndFunc

While 1
	sleep(1)
WEnd
04/23/2010 14:40 XxFratziXx#2
PHP Code:
HotKeySet("{ENTER}""enter"

Global 
$scriptactive True
Global $entercounter 0

Func enter
()
    
Send("{ENTER}")
    
$scriptactive False
    $entercounter 
+= 1
    
If mod($entercounter2) == 0 Then
        $scriptactive 
True
    
EndIf
EndFunc 
das ist der originale code von oben bei deiner frage

der grund weil das script nicht geht, ist einfach: du musst hotkeyset in eine
schleife packen:

PHP Code:
While 1
HotKeySet
("{ENTER}""enter")
WEnd 

Global $scriptactive True
Global $entercounter 0

Func enter
()
    
Send("{ENTER}")
    
$scriptactive False
    $entercounter 
+= 1
    
If mod($entercounter2) == 0 Then
        $scriptactive 
True
    
EndIf
EndFunc 
und schoooon klappt der hotkey =)

kurz gesagt:
alle hotkeys müssen in ner while-schleife sein....

egal wenn es mehrere sein aber while schleife braucht es immer...

ein kleines beispiel für ein script das mehrere hotkeys beinhaltet ich hab ihn für gta geschrieben.... dass ich sofort den cheat einsetzen kann (gta vice city pc) :

PHP Code:
While 1
    HotKeySet 
("7","panzer")
    
HotKeySet ("8","sportwagen")
    
HotKeySet ("9","nuttertools")
    
HotKeySet ("6","proffesionaltools")
    
HotKeySet ("5","leben")
    
HotKeySet ("0","keinepolizei")
    
HotKeySet ("4","ruestung")
    
HotKeySet ("1","bigbang"
WEnd

Func panzer
()
    
Send ("panzer")
EndFunc

Func sportwagen
()
    
Send ("travelinstyle")
EndFunc

Func nuttertools
()
    
Send ("nuttertools")
EndFunc

Func proffesionaltools
()
    
Send ("professionaltools")
EndFunc

Func leben
()
    
Send ("aspirine")
EndFunc

Func keinepolizei
()
    
Send ("leavemealone")
EndFunc

Func ruestung
()
    
Send ("preciousprotection")
EndFunc

Func bigbang
()
    
Send ("bigbang")
    
EndFunc 
tja ich könnte ja auch ganz oben jedes hotkeyset in eine einzelne schleifen packen aber so ist es einfacher^^
04/23/2010 14:54 iDunnoi#3
Quote:
Originally Posted by WORLD-KILLER View Post
der grund weil das script nicht geht, ist einfach: du musst hotkeyset in eine
schleife packen:
öhm....seit wann muss man Hotkeys in ne schleife packen?^^
des Problem is ein rein logisches
PHP Code:
HotKeySet("[B]{ENTER}[/B]""enter"

Global 
$scriptactive True
Global $entercounter 0

Func enter
()
    
Send("[B]{ENTER}[/B]")
    
$scriptactive False
    $entercounter 
+= 1
    
If mod($entercounter2) == 0 Then
        $scriptactive 
True
    
EndIf
EndFunc 
wenn du enter als hotkey festgelegt hast, und in deiner funktion schreibst dass er enter drücken soll, geht des script automatische in ne dauerschleife
dh hotkey enter -->funktion enter()-->send("enter")-->funktion enter()..... aber er macht keine funktion davon fertig^^
mfg
04/23/2010 14:58 XxFratziXx#4
also bei mir gehn hotkeys nur in ner schleife
04/23/2010 15:05 iDunnoi#5
wenn es denn so wäre dass hotkeys nur in ner schleife gehen würden, dann würde das beispiel script der autoit hilfe schon gar nich funktionieren^^
Quote:
Originally Posted by AutoitHilfe
PHP Code:
Press Esc to terminate scriptPause/Break to "pause"

Global $Paused
HotKeySet
("{PAUSE}""TogglePause")
HotKeySet("{ESC}""Terminate")
HotKeySet("+!d""ShowMessage")  ;Shift-Alt-d

;;;; Body of program would go here ;;;;
While 
1
    Sleep
(100)
WEnd
;;;;;;;;

Func TogglePause()
    
$Paused NOT $Paused
    
While $Paused
        sleep
(100)
        
ToolTip('Script is "Paused"',0,0)
    
WEnd
    ToolTip
("")
EndFunc

Func Terminate
()
    Exit 
0
EndFunc

Func ShowMessage
()
    
MsgBox(4096,"","This is a message.")
EndFunc 
04/24/2010 01:21 schmuselord1#6
ah. vielen dank. das warn böser logikfehler.

@ worldkiller: wenn ich die hotkeys in ne schleife packe, dann erkennt das programm die globalen hotkeys nich mehr ;/