Befehl nur 3x benutzen können!!

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
  • Ich weis es jetzt nicht genau, aber ich würde ne Variable definieren die jedes mal beim benutzen des Befehls hochzählt. Dann wenn es 00:00 Uhr ist dann die Variable wieder auf Null setzen.


    MfG

  • Okey,


    Wie würde es dan hier aussehen ?


    if(strcmp(cmdtext,"/test",true)==0)
    {
    if(IsPlayerInRangeOfPoint(playerid, 2.0, 1218.4249, 6.4601, 1000.9219))
    {
    SetPlayerCameraPos(playerid, 1219.81,7.63,1000.92);
    SendClientMessage(playerid,RED,"Du solltest dir lieber Kondome besorgen! Viel Spaß");
    {
    }
    }

  • Hallo


    Wenn Du MySQL hast ist das kein Problem, geh durch un setz alle Werte auf 0. Wenn Du kein MySQL hast, mach eine Datei. Wenn jmd den Befehl benutzt wird er reingeschrieben, Anzahl 1, bei wiederholter Benutzung zählste hoch. Um Mitternach löscht/leerst Du dann den Dateiinhalt.


    dUDA

  • Push


    /edit ich habe es jetzt Drinnen



    if (strcmp("/test", cmdtext, true, 10) == 0)
    {
    ApplyAnimation(playerid,"DANCING","dance_loop",4.1,1,1,1,0,0,1);
    darf[playerid]++;
    if(darf[playerid]==3)
    {
    SendClientMessage(playerid, 0xaa3333aa,"[Achtung] Du hast diesen Befehl bereits 3 mal Benutzt!");
    }


    Wie kann ich ejtzt machen, dass er Nach 00:00 Uhr immer Restartet
    Also dass man jeden Tag wieder auf 0 Gesetzt wird und man 3 mal noch benutzen darf


    MfG

    Einmal editiert, zuletzt von WarF ()

  • Also 1. du hast da nen kleinen Fehler reingehauen..
    Du gibst nämlich bei deinem Code an, dass die Animation durchgeführt wird, dann die Variable erhöht wird und dann die Nachricht kommt.
    Das heißt es bringt dir genauso viel wie vorher, nur dass du jetzt noch ne Nachricht bekommst :D


    So würde das richtig aussehen:



    if (strcmp("/test", cmdtext, true, 10) == 0)
    {
    if(darf[playerid] == 3)
    {
    SendClientMessage(playerid, 0xaa3333aa,"[Achtung] Du hast diesen Befehl bereits 3 mal Benutzt!");
    }
    else
    {
    ApplyAnimation(playerid,"DANCING","dance_loop",4.1,1,1,1,0,0,1);
    darf[playerid]++;
    }
    return 1;
    }


    Bei dem Zurücksetzen gibt es viele Methoden.
    Ich würde da die Methode bevorzugen, dass du immer um genau 0:00 einen GMX durchführen lässt, wo nebenbei auch die "darf"-Variable auf "0" gesetzt wird.

  • Hey,


    Habe es gerade so drin:
    public OnPlayerUpdate(playerid) // Nicht sicher ob das Funktioniert!!
    {
    // new time[1];
    // gettime(time[0]);
    // if(time[0] == 00) //Wenn es 00 Uhr ist!
    // {
    // SendClientMessage(playerid,RED,"XX: Du hast nun wieder die Möglichkeit, den Befehl zu nutzen!!");
    // darf[playerid] = 0;
    //
    // }
    return 1;
    }


    Aber es haut nicht hin...
    Was ist hier Falsch


  • So würde ich den Befehl auch einbauen.
    Aber nen GMX? GMX bedeutet doch das der GM neu gestartet wird, oder? Sorry falls ich da falsch liege bin (noch) kein so super Scripter xD Und wenns so ist dann wäre das nicht gerade schön wenn jemand grad was aufm Server macht und der Server restartet einfach.


    Gibt es keinen Timer in deinem Script der eh die Uhrzeit abruft? Falls nicht würde ich einfach in einen bestehenden Timer eine Abfrage einbauen wie spät es ist. Und falls es nach 0:00Uhr ist wird die Variable auf 0 gesetzt.
    Aber nicht unbedingt in nen Sekundentimer^^ (außer darin wird eh schon die Uhrzeit ermittelt ;) )


    Nachteile:
    - Falls du z.B. das ganze in nen 5 Minuten oder 15 Minuten Timer einbauen solltest dann wird die Variable nicht unbedingt genau um 0:00Uhr zurück gesetzt wenn nicht grad da der Timer aufgerufen wird.
    - Wenn die Variable nicht gespeichert wird kann sich der Spieler nach den 3x einfach ausloggen und wieder ein und schon ist die Variable auch wieder auf 0 gesetzt ;) ( //edit: Wie DurtyFree vor mir auch schon erwähnt hat, ups^^)