/support System frage

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 Liebe Brotfische!



    Ja ich bin es einmal wieder :D


    Ich habe eine Frage zu diesem Code :


    if(dialogid==DIALOG_SUPPORT)
    {



    if(response)
    {
    if(listitem == 0)
    {
    new string[128];
    format(string,sizeof(string),"%s benötigt einen Support wegen foglendem Thema: %s",SpielerName(playerid),string);
    for(new i=0; i<GetMaxPlayers(); i++)
    {
    if(IsPlayerConnected(i))
    {
    if(isPlayerAnAdmin(i,GetPVarInt(playerid,"Adminlevel")))
    {
    SendClientMessage(i,COLOR_DARKRED,string);
    }
    }
    }
    SetTimer("support",30000,false);
    }
    if(listitem == 1)
    {
    new string[128];
    format(string,sizeof(string),"%s benötigt einen Support wegen foglendem Thema: %s",SpielerName(playerid),string);
    for(new i=0; i<GetMaxPlayers(); i++)
    {
    if(IsPlayerConnected(i))
    {
    if(isPlayerAnAdmin(i,GetPVarInt(playerid,"Adminlevel")))
    {
    SendClientMessage(i,COLOR_DARKRED,string);
    }
    }
    }
    SetTimer("support",30000,false);
    }
    }
    if(response==0)
    {


    }
    return 1;

    }


    Und Zwar möchte ich, wenn der Timer noch läuft, dass eine Meldung kommt die folgenden Text beinhaltet:
    "Du hast bereits ein Support geschrieben. Du kannst erst in 5 Minuten einen neuen Support schreiben!"


    Nur weiß ich nicht wie ich dies machen soll.


    Kann mir hier jemand helfen bitte? :D

  • Das machst du am besten mit einer Variabel für den Spieler welche du auf 1 Setzt und wenn diese auf 1 ist solltest natürlich noch abfragen so kann er kein neues
    Ticket beantragen also wenn er den command eingibt und beim ablauf des Timers setzt du die Variabel des spielers wieder auf 0.

  • So ungefähr::



    //Befehl
    SetPVarInt(playerid,"SupportTicket",1);
    SetTimer("Supporting",60*1000*5,false);
    if(GetPVarInt(playerid,"SupportTicket",1)
    {
    SendClientMessage(playerid,COLOR_RED,"Du hast bereits ein Ticket geschrieben. Bitte warte 5 Minuten!");
    return 1;
    }


    //Irgendwo anders.. (unter new's oder so)
    forward Supporting(playerid);
    public Supporting(playerid)
    {
    SetPVarInt(playerid,"SupportTicket",0);
    return 1;
    }

  • Ich würde das ganz einfach machen mit Pvar.
    Du musst nur "Supportticket" oder so erstellen und adnn wenn er das Ticket schreibt das auf 1 setzten.
    Der Timer macht in 5 minuten "Supportticket" wieder auf 0. Somit kann er kein weiteres Schreiben oder sonst was... Er muss halt die 5 Minuten warten :D


    Der über mir hat es z.B so gemacht wie ich oben beschreiben hab :D


    MFG
    DeRoX

  • Jo genau nur benutzte am ebsten SetTimerEx



    SetTimerEx("Supporting",300000,false,"i",playerid);


    bei der Zeit geht deins auch also nicht irritieren lassen


    warum SetTimerEx da du nun dein platzhalter verwenden kannst also den parameter playerid;


    //edit


    und mach eine andere Reihenfolge

    if(GetPVarInt(playerid,"SupportTicket",1) return SendClientMessage(playerid,COLOR_RED,"Du hast bereits ein Ticket geschrieben. Bitte warte 5 Minuten!");
    SetPVarInt(playerid,"SupportTicket",1);
    SetTimer("Supporting",60*1000*5,false);


    dann wird nicht immer erneut due variabel gesetzt und wieder abgefragt kleine entlastung