Advertisement
Guest User

Untitled

a guest
Mar 19th, 2013
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.03 KB | None | 0 0
  1. //Ticketsystem
  2. new TicketZeile[MAX_PLAYERS];
  3. new SupportTicket[MAX_PLAYERS];
  4. new TicketAngenommen[MAX_PLAYERS];
  5. new DeinSupport[MAX_PLAYERS];
  6. //
  7.  
  8. public OnPlayerConnect(playerid)
  9. {
  10. //TicketSystem
  11. TicketZeile[playerid] = 0;
  12. SupportTicket[playerid] = 0;
  13. TicketAngenommen[playerid] = 0;
  14. DeinSupport[playerid] = 0;
  15. //
  16.  
  17. //TicketSystem Befehle
  18. CMD:sup(playerid,params[])
  19. {
  20. new text[256];
  21. if(sscanf(params,"s",text))
  22. {
  23. SendClientMessage(playerid, COLOR_RED,"[TICKETSYSTEM]: /sup [text]");
  24. }
  25. else
  26. {
  27. if(TicketAngenommen[playerid] == 0)
  28. {
  29. new pname[MAX_PLAYER_NAME],save[512], string[128];
  30. GetPlayerName(playerid,pname,sizeof pname);
  31. format(save,sizeof(save),"Tickets/%s.ini",pname);
  32. dini_Create(string);
  33. if(!dini_Exists(save) && TicketZeile[playerid] == 0) // Wenn noch kein Ticket existiert und auch die TicketZeile auf 0 ist.
  34. {
  35. new adminmeldung[128];
  36. format(adminmeldung, sizeof(adminmeldung), "[TICKETSYSTEM] %s has writen an Support Ticket", pname);
  37. SendAdminMessage(COLOR_GREEN, adminmeldung);
  38. SupportTicket[playerid] = 1;
  39. TicketZeile[playerid] = 1;
  40. dini_Create(save);
  41. dini_Set(save,"Suptext",text);
  42. SendClientMessage(playerid, COLOR_GREEN, "[SUPPORT] You have send a Ticket with the following Text:");
  43. format(string, sizeof(string), "%s", text);
  44. SendClientMessage(playerid, COLOR_GREEN, string);
  45. SendClientMessage(playerid, COLOR_GREEN, "[SUPPORT] Please wait till an Supporter accept it!");
  46. SendClientMessage(playerid, COLOR_GREEN, "[SUPPORT] You can add another line with /sup 2");
  47. return 1;
  48. }
  49. else if(TicketZeile[playerid] == 1) // Wenn die erste Zeile schon geschrieben wurde
  50. {
  51. new string2[128];
  52. dini_Set(save, "Suptext2",text);
  53. SendClientMessage(playerid, COLOR_GREEN, "[SUPPORT] You have added the following Line:");
  54. format(string2, sizeof(string2), "%s", text);
  55. SendClientMessage(playerid, COLOR_GREEN, string2);
  56. TicketZeile[playerid] = 2;
  57. return 1;
  58. }
  59. else if(TicketZeile[playerid] == 2) // Wenn bereits 2 Zeilen ausgefüllt sind
  60. {
  61. new string3[128];
  62. dini_Set(save, "Suptext3",text);
  63. SendClientMessage(playerid, COLOR_GREEN, "[SUPPORT] You have added the following Line:");
  64. format(string3, sizeof(string3), "%s", text);
  65. SendClientMessage(playerid, COLOR_GREEN, string3);
  66. TicketZeile[playerid] = 3;
  67. return 1;
  68. }
  69. else if(TicketZeile[playerid] == 3) // Wenn das Ticket bereits 3 Zeilen hat
  70. {
  71. SendClientMessage(playerid, COLOR_GREEN, "[SUPPORT] You can write max. 3 lines!");
  72. return 1;
  73. }
  74. }
  75. if(TicketAngenommen[playerid] == 1) // Zum direkten Antworten per /sup , wenn das Ticket angenommen wurde.
  76. {
  77. new pID = DeinSupport[playerid];
  78. new antwort[128], antwort2[128], DerFragende[MAX_PLAYER_NAME], DerSup[MAX_PLAYER_NAME];
  79. GetPlayerName(playerid, DerFragende, sizeof (DerFragende));
  80. GetPlayerName(pID, DerSup, sizeof (DerSup));
  81. format(antwort, sizeof (antwort),"--> %s", text);
  82. SendClientMessage(playerid, COLOR_GREEN, antwort);
  83. format(antwort2, sizeof (antwort2), "%s wrote: %s", DerFragende, text);
  84. SendClientMessage(pID, COLOR_GREEN, antwort2);
  85. }
  86.  
  87. }
  88. return 1;
  89. }
  90.  
  91. CMD:taketicket(playerid,params[])
  92. {
  93. new pID;
  94. new string2[256], string[256], string3[256], string4[256],mitteilung[128] , DerPlayer[MAX_PLAYER_NAME], DerAdmin[MAX_PLAYER_NAME];
  95. if(sscanf(params,"u",pID)){
  96. return SendClientMessage(playerid, COLOR_RED,"[TICKETSYSTEM]: /taketicket [id]");
  97. }
  98. new pname[MAX_PLAYERS],save[512];
  99. GetPlayerName(pID,pname,sizeof pname);
  100. format(save,sizeof(save),"Tickets/%s.ini",pname);
  101. if(dini_Exists(save)) // Ob ein Ticket existiert! bzw. Datei-Abfrage
  102. {
  103. if(PlayerInfo[playerid][AdminLevel] >= 1) // Ob der Spieler ein Supporter ist!
  104. {
  105. if(TicketAngenommen[pID] == 0)
  106. {
  107. string2 = dini_Get(save,"Suptext");
  108. string3 = dini_Get(save,"Suptext2");
  109. string4 = dini_Get(save,"Suptext3");
  110. GetPlayerName(pID, DerPlayer, sizeof(DerPlayer));
  111. GetPlayerName(playerid, DerAdmin, sizeof(DerAdmin));
  112. format(string, sizeof(string), "%s wrote the following Support-Message:", DerPlayer);
  113. SendClientMessage(playerid, COLOR_GREEN, string);
  114. SendClientMessage(playerid, COLOR_GREEN, string2);
  115. SendClientMessage(playerid, COLOR_GREEN, string3);
  116. SendClientMessage(playerid, COLOR_GREEN, string4);
  117. SendClientMessage(playerid, COLOR_GREEN, "You can answer per /aw [text]");
  118. format(mitteilung, sizeof(mitteilung), "[SUPPORT] %s has opend your Ticket. You now can write live per /sup with him !",DerAdmin);
  119. SendClientMessage(pID, COLOR_YELLOW, mitteilung);
  120. DeinSupport[pID] = playerid; // Der persönliche Supporter wird gesetzt , um die Antworten an ihn weiterzuleiten
  121. TicketAngenommen[pID] = 1;
  122. }
  123. }
  124. }
  125. return 1;
  126. }
  127.  
  128. CMD:deleteticket(playerid, params[])
  129. {
  130. new pID;
  131. if(sscanf(params,"u",pID)){
  132. return SendClientMessage(playerid, COLOR_RED,"[TICKETSYSTEM]: /deleteticket [id]");
  133. }
  134. new pname[MAX_PLAYER_NAME],save[512];
  135. GetPlayerName(pID,pname,sizeof pname);
  136. format(save,sizeof(save),"Tickets/%s.ini",pname);
  137. if(dini_Exists(save)) // Ob ein Ticket offen ist
  138. {
  139. if(PlayerInfo[playerid][AdminLevel] >= 1) // Ob der Spieler befugt ist
  140. {
  141. new string[128], DerSup[MAX_PLAYER_NAME];
  142. GetPlayerName(playerid, DerSup, sizeof(DerSup));
  143. dini_Remove(save);
  144. format(string, sizeof(string), "%s has closed your Ticket", DerSup);
  145. SendClientMessage(pID, COLOR_YELLOW, string);
  146. SendClientMessage(playerid, COLOR_YELLOW, "Sucessfully deleted");
  147. TicketZeile[pID] = 0;
  148. TicketAngenommen[pID] = 0;
  149. DeinSupport[pID] = 0;
  150. SupportTicket[pID] = 0;
  151. }
  152. }
  153. return 1;
  154. }
  155.  
  156. CMD:giveticket(playerid, params[])
  157. {
  158. new pID, adminid;
  159. if(sscanf(params,"uu",pID,adminid)){
  160. return SendClientMessage(playerid, COLOR_RED,"[TICKETSYSTEM]: /giveticket [ticketid] [adminid]");
  161. }
  162. if(!IsPlayerConnected(adminid)) // Ob die angegebene ID online ist.
  163. {
  164. return SendClientMessage(playerid, COLOR_RED,"[TICKETSYSTEM] Admin isn't online");
  165. }
  166. if(PlayerInfo[adminid][AdminLevel] == 0) // Ob die angegebene ID Admin ist
  167. {
  168. return SendClientMessage(playerid, COLOR_RED, "[TICKETSYSTEM] This Player isn't an Admin");
  169. }
  170. new pname[MAX_PLAYERS],save[512];
  171. GetPlayerName(pID,pname,sizeof pname);
  172. format(save,sizeof(save),"Tickets/%s.ini",pname);
  173. if(!dini_Exists(save)) // Ob ein Ticket besteht
  174. {
  175. return SendClientMessage(playerid, COLOR_RED,"This ID has not an open Ticket");
  176. }
  177. new NeuerAdmin[MAX_PLAYER_NAME], AlterAdmin[MAX_PLAYER_NAME], Fragender[MAX_PLAYER_NAME];
  178. GetPlayerName(playerid, AlterAdmin , sizeof(AlterAdmin));
  179. GetPlayerName(adminid, NeuerAdmin, sizeof(NeuerAdmin));
  180. GetPlayerName(pID, Fragender , sizeof(Fragender));
  181. DeinSupport[pID] = adminid;
  182. new string2[128], string3[128], string4[256], string5[256], string6[256];
  183. format(string2, sizeof(string2), "[SUPPORT] %s has passed your Ticket to %s .", AlterAdmin, NeuerAdmin);
  184. SendClientMessage(pID, COLOR_GREEN, string2);
  185. SendClientMessage(playerid, COLOR_GREEN, "[TICKETSYSTEM] Sucessfully passed");
  186. format(string3, sizeof(string3), "[SUPPORT] %s has passed %s´s Ticket to you. He asked:", AlterAdmin, Fragender);
  187. string4 = dini_Get(save, "Suptext");
  188. string5 = dini_Get(save, "Suptext2");
  189. string6 = dini_Get(save, "Suptext3");
  190. SendClientMessage(adminid, COLOR_GREEN, string3);
  191. SendClientMessage(adminid, COLOR_GREEN, string4);
  192. SendClientMessage(adminid, COLOR_GREEN, string5);
  193. SendClientMessage(adminid, COLOR_GREEN, string6);
  194. return 1;
  195. }
  196.  
  197. CMD:tickets(playerid, params[])
  198. {
  199. #pragma unused params
  200. if(PlayerInfo[playerid][AdminLevel] >= 1)
  201. {
  202. SendClientMessage(playerid, COLOR_GREEN, "[TICKETSYSTEM] The shown Tickets can be opend with /taketicket [id]");
  203. for(new i = 0; i < MAX_PLAYERS; i++)
  204. {
  205. if(SupportTicket[i] == 1)
  206. {
  207. if(TicketAngenommen[i] == 0)
  208. {
  209. new string[128], DerSpieler[MAX_PLAYER_NAME];
  210. GetPlayerName(i, DerSpieler, sizeof(DerSpieler));
  211. format(string, sizeof(string), "ID: %d Name: %s", i, DerSpieler);
  212. SendClientMessage(playerid, COLOR_GREY, string);
  213. }
  214. }
  215. }
  216. }
  217. return 1;
  218. }
  219. //
  220. //TICKETSYSTEM
  221. stock DeleteTicket(playerid)
  222. {
  223. new save1[256], pname[MAX_PLAYERS];
  224. GetPlayerName(playerid,pname,sizeof pname);
  225. format(save,sizeof(save),"Tickets/%s.ini",pname);
  226. if(fexist(save1))
  227. {
  228. dini_Remove(save1);
  229. }
  230. return true;
  231. }
  232. //
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement