PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Tastenscript



Mr.D
03.09.2006, 16:23
Kann mir jemand eine Demo des Tasenscripts des xp geben oder mir erklären wie man den script benutzt??

Sorry das es sehr kurz gehalten ist aber was sollte man da noch mehr schreiben?? :p

Mfg. Mr.D 8)

Macros
03.09.2006, 17:10
Es gibt warscheinlich bessere Tastenscripte, aber das ist das einzige was ich verstehe.

Hier das Script:
class Key_Abfrage
def initialize
@GetAsyncKeyState = Win32API.new 'user32', 'GetAsyncKeyState', 'l', 'l'
@keybd_event = Win32API.new 'user32', 'keybd_event', %w(l l l l), ''
end
def getkey
for i in 0..255
if @GetAsyncKeyState.call(i) != 0
return i
end
end
return 0
end
def getkey_id(id)
if @GetAsyncKeyState.call(id) != 0
return 1
end
return 0
end
def getkey_var(var)
for i in 0..255
if @GetAsyncKeyState.call(i) != 0
$game_variables[var] = i
end
end
end
def getkey_var_id(var,id)
if @GetAsyncKeyState.call(id) != 0
$game_variables[var] = 1
else
$game_variables[var] = 0
end
end
def setkey_id_down(id)
@keybd_event.call(id,0,0,0)
end
def setkey_var_down(var)
@keybd_event.call($game_variables[var],0,0,0)
end
def setkey_id_up(id)
@keybd_event.call(id,0,2,0)
end
def setkey_var_up(var)
@keybd_event.call($game_variables[var],0,2,0)
end
end

Um es zu benutzen musst du einmahlig einmal folgenden Befehl ausführen:
$key = Key_Abfrage.new

Zur Abfrage folgenden Befehl:
$key.getkey_var(25)
if $game_variables[25] != 0
end

Die Tasten weis ich selbst nicht alle, must du selbst ausprobieren.
Folgende Tasten weis ich:
a 65
s 83
d 68
f 70
q 81
w 87
e 69
r 82
y 89
c 67
v 86
enter 13
lnks 37
oben 38
rechts 39
unten 40

Mr.D
03.09.2006, 22:56
Kann man mit dem script auch die Maus benutzen??

und muss ich das
$key.getkey_var(25)

als call script aufrufen??

Mfg. Mr.D 8)

Macros
04.09.2006, 15:42
In Fenster der "Call script"-Funktion folgendes kopieren:
$key.getkey_var(25)
if $game_variables[25] != 0
end

Wobei die 25 die Variabele ist, die sich verändern soll, da kannst du aber auch ne andere nehmen.

Ich glaube man konnte keine Maus benutzen, aber wie gesagt ich bin froh dass ich es überhupt soweit raffe.
Keine Ahnung warum die tastenscripte so kompliziert sind.

Es gibt allerdings eim Mausscript von MagicMagor was zumindest einfach aussah (ich habs nie benutz).
Hat er hier im Forum vorgestellt, wenn ich es finde stell ich ein Link rein, oder lade es hoch.

Darkelf
07.09.2006, 08:06
hi,
ja den Mauspatch und tastenpatch gibts hier downzuloaden
-Maus(patch) - des is nen skript
-eneluki's Tastenpatch

~
das mausskript steuert man nich mit maus sondern den zeiger
steuert man mich der tastatur
daraus folgt - das du ein zeiger als pic. benötigt
8)

MagicMagor
07.09.2006, 08:30
Das angesprochene Mausskript: Klick mich! (http://www.multimediaxis.net/showthread.php?t=64511)

Dieses Mausskript läßt sich auch zur Tastenabfrage verwenden.


Mouse.pressed?(key)

Diese Funktion prüft ob die angegebene Taste gedrückt ist. Die Taste wird dabei durch ihren Virtual Key Code repräsentiert, welcher in der Regel in Hexadezimal angegeben wird. So entspricht der Hexadezimalwert 41 beispielsweise der Taste "a".


Mouse.pressed?(0x41)

Damit würde ich also überprüfen ob die Taste "a" gedrückt ist. (die 0x davor geben Ruby an, daß ich die Zahl in Hexadezimal angebe)

Eine Liste aller Virtual Key Codes findet sich im msdn: Klick mich! (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/WinUI/WindowsUserInterface/UserInput/VirtualKeyCodes.asp)

Allerdings arbeite ich gerade sowieso an einem eigenen Keyboard-skript, aber zur Not sollte das es ja auch tun =).


Keine Ahnung warum die tastenscripte so kompliziert sind.
Die Tastenabfrage funktioniert über die WinAPI und diese ist nicht unbedingt ziemlich einfach. Davon abgesehen sind ist dein gepostetes Skript (du könntest code-Tags verwenden) relativ seltsam in der Bedienung.

Edit:
Darkelf: Hier wurde nach einem Skript für den XP gefragt. Inelukis Tastenpatch ist nur für den 2k gedacht. Auch sonst ist das Verwenden von 2k-Skripts im XP für solche Sachen nicht wirklich effektiv, da es mit Ruby tausend mal besser geht.

Darkelf
07.09.2006, 17:45
aaasoo
ja ok ;)

mit dem XP muss ich mich erst noch vertraut machen
mit dem 2000 und dem 2003 kenn ich mich nun aus. 8)