Advertisement
Guest User

Ticketsystem (von Vincent Petritz)

a guest
Apr 25th, 2012
624
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 8.38 KB | None | 0 0
  1. #include <a_samp>
  2. #include <ocmd>
  3. #include <sscanf2>
  4.  
  5. #define PVAR_NAME       "Admin"
  6.  
  7. #define COLOR_RED       0xFF0000FF
  8. #define COLOR_GREEN     0x87FF00FF
  9. #define COLOR_YELLOW    0xFFFF00FF
  10. #define COLOR_PURPLE    0xBE00FFFF
  11.  
  12. new Text:SupportDraws[2];
  13.  
  14. stock GetName(playerid)
  15. {
  16.     new Name[MAX_PLAYER_NAME];
  17.     GetPlayerName(playerid, Name, sizeof(Name));
  18.     return Name;
  19. }
  20.  
  21. stock SendAdminMessage(Farbe, Message[])
  22. {
  23.     for(new playerid; playerid < GetMaxPlayers(); playerid++) {
  24.         if(GetPVarInt(playerid, "ticket_admin") >= 1 || IsPlayerAdmin(playerid)) {
  25.             SendClientMessage(playerid, Farbe, Message);
  26.         }
  27.     }
  28.     return 1;
  29. }
  30.  
  31. stock UpdateSupportTextdraws()
  32. {
  33.     new Ticketzahl,
  34.         str1[100],
  35.         str2[1000];
  36.     for(new playerid; playerid < GetMaxPlayers(); playerid++) {
  37.         if(GetPVarInt(playerid, "ticket_opened")) {
  38.             if(!Ticketzahl)
  39.                 format(str2, sizeof(str2), "%d - %s", playerid, GetName(playerid));
  40.             else
  41.                 format(str2, sizeof(str2), "%s~n~%d - %s", str2, playerid, GetName(playerid));
  42.             Ticketzahl++;
  43.         }
  44.     }
  45.     format(str1, sizeof(str1), "%d Ticket(s)", Ticketzahl);
  46.     TextDrawSetString(SupportDraws[1], str2);
  47.     TextDrawSetString(SupportDraws[0], str1);
  48. }
  49.  
  50. ocmd:tlogin(playerid, params[])
  51. {
  52.     #pragma unused params
  53.     new str1[128];
  54.     if(GetPVarInt(playerid, "ticket_admin") != 0)
  55.         return SendClientMessage(playerid, COLOR_RED, "[Ticketsystem] Du bist bereits eingeloggt!");
  56.     if(GetPVarInt(playerid, PVAR_NAME) > 0 || IsPlayerAdmin(playerid)) {
  57.         TextDrawShowForPlayer(playerid, SupportDraws[0]);
  58.         TextDrawShowForPlayer(playerid, SupportDraws[1]);
  59.         SetPVarInt(playerid, "ticket_admin", 1);
  60.         format(str1, sizeof(str1), "[Ticketsystem] %s hat sich in das Ticketsystem eingeloggt!", GetName(playerid));
  61.     }
  62.     else {
  63.         TextDrawHideForPlayer(playerid, SupportDraws[0]);
  64.         TextDrawHideForPlayer(playerid, SupportDraws[1]);
  65.         format(str1, sizeof(str1), "[Ticketsystem] %s hat sich versucht in das Ticketsystem einzuloggen!", GetName(playerid));
  66.     }
  67.     return SendAdminMessage(COLOR_YELLOW, str1);
  68. }
  69.  
  70. ocmd:tsup(playerid, params[])
  71. {
  72.     if(GetPVarInt(playerid, "ticket_opened") < 1) {
  73.         new Text[100],
  74.             str[128];
  75.         if(sscanf(params, "s[100]", Text))
  76.             return SendClientMessage(playerid, COLOR_RED, "[Ticketsystem] Falsche Benutzung: /sup [Text]");
  77.         if(strlen(Text) > 10) {
  78.             SendClientMessage(playerid, COLOR_GREEN, "[Ticketsystem] Das Ticket wurde erfolgreich gespeichert!");
  79.             format(str, sizeof(str), "[Ticketsystem] %s hat ein Ticket erstellt!", GetName(playerid));
  80.             SendAdminMessage(COLOR_YELLOW, str);
  81.             SetPVarInt(playerid, "ticket_opened", 1);
  82.             SetPVarString(playerid, "ticket_text", Text);
  83.             UpdateSupportTextdraws();
  84.         }
  85.         else {
  86.             SendClientMessage(playerid, COLOR_RED, "[Ticketsystem] Der Text sollte mehr als 10 Zeichen enthalten!");
  87.         }
  88.     }
  89.     else
  90.         SendClientMessage(playerid, COLOR_RED, "[Ticketsystem] Du hast bereits ein Ticket erstellt!");
  91.     return 1;
  92. }
  93.  
  94. ocmd:topen(playerid, params[])
  95. {
  96.     new tID;
  97.     if(sscanf(params, "d", tID))
  98.         return SendClientMessage(playerid, COLOR_RED, "[Ticketsystem] Falsche Benutzung: /aosup [Ticket-ID]");
  99.     if(!IsPlayerAdmin(playerid) || GetPVarInt(playerid, "ticket_admin") < 1)
  100.         return SendClientMessage(playerid, COLOR_RED, "[Ticketsystem] Du hast nicht genug Rechte!");
  101.     if(GetPVarInt(tID, "ticket_opened") != 0 && !GetPVarInt(playerid, "ticket_player")) {
  102.         new str1[128],
  103.             str2[128],
  104.             str3[128],
  105.             str4[100];
  106.         format(str4, sizeof(str4), "%s", GetPVarString(tID, "ticket_text", str4, 100));
  107.         DeletePVar(tID, "ticket_opened");
  108.         SetPVarInt(tID, "ticket_sup", playerid);
  109.         SetPVarInt(playerid, "ticket_player", tID);
  110.         format(str1, sizeof(str1), "[Ticketsystem] %s hat dein Ticket geöffnet; nutze /tchat [Text]!", GetName(playerid));
  111.         format(str2, sizeof(str2), "[Ticketsystem] %s hat das Ticket von %s geöffnet!", GetName(playerid), GetName(tID));
  112.         format(str3, sizeof(str3), "[Ticketsystem] %s schrieb: %s", GetName(playerid), str4);
  113.         SendClientMessage(tID, COLOR_YELLOW, str1);
  114.         SendAdminMessage(COLOR_YELLOW, str2);
  115.         SendClientMessage(playerid, COLOR_YELLOW, str3);
  116.         UpdateSupportTextdraws();
  117.     }
  118.     return 1;
  119. }
  120.  
  121. ocmd:tclose(playerid, params[])
  122. {
  123.     #pragma unused params
  124.     if(IsPlayerAdmin(playerid) || GetPVarInt(playerid, "ticket_admin") > 0) {
  125.         if(!GetPVarInt(playerid, "ticket_player")) {
  126.             new PlayerID = GetPVarInt(playerid, "ticket_player"),
  127.                 str1[128],
  128.                 str2[128];
  129.             format(str1, sizeof(str1), "[Ticketsystem] %s hat das Ticket von Spieler %s gelöscht!", GetName(playerid), GetName(PlayerID));
  130.             format(str2, sizeof(str2), "[Ticketsystem] %s hat dein Ticket welches von ihm bearbeitet wurde, gelöscht!", GetName(playerid));
  131.             SendAdminMessage(COLOR_YELLOW, str2);
  132.             SendClientMessage(PlayerID, COLOR_YELLOW, str1);
  133.             DeletePVar(PlayerID, "ticket_sup");
  134.             DeletePVar(playerid, "ticket_player");
  135.             DeletePVar(PlayerID, "ticket_opened");
  136.         }
  137.         else
  138.             SendClientMessage(playerid, COLOR_RED, "[Ticketsystem] Du hattest kein Ticket offen!");
  139.     }
  140.     return 1;
  141. }
  142.  
  143. ocmd:tchat(playerid, params[])
  144. {
  145.     new Text[100];
  146.     if(sscanf(params, "s[100]", Text))
  147.         return SendClientMessage(playerid, COLOR_RED, "[Ticketsystem] Falsche Benutzung: /tchat [Text]");
  148.     if(IsPlayerConnected(GetPVarInt(playerid, "ticket_sup"))) {
  149.         new str1[128],
  150.             str2[128],
  151.             varSup = GetPVarInt(playerid, "ticket_sup");
  152.         format(str1, sizeof(str1), "[LIVE: Ticketsystem] %s schreibt: %s", GetName(playerid), Text);
  153.         format(str2, sizeof(str2), "[LIVE: Ticketsystem] Du schriebst: %s", Text);
  154.         SendClientMessage(varSup, COLOR_PURPLE, str1);
  155.         SendClientMessage(playerid, COLOR_PURPLE, str2);
  156.     }
  157.     else
  158.         SendClientMessage(playerid, COLOR_RED, "[Ticketsystem] Dein Gegenüber ist weg!");
  159.     return 1;
  160. }
  161.  
  162. ocmd:tmsg(playerid, params[])
  163. {
  164.     new Text[100];
  165.     if(sscanf(params, "s[100]", Text))
  166.         return SendClientMessage(playerid, COLOR_RED, "[Ticketsystem] Falsche Benutzung: /tmsg [Text]");
  167.     if(IsPlayerConnected(GetPVarInt(playerid, "ticket_player")) && GetPVarInt(playerid, "ticket_admin") > 0) {
  168.         new str1[128],
  169.             str2[128],
  170.             varPlayer = GetPVarInt(playerid, "ticket_player");
  171.         format(str1, sizeof(str1), "[LIVE: Ticketsystem] %s schreibt: %s", GetName(playerid), Text);
  172.         format(str2, sizeof(str2), "[LIVE: Ticketsystem] Du schriebst: %s", Text);
  173.         SendClientMessage(varPlayer, COLOR_PURPLE, str1);
  174.         SendClientMessage(playerid, COLOR_PURPLE, str2);
  175.     }
  176.     else
  177.         SendClientMessage(playerid, COLOR_RED, "[Ticketsystem] Dein Gegenüber ist weg!");
  178.     return 1;
  179. }
  180.  
  181. public OnFilterScriptInit()
  182. {
  183.     printf(" Ticketsystem von Vincent Petritz (easy-scripting.net)");
  184.     SupportDraws[0] = TextDrawCreate(495.000000, 114.000000, "0 Ticket(s)");
  185.     TextDrawBackgroundColor(SupportDraws[0], 255);
  186.     TextDrawFont(SupportDraws[0], 2);
  187.     TextDrawLetterSize(SupportDraws[0], 0.200000, 1.000000);
  188.     TextDrawColor(SupportDraws[0], -1);
  189.     TextDrawSetOutline(SupportDraws[0], 1);
  190.     TextDrawSetProportional(SupportDraws[0], 1);
  191.     TextDrawSetShadow(SupportDraws[0], 0);
  192.     TextDrawUseBox(SupportDraws[0], 1);
  193.     TextDrawBoxColor(SupportDraws[0], 0x000000AA);
  194.     TextDrawTextSize(SupportDraws[0], 588.000000, 0.000000);
  195.  
  196.     SupportDraws[1] = TextDrawCreate(495.000000, 130.000000, " ");
  197.     TextDrawBackgroundColor(SupportDraws[1], 255);
  198.     TextDrawFont(SupportDraws[1], 2);
  199.     TextDrawLetterSize(SupportDraws[1], 0.200000, 1.000000);
  200.     TextDrawColor(SupportDraws[1], -1);
  201.     TextDrawSetOutline(SupportDraws[1], 1);
  202.     TextDrawSetProportional(SupportDraws[1], 1);
  203.     TextDrawUseBox(SupportDraws[1], 1);
  204.     TextDrawBoxColor(SupportDraws[1], 0x000000AA);
  205.     TextDrawTextSize(SupportDraws[1], 602.000000, 121.000000);
  206.     return 1;
  207. }
  208.  
  209. public OnFilterScriptExit()
  210. {
  211.     for(new playerid; playerid < GetMaxPlayers(); playerid++) {
  212.         TextDrawHideForPlayer(playerid, SupportDraws[0]);
  213.         TextDrawHideForPlayer(playerid, SupportDraws[1]);
  214.     }
  215.     return 1;
  216. }
  217.  
  218. public OnPlayerDisconnect(playerid, reason)
  219. {
  220.     if(GetPVarInt(playerid, "ticket_player")) {
  221.         new Player = GetPVarInt(playerid, "ticket_player");
  222.         SendClientMessage(Player, COLOR_YELLOW, "[Ticketsystem] Dein Gegenüber hat das Spiel verlassen!");
  223.         DeletePVar(playerid, "ticket_player");
  224.     }
  225.     if(GetPVarInt(playerid, "ticket_sup")) {
  226.         new Sup = GetPVarInt(playerid, "ticket_sup");
  227.         SendClientMessage(Sup, COLOR_YELLOW, "[Ticketsystem] Dein Gegenüber hat das Spiel verlassen!");
  228.         DeletePVar(Sup, "ticket_sup");
  229.         DeletePVar(Sup, "ticket_opened");
  230.     }
  231.     return 1;
  232. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement