Advertisement
Guest User

Untitled

a guest
Feb 6th, 2018
958
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 4.25 KB | None | 0 0
  1. //--------------------------------------------------------------//
  2. // PM system by hobo101 aka MarkNelson V0.1
  3. // If you're using this system as a filterscript or in your game-mode
  4. // Please, don't remove the credits
  5. // If you find any bug, feel free to report it through PM on samp forums
  6. // to MarkNelson, Thank you for understanding.
  7. //-------------------------------------------------------------//
  8.  
  9. #include <a_samp>
  10. #include <zcmd>
  11. #include <sscanf2>
  12.  
  13. //Colors + Var + Dialog
  14. #define COLOR_RED 0xAA3333AA
  15. #define COLOR_ORANGE 0xF97804FF
  16. #define COLOR_YELLOW 0xFFFF00AA
  17. #define DIALOG_PM 889
  18. new LastPm[MAX_PLAYERS];
  19. //
  20. #define FILTERSCRIPT
  21. #define SCM(%0,%1,%2) SendClientMessage(%0,%1,%2)
  22.  
  23. //Stocks
  24. stock GetName(playerid) {
  25.     new pName[26];
  26.     GetPlayerName(playerid, pName, MAX_PLAYER_NAME);
  27.     return pName;
  28. }
  29. //
  30.  
  31. public OnFilterScriptInit()
  32. {
  33.     print("\n--------------------------------------");
  34.     print(" MarkNelson's PM System has been loaded");
  35.     print("--------------------------------------\n");
  36.     return 1;
  37. }
  38.  
  39. public OnFilterScriptExit()
  40. {
  41.     print("\n----------------------------------");
  42.     print(" MarkNelson's PM System has been unloaded");
  43.     print("----------------------------------\n");
  44.     return 1;
  45. }
  46.  
  47. public OnPlayerRequestClass(playerid, classid)
  48. {
  49.     return 1;
  50. }
  51.  
  52. public OnPlayerConnect(playerid)
  53. {
  54.     LastPm[playerid] = -1;
  55.     return 1;
  56. }
  57.  
  58. public OnPlayerDisconnect(playerid, reason)
  59. {
  60.     LastPm[playerid] = -1;
  61.     return 1;
  62. }
  63.  
  64. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  65. {
  66.     switch(dialogid)
  67.     {
  68.       case DIALOG_PM:
  69.       {
  70.        if(!response) SendClientMessage(playerid, COLOR_RED, "Process Canceled.");
  71.        if(response)
  72.        {
  73.           new str[80];
  74.           new id = GetPVarInt(playerid,"ClickedPlayer");
  75.           format(str, sizeof(str), "%d %s", id, inputtext);
  76.           cmd_pm(playerid, str);
  77.        }
  78.       }
  79.     }
  80.     return 1;
  81. }
  82.  
  83. public OnPlayerClickPlayer(playerid, clickedplayerid, source)
  84. {
  85.     if(clickedplayerid == playerid) return SCM(playerid, COLOR_RED, "You can't send a pm to yourself");
  86.     if(clickedplayerid == INVALID_PLAYER_ID) return SCM(playerid, COLOR_RED, "Invalid player ID");
  87.     if(!IsPlayerConnected(clickedplayerid)) return SCM(playerid, COLOR_RED, "Player is not connected");
  88.     SetPVarInt(playerid,"ClickedPlayer",clickedplayerid);
  89.     ShowPlayerDialog(playerid, DIALOG_PM, DIALOG_STYLE_INPUT, "Private Message", "Enter your message below:", "Send", "Cancel");
  90.     return 1;
  91. }
  92. CMD:pm(playerid, params[])
  93. {
  94.     new str[175], str2[175], id, Name1[MAX_PLAYER_NAME], Name2[MAX_PLAYER_NAME];
  95.     if(sscanf(params, "us", id, str2))
  96.     {
  97.         SendClientMessage(playerid, COLOR_ORANGE, "Usage: /pm <id> <message>");
  98.         return 1;
  99.     }
  100.     if(!IsPlayerConnected(id)) return SendClientMessage(playerid, COLOR_RED, "ERROR: Player not connected");
  101.     if(playerid == id) return SendClientMessage(playerid, COLOR_RED, "ERROR: You cannot pm yourself!");
  102.     {
  103.         GetPlayerName(playerid, Name1, sizeof(Name1));
  104.         GetPlayerName(id, Name2, sizeof(Name2));
  105.         format(str, sizeof(str), "PM To %s(ID %d): %s", Name2, id, str2);
  106.         SendClientMessage(playerid, COLOR_ORANGE, str);
  107.         PlayerPlaySound(playerid, 1083, 0.0, 0.0, 0.0);
  108.         format(str, sizeof(str), "PM From %s(ID %d): %s", Name1, playerid, str2);
  109.         SendClientMessage(id, COLOR_YELLOW, str);
  110.         PlayerPlaySound(id, 1057, 0.0, 0.0, 0.0);
  111.         printf(str);
  112.         LastPm[id] = playerid;
  113.     }
  114.     return 1;
  115. }
  116. CMD:re(playerid, params[])
  117. {
  118.     new string[128], message[128];
  119.     if(sscanf(params,"s[128]",message)) return SCM(playerid, COLOR_ORANGE, "Usage: /re <Message>");
  120.     if(LastPm[playerid] == -1) return SCM(playerid, COLOR_RED, "The last player who messaged you last time has left the server");
  121.     format(string, 128, "PM To %s(ID %d): %s", GetName(LastPm[playerid]), LastPm[playerid], message);
  122.     SCM(playerid, COLOR_ORANGE, string);
  123.     PlayerPlaySound(playerid, 1083, 0.0, 0.0, 0.0);
  124.     format(string, 128, "PM From %s(ID %d): %s", GetName(playerid), playerid, message);
  125.     SCM(LastPm[playerid], COLOR_YELLOW, string);
  126.     LastPm[LastPm[playerid]] = playerid;
  127.     PlayerPlaySound(LastPm[playerid], 1057, 0.0, 0.0, 0.0);
  128.     return 1;
  129. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement