Beiträge von Crocky

    Hallo zusammen,


    nach längerer Abstinenz bin ich nun auch wieder etwas aktiver und wollte mich wieder im Scripten versuchen.
    Mein Problem ist das man das Support Ticket als ADMIN mit /supinfo -> Ticket -> Löschen nicht schließen kann...
    Code :

    Spoiler anzeigen
    #define MAX_SUP 10

    Spoiler anzeigen
    new bool:subgesendet[MAX_PLAYERS],SupDiaID[MAX_PLAYERS],ueberschrift[MAX_PLAYERS][50],subtext[MAX_PLAYERS][129],SupportID[MAX_PLAYERS],ASupportID[MAX_PLAYERS],bool:ImSupport[MAX_PLAYERS];
    new SupIDauswahl[MAX_PLAYERS];

    Spoiler anzeigen
    #define SCM SendClientMessage
    #define grün 0x04A800FF
    #define rot 0xCC0000FF
    #define hellblau 0x00A3F0FF
    #define orange 0xE68A00FF
    #define MSG DIALOG_STYLE_MSGBOX
    #define INPUT DIALOG_STYLE_INPUT
    #define LIST DIALOG_STYLE_LIST
    #define Dialog ShowPlayerDialog

    Spoiler anzeigen
    if (strcmp("/sup", cmdtext, true, 10) == 0)
    {
    if(subgesendet[playerid]==true)return SCM(playerid,rot,"Du hast bereits ein Support Ticket offen, /closesup um es zu löschen");
    return Dialog(playerid,DIALOG_SUP,INPUT,"Überschrift","Gebe eine Geeignete Überschrift ein\nBeschriebe dein Problem mit einem Wort, z.B. Bug","Weiter","Abbrechen"),SupDiaID[playerid]=1;
    }
    if (strcmp("/closesup", cmdtext, true, 10) == 0)
    {
    if(subgesendet[playerid]==false)return SCM(playerid,rot,"Du hast kein Support Ticket geöffnet");
    subgesendet[playerid]=false;
    SendAdminMessage(2,playerid,1);
    return SCM(playerid,grün,"Du hast dein Support Ticket geschlossen");
    }
    if (strcmp("/supinfo", cmdtext, true, 10) == 0)
    {
    new string[1024],i=0;
    if(!CallRemoteFunction("PlayerIsAdmin","i",playerid))return SCM(playerid,rot,"Du bist nicht befugt");
    for(;i<MAX_SUP;i++)
    {
    if(SupInfo[i][erstellt]==true)
    {
    if(SupInfo[i][bearbeitung]==false){format(string,1024,"%s {00A911}%s | %s\n",string,SupInfo[i][Name],SupInfo[i][Ueberschrift]);}
    else if(SupInfo[i][bearbeitung]==true) {format(string,1024,"%s {FFA600}[In Bearbeitung]%s | %s\n",string,SupInfo[i][Name],SupInfo[i][Ueberschrift]);}
    }
    else {format(string,1024,"%s {940000}Support ID Nicht vergeben!\n",string);}
    }
    return Dialog(playerid,DIALOG_ASUP,LIST,"Support Menü",string,"Auswählen","Abbrechen");
    }

    Spoiler anzeigen
    case DIALOG_SUP:
    {
    if(response)
    {
    switch(SupDiaID[playerid])
    {
    case 1:
    {
    format(ueberschrift[playerid],50,"%s",inputtext);
    Dialog(playerid,DIALOG_SUP,INPUT,"Problem","Gebe nun dein Text ein, welcher dein Problem genauer beschreibt","Weiter","Abbrechen"),SupDiaID[playerid]=2;
    }
    case 2:
    {
    new string[300];
    format(subtext[playerid],128,"%s",inputtext);
    format(string,300,"Überschrift: %s\n\nText: %s\n\nBist du sicher das du den Support absenden möchtest?",ueberschrift[playerid],subtext[playerid]);
    Dialog(playerid,DIALOG_SUP,MSG,"Support",string,"Absenden","Abbrechen"),SupDiaID[playerid]=3;
    }
    case 3:return CreateSup(playerid,ueberschrift[playerid],subtext[playerid]);
    }
    }
    else return SCM(playerid,rot,"Du hast den Support abgebrochen"),SupDiaID[playerid]=0;
    }
    case DIALOG_ASUP:
    {
    if(response)
    {
    SupIDauswahl[playerid] = listitem;
    new string[200];
    if(SupInfo[SupIDauswahl[playerid]][erstellt]==false)return SCM(playerid,rot,"Die Support ID ist nicht vergeben"),OnPlayerCommandText(playerid,"/supinfo");
    format(string,200,"Absender: %s\nÜberschrift: %s\nText: %s",SupInfo[SupIDauswahl[playerid]][Name],SupInfo[SupIDauswahl[playerid]][Ueberschrift],SupInfo[SupIDauswahl[playerid]][Text]);
    Dialog(playerid,DIALOG_ACSUP,MSG,"Support Ticket",string,"Annehmen","Löschen");
    }
    }
    case DIALOG_ACSUP:
    {
    if(response == 1)
    {
    new string[128];
    SupInfo[SupIDauswahl[playerid]][bearbeitung]=true;
    format(SupInfo[SupIDauswahl[playerid]][Admin],MAX_PLAYER_NAME,"%s",SpielerName(playerid));
    SupInfo[SupIDauswahl[playerid]][AdminID]=playerid;
    format(string,128,"%s hat dein Support Ticket geöffnet, du kannst einfach im Chat mit ihm schreiben",SpielerName(playerid));
    SCM(SupInfo[SupIDauswahl[playerid]][SpielerID],orange,string);
    SCM(playerid,orange,"Du hast das Ticket geöffnet, du kannst im Chat mit dem User schrieben.");
    ImSupport[playerid]=true;
    ASupportID[playerid]=SupIDauswahl[playerid];
    ImSupport[SupInfo[SupIDauswahl[playerid]][SpielerID]]=true;
    SupIDauswahl[playerid]=0;
    }
    else
    {
    new string[128];
    format(string,128,"Du hast das Ticket von %s gelöscht",SupInfo[SupIDauswahl[playerid]][Name]);
    SCM(playerid,orange,string);
    format(string,128,"%s hat dein Support Ticket gelöscht",SpielerName(playerid));
    SCM(SupInfo[SupIDauswahl[playerid]][SpielerID],orange,string);
    subgesendet[SupInfo[SupIDauswahl[playerid]][SpielerID]]=false;
    SupInfo[SupIDauswahl[playerid]][erstellt]=false;
    ImSupport[playerid]=false;
    ASupportID[playerid]=-1;
    ImSupport[SupInfo[SupIDauswahl[playerid]][SpielerID]]=false;
    SupIDauswahl[playerid]=0;
    }
    }
    stock GetFreeSupID()
    {
    new i=0;
    for(;i<MAX_SUP;i++)
    {
    if(SupInfo[i][erstellt]==true)continue;
    return i;
    }
    return -1;
    }
    stock CreateSup(playerid,header[],text[])
    {
    new ID=GetFreeSupID();
    if(ID==-1)return SCM(playerid,rot,"Die Maximale Anzahl von Support Tickets ist erreicht!");
    format(SupInfo[ID][Ueberschrift],50,"%s",header);
    format(SupInfo[ID][Text],129,"%s",text);
    format(SupInfo[ID][Name],129,"%s",SpielerName(playerid));
    SupInfo[ID][SpielerID]=playerid;
    SupInfo[ID][bearbeitung]=false;
    SupInfo[ID][erstellt]=true;
    SendAdminMessage(1,playerid,ID);
    subgesendet[playerid]=true;
    SupportID[playerid]=ID;
    return SCM(playerid,grün,"Der Support wurde erfolgreich abgesendet");
    }

    Spoiler anzeigen
    stock SendAdminMessage(art,playerid,ID)
    {
    new i=0,string[256];
    if(art==1){format(string,256,"Spieler:{00A911} %s{FFFFFF} hat ein Support Ticket eingereicht:{00A911} %s{FFFFFF}, /supinfo zum einsehen",SpielerName(playerid),SupInfo[ID][Ueberschrift]);}
    else if(art==2){format(string,256,"Spieler: %s hat sein Support Ticket gelöscht",SpielerName(playerid));}
    for(;i<MAX_PLAYERS;i++)
    {
    if(CallRemoteFunction("PlayerIsAdmin","i",i))
    {
    SCM(i,-1,string);
    }
    }
    }


    Hey, Frage .. Support System geht alles, Allerdings kann man das Ticket nicht Löschen ..

    Spoiler anzeigen
    #define MAX_SUP 10

    Spoiler anzeigen
    new bool:subgesendet[MAX_PLAYERS],SupDiaID[MAX_PLAYERS],ueberschrift[MAX_PLAYERS][50],subtext[MAX_PLAYERS][129],SupportID[MAX_PLAYERS],ASupportID[MAX_PLAYERS],bool:ImSupport[MAX_PLAYERS];
    new SupIDauswahl[MAX_PLAYERS];

    Spoiler anzeigen
    #define SCM SendClientMessage
    #define grün 0x04A800FF
    #define rot 0xCC0000FF
    #define hellblau 0x00A3F0FF
    #define orange 0xE68A00FF
    #define MSG DIALOG_STYLE_MSGBOX
    #define INPUT DIALOG_STYLE_INPUT
    #define LIST DIALOG_STYLE_LIST
    #define Dialog ShowPlayerDialog

    Spoiler anzeigen
    if (strcmp("/sup", cmdtext, true, 10) == 0)
    {
    if(subgesendet[playerid]==true)return SCM(playerid,rot,"Du hast bereits ein Support Ticket offen, /closesup um es zu löschen");
    return Dialog(playerid,DIALOG_SUP,INPUT,"Überschrift","Gebe eine Geeignete Überschrift ein\nBeschriebe dein Problem mit einem Wort, z.B. Bug","Weiter","Abbrechen"),SupDiaID[playerid]=1;
    }
    if (strcmp("/sup", cmdtext, true, 10) == 0)
    {
    if(subgesendet[playerid]==false)return SCM(playerid,rot,"Du hast kein Support Ticket geöffnet");
    subgesendet[playerid]=false;
    SendAdminMessage(2,playerid,1);
    return SCM(playerid,grün,"Du hast dein Support Ticket geschlossen");
    }
    if (strcmp("/supinfo", cmdtext, true, 10) == 0)
    {
    new string[1024],i=0;
    if(!CallRemoteFunction("PlayerIsAdmin","i",playerid))return SCM(playerid,rot,"Du bist nicht befugt");
    for(;i<MAX_SUP;i++)
    {
    if(SupInfo[i][erstellt]==true)
    {
    if(SupInfo[i][bearbeitung]==false){format(string,1024,"%s {00A911}%s | %s\n",string,SupInfo[i][Name],SupInfo[i][Ueberschrift]);}
    else if(SupInfo[i][bearbeitung]==true) {format(string,1024,"%s {FFA600}[In Bearbeitung]%s | %s\n",string,SupInfo[i][Name],SupInfo[i][Ueberschrift]);}
    }
    else {format(string,1024,"%s {940000}Support ID Nicht vergeben!\n",string);}
    }
    return Dialog(playerid,DIALOG_ASUP,LIST,"Support Menü",string,"Auswählen","Abbrechen");
    }

    Spoiler anzeigen
    case DIALOG_SUP:
    {
    if(response)
    {
    switch(SupDiaID[playerid])
    {
    case 1:
    {
    format(ueberschrift[playerid],50,"%s",inputtext);
    Dialog(playerid,DIALOG_SUP,INPUT,"Problem","Gebe nun dein Text ein, welcher dein Problem genauer beschreibt","Weiter","Abbrechen"),SupDiaID[playerid]=2;
    }
    case 2:
    {
    new string[300];
    format(subtext[playerid],128,"%s",inputtext);
    format(string,300,"Überschrift: %s\n\nText: %s\n\nBist du sicher das du den Support absenden möchtest?",ueberschrift[playerid],subtext[playerid]);
    Dialog(playerid,DIALOG_SUP,MSG,"Support",string,"Absenden","Abbrechen"),SupDiaID[playerid]=3;
    }
    case 3:return CreateSup(playerid,ueberschrift[playerid],subtext[playerid]);
    }
    }
    else return SCM(playerid,rot,"Du hast den Support abgebrochen"),SupDiaID[playerid]=0;
    }
    case DIALOG_ASUP:
    {
    if(response)
    {
    SupIDauswahl[playerid] = listitem;
    new string[200];
    if(SupInfo[SupIDauswahl[playerid]][erstellt]==false)return SCM(playerid,rot,"Die Support ID ist nicht vergeben"),OnPlayerCommandText(playerid,"/supinfo");
    format(string,200,"Absender: %s\nÜberschrift: %s\nText: %s",SupInfo[SupIDauswahl[playerid]][Name],SupInfo[SupIDauswahl[playerid]][Ueberschrift],SupInfo[SupIDauswahl[playerid]][Text]);
    Dialog(playerid,DIALOG_ACSUP,MSG,"Support Ticket",string,"Annehmen","Löschen");
    }
    }
    case DIALOG_ACSUP:
    {
    if(response == 1)
    {
    new string[128];
    SupInfo[SupIDauswahl[playerid]][bearbeitung]=true;
    format(SupInfo[SupIDauswahl[playerid]][Admin],MAX_PLAYER_NAME,"%s",SpielerName(playerid));
    SupInfo[SupIDauswahl[playerid]][AdminID]=playerid;
    format(string,128,"%s hat dein Support Ticket geöffnet, du kannst einfach im Chat mit ihm schreiben",SpielerName(playerid));
    SCM(SupInfo[SupIDauswahl[playerid]][SpielerID],orange,string);
    SCM(playerid,orange,"Du hast das Ticket geöffnet, du kannst im Chat mit dem User schrieben.");
    ImSupport[playerid]=true;
    ASupportID[playerid]=SupIDauswahl[playerid];
    ImSupport[SupInfo[SupIDauswahl[playerid]][SpielerID]]=true;
    SupIDauswahl[playerid]=0;
    }
    else
    {
    new string[128];
    format(string,128,"Du hast das Ticket von %s gelöscht",SupInfo[SupIDauswahl[playerid]][Name]);
    SCM(playerid,orange,string);
    format(string,128,"%s hat dein Support Ticket gelöscht",SpielerName(playerid));
    SCM(SupInfo[SupIDauswahl[playerid]][SpielerID],orange,string);
    subgesendet[SupInfo[SupIDauswahl[playerid]][SpielerID]]=false;
    SupInfo[SupIDauswahl[playerid]][erstellt]=false;
    ImSupport[playerid]=false;
    ASupportID[playerid]=-1;
    ImSupport[SupInfo[SupIDauswahl[playerid]][SpielerID]]=false;
    SupIDauswahl[playerid]=0;
    }
    }
    stock GetFreeSupID()
    {
    new i=0;
    for(;i<MAX_SUP;i++)
    {
    if(SupInfo[i][erstellt]==true)continue;
    return i;
    }
    return -1;
    }
    stock CreateSup(playerid,header[],text[])
    {
    new ID=GetFreeSupID();
    if(ID==-1)return SCM(playerid,rot,"Die Maximale Anzahl von Support Tickets ist erreicht!");
    format(SupInfo[ID][Ueberschrift],50,"%s",header);
    format(SupInfo[ID][Text],129,"%s",text);
    format(SupInfo[ID][Name],129,"%s",SpielerName(playerid));
    SupInfo[ID][SpielerID]=playerid;
    SupInfo[ID][bearbeitung]=false;
    SupInfo[ID][erstellt]=true;
    SendAdminMessage(1,playerid,ID);
    subgesendet[playerid]=true;
    SupportID[playerid]=ID;
    return SCM(playerid,grün,"Der Support wurde erfolgreich abgesendet");
    }

    Spoiler anzeigen
    stock SendAdminMessage(art,playerid,ID)
    {
    new i=0,string[256];
    if(art==1){format(string,256,"Spieler:{00A911} %s{FFFFFF} hat ein Support Ticket eingereicht:{00A911} %s{FFFFFF}, /supinfo zum einsehen",SpielerName(playerid),SupInfo[ID][Ueberschrift]);}
    else if(art==2){format(string,256,"Spieler: %s hat sein Support Ticket gelöscht",SpielerName(playerid));}
    for(;i<MAX_PLAYERS;i++)
    {
    if(CallRemoteFunction("PlayerIsAdmin","i",i))
    {
    SCM(i,-1,string);
    }
    }
    }


    Ne Idee? :D

    Hey Leute
    wie mein Titel bereits verrät, suche ich einen Gameserver für SA:MP um das Script mit einem Kollegen von mir zu testen.
    Ein paar Tage würden ausreichen (hätte jedoch auch kein Problem wenn der Server für längeren Zeitraum genutzt werden könnte)
    Liebe Grüße