Advertisement
Guest User

Chat System [sa-mp]

a guest
May 21st, 2010
446
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 5.45 KB | None | 0 0
  1. #include <a_samp>
  2. #define CHAT_STYLE 1000
  3. #define CHAT_COLOR 1001
  4.  
  5. new Text:StickOne;
  6. new Text:ChatBackground[MAX_PLAYERS];
  7. new Text:StickTwo;
  8.  
  9. enum params{
  10. Color,
  11. bool:SticksShow,
  12. bool:BGShow,
  13. R,
  14. G,
  15. B,
  16. A,
  17. Step,
  18. };
  19.  
  20. new ChatSettings[MAX_PLAYERS][params];
  21.  
  22. public OnPlayerConnect(playerid) {
  23. ChatSettings[playerid][Color]=RGBToHex(0,0,0,125);
  24. CreateChat(playerid);
  25. return 1;}
  26.  
  27. public OnFilterScriptExit(){
  28. for(new i=0; i < MAX_PLAYERS;i++)
  29. if(IsPlayerConnected(i)&&!IsPlayerNPC(i))
  30. DestroyChat(i);
  31. TextDrawDestroy(StickOne);
  32. TextDrawDestroy(StickTwo);
  33. return 1;}
  34.  
  35. public OnFilterScriptInit(){
  36. StickOne = TextDrawCreate(7.000000, 0.000000, "-");
  37. TextDrawBackgroundColor(StickOne, 255);
  38. TextDrawFont(StickOne, 1);
  39. TextDrawLetterSize(StickOne, 27.170000, 0.299998);
  40. TextDrawColor(StickOne, -1);
  41. TextDrawSetOutline(StickOne, 0);
  42. TextDrawSetProportional(StickOne, 1);
  43. TextDrawSetShadow(StickOne, 1);
  44. StickTwo = TextDrawCreate(7.000000, 80.000000, "-");
  45. TextDrawBackgroundColor(StickTwo, 255);
  46. TextDrawFont(StickTwo, 1);
  47. TextDrawLetterSize(StickTwo, 27.170068, 0.299998);
  48. TextDrawColor(StickTwo, -1);
  49. TextDrawSetOutline(StickTwo, 0);
  50. TextDrawSetProportional(StickTwo, 1);
  51. TextDrawSetShadow(StickTwo, 1);
  52. for(new i=0; i < MAX_PLAYERS;i++)
  53. if(IsPlayerConnected(i)&&!IsPlayerNPC(i)){
  54. ChatSettings[i][Color]=RGBToHex(0,0,0,125);
  55. CreateChat(i);}
  56. return 1;}
  57.  
  58. stock RGBToHex(red, green, blue, alpha)
  59. return (red * 16777216) + (green * 65536) + (blue * 256) + alpha;
  60.  
  61. stock CreateChat(playerid){
  62. ChatSettings[playerid][Step]=0;
  63. ChatSettings[playerid][SticksShow]=true;
  64. ChatSettings[playerid][BGShow]=true;
  65. ChatBackground[playerid] = TextDrawCreate(385.000000, 6.000000, "_");
  66. TextDrawBackgroundColor(ChatBackground[playerid], 255);
  67. TextDrawFont(ChatBackground[playerid], 1);
  68. TextDrawLetterSize(ChatBackground[playerid], 0.559999, 7.999999);
  69. TextDrawColor(ChatBackground[playerid], -16776961);
  70. TextDrawSetOutline(ChatBackground[playerid], 0);
  71. TextDrawSetProportional(ChatBackground[playerid], 1);
  72. TextDrawSetShadow(ChatBackground[playerid], 1);
  73. TextDrawUseBox(ChatBackground[playerid], 1);
  74. TextDrawBoxColor(ChatBackground[playerid], ChatSettings[playerid][Color]);
  75. TextDrawTextSize(ChatBackground[playerid], 18.000000, -2.000000);
  76. TextDrawShowForPlayer(playerid, StickOne);
  77. TextDrawShowForPlayer(playerid, StickTwo);
  78. TextDrawShowForPlayer(playerid, ChatBackground[playerid]);
  79. return 1;}
  80.  
  81. stock DestroyChat(playerid)
  82. return TextDrawDestroy(ChatBackground[playerid]);
  83.  
  84. public OnPlayerCommandText(playerid, cmdtext[]){
  85. if(!strcmp(cmdtext, "/chat")){
  86. ShowPlayerDialog(playerid, CHAT_STYLE, DIALOG_STYLE_LIST, "Chat Settings", "Sticks\nBackground\nColor", "OK", "Cancel");
  87. return 1;}
  88. return 0;}
  89.  
  90. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]){
  91. if(dialogid==CHAT_COLOR&&response){
  92. ChatSettings[playerid][Step]++;
  93. switch(ChatSettings[playerid][Step]){
  94. case 1:{
  95.      if(strval(inputtext)>=0&&strval(inputtext)<=255) ChatSettings[playerid][R]=strval(inputtext);
  96.      else if(strval(inputtext)>0) ChatSettings[playerid][R]=255;
  97.      else if(strval(inputtext)<0) ChatSettings[playerid][R]=0;
  98.      ShowPlayerDialog(playerid, CHAT_COLOR, DIALOG_STYLE_INPUT, "Öâåò", "Ââåäèòå êîëè÷åñòâî çåë¸íîãî öâåòà [0..255]", "Äàëüøå", "Îòìåíà");}
  99. case 2:{
  100.      if(strval(inputtext)>=0&&strval(inputtext)<=255) ChatSettings[playerid][G]=strval(inputtext);
  101.      else if(strval(inputtext)>0) ChatSettings[playerid][G]=255;
  102.      else if(strval(inputtext)<0) ChatSettings[playerid][G]=0;
  103.      ShowPlayerDialog(playerid, CHAT_COLOR, DIALOG_STYLE_INPUT, "Öâåò", "Ââåäèòå êîëè÷åñòâî ñèíåãî öâåòà [0..255]", "Äàëüøå", "Îòìåíà");}
  104. case 3:{
  105.      if(strval(inputtext)>=0&&strval(inputtext)<=255) ChatSettings[playerid][B]=strval(inputtext);
  106.      else if(strval(inputtext)>0) ChatSettings[playerid][B]=255;
  107.      else if(strval(inputtext)<0) ChatSettings[playerid][B]=0;
  108.      ShowPlayerDialog(playerid, CHAT_COLOR, DIALOG_STYLE_INPUT, "Öâåò", "Ââåäèòå êîëè÷åñòâî àëüôà-êàíàëà [0..255]", "Äàëüøå", "Îòìåíà");}
  109. case 4:{
  110.      ChatSettings[playerid][Step]=0;
  111.      if(strval(inputtext)>=0&&strval(inputtext)<=255) ChatSettings[playerid][A]=strval(inputtext);
  112.      else if(strval(inputtext)>0) ChatSettings[playerid][A]=255;
  113.      else if(strval(inputtext)<0) ChatSettings[playerid][A]=0;
  114.      ChatSettings[playerid][Color]=RGBToHex(ChatSettings[playerid][R],ChatSettings[playerid][G],ChatSettings[playerid][B],ChatSettings[playerid][A]);
  115.      DestroyChat(playerid);
  116.      CreateChat(playerid);
  117. }}}
  118.  
  119. if(dialogid==CHAT_STYLE&&response)
  120. switch(listitem){
  121. case 0:
  122. if(ChatSettings[playerid][SticksShow]){
  123. TextDrawHideForPlayer(playerid, StickOne);
  124. TextDrawHideForPlayer(playerid, StickTwo);
  125. ChatSettings[playerid][SticksShow]=false;
  126. }else{
  127. TextDrawShowForPlayer(playerid, StickOne);
  128. TextDrawShowForPlayer(playerid, StickTwo);
  129. ChatSettings[playerid][SticksShow]=true;}
  130. case 1:
  131. if(ChatSettings[playerid][BGShow]){
  132. TextDrawHideForPlayer(playerid, ChatBackground[playerid]);
  133. ChatSettings[playerid][BGShow]=false;
  134. }else{
  135. TextDrawShowForPlayer(playerid, ChatBackground[playerid]);
  136. ChatSettings[playerid][BGShow]=true;}
  137. case 2:{
  138. ChatSettings[playerid][Step]=0;
  139. ShowPlayerDialog(playerid, CHAT_COLOR, DIALOG_STYLE_INPUT, "Öâåò", "Ââåäèòå êîëè÷åñòâî êðàñíîãî öâåòà [0..255]", "Äàëüøå", "Îòìåíà");}}
  140. return 1;}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement