Advertisement
Kwarde

k_clientmsg

Mar 13th, 2011
211
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 3.19 KB | None | 0 0
  1. #if defined _clientmsg_included
  2.     #endinput
  3. #endif
  4.  
  5. //===== CONFIGURATION =====//
  6. #define PTXT_FORMSD "%s(%d): %s" //The format of the player's text. "NAME[playerid] (%s) for name, playerid (%d) for ID, text (%s) for TEXT.
  7. #define PTXT_FORMVL NAME[playerid], playerid, text //For the format function...
  8. #define PTXT_USE    true //Use the chat function (recommended to keep on 'true')
  9. #define PTXT_CPT    0 //0: Use the SendClientMessageToAll (using PTXT_FORMAT), 1: The SendPlayerMessageToAll
  10. #define PTXT_PTID   true //If PTXT_CPT is 1, and this on true, the SendPlayerMessageToAll will be called with the player's ID in the text
  11.  
  12. #include <a_samp>
  13.  
  14. new bool:pCSCM[MAX_PLAYERS], NAME[MAX_PLAYERS][MAX_PLAYER_NAME];
  15.  
  16. forward _CSCM_OnPlayerConnect(playerid);
  17. forward _CSCM_OnPlayerText(playerid, text[]);
  18.  
  19. public OnPlayerConnect(playerid)
  20. {
  21.     pCSCM[playerid] = true;
  22.     GetPlayerName(playerid, NAME[playerid], MAX_PLAYER_NAME);
  23.     return 1;
  24. }
  25. #if defined _ALS_OnPlayerConnect
  26.     #undef OnPlayerConnect
  27. #else
  28.     #define _ALS_OnPlayerConnect
  29. #endif
  30. #define OnPlayerConnect _CSCM_OnPlayerConnect
  31.  
  32. public OnPlayerText(playerid, text[])
  33. {
  34.     new str[128];
  35. #if PTXT_USE
  36. #if PTXT_CPT == 0
  37.     format(str, 128, PTXT_FORMSD, PTXT_FORMVL);
  38.     KCSCMSendClientMessageToAll(0xFFFFFFAA, str);
  39. #else
  40. #if PTXT_PTID == true
  41.     format(str, 128, "(%d): %s", playerid, text);
  42.     KCSCMSendPlayerMessageToAll(playerid, str);
  43. #else
  44. #pragma unused str
  45.     KCSCMSendPlayerMessageToAll(playerid, text);
  46. #endif
  47. #endif
  48. #endif
  49.     return 0;
  50. }
  51. #if defined _ALS_OnPlayerText
  52.     #undef OnPlayerText
  53. #else
  54.     #define _ALS_OnPlayerText
  55. #endif
  56. #define OnPlayerText _CSCM_OnPlayerText
  57.  
  58. stock ClientMessagesOn(playerid)
  59.     pCSCM[playerid] = true;
  60.    
  61. stock ClientMessagesOff(playerid)
  62.     pCSCM[playerid] = false;
  63.    
  64. stock AllClientMessagesOn()
  65.     for(new i = 0; i < MAX_PLAYERS; i++)
  66.         pCSM[i] = true;
  67.  
  68. stock AllClientMessagesOff()
  69.     for(new i = 0; i < MAX_PLAYERS; i++)
  70.         pCSM[i] = false;
  71.  
  72. stock ClientMessagesOffFor({_}:...)
  73. {
  74.     new count = numargs(), playerid;
  75.     for(new i = 0; i < count; i++){
  76.         playerid = getarg(playerid);
  77.         pCSCM[playerid] = false;
  78.     }
  79.     return 1;
  80. }
  81.  
  82. stock ClientMessagesOnFor({_}:...)
  83. {
  84.     new count = numargs(), playerid;
  85.     for(new i = 0; i < count; i++){
  86.         playerid = getarg(playerid);
  87.         pCSCM[playerid] = true;
  88.     }
  89.     return 1;
  90. }
  91.  
  92. stock KCSCMSendClientMessage(playerid, color, const message[])
  93.     if(pCSCM[playerid])
  94.         SendClientMessage(playerid, color, message);
  95. #define SendClientMessage KCSCMSendClientMessage
  96.  
  97. stock KCSCMSendClientMessageToAll(color, const message[])
  98.     for(new i = 0; i < MAX_PLAYERS; i++)
  99.         if(pCSCM[i])
  100.             SendClientMessage(i, color, message);
  101. #define SendClientMessageToAll KCSCMSendClientMessageToAll
  102.  
  103. stock KCSCMSendPlayerMessageToPlayer(playerid, senderid, const message[])
  104.     if(pCSCM[playerid])
  105.         SendPlayerMessageToPlayer(playerid, senderid, message);
  106. #define SendPlayerMessageToPlayer KCSCMSendPlayerMessageToPlayer
  107.  
  108. stock KCSCMSendPlayerMessageToAll(senderid, const message[])
  109.     for(new i = 0; i < MAX_PLAYERS; i++)
  110.         if(pCSCM[i])
  111.             SendPlayerMessageToPlayer(i, senderid, message);
  112. #define SendPlayerMessageToAll KCSCMSendPlayerMessageToPlayer
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement