Chat Block Timer

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 habe eine help channel (/h). Ich möchte nun, dass man dort nur jede 60 sekunden schreiben kann. Wie geht das?


    Danke Im vorraus :thumbup:

    Du brauchst Hilfe beim scripten? Siehe Hier:


    Klick mich!


    Derzeitiges Projekt: Youngs Deathmatch 1.0.0 [||||||||||]

  • Du musst einen Timer an dem Zeitpunkt starten, wo er etwas geschrieben hat.


    SetTimerEx("htimer",60000,false,"i",playerid);


    Dann musst einen neuen Public erstellen.


    forward htimer(playerid);
    public htimer(playerid)
    {
    return 1;
    }



    Wenn der Timer abgelaufen ist, darf er wieder schreiben.
    Dafür benötigen wir eine Variable.


    new bool:darfspielerschreiben[MAX_PLAYERS];


    //Bei dem /h Command:
    if(darfspielerschreiben[playerid]==true) return SendClientMessage(playerid,COLOR_RED,"Du darfst nur alle 60 Sekunden schreiben.");
    SetTimerEx("htimer",60000,false,"i",playerid);
    darfspielerschreiben[playerid]=true;


    // Bei dem Timer:
    forward htimer(playerid);
    public htimer(playerid)
    {
    darfspielerschreiben[playerid]=false;
    return 1;
    }



  • if(darfspielerschreiben[playerid]==true) return SendClientMessage(playerid,COLOR_RED,"Du darfst nur alle 60 Sekunden schreiben.");


    ??
    Du fragst ab ob die Variable true ist - also wenn er schreiben darf. Dann returnst du, dass er nur alle 60 Sekunden schreiben darf, obwohl du abfragst, ob er true ist?
    Und dann als Sahnehäubchen setzt du das ganze nochmal auf true. ??



    //Bei dem /h Command:
    if(darfspielerschreiben[playerid]==false) return SendClientMessage(playerid,COLOR_RED,"Du darfst nur alle 60 Sekunden schreiben.");
    SetTimerEx("htimer",60000,false,"i",playerid);
    darfspielerschreiben[playerid]=true;


    lg


    P.S: Wenn ich schwachsinn rede, Sagen, dann Lösche ich es xD

    RTL - Das N steht für Niveau!
    MfG,
    StreetS


    Jegliche Freundesanfragen, die für mich keinen Sinn ergeben, werden professionell Ignoriert. (Gleiche mit Skype!)
    Wer es nicht kapiert wird in Breadfish & Skype blockiert.


    - Stolzer PAWN Scripter der Klasse Beherrscht



  • Die Variable müsste eigentlich "Darfspielerschreiben" heißen.
    Wenn er NICHT reden darf, bekommt er die Nachricht "Du darfst nur alle 60 Sekunden schreiben".
    Wenn er reden darf, redet er und startet dabei den Timer.
    Von nun an darf er 60 Sekunden nicht reden, also wird die Variable "Darfspielerschreiben" auf false gsetzt.


    versucht der User jetzt mit /h zu schreiben, kommt die SendClientMessage und das wars.
    Er darf nicht /h schreiben.


    Nachdem 60 Sekunden vorbei sind wird die Variable wieder auf false gsetzt,
    damit der Spieler wieder schreiben kann.