Guest User

Ticket-System

a guest
Jul 6th, 2010
1,075
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 13.25 KB | None | 0 0
  1. /*======================================|DZ|==================================*/
  2. /*================================|TICKET-SYSTEM|=============================*/
  3. /*
  4. Version : 0.1
  5.  
  6. Ersteller : DogZone aka Daniel Faller
  7. Homepage : www.dogzone.de.gg
  8.  
  9. Update & Support : www.dogzone.de.gg
  10.  
  11. Das Entfernen der Copyrights ist nicht erwünscht ! bitte seien sie so Fair und lassen sie die Copyrights im Script drinne danke.
  12. */
  13. /*
  14.     print("\n------------------------------------------------------");
  15.     print("-------------------------|DZ|-------------------------");
  16.     print("--------------------|Ticket-System|--------------------");
  17.     print("---------------------|Version:0.1|--------------------");
  18.     print("-------------|Updates auf www.dogzone.de.gg|----------");
  19.     print("----------|Create by DogZone ak Daniel Faller|--------");
  20.     print("------------------------------------------------------");
  21.     print("----------------------|Commands|----------------------");
  22.     print("USER: /sup | Erstellt als Nicht Supporter ein Ticket--");
  23.     print("SUPPORTER : /sup | Öffnet ein Ticket von Usern.-------");
  24.     print("RCON : /setsup | Mache ein User zum Supporter.--------");
  25.     print("------------------------------------------------------\n");
  26. */
  27. //====================================INCLUDE===================================
  28. #include <a_samp>
  29. #include <dini>
  30. #include <DZ_sonstiges>
  31. //==============================================================================
  32. //Einstellungen
  33. #define SupportTickets 50  // Stelle hier die Maximalen Tickets ein.
  34. //==============================================================================
  35. forward OnTicketLogin(playerid);
  36. enum datei
  37. {
  38.     supporter,
  39. }
  40.  
  41. new SpielerDatei[MAX_PLAYERS][datei];
  42.  
  43.  
  44. enum ticket
  45. {
  46.     tagz,
  47.     monatz,
  48.     jahrz,
  49.     SupportTicket,
  50.     TicketErsteller[16],
  51.     Frage[256],
  52. }
  53. new SuppTicket[SupportTickets][ticket];
  54. forward TicketLoad(playerid,sticket);
  55. forward SendSupporterMessage(color, string[]);
  56. new SuppTicketNummer[MAX_PLAYERS];
  57. new supanfrage = 0;
  58. new SupportT = 0;
  59. new stringZ[256];
  60. #define DIALOGID_TICKET 96
  61. #define DIALOGID_STRAFZETTEL 97
  62. #define DIALOGID_STRAFZETTEL2 98
  63. #define DIALOGID_TICKET2 99
  64. #define DIALOGID_TICKET3 100
  65. #define DIALOGID_TICKET4 101
  66. #define DIALOGID_TICKET5 102
  67. //==============================================================================
  68. public SendSupporterMessage(color, string[])
  69. {
  70.     for(new i = 0; i < MAX_PLAYERS; i++)
  71.     {
  72.         if(IsPlayerConnected(i))
  73.         {
  74.             if(SpielerDatei[i][supporter] == 1)
  75.             {
  76.                 SendClientMessage(i, color, string);
  77.             }
  78.         }
  79.     }
  80. }
  81. public OnFilterScriptInit()
  82. {
  83.     print("\n------------------------------------------------------");
  84.     print("-------------------------|DZ|-------------------------");
  85.     print("--------------------|Ticket-System|--------------------");
  86.     print("---------------------|Version:0.1|--------------------");
  87.     print("-------------|Updates auf www.dogzone.de.gg|----------");
  88.     print("----------|Create by DogZone ak Daniel Faller|--------");
  89.     print("------------------------------------------------------");
  90.     print("----------------------|Commands|----------------------");
  91.     print("USER: /sup | Erstellt als Nicht Supporter ein Ticket--");
  92.     print("SUPPORTER : /sup | Öffnet ein Ticket von Usern.-------");
  93.     print("RCON : /setsup | Mache ein User zum Supporter.--------");
  94.     print("------------------------------------------------------\n");
  95.     for(new i;i<SupportTickets;i++){
  96.     new string[128];
  97.     new temp[256];
  98.     format(string, sizeof(string),"Ticket/TicketNummer_%d.ini",i);
  99.     if(dini_Exists(string)){
  100.     temp = dini_Get(string,"tagz");
  101.     SuppTicket[i][tagz] = strval(temp);
  102.     temp = dini_Get(string,"monatz");
  103.     SuppTicket[i][monatz] = strval(temp);
  104.     temp = dini_Get(string,"jahrz");
  105.     SuppTicket[i][jahrz] = strval(temp);
  106.     temp = dini_Get(string,"TicketErsteller");
  107.     strmid(SuppTicket[i][TicketErsteller],temp,0,256,256);
  108.     temp = dini_Get(string,"Frage");
  109.     strmid(SuppTicket[i][Frage],temp,0,256,256);
  110.     }}
  111.     return 1;
  112. }
  113.  
  114. public OnFilterScriptExit()
  115. {
  116.     return 1;
  117. }
  118. public OnPlayerSpawn(playerid)
  119. {
  120.     return 1;
  121. }
  122. public OnPlayerConnect(playerid)
  123. {
  124.     format(stringZ, sizeof(stringZ), "Ticket/Spieler/%s.ini", Spieler(playerid));
  125.     if(dini_Exists(stringZ)){OnTicketLogin(playerid);}
  126.     else{
  127.     new File: hFile = fopen(stringZ, io_write);
  128.     if (hFile)
  129.     {
  130.             new var[32];
  131.             format(var, 32, "supporter=%d\n", SpielerDatei[playerid][supporter]);fwrite(hFile, var);
  132.     }
  133.     fclose(hFile);
  134.     OnTicketLogin(playerid);
  135.     }
  136.     return 1;
  137. }
  138. public OnPlayerDisconnect(playerid, reason)
  139. {
  140.         for(new i = 0;i<SupportTickets;i++){new strings[256];format(strings, sizeof(strings),"Ticket/TicketNummer_%d.ini",i);if(dini_Exists(strings)){if(SuppTicket[i][SupportTicket] == playerid){fremove(strings);}}}
  141.         return 1;
  142. }
  143. public OnPlayerCommandText(playerid, cmdtext[])
  144. {
  145.     new cmd[128];
  146.     new tmp[128];
  147.     new idx;
  148.     cmd = strtok(cmdtext, idx);
  149.     if (strcmp(cmd, "/sup", true) ==0 )
  150.     {
  151.         new tickets;
  152.         new strings[256];
  153.         new showstring[256];
  154.         if(SpielerDatei[playerid][supporter] != 0)
  155.         {
  156.         for(new i = 0;i<SupportTickets;i++){
  157.         format(strings, sizeof(strings),"Ticket/TicketNummer_%d.ini",i);
  158.         if(dini_Exists(strings)){tickets++;format(showstring,sizeof(showstring),"Ticket ID: %d",i);SendClientMessage(playerid,ROT,showstring);}}
  159.         format(showstring,sizeof(showstring),"Support-Tickets Vorhanden : %d.\nWelches Ticket möchten sie Öffnen ?",tickets);
  160.         ShowPlayerDialog(playerid, DIALOGID_TICKET2, DIALOG_STYLE_INPUT, "Ticket-Display",showstring, "Bestätigen", "Abrechen");
  161.         }
  162.         else{
  163.         supanfrage = playerid;
  164.         format(showstring,sizeof(showstring),"Support-Ticket Nummer : %d\nTicket Starter : %s\nBitte geben sie Ihre Frage unten ins Feld ein(Bitte Kurzfassen).",SupportT,Spieler(playerid));
  165.         ShowPlayerDialog(playerid, DIALOGID_TICKET, DIALOG_STYLE_INPUT, "Ticket-Display",showstring, "Bestätigen", "Abrechen");}
  166.     }
  167.     if (strcmp(cmd, "/setsup", true) ==0 )
  168.     {
  169.     tmp = strtok(cmdtext, idx);
  170.     if(!tmp[0])return SendClientMessage(playerid,ROT,"Nutze /setsup [playerid]");
  171.     new supporterS = strval(tmp);
  172.     if(!IsPlayerAdmin(playerid))return SendClientMessage(playerid,ROT,"Sie sind kein Rcon Admin");
  173.     if(playerid == supporterS)return SendClientMessage(playerid,ROT,"Nicht möglich !");
  174.     if(SpielerDatei[supporterS][supporter] == 1){SpielerDatei[supporterS][supporter] = 0; SendClientMessage(playerid,ROT,"User ist nun nicht mehr Supporter");}
  175.     else if(SpielerDatei[supporterS][supporter] == 0){SpielerDatei[supporterS][supporter] = 1; SendClientMessage(playerid,ROT,"User ist nun  Supporter");}
  176.     }
  177.     return 0;
  178. }
  179. public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
  180. {
  181.     return 1;
  182. }
  183. //==============================================================================
  184. public OnTicketLogin(playerid)
  185. {
  186.     if(IsPlayerNPC(playerid)) return 1;
  187.     format(stringZ, sizeof(stringZ), "Ticket/Spieler/%s.ini", Spieler(playerid));
  188.     new File: UserFile = fopen(stringZ, io_read);
  189.     if ( UserFile )
  190.     {
  191.                 new key[ 256 ] , val[ 256 ];
  192.                 new Data[ 256 ];
  193.                 while ( fread( UserFile , Data , sizeof( Data ) ) )
  194.                 {
  195.                     key = ini_GetKey( Data );
  196.                     if( strcmp( key , "supporter" , true ) == 0 ) { val = ini_GetValue( Data ); SpielerDatei[playerid][supporter] = strval( val ); }
  197.                 }
  198.                 fclose(UserFile);
  199.     }
  200.     return 1;
  201. }
  202. //==============================================================================
  203. public TicketLoad(playerid,sticket)
  204. {
  205.     if(IsPlayerNPC(playerid)) return 1;
  206.     new string2[64],showstring[256];
  207.     format(string2, sizeof(string2), "Ticket/TicketNummer_%d.ini", sticket);
  208.     new File: UserFile = fopen(string2, io_read);
  209.     if ( UserFile )
  210.     {
  211.                 new key[ 256 ] , val[ 256 ];
  212.                 new Data[ 256 ];
  213.                 while ( fread( UserFile , Data , sizeof( Data ) ) )
  214.                 {
  215.                     key = ini_GetKey( Data );
  216.                     if( strcmp( key , "tagz" , true ) == 0 ) { val = ini_GetValue( Data ); SuppTicket[sticket][tagz] = strval( val ); }
  217.                     if( strcmp( key , "monatz" , true ) == 0 ) { val = ini_GetValue( Data ); SuppTicket[sticket][monatz] = strval( val ); }
  218.                     if( strcmp( key , "jahrz" , true ) == 0 ) { val = ini_GetValue( Data ); SuppTicket[sticket][jahrz] = strval( val ); }
  219.                     if( strcmp( key , "SupportTicket" , true ) == 0 ) { val = ini_GetValue( Data ); SuppTicket[sticket][SupportTicket] = strval( val ); }
  220.                     if( strcmp( key , "TicketErsteller" , true ) == 0 ) { val = ini_GetValue( Data ); strmid(SuppTicket[sticket][TicketErsteller], val, 0, strlen(val)-1, 255); }
  221.                     if( strcmp( key , "Frage" , true ) == 0 ) { val = ini_GetValue( Data ); strmid(SuppTicket[sticket][Frage], val, 0, strlen(val)-1, 255); }
  222.                     format(showstring, 512, "Datum :[%d|%d|%d]\nTicket Nummer : %d\nTicket Starter : %s\nFrage: %s",SuppTicket[sticket][tagz],SuppTicket[sticket][monatz],SuppTicket[sticket][jahrz],sticket,SuppTicket[sticket][TicketErsteller],SuppTicket[sticket][Frage]);
  223.                     ShowPlayerDialog(playerid, DIALOGID_TICKET3, DIALOG_STYLE_MSGBOX, "Ticket :",showstring, "Bearbeiten", "Löschen");
  224.                     SuppTicketNummer[playerid] = sticket;
  225.                 }
  226.                 fclose(UserFile);
  227.     }
  228.     return 1;
  229. }
  230. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  231. {
  232.     if(dialogid == DIALOGID_TICKET)
  233.     {
  234.         if(response == 1)
  235.         {
  236.         new idx;
  237.         new showstring[256],tmp[256];
  238.         new tag,monat,jahr;
  239.         tmp = strtok(inputtext, idx);
  240.         getdate(jahr,monat,tag);
  241.         format(showstring, 512, "Datum :[%d|%d|%d]\nTicket Nummer : %d\nTicket Starter : %s\nFrage: %s",tag,monat,jahr,SupportT,Spieler(supanfrage),inputtext);
  242.         SendSupporterMessage(GELB,showstring);
  243.         SendClientMessage(playerid,GELB,"Ticket Erfolgreich angelegt");
  244.         SendClientMessage(playerid,GELB,"Info : Eine Antwort kann bis zu 24 Stunden dauern");
  245.         new strings[256];
  246.         format(strings, sizeof(strings),"Ticket/TicketNummer_%d.ini",SupportT);
  247.         if(!dini_Exists(strings))
  248.             {
  249.                 SuppTicket[SupportT][tagz] = tag;
  250.                 SuppTicket[SupportT][monatz] = monat;
  251.                 SuppTicket[SupportT][jahrz] = jahr;
  252.                 strmid(SuppTicket[SupportT][TicketErsteller],Spieler(supanfrage),0,256,256);
  253.                 strmid(SuppTicket[SupportT][Frage],inputtext,0,256,256);
  254.                 dini_Create(strings);
  255.                 dini_IntSet(strings,"tagz",tag);
  256.                 dini_IntSet(strings,"monatz",monat);
  257.                 dini_IntSet(strings,"jahrz",jahr);
  258.                 dini_IntSet(strings,"SupportTicket",playerid);
  259.                 format(showstring, 512, "%s",Spieler(supanfrage));
  260.                 dini_Set(strings,"TicketErsteller",showstring);
  261.                 format(showstring, 512, "%s",inputtext);
  262.                 dini_Set(strings,"Frage",showstring);
  263.                 SupportT++;
  264.             }
  265.         }
  266.         else{supanfrage = 0;}
  267.     }
  268.     if(dialogid == DIALOGID_TICKET2)
  269.     {
  270.         if(response == 1)
  271.         {
  272.         new idx;
  273.         new tmp[256];
  274.         tmp = strtok(inputtext, idx);
  275.         new ziffer = strval(tmp);
  276.         TicketLoad(playerid,ziffer);
  277.         }
  278.         else{supanfrage = 0;}
  279.     }
  280.     if(dialogid == DIALOGID_TICKET3)
  281.     {
  282.         if(response == 1) // Bearbeiten
  283.         {
  284.             new strings[256];
  285.             format(strings, sizeof(strings),"Supporter: %s öffnet ihr Ticket.",Spieler(playerid));
  286.             SendClientMessage(SuppTicket[SuppTicketNummer[playerid]][SupportTicket],GELB,strings);
  287.             format(strings, 256, "Tragen sie Bitte unten eine Antwort ins Feld");
  288.             ShowPlayerDialog(playerid,DIALOGID_TICKET4,DIALOG_STYLE_INPUT,"Antwort :",strings, "Antworten", "Abrechen");
  289.         }
  290.         else // Remove
  291.         {
  292.             new strings[256];
  293.             format(strings, sizeof(strings),"Ihr Ticket wurde von den Supporter: %s gelöscht.",Spieler(playerid));
  294.             SendClientMessage(SuppTicket[SuppTicketNummer[playerid]][SupportTicket],GELB,strings);
  295.             format(strings, sizeof(strings),"SuppTickets/TicketNummer_%d.ini",SuppTicketNummer[playerid]);
  296.             if(dini_Exists(strings))
  297.             {
  298.             fremove(strings);
  299.             SuppTicketNummer[playerid] = 0;
  300.             }
  301.         }
  302.     }
  303.     if(dialogid == DIALOGID_TICKET4)
  304.     {
  305.         if(response == 1) // Antworten
  306.         {
  307.             new strings[256];
  308.             format(strings, sizeof(strings),"Supporter: %s schrieb : %s.",Spieler(playerid),inputtext);
  309.             SendClientMessage(SuppTicket[SuppTicketNummer[playerid]][SupportTicket],GELB,strings);
  310.             format(strings, 256, "Ticket Löschen ? oder Verlassen ?");
  311.             ShowPlayerDialog(playerid,DIALOGID_TICKET5,DIALOG_STYLE_MSGBOX,"Antwort :",strings, "Löschen", "Verlassen");
  312.         }
  313.         else // Abrechen
  314.         {
  315.             new strings[256];
  316.             format(strings, sizeof(strings),"Supporter: %s hat ihr Ticket wieder Geschlossen.",Spieler(playerid));
  317.             SendClientMessage(SuppTicket[SuppTicketNummer[playerid]][SupportTicket],GELB,strings);
  318.             SuppTicketNummer[playerid] = 0;
  319.         }
  320.     }
  321.     if(dialogid == DIALOGID_TICKET5)
  322.     {
  323.         if(response == 1) // Remove
  324.         {
  325.             new strings[256];
  326.             format(strings, sizeof(strings),"Ihr Ticket wurde von den Supporter: %s gelöscht.",Spieler(playerid));
  327.             SendClientMessage(SuppTicket[SuppTicketNummer[playerid]][SupportTicket],GELB,strings);
  328.             format(strings, sizeof(strings),"SuppTickets/TicketNummer_%d.ini",SuppTicketNummer[playerid]);
  329.             if(dini_Exists(strings))
  330.             {
  331.             fremove(strings);
  332.             SuppTicketNummer[playerid] = 0;
  333.             }
  334.         }
  335.         else // Verlassen
  336.         {
  337.             new strings[256];
  338.             format(strings, sizeof(strings),"Supporter: %s hat ihr Ticket wieder Geschlossen.",Spieler(playerid));
  339.             SendClientMessage(SuppTicket[SuppTicketNummer[playerid]][SupportTicket],GELB,strings);
  340.             SuppTicketNummer[playerid] = 0;
  341.         }
  342.     }
  343.     return 1;
  344. }
Advertisement
Add Comment
Please, Sign In to add comment