Advertisement
Guest User

TDMenu (editted)

a guest
May 6th, 2017
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 12.79 KB | None | 0 0
  1. // Amirab's TextDraw Menu
  2. // Version 1.0
  3. // Made By Amirab
  4. // Skype : amirab_best
  5. // Yahoo ID : amirahmady1378
  6. // Please Leave My Credits
  7.  
  8.  
  9. #include <a_samp>
  10.  
  11.  
  12. #define MAX_TEXTDRAW_ROWS 25
  13.  
  14. new Text:M_TITLE[MAX_PLAYERS];
  15. new Text:M_STATS[MAX_PLAYERS];
  16. new Text:M_STATSCont[MAX_PLAYERS];
  17. new Text:M_END[MAX_PLAYERS];
  18. new Text:M_COLUMN1[MAX_PLAYERS][MAX_TEXTDRAW_ROWS];
  19. new Text:M_COLUMN2[MAX_PLAYERS][MAX_TEXTDRAW_ROWS];
  20. new M_OPTIONS[MAX_PLAYERS];
  21. new M_CURRENTOPTIONSLOT[MAX_PLAYERS];
  22.  
  23.  
  24. new M_ITEMSELLERID[MAX_PLAYERS];
  25.  
  26.  
  27.  
  28.  
  29.  
  30. enum tdpInfo
  31. {
  32. pTextdraw,
  33. }
  34.  
  35. new tdPlayerInfo[MAX_PLAYERS][tdpInfo];
  36.  
  37.  
  38. public OnGameModeInit()
  39. {
  40.  
  41. for(new playerid = 0; playerid < MAX_PLAYERS; playerid++)
  42. {
  43.  
  44.  
  45. M_TITLE[playerid] = TextDrawCreate(116.000000, 120.000000, " ");
  46. TextDrawAlignment(M_TITLE[playerid], 2);
  47. TextDrawBackgroundColor(M_TITLE[playerid], 0x00000077);
  48. TextDrawFont(M_TITLE[playerid], 3);
  49. TextDrawLetterSize(M_TITLE[playerid], 0.509999, 1.400000);
  50. TextDrawColor(M_TITLE[playerid], -1);
  51. TextDrawSetOutline(M_TITLE[playerid], 0);
  52. TextDrawSetProportional(M_TITLE[playerid], 1);
  53. TextDrawSetShadow(M_TITLE[playerid], 1);
  54. TextDrawUseBox(M_TITLE[playerid], 1);
  55. TextDrawBoxColor(M_TITLE[playerid], 0x00000077);
  56. TextDrawTextSize(M_TITLE[playerid], 23.000000, 206.000000);
  57.  
  58. M_STATS[playerid] = TextDrawCreate(115.000000, 162.000000, " ");
  59. TextDrawAlignment(M_STATS[playerid], 2);
  60. TextDrawBackgroundColor(M_STATS[playerid], 0x00000077);
  61. TextDrawFont(M_STATS[playerid], 1);
  62. TextDrawLetterSize(M_STATS[playerid], 0.240000, 1.200000);
  63. TextDrawColor(M_STATS[playerid], -1);
  64. TextDrawSetOutline(M_STATS[playerid], 0);
  65. TextDrawSetProportional(M_STATS[playerid], 1);
  66. TextDrawSetShadow(M_STATS[playerid], 1);
  67.  
  68. M_STATSCont[playerid] = TextDrawCreate(115.000000, 162.000000, " ");
  69. TextDrawAlignment(M_STATSCont[playerid], 2);
  70. TextDrawBackgroundColor(M_STATSCont[playerid], 0x00000077);
  71. TextDrawFont(M_STATSCont[playerid], 1);
  72. TextDrawLetterSize(M_STATSCont[playerid], 0.240000, 1.200000);
  73. TextDrawColor(M_STATSCont[playerid], -1);
  74. TextDrawSetOutline(M_STATSCont[playerid], 0);
  75. TextDrawSetProportional(M_STATSCont[playerid], 1);
  76. TextDrawSetShadow(M_STATSCont[playerid], 1);
  77.  
  78. M_END[playerid] = TextDrawCreate(115.000000, 202.000000, " ");
  79. TextDrawAlignment(M_END[playerid], 2);
  80. TextDrawBackgroundColor(M_END[playerid], 0x00000077);
  81. TextDrawFont(M_END[playerid], 1);
  82. TextDrawLetterSize(M_END[playerid], 0.240000, 1.200000);
  83. TextDrawColor(M_END[playerid], -1);
  84. TextDrawSetOutline(M_END[playerid], 0);
  85. TextDrawSetProportional(M_END[playerid], 1);
  86. TextDrawSetShadow(M_END[playerid], 1);
  87.  
  88.  
  89.  
  90. new Float:ChatBoxY = 162.000000;
  91.  
  92. for(new r = 0; r < MAX_TEXTDRAW_ROWS; r++)
  93. {
  94.  
  95. M_COLUMN1[playerid][r] = TextDrawCreate(22.000000, ChatBoxY, "~y~1 ~w~- ~g~Item 1");
  96. TextDrawBackgroundColor(M_COLUMN1[playerid][r], 0x00000077);
  97. TextDrawFont(M_COLUMN1[playerid][r], 1);
  98. TextDrawLetterSize(M_COLUMN1[playerid][r], 0.240000, 1.200000);
  99. TextDrawColor(M_COLUMN1[playerid][r], -1);
  100. TextDrawSetOutline(M_COLUMN1[playerid][r], 0);
  101. TextDrawSetProportional(M_COLUMN1[playerid][r], 1);
  102. TextDrawSetShadow(M_COLUMN1[playerid][r], 1);
  103.  
  104. M_COLUMN2[playerid][r] = TextDrawCreate(162.000000, ChatBoxY, "~b~$100000000");
  105. TextDrawBackgroundColor(M_COLUMN2[playerid][r], 0x00000077);
  106. TextDrawFont(M_COLUMN2[playerid][r], 1);
  107. TextDrawLetterSize(M_COLUMN2[playerid][r], 0.240000, 1.200000);
  108. TextDrawColor(M_COLUMN2[playerid][r], -1);
  109. TextDrawSetOutline(M_COLUMN2[playerid][r], 0);
  110. TextDrawSetProportional(M_COLUMN2[playerid][r], 1);
  111. TextDrawSetShadow(M_COLUMN2[playerid][r], 1);
  112.  
  113. ChatBoxY += 10.000000;
  114.  
  115. }
  116.  
  117. }
  118.  
  119. return CallLocalFunction("m_OnGameModeInit" ,"");
  120. }
  121.  
  122. #if defined _ALS_OnGameModeInit
  123. #undef OnGameModeInit
  124. #else
  125. #define _ALS_OnGameModeInit
  126. #endif
  127. #define OnGameModeInit m_OnGameModeInit
  128. forward m_OnGameModeInit(playerid);
  129.  
  130.  
  131.  
  132.  
  133.  
  134. public OnPlayerText(playerid, text[])
  135. {
  136.  
  137. if(tdPlayerInfo[playerid][pTextdraw] > -1)
  138. {
  139. new option = strval(text);
  140. CallLocalFunction("OnPlayerEnterTDMenu" , "iii" ,playerid,tdPlayerInfo[playerid][pTextdraw] , option);
  141. return 0;
  142. }
  143.  
  144. return CallLocalFunction("M_OnPlayerText", "is", playerid, text);
  145. }
  146.  
  147. #if defined _ALS_OnPlayerText
  148. #undef OnPlayerText
  149. #else
  150. #define _ALS_OnPlayerText
  151. #endif
  152. #define OnPlayerText M_OnPlayerText
  153. forward M_OnPlayerText(playerid, text[]);
  154.  
  155.  
  156.  
  157. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  158. {
  159. if(newkeys & KEY_FIRE)
  160. {
  161. if(tdPlayerInfo[playerid][pTextdraw] > -1)
  162. {
  163. HideTDMenu(playerid);
  164. return 0;
  165. }
  166. }
  167.  
  168. return CallLocalFunction("m_OnPlayerKeyStateChange", "iii", playerid, newkeys , oldkeys);
  169. }
  170.  
  171. #if defined _ALS_OnPlayerKeyStateChange
  172. #undef OnPlayerKeyStateChange
  173. #else
  174. #define _ALS_OnPlayerKeyStateChange
  175. #endif
  176. #define OnPlayerKeyStateChange m_OnPlayerKeyStateChange
  177. forward m_OnPlayerKeyStateChange(playerid, newkeys, oldkeys);
  178.  
  179.  
  180.  
  181.  
  182. stock ShowTDMenu(playerid, menuid, title[], lines, options)
  183. {
  184. new string[256];
  185.  
  186. switch (lines)
  187. {
  188. case 1: format(string, sizeof(string), " ~n~%s~n~ ~n~ ~n~ ~n~ ~n~ ", title);
  189. case 2: format(string, sizeof(string), " ~n~%s~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ", title);
  190. case 3: format(string, sizeof(string), " ~n~%s~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ", title);
  191. case 4: format(string, sizeof(string), " ~n~%s~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ", title);
  192. case 5: format(string, sizeof(string), " ~n~%s~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ", title);
  193. case 6: format(string, sizeof(string), " ~n~%s~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ", title);
  194. case 7: format(string, sizeof(string), " ~n~%s~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ", title);
  195. case 8: format(string, sizeof(string), " ~n~%s~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ", title);
  196. case 9: format(string, sizeof(string), " ~n~%s~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ", title);
  197. case 10: format(string, sizeof(string), " ~n~%s~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ", title);
  198. case 11: format(string, sizeof(string), " ~n~%s~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ", title);
  199. case 12: format(string, sizeof(string), " ~n~%s~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ", title);
  200. case 13: format(string, sizeof(string), " ~n~%s~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ", title);
  201. case 14: format(string, sizeof(string), " ~n~%s~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ", title);
  202. case 15: format(string, sizeof(string), " ~n~%s~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ", title);
  203. case 16: format(string, sizeof(string), " ~n~%s~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ", title);
  204. case 17: format(string, sizeof(string), " ~n~%s~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ", title);
  205. case 18: format(string, sizeof(string), " ~n~%s~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ", title);
  206. case 19: format(string, sizeof(string), " ~n~%s~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ", title);
  207. case 20: format(string, sizeof(string), " ~n~%s~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ", title);
  208. case 21: format(string, sizeof(string), " ~n~%s~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ", title);
  209. case 22: format(string, sizeof(string), " ~n~%s~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ", title);
  210. case 23: format(string, sizeof(string), " ~n~%s~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ", title);
  211. case 24: format(string, sizeof(string), " ~n~%s~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ", title);
  212. }
  213.  
  214. TextDrawSetString(M_TITLE[playerid], string);
  215. TextDrawShowForPlayer(playerid, M_TITLE[playerid]);
  216.  
  217.  
  218. if (options > 0)
  219. {
  220. format(string, sizeof(string), "(~y~T~w~) Or (~y~F6~w~) To Enter Number~n~Press ~w~(~y~LMB~w~) ~w~To Close");
  221. }else{
  222. format(string, sizeof(string), "Press ~w~(~y~LMB~w~) ~w~To Close");
  223. }
  224.  
  225. switch (lines)
  226. {
  227. case 1: format(string, sizeof(string), "%s", string);
  228. case 2: format(string, sizeof(string), "%s", string);
  229. case 3: format(string, sizeof(string), " ~n~%s", string);
  230. case 4: format(string, sizeof(string), " ~n~ ~n~%s", string);
  231. case 5: format(string, sizeof(string), " ~n~ ~n~ ~n~%s", string);
  232. case 6: format(string, sizeof(string), " ~n~ ~n~ ~n~ ~n~%s", string);
  233. case 7: format(string, sizeof(string), " ~n~ ~n~ ~n~ ~n~ ~n~%s", string);
  234. case 8: format(string, sizeof(string), " ~n~ ~n~ ~n~ ~n~ ~n~ ~n~%s", string);
  235. case 9: format(string, sizeof(string), " ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~%s", string);
  236. case 10: format(string, sizeof(string), " ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~%s", string);
  237. case 11: format(string, sizeof(string), " ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~%s", string);
  238. case 12: format(string, sizeof(string), " ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~%s", string);
  239. case 13: format(string, sizeof(string), " ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~%s", string);
  240. case 14: format(string, sizeof(string), " ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~%s", string);
  241. case 15: format(string, sizeof(string), " ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~%s", string);
  242. case 16: format(string, sizeof(string), " ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~%s", string);
  243. case 17: format(string, sizeof(string), " ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~%s", string);
  244. case 18: format(string, sizeof(string), " ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~%s", string);
  245. case 19: format(string, sizeof(string), " ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~%s", string);
  246. case 20: format(string, sizeof(string), " ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~%s", string);
  247. case 21: format(string, sizeof(string), " ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~%s", string);
  248. case 22: format(string, sizeof(string), " ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~%s", string);
  249. case 23: format(string, sizeof(string), " ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~%s", string);
  250. case 24: format(string, sizeof(string), " ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~%s", string);
  251. }
  252.  
  253. TextDrawSetString(M_END[playerid], string);
  254. TextDrawShowForPlayer(playerid, M_END[playerid]);
  255.  
  256. M_OPTIONS[playerid] = options;
  257. tdPlayerInfo[playerid][pTextdraw] = menuid;
  258.  
  259. }
  260. //==============================================================================
  261. stock ShowTDMenuItems(playerid, row, stats[], column1[], column2[])
  262. {
  263.  
  264. if (row == 0)
  265. {
  266. TextDrawSetString(M_STATS[playerid], stats);
  267. TextDrawSetString(M_STATSCont[playerid], " ");
  268.  
  269. TextDrawShowForPlayer(playerid, M_STATS[playerid]);
  270. TextDrawShowForPlayer(playerid, M_STATSCont[playerid]);
  271. }else{
  272.  
  273. TextDrawSetString(M_COLUMN1[playerid][row], column1);
  274. TextDrawSetString(M_COLUMN2[playerid][row], column2);
  275. TextDrawShowForPlayer(playerid, M_COLUMN1[playerid][row]);
  276. TextDrawShowForPlayer(playerid, M_COLUMN2[playerid][row]);
  277.  
  278. }
  279.  
  280. }
  281. //==============================================================================
  282. stock HideTDMenu(playerid)
  283. {
  284.  
  285. TextDrawHideForPlayer(playerid, M_TITLE[playerid]);
  286. TextDrawHideForPlayer(playerid, M_STATS[playerid]);
  287. TextDrawHideForPlayer(playerid, M_STATSCont[playerid]);
  288. TextDrawHideForPlayer(playerid, M_END[playerid]);
  289.  
  290. for(new r = 0; r < MAX_TEXTDRAW_ROWS; r++)
  291. {
  292. TextDrawHideForPlayer(playerid, M_COLUMN1[playerid][r]);
  293. TextDrawHideForPlayer(playerid, M_COLUMN2[playerid][r]);
  294. }
  295.  
  296.  
  297.  
  298. M_CURRENTOPTIONSLOT[playerid] = 0;
  299. tdPlayerInfo[playerid][pTextdraw] = -1;
  300. M_ITEMSELLERID[playerid] = -1;
  301.  
  302. }
  303. //==============================================================================
  304.  
  305.  
  306. stock isNumeric3(const string[])
  307. {
  308. new length=strlen(string);
  309. if (length==0) return false;
  310. for (new i = 0; i < length; i++)
  311. {
  312. if (
  313. (string[i] > '9' || string[i] < '0' && string[i]!='-' && string[i]!='+') // Not a number,'+' or '-'
  314. || (string[i]=='-' && i!=0) // A '-' but not at first.
  315. || (string[i]=='+' && i!=0) // A '+' but not at first.
  316. ) return false;
  317. }
  318. if (length==1 && (string[0]=='-' || string[0]=='+')) return false;
  319. return true;
  320. }
  321.  
  322. forward OnPlayerEnterTDMenu(playerid, menuid , listitem);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement