Guest User

Double-O-Seven

a guest
Oct 17th, 2010
382
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 5.98 KB | None | 0 0
  1. #include <a_samp>
  2.  
  3. #define MAX_LINES 10
  4. #define MAX_LENGTH 96
  5. #define TD_OFFSET 8.5
  6. #define LETTER_SIZE_X 0.25
  7. #define LETTER_SIZE_Y 0.90
  8.  
  9. //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  10.  
  11. new DOC_Message[MAX_PLAYERS][MAX_LINES][MAX_LENGTH];
  12. new DOC_MessageColor[MAX_PLAYERS][MAX_LINES];
  13. new Text:DOC_MessageTextDraw[MAX_PLAYERS][MAX_LINES];
  14.  
  15. //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  16.  
  17. public OnPlayerConnect(playerid)
  18. {
  19.     if(!IsPlayerNPC(playerid))
  20.     {
  21.         for(new i=0;i<40;i++)
  22.             SendClientMessage(playerid,0,"\n");
  23.  
  24.         for(new i=0;i<MAX_LINES;i++)
  25.         {
  26.             DOC_Message[playerid][i][0]='_';
  27.             DOC_MessageTextDraw[playerid][i] = TextDrawCreate(19.000000,(MAX_LINES*TD_OFFSET)-(i*MAX_LINES)+11.000000,"_");
  28.             TextDrawAlignment(DOC_MessageTextDraw[playerid][i],0);
  29.             TextDrawFont(DOC_MessageTextDraw[playerid][i],1);
  30.             TextDrawLetterSize(DOC_MessageTextDraw[playerid][i],LETTER_SIZE_X,LETTER_SIZE_Y);
  31.             TextDrawSetOutline(DOC_MessageTextDraw[playerid][i],1);
  32.             TextDrawSetProportional(DOC_MessageTextDraw[playerid][i],1);
  33.             TextDrawSetShadow(DOC_MessageTextDraw[playerid][i],1);
  34.             TextDrawShowForPlayer(playerid,DOC_MessageTextDraw[playerid][i]);
  35.         }
  36.     }
  37.     return CallLocalFunction("DOC_OnPlayerConnect","i",playerid);
  38. }
  39.  
  40. #if defined _ALS_OnPlayerConnect
  41.     #undef OnPlayerConnect
  42. #else
  43.     #define _ALS_OnPlayerConnect
  44. #endif
  45. #define OnPlayerConnect DOC_OnPlayerConnect
  46.  
  47. forward DOC_OnPlayerConnect(playerid);
  48.  
  49. //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  50.  
  51. public OnPlayerDisconnect(playerid,reason)
  52. {
  53.     if(!IsPlayerNPC(playerid))
  54.     {
  55.         for(new i=0;i<MAX_LINES;i++)
  56.             TextDrawDestroy(DOC_MessageTextDraw[playerid][i]);
  57.     }
  58.     return CallLocalFunction("DOC_OnPlayerDisconnect","ii",playerid,reason);
  59. }
  60.  
  61. #if defined _ALS_OnPlayerDisconnect
  62.     #undef OnPlayerDisconnect
  63. #else
  64.     #define _ALS_OnPlayerDisconnect
  65. #endif
  66. #define OnPlayerDisconnect DOC_OnPlayerDisconnect
  67.  
  68. forward DOC_OnPlayerDisconnect(playerid,reason);
  69.  
  70. //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  71.  
  72. public OnPlayerText(playerid,text[])
  73. {
  74.     if(CallLocalFunction("DOC_OnPlayerText","is",playerid,text))
  75.         DOC_SendPlayerMessageToAll(playerid,text);
  76.        
  77.     for(new i=0;i<10;i++)
  78.         SendClientMessage(playerid,0,"\n");
  79.     return 0;
  80. }
  81.  
  82. #if defined _ALS_OnPlayerText
  83.     #undef OnPlayerText
  84. #else
  85.     #define _ALS_OnPlayerText
  86. #endif
  87. #define OnPlayerText DOC_OnPlayerText
  88.  
  89. forward DOC_OnPlayerText(playerid,text[]);
  90.  
  91. //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  92.  
  93. forward DOC_SendClientMessage(playerid,color,message[]);
  94. public DOC_SendClientMessage(playerid,color,message[])
  95. {
  96.     if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid) && message[0])
  97.     {
  98.         for(new i=0;i<10;i++)
  99.             SendClientMessage(playerid,0,"\n");
  100.            
  101.         for(new i=MAX_LINES-1;i>0;i--)
  102.         {
  103.             DOC_Message[playerid][i]=DOC_Message[playerid][i-1];
  104.             DOC_MessageColor[playerid][i]=DOC_MessageColor[playerid][i-1];
  105.            
  106.             TextDrawHideForPlayer(playerid,DOC_MessageTextDraw[playerid][i]);
  107.             TextDrawSetString(DOC_MessageTextDraw[playerid][i],DOC_Message[playerid][i]);
  108.             TextDrawColor(DOC_MessageTextDraw[playerid][i],DOC_MessageColor[playerid][i]);
  109.             TextDrawShowForPlayer(playerid,DOC_MessageTextDraw[playerid][i]);
  110.         }
  111.        
  112.         format(DOC_Message[playerid][0],MAX_LENGTH,message);
  113.         DOC_MessageColor[playerid][0]=color;
  114.        
  115.         TextDrawHideForPlayer(playerid,DOC_MessageTextDraw[playerid][0]);
  116.         TextDrawSetString(DOC_MessageTextDraw[playerid][0],DOC_Message[playerid][0]);
  117.         TextDrawColor(DOC_MessageTextDraw[playerid][0],DOC_MessageColor[playerid][0]);
  118.         TextDrawShowForPlayer(playerid,DOC_MessageTextDraw[playerid][0]);
  119.         return 1;
  120.     }
  121.     return 0;
  122. }
  123.  
  124. forward DOC_SendClientMessageToAll(color,message[]);
  125. public DOC_SendClientMessageToAll(color,message[])
  126. {
  127.     if(message[0])
  128.     {
  129.         for(new i=0;i<MAX_PLAYERS;i++)
  130.             DOC_SendClientMessage(i,color,message);
  131.         return 1;
  132.     }
  133.     return 0;
  134. }
  135.  
  136. forward DOC_SendPlayerMessageToPlayer(playerid,senderid,message[]);
  137. public DOC_SendPlayerMessageToPlayer(playerid,senderid,message[])
  138. {
  139.     if(IsPlayerConnected(playerid) && IsPlayerConnected(senderid) && message[0])
  140.     {
  141.         for(new i=0;i<strlen(message);i++)
  142.             if(message[i]=='~')
  143.                 message[i]='_';
  144.                
  145.         new string[MAX_LENGTH];
  146.         GetPlayerName(senderid,string,sizeof(string));
  147.         format(string,sizeof(string),"%s:~w~ %s",string,message);
  148.        
  149.         new r,g,b,a;
  150.         DOC_HexToRGBA(GetPlayerColor(senderid),r,g,b,a);
  151.         DOC_SendClientMessage(playerid,DOC_RGBAToHex(r,g,b,255),string);
  152.         return 1;
  153.     }
  154.     return 0;
  155. }
  156.  
  157. forward DOC_SendPlayerMessageToAll(senderid,message[]);
  158. public DOC_SendPlayerMessageToAll(senderid,message[])
  159. {
  160.     if(IsPlayerConnected(senderid) && message[0])
  161.     {
  162.         for(new i=0;i<strlen(message);i++)
  163.             if(message[i]=='~')
  164.                 message[i]='_';
  165.  
  166.         new string[MAX_LENGTH];
  167.         GetPlayerName(senderid,string,sizeof(string));
  168.         format(string,sizeof(string),"%s:~w~ %s",string,message);
  169.  
  170.         new r,g,b,a;
  171.         DOC_HexToRGBA(GetPlayerColor(senderid),r,g,b,a);
  172.         DOC_SendClientMessageToAll(DOC_RGBAToHex(r,g,b,255),string);
  173.         return 1;
  174.     }
  175.     return 0;
  176. }
  177.  
  178. //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  179.  
  180. stock DOC_RGBAToHex(red, green, blue, a) //By Betamaster
  181. {
  182.     return (red<<24 | green<<16 | blue<<8 | a);
  183. }
  184.  
  185. stock DOC_HexToRGBA(colour, &red, &green, &blue, &a) //By Betamaster
  186. {
  187.     red   = (colour >> 24) & 0xFF;
  188.     green = (colour >> 16) & 0xFF;
  189.     blue  = (colour >> 8) & 0xFF;
  190.     a = colour & 0xFF;
  191. }
  192.  
  193. //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  194.  
  195. #define SendClientMessage DOC_SendClientMessage
  196. #define SendClientMessageToAll DOC_SendClientMessageToAll
  197. #define SendPlayerMessageToPlayer DOC_SendPlayerMessageToPlayer
  198. #define SendPlayerMessageToAll DOC_SendPlayerMessageToAll
Advertisement
Add Comment
Please, Sign In to add comment