OnPlayerKeyStateChange

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
  • Mal ne Frage, wollte einen Dialog über Taste Num 2 anzeigen:


    public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
    {
    if(PRESSED(KEY_SUBMISSION))
    {
    //Lässt sich hier kein Dialog anzeigen?
    //ShowPlayerDialog(player.......
    }


    Und noch ne andere Frage:
    format(dbstrz, sizeof(dbstrz), "UPDATE `Table` SET `Wert1`= '%i' `Wert2` = '%i' where `NAME` = '%s'",SpielerInfo[playerid][Wert1],SpielerInfo[playerid][Wert2],DB_Escape(name));
    Wieso wird das nicht in der Datenbank geupdated, wenn ich mich auslogge? (SQLite)


    Engelsflügel am Astonkühler, als Schutz vor dem Teufel!

  • public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
    {
    if(newkeys & KEY_SUBMISSION)
    {
    //Hier einfach den Dialog anzeigen...
    }
    }


    Zitat

    format(dbstrz, sizeof(dbstrz), "UPDATE `Table` SET `Wert1`= '%i' `Wert2` = '%i' where `NAME` = '%s'",SpielerInfo[playerid][Wert1],SpielerInfo[playerid][Wert2],DB_Escape(name));


    Sicher das 'DB_Escape(name)' den Spielernamen ausgibt?
    Querry vergessen?


  • Query nicht vergessen, und bin mir sicher, dass er den Namen zurück gibt:



    new str[128],name[MAX_PLAYER_NAME+1];
    GetPlayerName(playerid, name, sizeof(name));


    // name = Db_Escape(name) <<


    db_query(DB, dbstrz);


    //E: Konsole sagt auch, der Wert wäre geupdatet wurden, wenn ich printf("%s", dbstrz); mache.


    //E2: Konsole:
    [00:41:50] UPDATE `Table` SET `Wert1`= '999' `Wert2` = '999' where `NAME` = 'BOMBER'


    Engelsflügel am Astonkühler, als Schutz vor dem Teufel!

  • Zitat

    format(dbstrz, sizeof(dbstrz), "UPDATE `Table` SET `Wert1`= '%i' `Wert2` = '%i' where `NAME` = '%s'",SpielerInfo[playerid][Wert1],SpielerInfo[playerid][Wert2],DB_Escape(name));


    Sicher das die Tabelle 'Table' heißt?
    Ich denke du meinst so:
    format(dbstrz, sizeof(dbstrz), "UPDATE `%s` SET `Wert1`= '%i' `Wert2` = '%i' where `NAME` = '%s'",Table,SpielerInfo[playerid][Wert1],SpielerInfo[playerid][Wert2],DB_Escape(name));


  • Sicher das die Tabelle 'Table' heißt?
    Ich denke du meinst so:
    format(dbstrz, sizeof(dbstrz), "UPDATE `%s` SET `Wert1`= '%i' `Wert2` = '%i' where `NAME` = '%s'",Table,SpielerInfo[playerid][Wert1],SpielerInfo[playerid][Wert2],DB_Escape(name));


    Die Tabelle heißt im Script anders. - Hab sie nur hier im Code umbenannt, Selektieren etc. geht ja auch :wacko:


    Engelsflügel am Astonkühler, als Schutz vor dem Teufel!

  • format(dbstrz, sizeof(dbstrz), "UPDATE `Table` SET `Wert1`= '%i' `Wert2` = '%i' where `NAME` = '%s'",SpielerInfo[playerid][Wert1],SpielerInfo[playerid][Wert2],DB_Escape(name));



    Wie wärs mit kommas?


    format(dbstrz, sizeof(dbstrz), "UPDATE `Table` SET `Wert1`= '%i', `Wert2` = '%i' WHERE `NAME` = '%s'",SpielerInfo[playerid][Wert1],SpielerInfo[playerid][Wert2],DB_Escape(name));



  • Danke, hat funktioniert. :)


    Noch jemand ne Idee zum Dialog über NUM2?


    Engelsflügel am Astonkühler, als Schutz vor dem Teufel!

  • Ich weiss nicht was dein Problem ist geht der Code von dir Und/Oder SynonymousZ Nicht, kann leider nicht hellsehen vorallem nicht um 1 Uhr morgens ;)


    //Edit jetzt sehe ich dein Problem da steht Num + /2 oder so
    Bedeutet: Die Num Taste + oder 2
    Hier die richtigen Keys:

    KEY_ANALOG_UP 2048 - ~k~~VEHICLE_TURRETUP~ NUM 8 NUM 8
    KEY_ANALOG_DOWN 4096 - ~k~~VEHICLE_TURRETDOWN~ NUM 2 NUM 2
    KEY_ANALOG_LEFT 8192 ~k~~VEHICLE_LOOKLEFT~ ~k~~VEHICLE_TURRETLEFT~ NUM 4 NUM 4
    KEY_ANALOG_RIGHT 16384 ~k~~VEHICLE_LOOKRIGHT~ ~k~~VEHICLE_TURRETRIGHT~ NUM 6 NUM 6

  • Wie bereits geschrieben:


    //EDIT
    Evtl. lieber KEY_ANALOG_DOWN benutzen?


    if(newkeys & KEY_ANALOG_DOWN)
    {
    new iSTR[128];
    format(iSTR, sizeof(iSTR), "Text\nWert: %i\nWert2: %i", SpielerInfo[playerid][Wert1], SpielerInfo[playerid][Wert1]);
    ShowPlayerDialog(playerid, DIALOG_DIANAME, DIALOG_STYLE_MSGBOX, "LoL", iSTR, "OK", "");
    }
    Leider auch kein Erfolg.. :wacko:


    Sollte ja normalerweiße den Dialog anzeigen?


    //E: @Arendium: Funktioniert leider beides nicht.


    Engelsflügel am Astonkühler, als Schutz vor dem Teufel!

  • Mach mal so und sag Konsole an:
    print("1");
    if(newkeys & KEY_ANALOG_DOWN)
    {
    print("2");
    new iSTR[128];
    print("3");
    format(iSTR, sizeof(iSTR), "Text\nWert: %i\nWert2: %i", SpielerInfo[playerid][Wert1], SpielerInfo[playerid][Wert1]);
    print("4");
    ShowPlayerDialog(playerid, DIALOG_DIANAME, DIALOG_STYLE_MSGBOX, "LoL", iSTR, "OK", "");
    print("5");
    }
    print("6");

  • Wie bereits geschrieben:


    //EDIT
    Evtl. lieber KEY_ANALOG_DOWN benutzen?




    public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
    {
    print("1");
    if(newkeys & KEY_ANALOG_DOWN)
    {
    print("2");
    new iSTR[128];
    print("3");
    format(iSTR, sizeof(iSTR), "Text\nWert: %i\nWert2: %i", SpielerInfo[playerid][Wert], SpielerInfo[playerid][Wert2]);
    print("4");
    ShowPlayerDialog(playerid, DIALOG_DIANAME, DIALOG_STYLE_MSGBOX, "LoL", iSTR, "OK", "");
    print("5");
    }
    print("6");
    return 1;
    }


    Kommt garnix in der Konsole, wenn ich auf Num2 drücke, aber die Num-Taste 2 geht normalerweiße.


    Engelsflügel am Astonkühler, als Schutz vor dem Teufel!

  • Mindestens die 1 müsste kommen wenn nicht wird das Callback ja komischerweise garnicht aufgerufen.


    Hast du Filterscripts drinne?


    Ja, aber auf return 0;


    ----------------------------------
    [01:21:37] Blank Gamemode by your name here
    [01:21:37] ----------------------------------


    [01:21:37] Number of vehicle models: 0
    [01:21:57] Incoming connection: 127.0.0.1:63991
    [01:21:57] [join] BOMBER1337 has joined the server (0:127.0.0.1)


    Danach kommt nix mehr, nur noch Join - das wars


    //E: Das Filterscript lädt eh nur meine Maps


    Engelsflügel am Astonkühler, als Schutz vor dem Teufel!

  • Ja, aber auf return 0;


    Mach das auf return 1; sonst blockierst du den Callback ;)


    und evtl hast du die Taste 2 bei dir so umdefiniert, dass da gar nichts aufgerufen wird, denn dann würde der Callback auch nicht aufgerufen werden ;)


    mfg. :thumbup:

    ast2ufdyxkb1.png


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


  • Mach das auf return 1; sonst blockierst du den Callback ;)


    und evtl hast du die Taste 2 bei dir so umdefiniert, dass da gar nichts aufgerufen wird, denn dann würde der Callback auch nicht aufgerufen werden ;)


    mfg. :thumbup:


    Joa die Taste sollte man den wohl auch definieren. :D


    Danke an alle. :P Geht nun


    Engelsflügel am Astonkühler, als Schutz vor dem Teufel!