Timer durch drücken einer Taste starten/stopen

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 zusammen,


    ich möchte für mein Notruf Gamemode ein Wassertanksystem scripten.
    Heißt dass der Wassertank bei den Löschwagen der Feuerwehr durchs drücken der Feuer Taste leerer wird.


    Dafür müsste ich aber einen Timer scripten der beim drücken der Feuer Taste gestartet und beim loslassen der Feuertaste gestopt wird.
    Wie kann ich soeinen scripten?


    Schonmal vielen Dank für eure Hilfe


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


    // RELEASED(keys)
    #define RELEASED(%0) \
    (((newkeys & (%0)) != (%0)) && ((oldkeys & (%0)) == (%0)))



    public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
    {
    if(HOLDING(KEY_FIRE))
    {
    Timer = SetTimer(...);
    }
    if(RELEASED(KEY_FIRE))
    {
    KillTimer(Timer);
    }
    }


    Edit: // Ich kann dir vorher schon sagen, du kannst den Wasserstrahl wenn der Wassertank leer ist aber nicht blockieren! Also musst du bei deinem Löschscript z.B. eine Variable einbauen, ob der Tank noch voll ist, sonst löscht er nicht.

  • @ⓣoastfighter22
    Danke für die schnelle Antwort, ist das:


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


    extra so geschrieben?


    Edit: // Ich kann dir vorher schon sagen, du kannst den Wasserstrahl wenn der Wassertank leer ist aber nicht blockieren! Also musst du bei deinem Löschscript z.B. eine Variable einbauen, ob der Tank noch voll ist, sonst löscht er nicht.


    Doch habe da ene möglichkeit gefunden :)