Report/Support System -> Work with Dini

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 Community,
    ich habe heute ein bereits vorgefertigtes System versucht einzubauen.
    Dazu musste ich allerdings einige Sachen entfernen da diese nicht richtig funktioniert haben.


    Nun dessen, waren es die Dini funktionen (Create,Save,Readout) etc


    Nun, da dass vorgefertigt nicht funktioniert hat brauche ich eure Hilfe


    Nun das System an sich funktioniert einwandfrei, nun ist ja eigentlich vorgesehen, dass ich die Gespräche mit Dini abspeichere.
    Einer der Gründe, dessen dass ich die DINI sachen entfernt habe (ausm Script versteht sich) war, dass die Dateien nicht erstellt worden sind, dementsprechend buggten dann auch die Lösch und auslesefunktionen.



    Nun möchte ich diese Funktionen aber so umschreiben, dass es funktioniert.




    Hier ist mal der ScriptTEil

    Spoiler anzeigen
    //Report system
    //new TicketZeile[MAX_PLAYERS]; // Wieviele Zeilen schon belegt sind.
    new SupportTicket[MAX_PLAYERS]; // Ob der Spieler ein Ticket hat
    new TicketAngenommen[MAX_PLAYERS]; // Ob das Ticket angenommen wurde!
    new DeinSupportAdmin[MAX_PLAYERS] = {-1,...}; // Der Supporter, der dein Ticket angenommen hat!
    new DeinSupportMember[MAX_PLAYERS] = {-1,...};
    new pName[MAX_PLAYERS][MAX_PLAYER_NAME];
    new TicketText[144][MAX_PLAYERS];
    #define COLOR_GREY 0xAFAFAFAA
    #define COLOR_YELLOW 0xFFFF00AA

    Spoiler anzeigen
    #define Name(%0) pName[%0]

    Spoiler anzeigen
    //Report ende


    Spoiler anzeigen
    ocmd:sup(playerid,params[])
    {
    new string[144];
    if(!strlen(params))return SendClientMessage(playerid,COLOR_GREY,"[Benutzung]: /sup [Text]");
    if(SupportTicket[playerid] == 0)
    {
    format(string,144,"%s hat ein Support-Ticket geschrieben!",Name(playerid));
    SCMTOADMIN(string);
    SupportTicket[playerid] = 1;
    format(TicketText[playerid],144,params);
    SendClientMessage(playerid,COLOR_YELLOW,"[SUPPORT] Du hast ein Ticket mit folgendem Text geöffnet!");
    SendClientMessage(playerid,COLOR_YELLOW,params);
    SendClientMessage(playerid,COLOR_YELLOW,"[SUPPORT] Warte bis es ein Supporter annimmt!");
    return 1;
    }
    if(DeinSupportAdmin[playerid] == -1)return SendClientMessage(playerid,COLOR_YELLOW,"Du bist in keinem Ticket-Gespräch!");
    if(!strlen(params))return SendClientMessage(playerid,COLOR_YELLOW,"[Benutzung]: (Gespräch) /sup [Text]");
    format(string,144,"( Spieler %s: %s )",Name(playerid),params);
    SendClientMessage(DeinSupportAdmin[playerid],COLOR_GREY,string);
    SendClientMessage(playerid,COLOR_GREY,string);
    return 1;
    }
    ocmd:deleteticket(playerid,params[])
    {
    new pID,string[144];
    if(sscanf(params,"u",pID))return SendClientMessage(playerid,COLOR_GREY,"[Benutzung]: /deleteticket [ID]");
    if(!isAdmin(playerid,1))return SendClientMessage(playerid,COLOR_YELLOW,"Du bist kein Admin!");
    if(SupportTicket[pID] == 0)return SendClientMessage(playerid,COLOR_YELLOW,"Der Spieler hat kein Ticket geschrieben!");
    format(string,144,"%s hat dein Ticket gelöscht!",Name(playerid));
    SendClientMessage(pID,COLOR_YELLOW,string);
    SendClientMessage(playerid,COLOR_YELLOW,"Erfolgreich gelöscht!");
    TicketAngenommen[pID] = 0;
    DeinSupportAdmin[pID] = -1;
    SupportTicket[pID] = 0;
    format(TicketText[playerid],144," ");
    return 1;
    }
    ocmd:tickets(playerid,params[])
    {
    new string[144];
    if(!isAdmin(playerid,1))return SendClientMessage(playerid,COLOR_YELLOW,"Du bist kein Admin!");
    SendClientMessage(playerid,COLOR_YELLOW,"Die angezeigten Tickets können mit /taketicket angenommen werden!");
    for(new i=0,j=GetMaxPlayers();i<j;i++)
    {
    if(SupportTicket[i] == 0)continue;
    if(TicketAngenommen[i] == 0)
    {
    format(string,144,"ID: %i Name: %s",i,Name(i));
    SendClientMessage(playerid,COLOR_GREY,string);
    }
    }
    return 1;
    }
    ocmd:taketicket(playerid,params[])
    {
    new pID,string[144];
    if(sscanf(params,"u",pID))return SendClientMessage(playerid,COLOR_GREY,"[Benutzung]: /taketicket [ID]");
    if(!isAdmin(playerid,1))return SendClientMessage(playerid,COLOR_YELLOW,"Du bist kein Admin!");
    if(SupportTicket[pID] == 0)return SendClientMessage(playerid,COLOR_YELLOW,"Der Spieler hat kein Ticket!");
    if(TicketAngenommen[pID] == 0)
    {
    format(string,144,"%s schrieb folgende Supportnachricht!",Name(pID));
    SendClientMessage(playerid,COLOR_YELLOW,string);
    format(string,144,"-> %s",TicketText[pID]);
    SendClientMessage(playerid,COLOR_YELLOW,string);
    SendClientMessage(playerid,COLOR_YELLOW,"Du kannst per /aw [Text] antworten!");
    format(string,144,"[SUPPORT] %s hat dein Support Ticket geöffnet! Du kannst per /sup [Text] direkt mit ihm schreiben!",Name(playerid));
    SendClientMessage(pID,COLOR_YELLOW,string);
    DeinSupportAdmin[pID] = playerid;
    DeinSupportMember[playerid] = pID;
    TicketAngenommen[pID] = 1;
    }
    return 1;
    }
    ocmd:aw(playerid,params[])
    {
    new string[144];
    if(DeinSupportMember[playerid] == -1)return SendClientMessage(playerid,COLOR_YELLOW,"Du bist in keinem Ticket-Gespräch!");
    if(!isAdmin(playerid,1))return SendClientMessage(playerid,COLOR_YELLOW,"Du bist kein Admin!");
    if(!strlen(params))return SendClientMessage(playerid,COLOR_YELLOW,"[Benutzung]: /aw [Text]");
    format(string,144,"( Supporter %s: %s )",Name(playerid),params);
    SendClientMessage(DeinSupportMember[playerid],COLOR_YELLOW,string);
    SendClientMessage(playerid,COLOR_YELLOW,string);
    return 1;
    }



    Vielen Dank für jede Hilfe


    MFG DevilMakeCry74


    PS: ich habe Skype, Teamviewer und falls nötig auchn Teamspeak³



    EDIT1: ich habe leider keine Ahnung von Dini weil ich von Anfang an mit MYSQL gearbeitet hab /immernoch damit arbeite