Advertisement
Guest User

HelpBox by Wallegi | Modified by Papawy

a guest
Oct 21st, 2014
162
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 12.51 KB | None | 0 0
  1. #include <a_samp>
  2.  
  3. forward SendHelpBoxMessage(playerid, color, text[]);
  4. forward SendAllHelpBoxMessage(color, text[]);
  5. forward ShowHelpBoxForPlayer(playerid);
  6. forward HideHelpBoxForPlayer(playerid);
  7. forward SetHideKeyForPlayer(playerid, key);
  8. forward SetHideKeyForAll(key);
  9.  
  10. #define pid(%0) %0[playerid]
  11. #define DEFAULT_KEY 65536
  12.  
  13. new Text:Textdraw0;
  14. new Text:Textdraw1;
  15.  
  16. new PlayerText:pTextdraw0[MAX_PLAYERS];
  17. new PlayerText:pTextdraw1[MAX_PLAYERS];
  18. new PlayerText:pTextdraw2[MAX_PLAYERS];
  19.  
  20. new pShow[MAX_PLAYERS];
  21. new pString[MAX_PLAYERS][4][100];
  22. new pColor[MAX_PLAYERS][3];
  23. new pKey[MAX_PLAYERS] = {DEFAULT_KEY, ...};
  24.  
  25. public OnGameModeInit()
  26. {
  27. print("\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
  28. print(" HelpBox FilterScript\n");
  29. print(" By\n");
  30. print(" Wallegi\n");
  31. print(" Modified by Papawy\n");
  32. print("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");
  33.  
  34. #if defined HelpBox_OnGameModeInit
  35. HelpBox_OnGameModeInit();
  36. #endif
  37.  
  38. Textdraw0 = TextDrawCreate(476.666687, 387.206665, "usebox");
  39. TextDrawLetterSize(Textdraw0, 0.000000, 3.238888);
  40. TextDrawTextSize(Textdraw0, 174.761917, 0.000000);
  41. TextDrawAlignment(Textdraw0, 1);
  42. TextDrawColor(Textdraw0, 0);
  43. TextDrawUseBox(Textdraw0, true);
  44. TextDrawBoxColor(Textdraw0, 102);
  45. TextDrawSetShadow(Textdraw0, 0);
  46. TextDrawSetOutline(Textdraw0, 0);
  47. TextDrawFont(Textdraw0, 0);
  48.  
  49. Textdraw1 = TextDrawCreate(176.761978, 378.026519, "HelpBox");
  50. TextDrawLetterSize(Textdraw1, 0.291523, 1.143466);
  51. TextDrawAlignment(Textdraw1, 1);
  52. TextDrawColor(Textdraw1, -1);
  53. TextDrawSetShadow(Textdraw1, 0);
  54. TextDrawSetOutline(Textdraw1, 1);
  55. TextDrawBackgroundColor(Textdraw1, 51);
  56. TextDrawFont(Textdraw1, 0);
  57. TextDrawSetProportional(Textdraw1, 1);
  58. return 1;
  59. }
  60. #if defined _ALS_OnGameModeInit
  61. #undef OnGameModeInit
  62. #else
  63. #define _ALS_OnGameModeInit
  64. #endif
  65. #define OnGameModeInit HelpBox_OnGameModeInit
  66. #if defined HelpBox_OnGameModeInit
  67. forward HelpBox_OnGameModeInit();
  68. #endif
  69.  
  70.  
  71. public OnGameModeExit()
  72. {
  73. #if defined HelpBox_OnGameModeExit
  74. HelpBox_OnGameModeExit();
  75. #endif
  76.  
  77. for(new i=0; i<MAX_PLAYERS; i++)
  78. {
  79. PlayerTextDrawDestroy(i, pTextdraw0[i]);
  80. PlayerTextDrawDestroy(i, pTextdraw1[i]);
  81. PlayerTextDrawDestroy(i, pTextdraw2[i]);
  82. }
  83. TextDrawDestroy(Textdraw0);
  84. TextDrawDestroy(Textdraw1);
  85. return 1;
  86. }
  87. #if defined _ALS_OnGameModeExit
  88. #undef OnGameModeExit
  89. #else
  90. #define _ALS_OnGameModeExit
  91. #endif
  92. #define OnGameModeExit HelpBox_OnGameModeExit
  93. #if defined HelpBox_OnGameModeExit
  94. forward HelpBox_OnGameModeExit();
  95. #endif
  96.  
  97.  
  98. public OnPlayerConnect(playerid)
  99. {
  100. #if defined HelpBox_OnPlayerConnect
  101. HelpBox_OnPlayerConnect(playerid);
  102. #endif
  103.  
  104. pTextdraw0[playerid] = CreatePlayerTextDraw(playerid, 178.285720, 386.133239, " ");
  105. PlayerTextDrawLetterSize(playerid, pTextdraw0[playerid], 0.151333, 1.203199);
  106. PlayerTextDrawAlignment(playerid, pTextdraw0[playerid], 1);
  107. PlayerTextDrawColor(playerid, pTextdraw0[playerid], 16711935);
  108. PlayerTextDrawSetShadow(playerid, pTextdraw0[playerid], 0);
  109. PlayerTextDrawSetOutline(playerid, pTextdraw0[playerid], 0);
  110. PlayerTextDrawBackgroundColor(playerid, pTextdraw0[playerid], 51);
  111. PlayerTextDrawFont(playerid, pTextdraw0[playerid], 1);
  112. PlayerTextDrawSetProportional(playerid, pTextdraw0[playerid], 1);
  113.  
  114. pTextdraw1[playerid] = CreatePlayerTextDraw(playerid, 178.285720, 395.666564, " ");
  115. PlayerTextDrawLetterSize(playerid, pTextdraw1[playerid], 0.151333, 1.203199);
  116. PlayerTextDrawAlignment(playerid, pTextdraw1[playerid], 1);
  117. PlayerTextDrawColor(playerid, pTextdraw1[playerid], 16711935);
  118. PlayerTextDrawSetShadow(playerid, pTextdraw1[playerid], 0);
  119. PlayerTextDrawSetOutline(playerid, pTextdraw1[playerid], 0);
  120. PlayerTextDrawBackgroundColor(playerid, pTextdraw1[playerid], 51);
  121. PlayerTextDrawFont(playerid, pTextdraw1[playerid], 1);
  122. PlayerTextDrawSetProportional(playerid, pTextdraw1[playerid], 1);
  123.  
  124. pTextdraw2[playerid] = CreatePlayerTextDraw(playerid, 178.285720, 405.199890, " ");
  125. PlayerTextDrawLetterSize(playerid, pTextdraw2[playerid], 0.151333, 1.203199);
  126. PlayerTextDrawAlignment(playerid, pTextdraw2[playerid], 1);
  127. PlayerTextDrawColor(playerid, pTextdraw2[playerid], 16711935);
  128. PlayerTextDrawSetShadow(playerid, pTextdraw2[playerid], 0);
  129. PlayerTextDrawSetOutline(playerid, pTextdraw2[playerid], 0);
  130. PlayerTextDrawBackgroundColor(playerid, pTextdraw2[playerid], 51);
  131. PlayerTextDrawFont(playerid, pTextdraw2[playerid], 1);
  132. PlayerTextDrawSetProportional(playerid, pTextdraw2[playerid], 1);
  133.  
  134. return 1;
  135.  
  136. }
  137. #if defined _ALS_OnPlayerConnect
  138. #undef OnPlayerConnect
  139. #else
  140. #define _ALS_OnPlayerConnect
  141. #endif
  142. #define OnPlayerConnect HelpBox_OnPlayerConnect
  143. #if defined HelpBox_OnPlayerConnect
  144. forward HelpBox_OnPlayerConnect(playerid);
  145. #endif
  146.  
  147.  
  148.  
  149. public OnPlayerDisconnect(playerid)
  150. {
  151. #if defined HelpBox_OnPlayerDisconnect
  152. HelpBox_OnPlayerDisconnect(playerid);
  153. #endif
  154.  
  155. PlayerTextDrawDestroy(playerid, pTextdraw0[playerid]);
  156. PlayerTextDrawDestroy(playerid, pTextdraw1[playerid]);
  157. PlayerTextDrawDestroy(playerid, pTextdraw2[playerid]);
  158. pShow[playerid] = 0;
  159. pString[playerid][0] = " ";
  160. pString[playerid][1] = " ";
  161. pString[playerid][2] = " ";
  162. pKey[playerid] = DEFAULT_KEY;
  163. return 1;
  164. }
  165. #if defined _ALS_OnPlayerDisconnect
  166. #undef OnPlayerDisconnect
  167. #else
  168. #define _ALS_OnPlayerDisconnect
  169. #endif
  170. #define OnPlayerDisconnect HelpBox_OnPlayerDisconnect
  171. #if defined HelpBox_OnPlayerDisconnect
  172. forward HelpBox_OnPlayerDisconnect(playerid);
  173. #endif
  174.  
  175.  
  176.  
  177.  
  178. public OnPlayerSpawn(playerid)
  179. {
  180. #if defined HelpBox_OnPlayerSpawn
  181. HelpBox_OnPlayerSpawn(playerid);
  182. #endif
  183.  
  184. TextDrawShowForPlayer(playerid, Textdraw0);
  185. TextDrawShowForPlayer(playerid, Textdraw1);
  186. PlayerTextDrawShow(playerid, pTextdraw0[playerid]);
  187. PlayerTextDrawShow(playerid, pTextdraw1[playerid]);
  188. PlayerTextDrawShow(playerid, pTextdraw2[playerid]);
  189. pShow[playerid] = 1;
  190. return 1;
  191. }
  192. #if defined _ALS_OnPlayerSpawn
  193. #undef OnPlayerSpawn
  194. #else
  195. #define _ALS_OnPlayerSpawn
  196. #endif
  197. #define OnPlayerSpawn HelpBox_OnPlayerSpawn
  198. #if defined HelpBox_OnPlayerSpawn
  199. forward HelpBox_OnPlayerSpawn(playerid);
  200. #endif
  201.  
  202. stock fix_Caracter(string[])
  203. {
  204. new coriginal[22] = {192, 199, 200, 201, 202, 203, 207, 217, 219, 220, 224, 226, 231, 232, 233, 234, 235, 238, 239, 249, 251, 252};
  205. new cconvertis[22] = {128, 133, 134, 135, 136, 137, 141, 146, 148, 149, 151, 153, 156, 157, 158, 159, 160, 163, 164, 169, 171, 172};
  206. for (new i; i < strlen(string); i++)
  207. {
  208. for(new j;j < 22;j++)
  209. {
  210. if(string[i] == coriginal[j])
  211. {
  212. string[i] = cconvertis[j];
  213. break;
  214. }
  215. }
  216. }
  217. }
  218.  
  219. public SendAllHelpBoxMessage(color, text[])
  220. {
  221. for(new i=0; i<MAX_PLAYERS; i++)
  222. {
  223. if(IsPlayerConnected(i)) SendHelpBoxMessage(i, color, text);
  224. }
  225. return 1;
  226. }
  227.  
  228. public ShowHelpBoxForPlayer(playerid)
  229. {
  230. pShow[playerid] = 1;
  231. TextDrawShowForPlayer(playerid, Textdraw0);
  232. TextDrawShowForPlayer(playerid, Textdraw1);
  233. PlayerTextDrawShow(playerid, pTextdraw0[playerid]);
  234. PlayerTextDrawShow(playerid, pTextdraw1[playerid]);
  235. PlayerTextDrawShow(playerid, pTextdraw2[playerid]);
  236. return 1;
  237. }
  238.  
  239. public HideHelpBoxForPlayer(playerid)
  240. {
  241. pShow[playerid] = 0;
  242. TextDrawHideForPlayer(playerid, Textdraw0);
  243. TextDrawHideForPlayer(playerid, Textdraw1);
  244. PlayerTextDrawHide(playerid, pTextdraw0[playerid]);
  245. PlayerTextDrawHide(playerid, pTextdraw1[playerid]);
  246. PlayerTextDrawHide(playerid, pTextdraw2[playerid]);
  247. return 1;
  248. }
  249.  
  250. public SetHideKeyForPlayer(playerid, key)
  251. {
  252. pKey[playerid] = key;
  253. return 1;
  254. }
  255.  
  256. public SetHideKeyForAll(key)
  257. {
  258. for(new i=0; i<MAX_PLAYERS; i++)
  259. {
  260. if(IsPlayerConnected(i)) pKey[i] = key;
  261. }
  262. return 1;
  263. }
  264.  
  265. public SendHelpBoxMessage(playerid, color, text[])
  266. {
  267. if(strlen(text) > 100)
  268. {
  269. print("HelpBox: Vous avez tenté d'envoyer un message trop long.");
  270. printf("Helpbox: %s", text);
  271. return 1;
  272. }
  273. new string[105];
  274. format(string, 105, "+ %s", text);
  275. fix_Caracter(string);
  276. if(strlen(pString[playerid][0]) <= 2)
  277. {
  278. format(pString[playerid][0], 100, "%s", string);
  279. pid(pColor)[0] = color;
  280. }
  281. else if(strlen(pString[playerid][0]) >= 2 && strlen(pString[playerid][1]) <= 2)
  282. {
  283. format(pString[playerid][1], 100, "%s", string);
  284. pid(pColor)[1] = color;
  285. }
  286. else if(strlen(pString[playerid][0]) >= 2 && strlen(pString[playerid][1]) >= 2 && strlen(pString[playerid][2]) <= 2)
  287. {
  288. format(pString[playerid][2], 100, "%s", string);
  289. pid(pColor)[2] = color;
  290. }
  291. else if(strlen(pString[playerid][0]) >= 2 && strlen(pString[playerid][1]) >= 2 && strlen(pString[playerid][2]) >= 2)
  292. {
  293. format(pString[playerid][0], 100, "%s", pString[playerid][1]);
  294. pid(pColor)[0] = pid(pColor)[1];
  295. format(pString[playerid][1], 100, "%s", pString[playerid][2]);
  296. pid(pColor)[1] = pid(pColor)[2];
  297. format(pString[playerid][2], 100, "%s", string);
  298. pid(pColor)[2] = color;
  299. }
  300. PlayerTextDrawDestroy(playerid, pTextdraw0[playerid]);
  301. PlayerTextDrawDestroy(playerid, pTextdraw1[playerid]);
  302. PlayerTextDrawDestroy(playerid, pTextdraw2[playerid]);
  303. pTextdraw0[playerid] = CreatePlayerTextDraw(playerid, 178.285720, 386.133239, pString[playerid][0]);
  304. PlayerTextDrawLetterSize(playerid, pTextdraw0[playerid], 0.151333, 1.203199);
  305. PlayerTextDrawAlignment(playerid, pTextdraw0[playerid], 1);
  306. PlayerTextDrawColor(playerid, pTextdraw0[playerid], pid(pColor)[0]);
  307. PlayerTextDrawSetShadow(playerid, pTextdraw0[playerid], 0);
  308. PlayerTextDrawSetOutline(playerid, pTextdraw0[playerid], 0);
  309. PlayerTextDrawBackgroundColor(playerid, pTextdraw0[playerid], 51);
  310. PlayerTextDrawFont(playerid, pTextdraw0[playerid], 1);
  311. PlayerTextDrawSetProportional(playerid, pTextdraw0[playerid], 1);
  312.  
  313.  
  314. pTextdraw1[playerid] = CreatePlayerTextDraw(playerid, 178.285720, 395.666564, pString[playerid][1]);
  315. PlayerTextDrawLetterSize(playerid, pTextdraw1[playerid], 0.151333, 1.203199);
  316. PlayerTextDrawAlignment(playerid, pTextdraw1[playerid], 1);
  317. PlayerTextDrawColor(playerid, pTextdraw1[playerid], pid(pColor)[1]);
  318. PlayerTextDrawSetShadow(playerid, pTextdraw1[playerid], 0);
  319. PlayerTextDrawSetOutline(playerid, pTextdraw1[playerid], 0);
  320. PlayerTextDrawBackgroundColor(playerid, pTextdraw1[playerid], 51);
  321. PlayerTextDrawFont(playerid, pTextdraw1[playerid], 1);
  322. PlayerTextDrawSetProportional(playerid, pTextdraw1[playerid], 1);
  323.  
  324. pTextdraw2[playerid] = CreatePlayerTextDraw(playerid, 178.285720, 405.199890, pString[playerid][2]);
  325. PlayerTextDrawLetterSize(playerid, pTextdraw2[playerid], 0.151333, 1.203199);
  326. PlayerTextDrawAlignment(playerid, pTextdraw2[playerid], 1);
  327. PlayerTextDrawColor(playerid, pTextdraw2[playerid], pid(pColor)[2]);
  328. PlayerTextDrawSetShadow(playerid, pTextdraw2[playerid], 0);
  329. PlayerTextDrawSetOutline(playerid, pTextdraw2[playerid], 0);
  330. PlayerTextDrawBackgroundColor(playerid, pTextdraw2[playerid], 51);
  331. PlayerTextDrawFont(playerid, pTextdraw2[playerid], 1);
  332. PlayerTextDrawSetProportional(playerid, pTextdraw2[playerid], 1);
  333.  
  334.  
  335.  
  336. if(pShow[playerid] == 1)
  337. {
  338. TextDrawShowForPlayer(playerid, Textdraw0);
  339. TextDrawShowForPlayer(playerid, Textdraw1);
  340. PlayerTextDrawShow(playerid, pTextdraw0[playerid]);
  341. PlayerTextDrawShow(playerid, pTextdraw1[playerid]);
  342. PlayerTextDrawShow(playerid, pTextdraw2[playerid]);
  343. }
  344. return 1;
  345. }
  346.  
  347.  
  348. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  349. {
  350. #if defined HelpBox_OnPlayerKeyStateChange
  351. HelpBox_OnPlayerKeyStateChange(playerid, newkeys, oldkeys);
  352. #endif
  353.  
  354. if(newkeys == pKey[playerid])
  355. {
  356. if(pShow[playerid] == 1)
  357. {
  358. pShow[playerid] = 0;
  359. TextDrawHideForPlayer(playerid, Textdraw0);
  360. TextDrawHideForPlayer(playerid, Textdraw1);
  361. PlayerTextDrawHide(playerid, pTextdraw0[playerid]);
  362. PlayerTextDrawHide(playerid, pTextdraw1[playerid]);
  363. PlayerTextDrawHide(playerid, pTextdraw2[playerid]);
  364. return 1;
  365. }
  366. if(pShow[playerid] == 0)
  367. {
  368. pShow[playerid] = 1;
  369. TextDrawShowForPlayer(playerid, Textdraw0);
  370. TextDrawShowForPlayer(playerid, Textdraw1);
  371. PlayerTextDrawShow(playerid, pTextdraw0[playerid]);
  372. PlayerTextDrawShow(playerid, pTextdraw1[playerid]);
  373. PlayerTextDrawShow(playerid, pTextdraw2[playerid]);
  374. return 1;
  375. }
  376. }
  377. return 1;
  378. }
  379. #if defined _ALS_OnPlayerKeyStateChange
  380. #undef OnPlayerKeyStateChange
  381. #else
  382. #define _ALS_OnPlayerKeyStateChange
  383. #endif
  384. #define OnPlayerKeyStateChange HelpBox_OnPlayerKeyStateChange
  385. #if defined HelpBox_OnPlayerKeyStateChange
  386. forward HelpBox_OnPlayerKeyStateChange(playerid, newkeys, oldkeys);
  387. #endif
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement