Guest User

Evan's Private Messaging System - Update

a guest
May 25th, 2014
389
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 5.87 KB | None | 0 0
  1. #include <a_samp>
  2. #include zcmd
  3. #include sscanf2
  4. #include foreach
  5.  
  6. #define COLOR_YELLOW 0xFFFF00AA
  7. #define COLOR_ORANGE 0xFF9900AA
  8. #define DIALOG_PM 3378
  9.  
  10. new PMTogged[MAX_PLAYERS];
  11. new BlockedBy[MAX_PLAYERS] = 999;
  12.  
  13. forward SendRCONAlert(color, string[]);
  14. public SendRCONAlert(color, string[])
  15. {
  16.         foreach(Player, i)
  17.         {
  18.                         if(IsPlayerAdmin(i))
  19.                         {
  20.                                 SendClientMessage(i, color, string);
  21.                         }
  22.         }
  23. }
  24.  
  25. CMD:nopm(playerid, params[])
  26. {
  27.         if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, -1, "Only administrators can toggle recieveing private messages.");
  28.         if(!PMTogged[playerid])
  29.         {
  30.                 PMTogged[playerid] = 1;
  31.                 SendClientMessage(playerid, -1, "You will no longer accept private messages.");
  32.         }
  33.         else
  34.         {
  35.                 PMTogged[playerid] = 0;
  36.                 SendClientMessage(playerid, -1, "You will now accept private messages..");
  37.         }
  38.         return 1;
  39. }
  40.  
  41. CMD:nopmid(playerid, params[])
  42. {
  43.         if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, -1, "Only administrators can toggle recieveing private messages.");
  44.         new giveplayerid;
  45.         if(sscanf(params, "u", giveplayerid)) return SendClientMessage(playerid, -1, "USAGE: [/nopmid] [id]");
  46.         if(!IsPlayerConnected(giveplayerid)) return SendClientMessage(playerid, -1, "The playerID/Part-Of-Name Entered is not connected.");
  47.         if(BlockedBy[giveplayerid] != playerid) return Block(giveplayerid, playerid);
  48.         if(BlockedBy[giveplayerid] == playerid) return Unblock(giveplayerid, playerid);
  49.         return 1;
  50. }
  51.  
  52. CMD:pm(playerid, params[])
  53. {
  54.                 new giveplayerid, string[128], message[128];
  55.                 if(sscanf(params, "us[81]", giveplayerid, message)) return SendClientMessage(playerid, -1, "USAGE: /pm [playerid] [message]");
  56.                 if(!IsPlayerConnected(giveplayerid)) return SendClientMessage(playerid, -1, "You have specified an invalid playerid/part-of-name. Please try again");
  57.                 if(PMTogged[giveplayerid] == 1) return SendClientMessage(playerid, -1, "That player currently has disabled private messaging.");
  58.                 if(BlockedBy[playerid] == giveplayerid) return SendClientMessage(playerid, -1, "That player has disabled recieving private messages from you.");
  59.                 format(string, sizeof(string), "PM From %s(%d): %s", GetPlayersName(playerid), playerid, message);
  60.                 SendClientMessage(giveplayerid, COLOR_ORANGE, string);
  61.                 format(string, sizeof(string), "PM To %s(%d): %s", GetPlayersName(giveplayerid), giveplayerid, message);
  62.                 SendClientMessage(playerid, COLOR_ORANGE, string);
  63.                 format(string, sizeof(string), "AdmWarn: %s(%d) has PMed %s(%d) with message: %s.", GetPlayersName(playerid), playerid, GetPlayersName(giveplayerid), giveplayerid, message);
  64.                 SendRCONAlert(COLOR_YELLOW, string);
  65.                 OnPlayerPM(playerid, giveplayerid, message);
  66.                 // LogPM(string);
  67.                 return 1;
  68. }
  69.  
  70. stock Block(giveplayerid, playerid)
  71. {
  72. BlockedBy[giveplayerid] = playerid;
  73. SendClientMessage(playerid, -1, "You have blocked that player from Private Messaging you!");
  74. return 1;
  75. }
  76. stock Unblock(giveplayerid, playerid)
  77. {
  78. BlockedBy[giveplayerid] = 999;
  79. SendClientMessage(playerid, -1, "You have unblocked that player from Private Messaging you!");
  80. return 1;
  81. }
  82. stock GetPlayersName(playerid)
  83. {
  84.         new name[MAX_PLAYER_NAME];
  85.         GetPlayerName(playerid, name, sizeof(name));
  86.         return name;
  87. }
  88.  
  89. forward OnPlayerPM(playerid, giveplayerid, message[]);
  90. public OnPlayerPM(playerid, giveplayerid, message[])
  91. {
  92. return 1;
  93. }
  94.  
  95. public OnPlayerClickPlayer(playerid, clickedplayerid, source)
  96. {
  97.   if(PMTogged[clickedplayerid] == 1) return SendClientMessage(playerid, -1, "That player isn't accepting any private messages.");
  98.   if(BlockedBy[playerid] == clickedplayerid) return SendClientMessage(playerid, -1, "That player has blocked you from private messaging them.");
  99.   SetPVarInt(playerid, "PMBox", clickedplayerid);
  100.   ShowPlayerDialog(playerid,DIALOG_PM, DIALOG_STYLE_INPUT, "Private Messaging", "Please enter the text to send to the player.", "Send", "Cancel");
  101.   return 1;
  102. }
  103.  
  104. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  105. {
  106.     if(dialogid == DIALOG_PM)
  107.     {
  108.         if(response)
  109.         {
  110.             if(isnull(inputtext)) return ShowPlayerDialog(playerid,DIALOG_PM,DIALOG_STYLE_INPUT,"Private Messaging", "Please enter the text to send to the player.", "Send", "Cancel");
  111.             new message[128];
  112.             format(message, sizeof(message), "%s", inputtext);
  113.             new string[128];
  114.             new giveplayerid = GetPVarInt(playerid, "PMBox");
  115.             format(string, sizeof(string), "PM From %s(%d): %s", GetPlayersName(playerid), playerid, message);
  116.             SendClientMessage(giveplayerid, COLOR_ORANGE, string);
  117.             format(string, sizeof(string), "PM To %s(%d): %s", GetPlayersName(giveplayerid), giveplayerid, message);
  118.             SendClientMessage(playerid, COLOR_ORANGE, string);
  119.             format(string, sizeof(string), "AdmWarn: %s(%d) has PMed %s(%d) with message: %s.", GetPlayersName(playerid), playerid, GetPlayersName(giveplayerid), giveplayerid, message);
  120.             SendRCONAlert(COLOR_YELLOW, string);
  121.             OnPlayerPM(playerid, giveplayerid, message);
  122.             SetPVarInt(playerid, "PMBox", INVALID_PLAYER_ID);
  123.         }
  124.         else
  125.         {
  126.             SendClientMessage(playerid, -1, "You have stopped yourself from sending the message.");
  127.         }
  128.         return 1;
  129.     }
  130.  
  131.     return 0;
  132. }
  133.  
  134. public OnPlayerConnect(playerid)
  135. {
  136. SetPVarInt(playerid, "PMBox", INVALID_PLAYER_ID);
  137. return 1;
  138. }
  139.  
  140. public OnPlayerDisconnect(playerid)
  141. {
  142. DeletePVar(playerid, "PMBox");
  143. return 1;
  144. }
Advertisement
Add Comment
Please, Sign In to add comment