Key-Detector v1.0

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • N'abend zusammen,
    Ich möchte euch heute mein erstes veröffentlichtes Filterscript vorstellen.



    Es handelt sich um einen Key-Detector. Dieser zeigt euch an, welche Tasten ihr gerade drückt.
    Damit wird es zum Kinderspiel Tastengesteuerte Abläufe zu erstellen (z.B.: Tor mit Taste öffnen).


    Ich habe dieses Filterscript erstellt, weil ich selbst ein paar Keys benötigt habe und bisher kein Filterscript dazu gefunden habe,
    welches mir auch gefällt. Dieses Filterscript arbeitet mit TextDraws, da ich persönlich es besser finde alles seperat vom Chat zu haben.


    So sieht der ganze Spaß aus :



    Zusätzlich zum Key wird noch up/down (W und S) und left/right(A und D) angezeigt.
    Diese sind immer durch 128 bzw. -128 erkenntlich


    Es wird ein recht schneller Timer verwendet, der sich alle 0,1 Sekunden wiederholt.
    Daher empfehle ich euch dieses FilterScript nur auf Test-Server mit geringen User zahlen zu verwenden, um Laggs zu vermeiden.


    Durch drücken des Download-Buttons erklärt ihr euch bereit die Credits drinnen zu lassen :)



    ______________________________________________________________________________
    Alternativer Link, falls der alte nicht geht :



    Pastebin :
    http://pastebin.com/piTdR8fm


    Für Pastebin-Benutzer :
    Neue Datei erstellen und als Key-Detector.pwn umbenennen, dann den Code einfügen,
    compilieren und als Filterscript laden


    Viel Spaß damit und bitte bewerten :rolleyes:


    Gruß Snail


    EDIT : Anwendungsbeispiel :



    public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
    {
    if (newkeys & 4)
    {
    // 4 entspricht der linken Maustaste. Diese Zahl ersetzt du dann einfach durch den Key den du dir ausgesucht hast
    // Hier kann man jetzt eine Aktion durchführen lassen
    // z.B.: MoveObject(...) um Objekte zu verschieben (z.B.: Tore)
    MoveObject(Tor1, 555.5, 987.6, 123.4, 3);
    }
    return 1;
    }


    "Viele Fragen sich wahrscheinlich wofür brauch ich den sowas ? Die Keys stehen doch alle im wiki"
    Das ist allerdings falsch, den die im wiki genannten Keys gehen nicht überall (Beispielsweise geht Rechte-Maus-Taste nur zu Fuß)
    Der Key-Detector gibt euch den exakten Key an, der für den momentanen Zustand gültig ist.


    Solltet ihr noch Fragen oder Vorschläge haben könnt ihr diese gerne posten


    // LINKS fixed und Pastebin hinzugefügt


    Nicht jeder, der sich für super hält, ist ein Superheld. :love:
    ------------------------------------------------------------------------------------------------

    2 Mal editiert, zuletzt von Snail ()

  • Ich habe eine Frage wie setzt man die daten jetzt ein?

    Den Key den du dadruch erhälst kannst du zum Beispiel beim OnPlayerKeyStateChange public verwenden.


    Anwendungsbeispiel :

    public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
    {

    if (newkeys & 4)
    {
    // 4 entspricht der linken Maustaste. Diese Zahl ersetzt du dann einfach durch den Key den du dir ausgesucht hast
    // Hier kann man jetzt eine Aktion durchführen lassen
    // z.B.: MoveObject(...) um Objekte zu verschieben (z.B.: Tore)
    MoveObject(Tor1, 555.5, 987.6, 123.4, 3);
    }
    return 1;
    }


    Edit : Anwendungsbeispiel eingefügt


    Nicht jeder, der sich für super hält, ist ein Superheld. :love:
    ------------------------------------------------------------------------------------------------

    Einmal editiert, zuletzt von Snail ()

  • Man kann trotzdem immer noch nur die Keys benutzen, die Kye im SA:MP Wiki angegeben hat ;)
    Und es braucht kein Key-Detector, da alle dieses Keys im WIKI stehen ;)

    Eben nicht, da bestimmte Keys nur zu Fuß gehen. Der Keydetector zeigt dir an wie der Key im Fahrzeug ist.
    Genauso kann man mit dem Key-Detector auch Kombinationen erstellen. Sowas steht nämlich nicht im wiki ;)


    Nicht jeder, der sich für super hält, ist ein Superheld. :love:
    ------------------------------------------------------------------------------------------------

  • So hab alle Links geupdated
    Es kommt übrigens bald eine neue Version raus :)


    Nicht jeder, der sich für super hält, ist ein Superheld. :love:
    ------------------------------------------------------------------------------------------------

  • Also einen Timer mit 100 ms der sich immer wiederholt, ist nicht gerade die feine Art...

    Als ich das erstellt habe, hatte ich mich noch nicht mit dem Thema ressourcenfreundliches scripten befasst ;)
    Das Script ist ja eigentlich nur für Testserver gedacht. Ich habe zwar schon seit längerem eine neue Version, kann diese aber leider nicht testen, da mein Laptop kaputt ist. Wenn ich einen neuen Rechner habe werd ich das Script schnell testen und dann die neue Version rausbringen.


    Gruß Snail


    Nicht jeder, der sich für super hält, ist ein Superheld. :love:
    ------------------------------------------------------------------------------------------------

  • Da muss ich dir leider wiedersprechen ;)


    Dieser Code :

    if (newkeys & 4)
    {
    //Aktion
    }

    bewirkt, das die Aktion nur beim exakten Key 4 (Linke Maustaste) ausgeführt wird.


    Der andere Code :

    if(newkeys == 4)
    {
    //Aktion
    }

    bewirkt, dass die Aktion ausgeführt wird, wenn der Key 4 gedrückt wird, allerdings auch, wenn der Key mit einem anderen kombiniert ist. Beispiel : Linke Maus + Leertaste --> selbe Aktion wie nur Linke Maustaste


    Nachzulesen im wiki : http://wiki.sa-mp.com/wiki/OnPlayerKeyStateChange


    Zitat

    b2t :
    Denke es ist recht nützlich ^^ ..
    7/10 weil das FS wirklich nur für Testserver geeignet ist.

    Das Filterscript ist ja auch nur für Scripter gedacht, daher nur für Testserver.
    Ich habe bereits eine Version, die auch auf vollen Servern verwendet werden kann. Diese muss allerdings noch getestet werden.
    Danke für die Bewertung :thumbup:


    Gruß Snail


    Nicht jeder, der sich für super hält, ist ein Superheld. :love:
    ------------------------------------------------------------------------------------------------