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 :
#define MAX_SUP 10
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];
new SupIDauswahl[MAX_PLAYERS];
#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
#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
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");
}
{
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");
}
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");
}
{
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");
}
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);
}
}
}
{
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);
}
}
}