Advertisement
Guest User

[FS] SupportSystem - Mal anders... - TEXTDRAWS

a guest
Jul 30th, 2012
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 23.41 KB | None | 0 0
  1. /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  2. *                                                                              *
  3. *     ##    ##  ########  ##    ##  ########  ##    ##  ########  ########     *
  4. *     ##    ##  ##        ##    ##     ##     ##    ##  ##    ##  ##           *
  5. *     ########  ####      ##    ##     ##     ##    ##  ########  ######       *
  6. *           ##  ##        ##    ##     ##     ##    ##  ##  ##    ##           *
  7. *           ##  ##        ########     ##     ########  ##    ##  ########     *
  8. *                                                                              *
  9. *     --------------------------------------------------------------------     *
  10. *                                                                              *
  11. *        P     R     O     D     U     C     T     I     O     N     S     *
  12. *                                                                              *
  13. *     --------------------------------------------------------------------     *
  14. *                                                                              *
  15. *        Scripter:  Fake (Philip)                  Release:  30.07.2012        *
  16. *                                                                              *
  17. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
  18.  
  19.  
  20. /*
  21. *   Includes
  22. */
  23.  
  24. #include <a_samp>
  25.  
  26.  
  27. /*
  28. *   Definitionen
  29. */
  30.  
  31. #define WEIS    0xFFFFFFFF
  32. #define GRAU    0x787878FF
  33. #define GELB    0xFFFF00FF
  34. #define GRUEN   0x008B00FF
  35.  
  36. //
  37.  
  38. new Text:ssHG, Text:ssHGhead, Text:ssHGheader, Text:ssText[MAX_PLAYERS], Text:ssTextExtra, Text:ssTextExtra2;
  39. new playerName[MAX_PLAYER_NAME];
  40.  
  41. new countSupporter = 0, countTickets = 0, ticketID = 100, infoTimer[MAX_PLAYERS];
  42.  
  43. //
  44.  
  45. forward removeInfo(playerid);
  46. forward addUserAsSupporter(playerid, newplayer[]);
  47.  
  48.  
  49. /*
  50. *   Initialisierung
  51. */
  52.  
  53. public OnFilterScriptInit()
  54. {
  55.     //
  56.     //  TextDraws
  57.     //
  58.  
  59.     ssHG = TextDrawCreate(489.000000, 370.000000, "~n~");
  60.     TextDrawBackgroundColor(ssHG, 255);
  61.     TextDrawFont(ssHG, 2);
  62.     TextDrawLetterSize(ssHG, 0.380000, 8.400010);
  63.     TextDrawColor(ssHG, -1);
  64.     TextDrawSetOutline(ssHG, 0);
  65.     TextDrawSetProportional(ssHG, 1);
  66.     TextDrawSetShadow(ssHG, 1);
  67.     TextDrawUseBox(ssHG, 1);
  68.     TextDrawBoxColor(ssHG, 150);
  69.     TextDrawTextSize(ssHG, 640.000000, 0.000000);
  70.  
  71.     ssHGhead = TextDrawCreate(489.000000, 370.000000, "~n~");
  72.     TextDrawBackgroundColor(ssHGhead, 255);
  73.     TextDrawFont(ssHGhead, 2);
  74.     TextDrawLetterSize(ssHGhead, 0.380000, 2.000010);
  75.     TextDrawColor(ssHGhead, -1);
  76.     TextDrawSetOutline(ssHGhead, 0);
  77.     TextDrawSetProportional(ssHGhead, 1);
  78.     TextDrawSetShadow(ssHGhead, 1);
  79.     TextDrawUseBox(ssHGhead, 1);
  80.     TextDrawBoxColor(ssHGhead, -231);
  81.     TextDrawTextSize(ssHGhead, 640.000000, 0.000000);
  82.  
  83.     ssHGheader = TextDrawCreate(496.000000, 368.000000, "Support System");
  84.     TextDrawBackgroundColor(ssHGheader, 255);
  85.     TextDrawFont(ssHGheader, 2);
  86.     TextDrawLetterSize(ssHGheader, 0.380000, 2.000010);
  87.     TextDrawColor(ssHGheader, -16776961);
  88.     TextDrawSetOutline(ssHGheader, 0);
  89.     TextDrawSetProportional(ssHGheader, 1);
  90.     TextDrawSetShadow(ssHGheader, 1);
  91.  
  92.     for(new i = 0; i < MAX_PLAYERS; i++)
  93.     {
  94.         ssText[i] = TextDrawCreate(563.000000, 399.000000, " ");
  95.         TextDrawAlignment(ssText[i], 2);
  96.         TextDrawBackgroundColor(ssText[i], 255);
  97.         TextDrawFont(ssText[i], 2);
  98.         TextDrawLetterSize(ssText[i], 0.230000, 1.400009);
  99.         TextDrawColor(ssText[i], -1);
  100.         TextDrawSetOutline(ssText[i], 0);
  101.         TextDrawSetProportional(ssText[i], 1);
  102.         TextDrawSetShadow(ssText[i], 1);
  103.     }
  104.  
  105.     ssTextExtra = TextDrawCreate(598.000000, 416.000000, "..");
  106.     TextDrawAlignment(ssTextExtra, 2);
  107.     TextDrawBackgroundColor(ssTextExtra, 255);
  108.     TextDrawFont(ssTextExtra, 2);
  109.     TextDrawLetterSize(ssTextExtra, 0.250000, 1.400009);
  110.     TextDrawColor(ssTextExtra, -1);
  111.     TextDrawSetOutline(ssTextExtra, 0);
  112.     TextDrawSetProportional(ssTextExtra, 1);
  113.     TextDrawSetShadow(ssTextExtra, 1);
  114.    
  115.     ssTextExtra2 = TextDrawCreate(544.000000, 416.000000, "..");
  116.     TextDrawAlignment(ssTextExtra2, 2);
  117.     TextDrawBackgroundColor(ssTextExtra2, 255);
  118.     TextDrawFont(ssTextExtra2, 2);
  119.     TextDrawLetterSize(ssTextExtra2, 0.250000, 1.400009);
  120.     TextDrawColor(ssTextExtra2, -1);
  121.     TextDrawSetOutline(ssTextExtra2, 0);
  122.     TextDrawSetProportional(ssTextExtra2, 1);
  123.     TextDrawSetShadow(ssTextExtra2, 1);
  124.  
  125.     //
  126.     //  Supporter
  127.     //
  128.  
  129.     new File:supporter = fopen("supporter_names.txt", io_read);
  130.  
  131.     if(!supporter)
  132.     {
  133.         new File:add_supporter = fopen("supporter_names.txt", io_write);
  134.         fclose(add_supporter);
  135.     }
  136.  
  137.     return 1;
  138. }
  139.  
  140. public OnFilterScriptExit()
  141. {
  142.     return 1;
  143. }
  144.  
  145.  
  146. /*
  147. *   Funktionen
  148. */
  149.  
  150. strtok(const string[], &index)
  151. {
  152.     new length = strlen(string);
  153.     while ((index < length) && (string[index] <= ' '))
  154.     {
  155.         index++;
  156.     }
  157.     new offset = index;
  158.     new result[20];
  159.     while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
  160.     {
  161.         result[index - offset] = string[index];
  162.         index++;
  163.     }
  164.     result[index - offset] = EOS;
  165.     return result;
  166. }
  167.  
  168. IsNumeric(const string[])
  169. {
  170.     for (new i = 0, j = strlen(string); i < j; i++)
  171.     {
  172.         if (string[i] > '9' || string[i] < '0') return 0;
  173.     }
  174.     return 1;
  175. }
  176.  
  177. ReturnUser(text[], playerid = INVALID_PLAYER_ID)
  178. {
  179.     new pos = 0;
  180.     while (text[pos] < 0x21)
  181.     {
  182.         if (text[pos] == 0) return INVALID_PLAYER_ID;
  183.         pos++;
  184.     }
  185.     new userid = INVALID_PLAYER_ID;
  186.     if (IsNumeric(text[pos]))
  187.     {
  188.         userid = strval(text[pos]);
  189.         if (userid >=0 && userid < MAX_PLAYERS)
  190.         {
  191.             if(!IsPlayerConnected(userid))
  192.             {
  193.                 userid = INVALID_PLAYER_ID;
  194.             }
  195.             else
  196.             {
  197.                 return userid;
  198.             }
  199.         }
  200.     }
  201.  
  202.     new len = strlen(text[pos]);
  203.     new count = 0;
  204.     new name[MAX_PLAYER_NAME];
  205.     for (new i = 0; i < MAX_PLAYERS; i++)
  206.     {
  207.         if (IsPlayerConnected(i))
  208.         {
  209.             GetPlayerName(i, name, sizeof (name));
  210.             if (strcmp(name, text[pos], true, len) == 0)
  211.             {
  212.                 if (len == strlen(name))
  213.                 {
  214.                     return i;
  215.                 }
  216.                 else
  217.                 {
  218.                     count++;
  219.                     userid = i;
  220.                 }
  221.             }
  222.         }
  223.     }
  224.     if (count != 1)
  225.     {
  226.         if (playerid != INVALID_PLAYER_ID)
  227.         {
  228.             if (count)
  229.             {
  230.                 SendClientMessage(playerid, 0xFF0000AA, "Multiple users found, please narrow earch");
  231.             }
  232.             else
  233.             {
  234.                 SendClientMessage(playerid, 0xFF0000AA, "No matching user found");
  235.             }
  236.         }
  237.         userid = INVALID_PLAYER_ID;
  238.     }
  239.     return userid;
  240. }
  241.  
  242. //
  243.  
  244. public removeInfo(playerid)
  245. {
  246.     TextDrawHideForPlayer(playerid, ssHG);
  247.     TextDrawHideForPlayer(playerid, ssHGhead);
  248.     TextDrawHideForPlayer(playerid, ssHGheader);
  249.     TextDrawHideForPlayer(playerid, ssText[playerid]);
  250.     TextDrawHideForPlayer(playerid, ssTextExtra);
  251.     TextDrawHideForPlayer(playerid, ssTextExtra2);
  252.  
  253.     return 1;
  254. }
  255.  
  256. public addUserAsSupporter(playerid, newplayer[])
  257. {
  258.     new File:new_supporter = fopen("supporter_names.txt", io_append);
  259.  
  260.     if(new_supporter)
  261.     {
  262.         new user[60], newid, idx = 0;
  263.         user = strtok(newplayer, idx);
  264.         newid = ReturnUser(user);
  265.        
  266.         if(newid != INVALID_PLAYER_ID && IsPlayerConnected(newid))
  267.         {
  268.             GetPlayerName(newid, playerName, sizeof(playerName));
  269.            
  270.             new string[67];
  271.             format(string, sizeof(string), "%s\r\n", playerName);
  272.             fwrite(new_supporter, string);
  273.            
  274.             SetPVarInt(newid, "isSupporter", 1);
  275.             SetPVarInt(newid, "ticketToEdit", 0);
  276.             SendClientMessage(newid, GELB, "[HINWEIS] Du wurdest als Supporter hinzugefügt.");
  277.  
  278.             countSupporter++;
  279.            
  280.             fclose(new_supporter);
  281.            
  282.             format(string, sizeof(string), "Du hast den Spieler %s als Supporter hinzugefügt.", playerName);
  283.             SendClientMessage(playerid, WEIS, string);
  284.         }
  285.         else
  286.         {
  287.             SendClientMessage(playerid, GRAU, "Der eingegebene Spieler wurde nicht gefunden.");
  288.         }
  289.     }
  290.    
  291.     return 1;
  292. }
  293.  
  294. //
  295.  
  296. public OnPlayerCommandText(playerid, cmdtext[])
  297. {
  298.     new cmd[20], var[20], val[20], idx = 0;
  299.     cmd = strtok(cmdtext, idx);
  300.  
  301.     if(strcmp(cmd, "/support", true) == 0 || strcmp(cmd, "/s", true) == 0)
  302.     {
  303.         var = strtok(cmdtext, idx);
  304.         if(!strlen(var))
  305.         {
  306.             SendClientMessage(playerid, WEIS, " ");
  307.             SendClientMessage(playerid, WEIS, "BENUTZE:  /s(upport) [Funktion]");
  308.             SendClientMessage(playerid, WEIS, "[Funktionen] info, new, close, status");
  309.             SendClientMessage(playerid, WEIS, " ");
  310.             return 1;
  311.         }
  312.        
  313.         if(strcmp(var, "info", true) == 0)
  314.         {
  315.             if(countSupporter > 0)
  316.             {
  317.                 new string[100], supporterInfo[512], dstring[255];
  318.  
  319.                 for(new i = 0; i < MAX_PLAYERS; i++)
  320.                 {
  321.                     if(GetPVarInt(i, "isSupporter"))
  322.                     {
  323.                         GetPlayerName(i, playerName, sizeof(playerName));
  324.                         format(string, sizeof(string), "{CB6767}\t(%d) %s\n", i, playerName);
  325.                         strins(supporterInfo, string, strlen(supporterInfo));
  326.                     }
  327.                 }
  328.  
  329.                 new snpl[5];
  330.                 if(countSupporter == 1) { snpl = "ist"; } else { snpl = "sind"; }
  331.                
  332.                 format(dstring, sizeof(dstring), "Im Moment %s {CB6767}%d{a9c4e4} Supporter online:\n\n%s", snpl, countSupporter, supporterInfo);
  333.                 ShowPlayerDialog(playerid, 0100, 0, "Supporter Übersicht", dstring, "Schließen", "");
  334.             }
  335.             else
  336.             {
  337.                 SendClientMessage(playerid, GRAU, "Derzeit ist kein Supporter online.");
  338.                 return 1;
  339.             }
  340.         }
  341.  
  342.         if(strcmp(var, "new", true) == 0)
  343.         {
  344.             if(!GetPVarInt(playerid, "openTicket"))
  345.             {
  346.                 if(countSupporter > 0)
  347.                 {
  348.                     countTickets++;
  349.                     SetPVarInt(playerid, "openTicket", 1);
  350.                     SetPVarInt(playerid, "ticketID", ticketID);
  351.                     ticketID++;
  352.  
  353.                     removeInfo(playerid);
  354.                     TextDrawShowForPlayer(playerid, ssHG);
  355.                     TextDrawShowForPlayer(playerid, ssHGhead);
  356.                     TextDrawShowForPlayer(playerid, ssHGheader);
  357.                     TextDrawShowForPlayer(playerid, ssText[playerid]);
  358.  
  359.                     TextDrawSetString(ssText[playerid], "deine anfrage wurde~n~an alle supporter die~n~online sind gesendet.");
  360.  
  361.                     KillTimer(infoTimer[playerid]);
  362.                     infoTimer[playerid] = SetTimerEx("removeInfo", 10000, false, "d", playerid);
  363.                    
  364.                     for(new i = 0; i < MAX_PLAYERS; i++)
  365.                     {
  366.                         if(GetPVarInt(i, "isSupporter"))
  367.                         {
  368.                             if(i != playerid)
  369.                             {
  370.                                 removeInfo(i);
  371.                                 TextDrawShowForPlayer(i, ssHG);
  372.                                 TextDrawShowForPlayer(i, ssHGhead);
  373.                                 TextDrawShowForPlayer(i, ssHGheader);
  374.                                 TextDrawShowForPlayer(i, ssText[i]);
  375.  
  376.                                 TextDrawSetString(ssText[i], "es wurde soeben eine~n~neue ticket anfrage an~n~alle supporter gesendet.");
  377.  
  378.                                 KillTimer(infoTimer[i]);
  379.                                 infoTimer[i] = SetTimerEx("removeInfo", 15000, false, "d", i);
  380.                             }
  381.                         }
  382.                     }
  383.                     return 1;
  384.                 }
  385.                 else
  386.                 {
  387.                     SendClientMessage(playerid, GRAU, "Derzeit ist kein Supporter online.");
  388.                     return 1;
  389.                 }
  390.             }
  391.             else
  392.             {
  393.                 SendClientMessage(playerid, GRAU, "Du hast bereits eine Ticket Anfrage gestellt.");
  394.                 return 1;
  395.             }
  396.         }
  397.  
  398.         if(strcmp(var, "close", true) == 0)
  399.         {
  400.             if(GetPVarInt(playerid, "openTicket"))
  401.             {
  402.                 for(new i = 0; i < MAX_PLAYERS; i++)
  403.                 {
  404.                     if(GetPVarInt(i, "isSupporter") && GetPVarInt(i, "ticketToEdit") == GetPVarInt(playerid, "ticketID"))
  405.                     {
  406.                         SetPVarInt(i, "ticketToEdit", 0);
  407.                        
  408.                         new string[255];
  409.                         GetPlayerName(playerid, playerName, sizeof(playerName));
  410.                         format(string, sizeof(string), "%s hat die Ticket Anfrage soeben geschlossen.", playerName);
  411.                         SendClientMessage(i, WEIS, string);
  412.                     }
  413.                 }
  414.  
  415.                 countTickets--;
  416.                 SetPVarInt(playerid, "openTicket", 0);
  417.                 SetPVarInt(playerid, "ticketID", 0);
  418.                 SetPVarInt(playerid, "ticketAccept", 0);
  419.  
  420.                 removeInfo(playerid);
  421.                 TextDrawShowForPlayer(playerid, ssHG);
  422.                 TextDrawShowForPlayer(playerid, ssHGhead);
  423.                 TextDrawShowForPlayer(playerid, ssHGheader);
  424.                 TextDrawShowForPlayer(playerid, ssText[playerid]);
  425.  
  426.                 TextDrawSetString(ssText[playerid], "deine anfrage wurde~n~erfolgreich aus dem~n~system entfernt.");
  427.  
  428.                 KillTimer(infoTimer[playerid]);
  429.                 infoTimer[playerid] = SetTimerEx("removeInfo", 10000, false, "d", playerid);
  430.                
  431.                 for(new i = 0; i < MAX_PLAYERS; i++)
  432.                 {
  433.                     if(GetPVarInt(i, "isSupporter") && i != playerid)
  434.                     {
  435.                         removeInfo(i);
  436.                         TextDrawShowForPlayer(i, ssHG);
  437.                         TextDrawShowForPlayer(i, ssHGhead);
  438.                         TextDrawShowForPlayer(i, ssHGheader);
  439.                         TextDrawShowForPlayer(i, ssText[i]);
  440.                         TextDrawShowForPlayer(i, ssTextExtra2);
  441.  
  442.                         TextDrawSetString(ssText[i], "soeben hat ein spieler~n~seine ticket anfrage~n~zuruckgezogen.");
  443.  
  444.                         KillTimer(infoTimer[i]);
  445.                         infoTimer[i] = SetTimerEx("removeInfo", 15000, false, "d", i);
  446.                     }
  447.                 }
  448.                 return 1;
  449.             }
  450.             else
  451.             {
  452.                 SendClientMessage(playerid, GRAU, "Du hast keine Ticket Anfrage gestellt.");
  453.                 return 1;
  454.             }
  455.         }
  456.  
  457.         if(strcmp(var, "status", true) == 0)
  458.         {
  459.             if(GetPVarInt(playerid, "openTicket"))
  460.             {
  461.                 if(GetPVarInt(playerid, "ticketAccept"))
  462.                 {
  463.                     removeInfo(playerid);
  464.                     TextDrawShowForPlayer(playerid, ssHG);
  465.                     TextDrawShowForPlayer(playerid, ssHGhead);
  466.                     TextDrawShowForPlayer(playerid, ssHGheader);
  467.                     TextDrawShowForPlayer(playerid, ssText[playerid]);
  468.  
  469.                     TextDrawSetString(ssText[playerid], "deine anfrage wurde~n~entgegen genommen.~n~du wirst benachrichtig...");
  470.  
  471.                     KillTimer(infoTimer[playerid]);
  472.                     infoTimer[playerid] = SetTimerEx("removeInfo", 10000, false, "d", playerid);
  473.                     return 1;
  474.                 }
  475.                 else
  476.                 {
  477.                     removeInfo(playerid);
  478.                     TextDrawShowForPlayer(playerid, ssHG);
  479.                     TextDrawShowForPlayer(playerid, ssHGhead);
  480.                     TextDrawShowForPlayer(playerid, ssHGheader);
  481.                     TextDrawShowForPlayer(playerid, ssText[playerid]);
  482.  
  483.                     TextDrawSetString(ssText[playerid], "deine anfrage wurde~n~noch nicht entgegen~n~genommen. habe geduld...");
  484.  
  485.                     KillTimer(infoTimer[playerid]);
  486.                     infoTimer[playerid] = SetTimerEx("removeInfo", 10000, false, "d", playerid);
  487.                     return 1;
  488.                 }
  489.             }
  490.             else
  491.             {
  492.                 SendClientMessage(playerid, GRAU, "Du hast keine Ticket Anfrage gestellt.");
  493.                 return 1;
  494.             }
  495.         }
  496.  
  497.         return 1;
  498.     }
  499.  
  500.     if(strcmp(cmd, "/ticket", true) == 0 || strcmp(cmd, "/t", true) == 0)
  501.     {
  502.         if(GetPVarInt(playerid, "isSupporter"))
  503.         {
  504.             var = strtok(cmdtext, idx);
  505.             if(!strlen(var))
  506.             {
  507.                 SendClientMessage(playerid, WEIS, " ");
  508.                 SendClientMessage(playerid, WEIS, "BENUTZE:  /t(icket) [Funktion] (Ticket ID)");
  509.                 SendClientMessage(playerid, WEIS, "[Funktionen] list, accept, deny, close");
  510.                 SendClientMessage(playerid, WEIS, " ");
  511.                 return 1;
  512.             }
  513.  
  514.             if(strcmp(var, "list", true) == 0)
  515.             {
  516.                 if(countTickets > 0)
  517.                 {
  518.                     new string[100], ticketUserInfos[512], dstring[255];
  519.                    
  520.                     for(new i = 0; i < MAX_PLAYERS; i++)
  521.                     {
  522.                         if(GetPVarInt(i, "openTicket") && !GetPVarInt(i, "ticketAccept"))
  523.                         {
  524.                             GetPlayerName(i, playerName, sizeof(playerName));
  525.                             format(string, sizeof(string), "{CB6767}\t[%d]  %s\n", GetPVarInt(i, "ticketID"), playerName);
  526.                             strins(ticketUserInfos, string, strlen(ticketUserInfos));
  527.                         }
  528.                     }
  529.                    
  530.                     new snpl[6];
  531.                     if(countTickets == 1) { snpl = "hat"; } else { snpl = "haben"; }
  532.  
  533.                     format(dstring, sizeof(dstring), "Im Moment %s {CB6767}%d{a9c4e4} Spieler eine Ticket Anfrage gestellt:\n\n%s", snpl, countTickets, ticketUserInfos);
  534.                     ShowPlayerDialog(playerid, 0100, 0, "Ticket Übersicht", dstring, "Schließen", "");
  535.                 }
  536.                 else
  537.                 {
  538.                     SendClientMessage(playerid, GRAU, "Derzeit wurden keine Ticket Anfragen gestellt.");
  539.                     return 1;
  540.                 }
  541.             }
  542.  
  543.             if(strcmp(var, "accept", true) == 0)
  544.             {
  545.                 val = strtok(cmdtext, idx);
  546.                 if(!strlen(val))
  547.                 {
  548.                     SendClientMessage(playerid, WEIS, " ");
  549.                     SendClientMessage(playerid, WEIS, "BENUTZE:  /t(icket) accept [Ticket ID]");
  550.                     SendClientMessage(playerid, WEIS, " ");
  551.                     return 1;
  552.                 }
  553.                
  554.                 if(countTickets > 0)
  555.                 {
  556.                     if(GetPVarInt(playerid, "openTicket") && GetPVarInt(playerid, "ticketID") == strval(val))
  557.                     {
  558.                         SendClientMessage(playerid, GRAU, "Du kannst Deine eigene Ticket Anfrage nicht annehmen.");
  559.                         return 1;
  560.                     }
  561.                    
  562.                     for(new i = 0; i < MAX_PLAYERS; i++)
  563.                     {
  564.                         if(GetPVarInt(i, "openTicket") && !GetPVarInt(i, "ticketAccept"))
  565.                         {
  566.                             if(GetPVarInt(i, "ticketID") == strval(val))
  567.                             {
  568.                                 SetPVarInt(i, "ticketAccept", 1);
  569.                                 SetPVarInt(playerid, "ticketToEdit", GetPVarInt(i, "ticketID"));
  570.  
  571.                                 removeInfo(i);
  572.                                 TextDrawShowForPlayer(i, ssHG);
  573.                                 TextDrawShowForPlayer(i, ssHGhead);
  574.                                 TextDrawShowForPlayer(i, ssHGheader);
  575.                                 TextDrawShowForPlayer(i, ssText[i]);
  576.  
  577.                                 TextDrawSetString(ssText[i], "deine anfrage wurde~n~entgegen genommen.~n~du wirst benachrichtig...");
  578.  
  579.                                 KillTimer(infoTimer[i]);
  580.                                 infoTimer[i] = SetTimerEx("removeInfo", 10000, false, "d", i);
  581.  
  582.                                 new string[255];
  583.                                 GetPlayerName(i, playerName, sizeof(playerName));
  584.                                 format(string, sizeof(string), "Du hast %s's Ticket Anfrage angenommen.", playerName);
  585.                                 SendClientMessage(playerid, WEIS, string);
  586.                                 return 1;
  587.                             }
  588.                             else
  589.                             {
  590.                                 SendClientMessage(playerid, GRAU, "Die eingegebene Ticket ID wurde konnte nicht zugeordnet werden.");
  591.                                 return 1;
  592.                             }
  593.                         }
  594.                     }
  595.                 }
  596.                 else
  597.                 {
  598.                     SendClientMessage(playerid, GRAU, "Derzeit wurden keine Ticket Anfragen gestellt.");
  599.                     return 1;
  600.                 }
  601.  
  602.                 return 1;
  603.             }
  604.  
  605.             if(strcmp(var, "deny", true) == 0)
  606.             {
  607.                 val = strtok(cmdtext, idx);
  608.                 if(!strlen(val))
  609.                 {
  610.                     SendClientMessage(playerid, WEIS, " ");
  611.                     SendClientMessage(playerid, WEIS, "BENUTZE:  /t(icket) deny [Ticket ID]");
  612.                     SendClientMessage(playerid, WEIS, " ");
  613.                     return 1;
  614.                 }
  615.                
  616.                 if(countTickets > 0)
  617.                 {
  618.                     if(GetPVarInt(playerid, "openTicket") && GetPVarInt(playerid, "ticketID") == strval(val))
  619.                     {
  620.                         SendClientMessage(playerid, GRAU, "Du kannst Deine eigene Ticket Anfrage nicht ablehnen.");
  621.                         return 1;
  622.                     }
  623.  
  624.                     for(new i = 0; i < MAX_PLAYERS; i++)
  625.                     {
  626.                         if(GetPVarInt(i, "openTicket") && !GetPVarInt(i, "ticketAccept"))
  627.                         {
  628.                             if(GetPVarInt(i, "ticketID") == strval(val))
  629.                             {
  630.                                 countTickets--;
  631.                                 SetPVarInt(i, "openTicket", 0);
  632.                                 SetPVarInt(i, "ticketID", 0);
  633.                                 SetPVarInt(i, "ticketAccept", 0);
  634.  
  635.                                 removeInfo(i);
  636.                                 TextDrawShowForPlayer(i, ssHG);
  637.                                 TextDrawShowForPlayer(i, ssHGhead);
  638.                                 TextDrawShowForPlayer(i, ssHGheader);
  639.                                 TextDrawShowForPlayer(i, ssText[i]);
  640.                                 TextDrawShowForPlayer(i, ssTextExtra);
  641.  
  642.                                 TextDrawSetString(ssText[i], "deine anfrage wurde~n~leider abgelehnt.~n~wir bitten um verstandnis!");
  643.  
  644.                                 KillTimer(infoTimer[i]);
  645.                                 infoTimer[i] = SetTimerEx("removeInfo", 10000, false, "d", i);
  646.  
  647.                                 new string[255];
  648.                                 GetPlayerName(i, playerName, sizeof(playerName));
  649.                                 format(string, sizeof(string), "Du hast %s's Ticket Anfrage abgelehnt.", playerName);
  650.                                 SendClientMessage(playerid, WEIS, string);
  651.                                 return 1;
  652.                             }
  653.                             else
  654.                             {
  655.                                 SendClientMessage(playerid, GRAU, "Die eingegebene Ticket ID wurde konnte nicht zugeordnet werden.");
  656.                                 return 1;
  657.                             }
  658.                         }
  659.                     }
  660.                 }
  661.                 else
  662.                 {
  663.                     SendClientMessage(playerid, GRAU, "Derzeit wurden keine Ticket Anfragen gestellt.");
  664.                     return 1;
  665.                 }
  666.  
  667.                 return 1;
  668.             }
  669.            
  670.             if(strcmp(var, "close", true) == 0)
  671.             {
  672.                 if(GetPVarInt(playerid, "ticketToEdit") > 0)
  673.                 {
  674.                     for(new i = 0; i < MAX_PLAYERS; i++)
  675.                     {
  676.                         if(GetPVarInt(i, "openTicket") && GetPVarInt(i, "ticketID") == GetPVarInt(playerid, "ticketToEdit"))
  677.                         {
  678.                             SetPVarInt(playerid, "ticketToEdit", 0);
  679.  
  680.                             countTickets--;
  681.                             SetPVarInt(i, "openTicket", 0);
  682.                             SetPVarInt(i, "ticketID", 0);
  683.                             SetPVarInt(i, "ticketAccept", 0);
  684.  
  685.                             removeInfo(i);
  686.                             TextDrawShowForPlayer(i, ssHG);
  687.                             TextDrawShowForPlayer(i, ssHGhead);
  688.                             TextDrawShowForPlayer(i, ssHGheader);
  689.                             TextDrawShowForPlayer(i, ssText[i]);
  690.  
  691.                             TextDrawSetString(ssText[i], "deine anfrage wurde~n~soeben durch einen~n~supporter geschlossen.");
  692.  
  693.                             KillTimer(infoTimer[i]);
  694.                             infoTimer[i] = SetTimerEx("removeInfo", 10000, false, "d", i);
  695.  
  696.                             new string[255];
  697.                             GetPlayerName(i, playerName, sizeof(playerName));
  698.                             format(string, sizeof(string), "Du hast %s's Ticket Anfrage geschlossen.", playerName);
  699.                             SendClientMessage(playerid, WEIS, string);
  700.                             return 1;
  701.                         }
  702.                     }
  703.                 }
  704.                 else
  705.                 {
  706.                     SendClientMessage(playerid, GRAU, "Du bearbeitest derzeit keine Ticket Anfrage.");
  707.                     return 1;
  708.                 }
  709.             }
  710.         }
  711.         else
  712.         {
  713.             SendClientMessage(playerid, GRAU, "Du bist nicht als möglicher Supporter eingetragen.");
  714.             return 1;
  715.         }
  716.  
  717.         return 1;
  718.     }
  719.     return 0;
  720. }
  721.  
  722. public OnPlayerText(playerid, text[])
  723. {
  724.     if(GetPVarInt(playerid, "openTicket") && GetPVarInt(playerid, "ticketAccept"))
  725.     {
  726.         for(new i = 0; i < MAX_PLAYERS; i++)
  727.         {
  728.             if(GetPVarInt(i, "isSupporter") && GetPVarInt(playerid, "ticketID") == GetPVarInt(i, "ticketToEdit"))
  729.             {
  730.                 new string[255];
  731.  
  732.                 GetPlayerName(playerid, playerName, sizeof(playerName));
  733.                
  734.                 format(string, sizeof(string), "[%s]: {FFFFFF}%s", playerName, text);
  735.                 SendClientMessage(i, GRUEN, string);
  736.  
  737.                 format(string, sizeof(string), "[%s]: {FFFFFF}%s", playerName, text);
  738.                 SendClientMessage(playerid, GRUEN, string);
  739.                
  740.                 return 0;
  741.             }
  742.         }
  743.     }
  744.     if(GetPVarInt(playerid, "isSupporter") && GetPVarInt(playerid, "ticketToEdit") > 0)
  745.     {
  746.         for(new i = 0; i < MAX_PLAYERS; i++)
  747.         {
  748.             if(GetPVarInt(i, "ticketID") == GetPVarInt(playerid, "ticketToEdit"))
  749.             {
  750.                 new string[255];
  751.  
  752.                 GetPlayerName(playerid, playerName, sizeof(playerName));
  753.                
  754.                 format(string, sizeof(string), "Supporter [%s]: {FFFFFF}%s", playerName, text);
  755.                 SendClientMessage(i, GELB, string);
  756.                
  757.                 format(string, sizeof(string), "Supporter [%s]: {FFFFFF}%s", playerName, text);
  758.                 SendClientMessage(playerid, GELB, string);
  759.                
  760.                 return 0;
  761.             }
  762.         }
  763.     }
  764.  
  765.     return 1;
  766. }
  767.  
  768. public OnPlayerConnect(playerid)
  769. {
  770.     new File:supporter = fopen("supporter_names.txt", io_read);
  771.  
  772.     if(supporter)
  773.     {
  774.         new fileStr[255];
  775.         fread(supporter, fileStr);
  776.  
  777.         GetPlayerName(playerid, playerName, sizeof(playerName));
  778.  
  779.         if(strfind(fileStr, playerName, true) != -1)
  780.         {
  781.             SetPVarInt(playerid, "isSupporter", 1);
  782.             SetPVarInt(playerid, "ticketToEdit", 0);
  783.             countSupporter++;
  784.         }
  785.  
  786.         fclose(supporter);
  787.     }
  788.    
  789.     SetPVarInt(playerid, "openTicket", 0);
  790.     SetPVarInt(playerid, "ticketID", 0);
  791.     SetPVarInt(playerid, "ticketAccept", 0);
  792.  
  793.     return 1;
  794. }
  795.  
  796. public OnPlayerDisconnect(playerid)
  797. {
  798.     if(GetPVarInt(playerid, "isSupporter"))
  799.     {
  800.         countSupporter--;
  801.     }
  802.  
  803.     DeletePVar(playerid, "isSupporter");
  804.     DeletePVar(playerid, "ticketToEdit");
  805.     DeletePVar(playerid, "openTicket");
  806.     DeletePVar(playerid, "ticketID");
  807.     DeletePVar(playerid, "ticketAccept");
  808.  
  809.     return 1;
  810. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement