Advertisement
Guest User

Untitled

a guest
Nov 2nd, 2012
3,704
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.17 KB | None | 0 0
  1. /*
  2. ---------------------------------------------------
  3. ---------------------------------------------------
  4. PM System
  5. Credits to
  6. MouseBreaker, YoYo123, SA-MP, Y_Less
  7. DracoBlue
  8. ---------------------------------------------------
  9. ---------------------------------------------------
  10. */
  11.  
  12. // Includes
  13. #include <a_samp>
  14. #include <sscanf>
  15.  
  16. #define dcmd(%1,%2,%3) if (!strcmp((%3)[1], #%1, true, (%2)) && ((((%3)[(%2) + 1] == '\0') && (dcmd_%1(playerid, ""))) || (((%3)[(%2) + 1] == ' ') && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1
  17.  
  18. // Colours
  19. #define COLOR_RED 0xFF0000FF
  20. #define COLOR_YELLOW 0xFFFF00AA
  21. #define COLOR_ORANGE 0xFF9900AA
  22.  
  23. // Player Variable
  24. enum PlayerInfo
  25. {
  26. Last,
  27. NoPM,
  28. }
  29.  
  30. new pInfo[MAX_PLAYERS][PlayerInfo];
  31.  
  32. public OnFilterScriptInit()
  33. {
  34. print("\n--------------------------------------------");
  35. print(" PM System, Created By Mousebreaker, YoYo123");
  36. print("--------------------------------------------\n");
  37. return 1;
  38. }
  39.  
  40. public OnFilterScriptExit()
  41. {
  42. print("\n--------------------------------------------");
  43. print(" PM System, Created By Mousebreaker, YoYo123");
  44. print("--------------------------------------------\n");
  45. return 1;
  46. }
  47.  
  48. public OnPlayerConnect(playerid)
  49. {
  50. pInfo[playerid][Last] = -1;
  51. pInfo[playerid][NoPM] = 0;
  52. return 1;
  53. }
  54.  
  55. public OnPlayerDisconnect(playerid, reason)
  56. {
  57. pInfo[playerid][Last] = -1;
  58. pInfo[playerid][NoPM] = 0;
  59. return 1;
  60. }
  61.  
  62. stock PlayerName(playerid)
  63. {
  64. new pName[MAX_PLAYER_NAME];
  65. GetPlayerName(playerid, pName, sizeof(pName));
  66. return pName;
  67. }
  68.  
  69. dcmd_nopm(playerid, params[])
  70. {
  71. #pragma unused params
  72. if(pInfo[playerid][NoPM] == 0)
  73. {
  74. pInfo[playerid][NoPM] = 1;
  75. SendClientMessage(playerid, COLOR_YELLOW, "You are no longer accepting private messages.");
  76. }
  77. else
  78. {
  79. pInfo[playerid][NoPM] = 0;
  80. SendClientMessage(playerid, COLOR_YELLOW, "You are now accepting private messages.");
  81. }
  82. }
  83.  
  84. dcmd_pm(playerid, params[])
  85. {
  86. new pID, text[128], string[128];
  87. if(sscanf(params, "us", pID, text)) return SendClientMessage(playerid, COLOR_RED, "USAGE: /pm (nick/id) (message) - Enter a valid Nick / ID");
  88. if(!IsPlayerConnected(pID)) return SendClientMessage(playerid, COLOR_RED, "Player is not connected.");
  89. if(pID == playerid) return SendClientMessage(playerid, COLOR_RED, "You cannot PM yourself.");
  90. format(string, sizeof(string), "%s (%d) is not accepting private messages at the moment.", PlayerName(pID), pID);
  91. if(pInfo[pID][NoPM] == 1) return SendClientMessage(playerid, COLOR_RED, string);
  92. format(string, sizeof(string), "PM to %s: %s", PlayerName(pID), text);
  93. SendClientMessage(playerid, COLOR_YELLOW, string);
  94. format(string, sizeof(string), "PM from %s: %s", PlayerName(playerid), text);
  95. SendClientMessage(pID, COLOR_YELLOW, string);
  96. pInfo[pID][Last] = playerid;
  97. return 1;
  98. }
  99.  
  100. dcmd_reply(playerid, params[])
  101. {
  102. new text[128], string[128];
  103. if(sscanf(params, "s", text)) return SendClientMessage(playerid, COLOR_RED, "USAGE: /reply (message) - Enter your message");
  104. new pID = pInfo[playerid][Last];
  105. if(!IsPlayerConnected(pID)) return SendClientMessage(playerid, COLOR_RED, "Player is not connected.");
  106. if(pID == playerid) return SendClientMessage(playerid, COLOR_RED, "You cannot PM yourself.");
  107. format(string, sizeof(string), "%s (%d) is not accepting private messages at the moment.", PlayerName(pID), pID);
  108. if(pInfo[pID][NoPM] == 1) return SendClientMessage(playerid, COLOR_RED, string);
  109. format(string, sizeof(string), "PM to %s: %s", PlayerName(pID), text);
  110. SendClientMessage(playerid, COLOR_YELLOW, string);
  111. format(string, sizeof(string), "PM from %s: %s", PlayerName(playerid), text);
  112. SendClientMessage(pID, COLOR_YELLOW, string);
  113. pInfo[pID][Last] = playerid;
  114. return 1;
  115. }
  116.  
  117. dcmd_ms(playerid, params[]) return dcmd_pm(playerid, params);
  118. dcmd_m(playerid, params[]) return dcmd_pm(playerid, params);
  119. dcmd_r(playerid, params[]) return dcmd_reply(playerid, params);
  120.  
  121. public OnPlayerCommandText(playerid, cmdtext[])
  122. {
  123. dcmd(pm, 2, cmdtext);
  124. dcmd(ms, 2, cmdtext);
  125. dcmd(m, 1, cmdtext);
  126. dcmd(r, 1, cmdtext);
  127. dcmd(reply, 5, cmdtext);
  128. dcmd(nopm, 4, cmdtext);
  129. return 0;
  130. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement