Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- ================================================================================
- Supportsystem by Music4You aka. Slash aka. Items4Landwirt
- Das System gibt euch ein Optimales Supportsystem mit allen Ansprüchen,
- die ein Server braucht.
- Ich bitte stets darum, meinen Namen im Script stehen zu lassen, es sieht ja eh
- keiner :)
- ================================================================================
- Das kommt in euren Gamemode, ihr müsst nur die Abfrage anpassen.
- public PlayerIsAdmin(playerid)
- {
- if(pInfo[playerid][AdminLevel] >= 1) return 1;
- return 0;
- }
- */
- #include <a_samp>
- #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];
- #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
- enum
- {
- DIALOG_SUP = 900,
- DIALOG_ASUP,
- DIALOG_ACSUP
- }
- enum supports
- {
- bool:erstellt,
- Name[MAX_PLAYER_NAME],
- Admin[MAX_PLAYER_NAME],
- Text[129],
- Ueberschrift[50],
- SpielerID,
- AdminID,
- bool:bearbeitung
- }
- new SupInfo[MAX_SUP][supports];
- public OnFilterScriptInit()
- {
- print("\n=============================================================");
- print(" Support System by Slash aka. Music4You aka. Items4Landwirt");
- print("=============================================================\n");
- for(new i=0;i<MAX_SUP;i++)SupInfo[i][SpielerID]=-1;
- return 1;
- }
- public OnPlayerText(playerid, text[])
- {
- new string[256];
- if(ImSupport[playerid]==true)
- {
- if(CallRemoteFunction("PlayerIsAdmin","i",playerid))
- {
- format(string,256,"[Support-Amin] %s: %s",SpielerName(playerid),text);
- SCM(playerid,hellblau,string);
- SCM(SupInfo[ASupportID[playerid]][SpielerID],hellblau,string);
- return 0;
- }
- else
- {
- format(string,256,"[Support] %s: %s",SpielerName(playerid),text);
- SCM(playerid,hellblau,string);
- SCM(SupInfo[SupportID[playerid]][AdminID],hellblau,string);
- return 0;
- }
- }
- return 1;
- }
- public OnPlayerCommandText(playerid, cmdtext[])
- {
- 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");
- }
- return 0;
- }
- public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
- {
- switch(dialogid)
- {
- 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)
- {
- 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;
- }
- }
- }
- return 1;
- }
- 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 SpielerName(playerid)
- {
- new pName[MAX_PLAYER_NAME];
- GetPlayerName(playerid,pName,MAX_PLAYER_NAME);
- return pName;
- }
- 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);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement