OnPlayerKeyStateChange - H Taste wird nicht erkannt

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
  • Abend,


    Ich lass mit der Taste "H" verschiedene Textdraws anzeigen.
    Wenn man nun ein 2. Mal "H" drückt, sollten sie verschwinden. Aber das ganze funktioniert nur ein einziges Mal. Die Taste wird einfach nicht mehr erkannt.


    else if(newkeys & KEY_CTRL_BACK) //"H" Stats
    {
    printf("%d",h[playerid]);
    if(h[playerid] == 1)
    {

    TextDrawHideForPlayer(playerid,Box);
    TextDrawHideForPlayer(playerid,Credit);
    TextDrawHideForPlayer(playerid,Line);
    TextDrawHideForPlayer(playerid,Line2);
    TextDrawHideForPlayer(playerid,Next);
    TextDrawHideForPlayer(playerid,Back);
    PlayerTextDrawHide(playerid,Status[playerid]);
    PlayerTextDrawHide(playerid,Player[playerid]);
    h[playerid] = 0;
    }
    else {h[playerid] = 1;

    /*
    new currentpage[MAX_PLAYERS];
    new Text:Box;//hintergrund
    new Text:Credit;//
    new Text:Status;//
    new Text:Line;//trennlinie
    new Text:Player;/
    new Text:Line2;//trennlinie
    new Text:Next;//n#chste seite
    new Text:Back;//voherige Seite
    */
    TextDrawShowForPlayer(playerid,Box);
    TextDrawShowForPlayer(playerid,Credit);
    PlayerTextDrawShow(playerid,Status[playerid]);
    TextDrawShowForPlayer(playerid,Line);
    PlayerTextDrawShow(playerid,Player[playerid]);
    TextDrawShowForPlayer(playerid,Line2);
    TextDrawShowForPlayer(playerid,Next);
    TextDrawShowForPlayer(playerid,Back);
    SelectTextDraw(playerid, 0x00FF00FF);
    currentpage[playerid] = 1;


    //... hier kommen nur noch ein paar Zeilen. Ne Schleife und n' format. Daran sollte es nicht scheitern.



    }}



    Zuerst wird h[playerid] richtig ausgegeben. Wenn ich die Taste ein 2x drücke, wird nichts mehr ausgegeben.
    Jemand ne' Idee? :S

  • Jemand ne' Idee?


    Ich könnte eine Vermutung aufstellen:


    Zitat

    KEY_CTRL_BACK**


    Wie du siehst sind da so 2 Sternchen dahinter, schauen wir mal was das heißt:


    Zitat

    [**] Supported since 0.3d. Not detectable in earlier versions. This key can not be detected when the player is in spectator mode.


    Der 2. Satz ist entscheident, im Spectator Mode, kann der Key Nicht abgefragt werden ;)


    Befindest sich dann der Spieler in diesem Mode? :huh:


    Oder printe auch mal vor der Bedingung, ob er die Taste erkennt, da vielleicht der Callback dann nicht mehr erkannt wird...kp wieso vielleicht wegen irgendeinem Hook :wacko:


    Kann ja alles Mögliche sein :S


    Oder Vielleicht gibts n Fehler...hau doch mal das crashdetect Plugin rein..vielleicht detected es was :3


    mfg. :thumbup:

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Der 2. Satz ist entscheident, im Spectator Mode, kann der Key Nicht abgefragt werden


    Ist nicht der Fall.


    Oder printe auch mal vor der Bedingung, ob er die Taste erkennt, da vielleicht der Callback dann nicht mehr erkannt wird...kp wieso vielleicht wegen irgendeinem Hook


    public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
    {
    printf("%d",newkeys);


    Output:
    [01:43:09] 262144 // Erste mal "H"
    [01:43:09] 0 // h[playerid]
    [01:43:09] 0 // 2. mal "H"


    Was mir gerade auffällt: Das HUD verschwindet. Ist das normal? Kommt ja nur, wenn der Spieler specatet, was aber nicht der Fall ist, da ich TogglePlayerSpectating nicht in meinem Code habe.


    Ich wede eben crashdetect laufen lassen.
    ^Zeigt auch nichts.