Problem mit Ticketsystem

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
  • Guten Tag,
    es gibt derzeit einige Probleme mit einer Script Funktion.
    Ich habe ein Supportticketsystem mir heruntergeladen, und dies eingebaut.
    Sobald man /tlogin macht, zeigt er alles perfekt, das Textdraw "Ticket(s)" wird alles angezeigt.
    Sobald ein Ticket ein kommt, und man /topen und die Ticket ID macht, öffnet er das Ticket, der Admin kann auch lesen was der Jenige geschrieben hat.
    Sobald ein Ticket geöffnet wurde von einem Admin, kann der Ticketsteller und der Admin mit einander reden mit /tchat.
    Der Admin kann lesen was der User per /tchat schreibt, nur was der Admin schreibt sieht der User nicht..
    Wenn der Admin /tclose macht, steht da auf einem "Du bearbeitest gerade kein Ticket" und sonstiges..
    Dann kann man auch kein anderes Ticket annehmen oder sonstiges..
    Dann gibt es noch /tmsg, was das bewirkt weiß ich nicht, nur wenn es der Admin ausführt, kommt jedesmal die SendClientMessange wieder.


    Könnte sich jemand diese Funktion mal komplett einmal anschauen, und Fehler verbessern und es hier reinposten?
    Das wäre echt super!


    stock UpdateSupportTextdraws()
    {
    new Ticketzahl,
    str1[100],
    str2[1000];
    for(new playerid; playerid < GetMaxPlayers(); playerid++) {
    if(GetPVarInt(playerid, "ticket_opened")) {
    if(!Ticketzahl)
    format(str2, sizeof(str2), "%d - %s", playerid, GetName(playerid));
    else
    format(str2, sizeof(str2), "%s~n~%d - %s", str2, playerid, GetName(playerid));
    Ticketzahl++;
    }
    }
    format(str1, sizeof(str1), "%d Ticket(s)", Ticketzahl);
    TextDrawSetString(SupportDraws[1], str2);
    TextDrawSetString(SupportDraws[0], str1);
    }


    ocmd:tlogin(playerid, params[])
    {
    #pragma unused params
    new str1[128];
    if(GetPVarInt(playerid, "ticket_admin") != 0)
    return SendClientMessage(playerid, COLOR_RED, "[SUPPORT-TICKET] Du bist bereits eingeloggt!");
    if(GetPVarInt(playerid, PVAR_NAME) > 0 || PlayerInfo[playerid][pAdmin] >= 1) {
    TextDrawShowForPlayer(playerid, SupportDraws[0]);
    TextDrawShowForPlayer(playerid, SupportDraws[1]);
    SetPVarInt(playerid, "ticket_admin", 1);
    format(str1, sizeof(str1), "[SUPPORT-TICKET] %s hat sich in das Ticketsystem eingeloggt!", GetName(playerid));
    }
    else {
    TextDrawHideForPlayer(playerid, SupportDraws[0]);
    TextDrawHideForPlayer(playerid, SupportDraws[1]);
    format(str1, sizeof(str1), "[SUPPORT-TICKET] %s hat sich versucht in das Ticketsystem einzuloggen!", GetName(playerid));
    }
    return SendAdminMessage(COLOR_YELLOW, str1);
    }


    ocmd:report(playerid, params[])
    {
    if(GetPVarInt(playerid, "ticket_opened") < 1)
    {
    new Text[100],str[128];
    if(sscanf(params, "s", Text)) return SendClientMessage(playerid, COLOR_RED, "[SUPPORT-TICKET] Benutzung: /report [Text]");//ok
    if(strlen(Text) > 5)
    {
    SendClientMessage(playerid, COLOR_GREEN, "[SUPPORT-TICKET] Ihr Support-Ticket wurde erfolgreich erstellt! Warten Sie auf eine Antwort.");
    format(str, sizeof(str), "[SUPPORT-TICKET] ein Support Ticket ist von %s eingegangen!", GetName(playerid));
    SendAdminMessage(COLOR_YELLOW, str);
    SetPVarInt(playerid, "ticket_opened", 1);
    SetPVarString(playerid, "ticket_text", Text);
    UpdateSupportTextdraws();
    }
    else
    {
    SendClientMessage(playerid, COLOR_RED, "[SUPPORT-TICKET] Der Text sollte mehr als 5 Zeichen enthalten!");
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_RED, "[SUPPORT-TICKET] Du hast bereits ein Ticket erstellt!");
    }
    return 1;
    }


    ocmd:topen(playerid, params[])
    {
    new tID;
    if(sscanf(params, "d", tID))
    return SendClientMessage(playerid, COLOR_RED, "[Ticketsystem] Benutzung: /topen [Ticket-ID]");
    if(GetPVarInt(playerid, "ticket_admin") < 1)
    if (PlayerInfo[playerid][pAdmin] >= 1)
    return SendClientMessage(playerid, COLOR_RED, "[Ticketsystem] Du hast nicht genug Rechte!");
    if(GetPVarInt(tID, "ticket_opened") != 0 && !GetPVarInt(playerid, "ticket_player")) {
    new str1[128],
    str2[128],
    str3[128],
    str4[100];
    format(str4, sizeof(str4), "%s", GetPVarString(tID, "ticket_text", str4, 100));
    DeletePVar(tID, "ticket_opened");
    SetPVarInt(tID, "ticket_sup", playerid);
    SetPVarInt(playerid, "ticket_player", tID);
    format(str1, sizeof(str1), "[SUPPORT-TICKET] Supporter %s hat dein Ticket geöffnet; nutze /tchat [Text]!", GetName(playerid));
    format(str2, sizeof(str2), "[SUPPORT-TICKET] Supporter %s hat das Ticket von User %s geöffnet!", GetName(playerid), GetName(tID));
    format(str3, sizeof(str3), "[SUPPORT-TICKET] %s schrieb: %s", GetName(playerid), str4);
    SendClientMessage(tID, COLOR_YELLOW, str1);
    SendAdminMessage(ROT, str2);
    SendClientMessage(playerid, COLOR_YELLOW, str3);
    UpdateSupportTextdraws();
    }
    return 1;
    }


    ocmd:tclose(playerid, params[])
    {
    #pragma unused params
    if(PlayerInfo[playerid][pAdmin] >= 7 || GetPVarInt(playerid, "ticket_admin") > 0) {
    if(!GetPVarInt(playerid, "ticket_player")) {
    new PlayerID = GetPVarInt(playerid, "ticket_player"),
    str1[128],
    str2[128];
    format(str1, sizeof(str1), "[SUPPORT-TICKET] Supporter %s hat das Ticket von Spieler %s gelöscht!", GetName(playerid), GetName(PlayerID));
    format(str2, sizeof(str2), "[SUPPORT-TICKET] Supporter %s hat dein Ticket welches von ihm bearbeitet wurde, gelöscht!", GetName(playerid));
    SendAdminMessage(COLOR_YELLOW, str2);
    SendClientMessage(PlayerID, COLOR_YELLOW, str1);
    DeletePVar(PlayerID, "ticket_sup");
    DeletePVar(playerid, "ticket_player");
    DeletePVar(PlayerID, "ticket_opened");
    }
    else
    SendClientMessage(playerid, COLOR_RED, "[Ticketsystem] Du hattest kein Ticket offen!");
    }
    return 1;
    }
    ocmd:tchat(playerid, params[])
    {
    new Text[100];
    if(sscanf(params, "s", Text))return SendClientMessage(playerid, COLOR_RED, "[SUPPORT-TICKET] Benutzung: /tchat [Text]");
    if(IsPlayerConnected(GetPVarInt(playerid, "ticket_sup")))
    {
    new str1[128],
    str2[128],
    varSup = GetPVarInt(playerid, "ticket_sup");
    format(str1, sizeof(str1), "[LIVE: SUPPORT-TICKET] %s schreibt: %s", GetName(playerid), Text);
    format(str2, sizeof(str2), "[LIVE: SUPPORT-TICKET] Du schriebst: %s", Text);
    SendClientMessage(varSup, COLOR_PURPLE, str1);
    SendClientMessage(playerid, COLOR_PURPLE, str2);
    }
    else
    {
    SendClientMessage(playerid, COLOR_RED, "[Ticketsystem] Dein Gegenüber ist weg!");
    }
    return 1;
    }


    ocmd:tmsg(playerid, params[])
    {
    new Text[100];
    if(sscanf(params, "s[100]", Text))
    return SendClientMessage(playerid, COLOR_RED, "[SUPPORT-TICKET] Falsche Benutzung: /tmsg [Text]");
    if(IsPlayerConnected(GetPVarInt(playerid, "ticket_player")) && GetPVarInt(playerid, "ticket_admin") > 0) {
    new str1[128],
    str2[128],
    varPlayer = GetPVarInt(playerid, "ticket_player");
    format(str1, sizeof(str1), "[LIVE: SUPPORT-TICKET] %s schreibt: %s", GetName(playerid), Text);
    format(str2, sizeof(str2), "[LIVE: SUPPORT-TICKET] Du schriebst: %s", Text);
    SendClientMessage(varPlayer, COLOR_PURPLE, str1);
    SendClientMessage(playerid, COLOR_PURPLE, str2);
    }
    else
    SendClientMessage(playerid, COLOR_RED, "[SUPPORT-TICKET] Dein Gegenüber ist weg!");
    return 1;
    }

    Einmal editiert, zuletzt von SA:MP () aus folgendem Grund: Pawncode neu eingefügt