Register for your free account! | Forgot your password?

You last visited: Today at 04:45

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



Brauche eure Hilfe

Discussion on Brauche eure Hilfe within the Diablo 2 Programming forum part of the Diablo 2 category.

Reply
 
Old   #1

 
RezChams's Avatar
 
elite*gold: 0
Join Date: Mar 2009
Posts: 24,265
Received Thanks: 15,362
Brauche eure Hilfe

Da ich leider keinerlei Ahnung habe wie ich einen Tasten befehl gebe ( d.h zb wenn ich Numpad 1 drücke, das er den jeweiligen Befehl tut )
wie gehts?

case 107: // +(Numpad)
NT_Teleport();
break;

Vlt so?
RezChams is offline  
Old 01/13/2011, 10:56   #2
Administrator
 
Muddy Waters's Avatar
 
elite*gold: 41624
Join Date: Jan 2010
Posts: 22,728
Received Thanks: 12,654
Zunächst musst du sicherstellen, dass du irgendwo zu Beginn deiner Main Funktion einen entsprechenden EventHandler aktivierst.

Diesem wird ausserdem die Funktion übergeben, die im Falle eines Key Events aufgerufen wird.

Letzteres setzt natürlich voraus, dass eine solche Funktion auch im aktuellen Kontext definiert ist.

Zusammengefasst sieht das dann so aus:
Code:
RegisterEvent(EVENT_KEYDOWN, MW_MyKeyEventHandler);
RegisterEvent() sorgt dafür, dass im Hintergrund alle Tastatureingaben erfasst werden.
EVENT_KEYDOWN ist eine Konstante, die festlegt, auf welche Art von Event reagiert werden soll; hier: Tastatureingaben.

Wird nun eine Taste gedrückt, wird die laufende Funktion unterbrochen und es wird die Funktion MW_MyKeyEventHandler() aufgerufen, wobei der dabei übergebene Parameter dem Code der gedrückten Taste entspricht.
Hier kann nun auf die Eingabe reagiert werden, wobei man nach Möglichkeit darauf achten sollte,nicht zuviel auszuführen, da die eigentlich laufende Funktion ja nur unterbrochen wurde und nach dem Durchlaufen von MW_MyKeyEventHandler() weiter ausgeführt wird. Passt man hier nicht auf, kann man sich leicht ungewollte Rekursionen einfangen.

Auch musst du aufpassen, wenn du vorhast, Aktionen die der Char ausführt beispielsweise über Tastatureingaben auszuführen, die im game thread, also der NT bzw. MWBotGame.ntj registriert werden.
Das laufende Botscript läuft schließlich Parallel mit und somit kann es zu Interferenzen kommen. Einfach ausgedrückt könnte es beispielsweise passieren, dass dein Tastaturbefehl dem Bot sagt, er solle sich nach rechts bewegen, während das aktuell laufenden Botscript sagt, er soll sich nach links bewegen.
Wie man leicht sieht, kann das nur in die Hose gehen.

Die Codes der gedrückten Taste kannst du leicht feststellen, indem du dir einfach den Parameter, den dein EventHandler bei Tastendruck erhält, ausgeben lässt.

Auf obiges Beispiel übertragen könnte das in etwa so aussehen:
Code:
function MW_MyKeyEventHandler(keycode)
{
    Print("Key Pressed: " + keycode);
    
    // TODO: Do something useful here
}
Kannst ja mal eine Runde damit experimentieren.

Lg
Muddy
Muddy Waters is offline  
Thanks
1 User
Old 01/14/2011, 18:36   #3

 
RezChams's Avatar
 
elite*gold: 0
Join Date: Mar 2009
Posts: 24,265
Received Thanks: 15,362
Vielen dank, werde ich tuen
RezChams is offline  
Reply


Similar Threads Similar Threads
Brauche eure Hilfe
07/28/2010 - World of Warcraft - 2 Replies
Hallo ihr lieben , ich habe mir soeben meinen Charakter Fraktionswechsel von jemanden per Kreditkarte bezahlen lassen. Weil Blizzard bei mir per ELV die 25€ nicht abbuchen konnte. Jetzt wollte ich euch mal fragen ,wenn der Kollege es mir Bezahlt hat ,wie lange es dauert das ich eine Bestätigungs E-mail bekomme , wo ich sehe das es auch wircklich geschehen ist.
||>>Brauche eure Hilfe!<<||
03/08/2010 - Metin2 Private Server - 0 Replies
Also, wie der Titel schon sagt brauche ich eure Hilfe ;) Und zwar, mein Problem ist folgendes: Ich wollte mir einen eigenen Server mit den SF´s erstellen. So weit so gut....nur ich habe die IP´s eig. richtig eingestellt bloß bei portmap gehen die Ports 11002, 13001, 13061 immer down und ich weiß nun nicht, warum :confused::confused: Das passiert immer dann, wenn ich mich mit meinem client einloggen will oder mit einem HP-Script den Server-Status anzeigen lasse.... Wenn das jetzt...
Brauche eure HILFE R.MAP
02/19/2010 - Metin2 Private Server - 5 Replies
Hey an meinem Server war alles Okay den hat mein VPC von alleine rebootet! Den hab ich wieder den serevr gestartet und man konnte nicht in Rote reich MAP1 Kann einer mir helfen wie ich das Prob löse!



All times are GMT +1. The time now is 04:46.


Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2026 elitepvpers All Rights Reserved.