Teste für 3 Sekunden gedrückt halten

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
  • Hallo!


    Ich versuche derzeit den Motor über ein 3 Sekündiges Halten der Taste "W" zu starten, allerdings komme ich nicht ganz dahinter wie das funktionieren sollte.
    Nun meine Frage: Wäre jemand so freundlich und würde mir einen Denkanstoß geben?


    Mit freundlichen Grüßen! :)

  • #define HOLDING(%0) \
    ((newkeys & (%0)) == (%0))


    if (HOLDING( KEY_SPRINT ))



    new time = 0;
    if (HOLDING( KEY_SPRINT ))
    {
    time++;
    if(time >= 3)
    {
    //Motorstarten
    time = 0;
    } else time = 0;
    }


    Habe sowas noch nicht gemacht, aber so "sollte" es gehen.


    Wenn nicht startest du da einfach einen Timer der 3 Sekunden geht und stoppst diesen sofern die Taste losgelassen wird. "released"
    http://wiki.sa-mp.com/wiki/OnP…_for_a_key_being_released


    Lg


    /edit

    Alternative mit 'Key Released'

    new motorTimer[MAX_PLAYERS];
    if((newkeys & KEY_FIRE))
    {
    motorTimer[playerid] = SetTimerEx("MotorStarten", 3000, false, "i", playerid);
    }
    if ((oldkeys & KEY_SPRINT) && !(newkeys & KEY_SPRINT))
    {
    KillTimer(motorTimer[playerid]);
    }