Support per TextDraw

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


    Ich wollte mich an ein Support System setzten mit TextDraws aber ich weiß nicht wie....


    die TextDraws erstellen ist kein Problem. Nur wie mach ich das wenn jemand ein Support schreibt das,dass im TextDraw angezeigt wird!


    Kann mir jemand Helfen,mit Code oder so?

    Mit freundlichen Grüßen,
    Dachdecker

  • Nein,nur die Admins sollen in den TextDraws sehen das jemand ein Ticket geschrieben hat. Mit Ticket id und so


    also


    Support Ticket`s :


    TicketID | Spielername
    TicketID | Spielername
    TicketID | Spielername
    TicketID | Spielername

    Mit freundlichen Grüßen,
    Dachdecker

  • Hier hast du mal einen kleinen Denkanstoß


    for(new pID = 0; pID < MAX_PLAYERS; pID++)
    {
    if(TicketSystem[pID][HasTicket] == 1)
    {
    new Maxed[200];
    format(Maxed, sizeof(Maxed), "%sTicketID: %d | Spieler: %s\n",Maxed, i, returnName(i));
    }
    PlayerTextDrawSetString(playerid, TicketDraw[playerid],Maxed);
    }

  • Dann Formatier doch einen String mit deinen Ticketids und den Spieler der TicketID und setzt dann den Textdraw also den String an das Textdraw übergeben vorher machst du dann halt eine Abfrage ob der Spieler auch ein Ticket offen hat oder schon bei einem Supporter ist

  • Ich habe dir eine Private Nachricht geschrieben!


    Ich bedanke mich,für eure Hilfe.


    Probem :


    Wenn jemand ein Report schreibt zeigt er alles an ohne probleme,nur wenn ein Zweiter ein Report macht wird der erste überschrieben.. wie kann ich dies verhindern?

    Mit freundlichen Grüßen,
    Dachdecker

    3 Mal editiert, zuletzt von Dachdecker ()

  • so.
    new tzahl,i,


    for(;i<MAX_PLAYERS;i++)
    {
    if(//abfrage ob spieler (i) ticket erstellt hat)
    {
    //i hat ticket erstellt
    tzahl++;
    }
    }
    if(tzahl==1)
    {
    textdrawcreate und dann andere position usw.
    }

  • Das ist mein Report Dialog..


    Kann mir da jemand das mit For einbinden?
    Ich weiß echt nicht was ich noch tuen soll... kann mir das bitte jemand machen? Mit der for schleife?
    Das wenn jemand ein Report schreibt und dann ein zweiter Report rein kommt,das der erste Report NICHT überschrieben wird...

    if(dialogid == DIALOG_REPORT)
    {
    if(!response) return 1;
    new sendername[MAX_PLAYER_NAME];
    GetPlayerName(playerid, sendername, sizeof(sendername));
    if(strlen(inputtext) < 3)
    {
    return SCM(playerid, Rot, "Das Ticket muss mindestens 3 Zeichen enthalten!");
    }
    SCM(playerid, Gelb, "Du hast das Ticket erfolgreich erstellt");
    SCM(playerid, Gelb, "Warte nun auf die Annahme deines Tickets");
    SCM(playerid, Gelb, "Du kannst das Ticket mit /cticket wieder löschen");
    new str1[128],str2[128],str3[128];
    format(str1, sizeof(str1), "%s", inputtext);
    Ticket[playerid][TicketText] = str1;
    Ticket[playerid][TicketArt] = 1;
    Ticket[playerid][TicketStatus] = 1; // Status 1 = ertsellt | 2 = angenommen | 0 = keiner


    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(Ticket[i][TicketStatus] == 1)
    {
    format(str2, sizeof(str2), "~r~Text : ~n~~w~%s ~n~~r~SpielerName : ~n~~w~%s ~n~~r~TicketID: ~n~~w~%d",str1,SpielerName(Ticket[i][TicketOwner]), Ticket[i][TicketOwner], Ticket[i][TicketText]);
    SCM(i,Rot,"TicketSystem : Ein Ticket wurde abgesendet! Siehe SupportTickets");
    SCM(i, Rot, "Benutze: /aticket TICKETID um ein Ticket anzunehmen.");
    }
    TextDrawSetString(Textdraw2,str2);
    TextDrawSetString(Textdraw3,str3);
    }
    }

    Mit freundlichen Grüßen,
    Dachdecker

    3 Mal editiert, zuletzt von Dachdecker ()


  • habe da damals ein filterscript gemacht.
    dort wird auch per textdraw angezeigt dass jemand einen report geschrieben hat.
    dort könntest du dir anschauen wie es ungefair funktionieren könnte..
    jedoch ist auch ein chatsystem mit textdraws drinne aber das musste ja nicht anschauen :D


    http://ofbrol.of.funpic.de/reportsystem/rep11.pwn

  • ah ok nur.


    Ich versteh das System nicht -.-


    //PUSH des Beitrag`s vom 03.01.2014:


    Ich brauch eure Hilfe wirklich! Ich gebe euch mein Report Dialog.
    Ich möchte das wenn jemand ein Report schreibt nicht beide TextDraw`s gleichzeitig beschrieben werden und wenn ein zweiter einen Report schreibt das der andere beschrieben wird. Bitte helft mir



    if(dialogid == DIALOG_REPORT)
    {
    if(!response) return 1;
    new sendername[MAX_PLAYER_NAME];
    GetPlayerName(playerid, sendername, sizeof(sendername));
    if(strlen(inputtext) < 3)
    {
    return SCM(playerid, Rot, "Das Ticket muss mindestens 3 Zeichen enthalten!");
    }
    SCM(playerid, Gelb, "Du hast das Ticket erfolgreich erstellt");
    SCM(playerid, Gelb, "Warte nun auf die Annahme deines Tickets");
    SCM(playerid, Gelb, "Du kannst das Ticket mit /cticket wieder löschen");
    new str1[128],str2[128],str3[128];
    format(str1, sizeof(str1), "%s", inputtext);
    Ticket[playerid][TicketText] = str1;
    Ticket[playerid][TicketArt] = 1;
    Ticket[playerid][TicketStatus] = 1; // Status 1 = ertsellt | 2 = angenommen | 0 = keiner


    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(Ticket[i][TicketStatus] == 1)
    {
    format(str2, sizeof(str2), "~r~Text : ~n~~w~%s ~n~~r~SpielerName : ~n~~w~%s ~n~~r~TicketID: ~n~~w~%d",str1,SpielerName(Ticket[i][TicketOwner]), Ticket[i][TicketOwner], Ticket[i][TicketText]);
    TextDrawSetString(Textdraw2,str2);
    format(str3, sizeof(str3), "Keine Tickets vorhanden");
    TextDrawSetString(Textdraw3,str3);
    }
    SCM(i,Rot,"TicketSystem : Ein Ticket wurde abgesendet! Siehe SupportTickets");
    SCM(i, Rot, "Benutze: /aticket TICKETID um ein Ticket anzunehmen.");
    }
    }


    Mit freundlichen Grüßen,
    Dachdecker

    2 Mal editiert, zuletzt von Dachdecker ()

  • Schon einmal was gehört von UpdateTextdraw ?
    Update deinen Textdraw einfach, wenn jemand ein neues Ticket geschrieben hat.
    Beispiel:


    stock UpdateTextdraw()
    {
    new TicketAnzahl,
    str1[100],
    str2[1000];
    for(new playerid; playerid < GetMaxPlayers(); playerid++)
    {

    if(Ticket[playerid][TicketStatus] > 0)
    {
    if(!TicketAnzahl)
    format(str2, sizeof(str2), "%d - %s", playerid, GetName(playerid),);
    else
    format(str2, sizeof(str2), "%s~n~%d ", str2, playerid, GetName(playerid));
    TicketAnzahl++;
    }
    }
    format(str1, sizeof(str1), "%d Ticket(s)~n~ID - Name", TicketAnzahl);
    TextDrawSetString(TEXTDRAW[1], str2);
    TextDrawSetString(TEXTDRAW[0], str1);
    }


    eben dann bei deinem Ticket System "UpdateTextdraw();"
    dadurch wird nicht nur einer angezeigt, sondern der Textdraw "updatet" sich und zeigt dir die anderen Tickets.


    Sollte eigentlich als Denkanstoß helfen :/

  • Danke ,aber Denkanstöße sind sehr nett nur ich komme nicht weiter....


    Ich brauch jemand der mir das macht... irgentwie ohne Teamviewer. Per PN oder so ich versteh es nicht wieso es nicht klappt -.- -.-


    ReborN: kannst du mir das vlt per pn machen wenn ich dir mein Report System schicke? oder jemand anderes -.-
    Bitte ich brauch dieses System..

    Mit freundlichen Grüßen,
    Dachdecker