Advertisement
TUNAAABREEE

Untitled

May 2nd, 2018
504
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 31.67 KB | None | 0 0
  1. /*
  2. Inventory System
  3. Created by Saco
  4. Version: v1.0
  5. Last Update: 09.01.2017.
  6. */
  7.  
  8. #if !defined MAX_MENU_ITEMS
  9. #define MAX_MENU_ITEMS (300)
  10. #endif
  11.  
  12. #if !defined MAX_CUSTOM_ROTATIONS
  13. #define MAX_CUSTOM_ROTATIONS (50)
  14. #endif
  15.  
  16. #define MODEL_RESPONSE_CANCEL (0)
  17. #define MODEL_RESPONSE_SELECT (1)
  18.  
  19. enum g_ePlayerMenuEnum {
  20. PlayerText:g_eMenuTextdraws[12],
  21. PlayerText:g_eMenuItems[18],
  22. PlayerText:g_eMenuAmounts[18],
  23. Float:g_eMenuRot[4],
  24. g_eMenuModels[ MAX_MENU_ITEMS ],
  25. g_eMenuAmount[ MAX_MENU_ITEMS ],
  26. g_eMenuTotalItems,
  27. g_eMenuPage,
  28. g_eMenuPages,
  29. g_eMenuShown,
  30. g_eMenuExtra,
  31. g_eMenuIgnore,
  32. g_eMenuTime,
  33. g_eMenuType
  34. };
  35. enum g_eItemRotationEnum {
  36. g_eItemModel,
  37. Float:g_eItemRotX,
  38. Float:g_eItemRotY,
  39. Float:g_eItemRotZ,
  40. Float:g_eItemZoom
  41. };
  42.  
  43. static stock
  44. g_ePlayerMenuData[MAX_PLAYERS][g_ePlayerMenuEnum],
  45. g_eMenuCustomRotation[MAX_CUSTOM_ROTATIONS][g_eItemRotationEnum]
  46. ;
  47.  
  48. static const g_arrVehicleColors[256] = {
  49. 0x000000FF, 0xF5F5F5FF, 0x2A77A1FF, 0x840410FF, 0x263739FF, 0x86446EFF, 0xD78E10FF, 0x4C75B7FF, 0xBDBEC6FF, 0x5E7072FF,
  50. 0x46597AFF, 0x656A79FF, 0x5D7E8DFF, 0x58595AFF, 0xD6DAD6FF, 0x9CA1A3FF, 0x335F3FFF, 0x730E1AFF, 0x7B0A2AFF, 0x9F9D94FF,
  51. 0x3B4E78FF, 0x732E3EFF, 0x691E3BFF, 0x96918CFF, 0x515459FF, 0x3F3E45FF, 0xA5A9A7FF, 0x635C5AFF, 0x3D4A68FF, 0x979592FF,
  52. 0x421F21FF, 0x5F272BFF, 0x8494ABFF, 0x767B7CFF, 0x646464FF, 0x5A5752FF, 0x252527FF, 0x2D3A35FF, 0x93A396FF, 0x6D7A88FF,
  53. 0x221918FF, 0x6F675FFF, 0x7C1C2AFF, 0x5F0A15FF, 0x193826FF, 0x5D1B20FF, 0x9D9872FF, 0x7A7560FF, 0x989586FF, 0xADB0B0FF,
  54. 0x848988FF, 0x304F45FF, 0x4D6268FF, 0x162248FF, 0x272F4BFF, 0x7D6256FF, 0x9EA4ABFF, 0x9C8D71FF, 0x6D1822FF, 0x4E6881FF,
  55. 0x9C9C98FF, 0x917347FF, 0x661C26FF, 0x949D9FFF, 0xA4A7A5FF, 0x8E8C46FF, 0x341A1EFF, 0x6A7A8CFF, 0xAAAD8EFF, 0xAB988FFF,
  56. 0x851F2EFF, 0x6F8297FF, 0x585853FF, 0x9AA790FF, 0x601A23FF, 0x20202CFF, 0xA4A096FF, 0xAA9D84FF, 0x78222BFF, 0x0E316DFF,
  57. 0x722A3FFF, 0x7B715EFF, 0x741D28FF, 0x1E2E32FF, 0x4D322FFF, 0x7C1B44FF, 0x2E5B20FF, 0x395A83FF, 0x6D2837FF, 0xA7A28FFF,
  58. 0xAFB1B1FF, 0x364155FF, 0x6D6C6EFF, 0x0F6A89FF, 0x204B6BFF, 0x2B3E57FF, 0x9B9F9DFF, 0x6C8495FF, 0x4D8495FF, 0xAE9B7FFF,
  59. 0x406C8FFF, 0x1F253BFF, 0xAB9276FF, 0x134573FF, 0x96816CFF, 0x64686AFF, 0x105082FF, 0xA19983FF, 0x385694FF, 0x525661FF,
  60. 0x7F6956FF, 0x8C929AFF, 0x596E87FF, 0x473532FF, 0x44624FFF, 0x730A27FF, 0x223457FF, 0x640D1BFF, 0xA3ADC6FF, 0x695853FF,
  61. 0x9B8B80FF, 0x620B1CFF, 0x5B5D5EFF, 0x624428FF, 0x731827FF, 0x1B376DFF, 0xEC6AAEFF, 0x000000FF, 0x177517FF, 0x210606FF,
  62. 0x125478FF, 0x452A0DFF, 0x571E1EFF, 0x010701FF, 0x25225AFF, 0x2C89AAFF, 0x8A4DBDFF, 0x35963AFF, 0xB7B7B7FF, 0x464C8DFF,
  63. 0x84888CFF, 0x817867FF, 0x817A26FF, 0x6A506FFF, 0x583E6FFF, 0x8CB972FF, 0x824F78FF, 0x6D276AFF, 0x1E1D13FF, 0x1E1306FF,
  64. 0x1F2518FF, 0x2C4531FF, 0x1E4C99FF, 0x2E5F43FF, 0x1E9948FF, 0x1E9999FF, 0x999976FF, 0x7C8499FF, 0x992E1EFF, 0x2C1E08FF,
  65. 0x142407FF, 0x993E4DFF, 0x1E4C99FF, 0x198181FF, 0x1A292AFF, 0x16616FFF, 0x1B6687FF, 0x6C3F99FF, 0x481A0EFF, 0x7A7399FF,
  66. 0x746D99FF, 0x53387EFF, 0x222407FF, 0x3E190CFF, 0x46210EFF, 0x991E1EFF, 0x8D4C8DFF, 0x805B80FF, 0x7B3E7EFF, 0x3C1737FF,
  67. 0x733517FF, 0x781818FF, 0x83341AFF, 0x8E2F1CFF, 0x7E3E53FF, 0x7C6D7CFF, 0x020C02FF, 0x072407FF, 0x163012FF, 0x16301BFF,
  68. 0x642B4FFF, 0x368452FF, 0x999590FF, 0x818D96FF, 0x99991EFF, 0x7F994CFF, 0x839292FF, 0x788222FF, 0x2B3C99FF, 0x3A3A0BFF,
  69. 0x8A794EFF, 0x0E1F49FF, 0x15371CFF, 0x15273AFF, 0x375775FF, 0x060820FF, 0x071326FF, 0x20394BFF, 0x2C5089FF, 0x15426CFF,
  70. 0x103250FF, 0x241663FF, 0x692015FF, 0x8C8D94FF, 0x516013FF, 0x090F02FF, 0x8C573AFF, 0x52888EFF, 0x995C52FF, 0x99581EFF,
  71. 0x993A63FF, 0x998F4EFF, 0x99311EFF, 0x0D1842FF, 0x521E1EFF, 0x42420DFF, 0x4C991EFF, 0x082A1DFF, 0x96821DFF, 0x197F19FF,
  72. 0x3B141FFF, 0x745217FF, 0x893F8DFF, 0x7E1A6CFF, 0x0B370BFF, 0x27450DFF, 0x071F24FF, 0x784573FF, 0x8A653AFF, 0x732617FF,
  73. 0x319490FF, 0x56941DFF, 0x59163DFF, 0x1B8A2FFF, 0x38160BFF, 0x041804FF, 0x355D8EFF, 0x2E3F5BFF, 0x561A28FF, 0x4E0E27FF,
  74. 0x706C67FF, 0x3B3E42FF, 0x2E2D33FF, 0x7B7E7DFF, 0x4A4442FF, 0x28344EFF
  75. };
  76.  
  77. stock SetModelPreviewRotation(modelid, Float:x, Float:y, Float:z, Float:zoom = 1.0)
  78. {
  79. for (new i = 0; i != MAX_CUSTOM_ROTATIONS; i ++) if (!g_eMenuCustomRotation[i][g_eItemModel]) {
  80. g_eMenuCustomRotation[i][g_eItemModel] = modelid;
  81. g_eMenuCustomRotation[i][g_eItemRotX] = x;
  82. g_eMenuCustomRotation[i][g_eItemRotY] = y;
  83. g_eMenuCustomRotation[i][g_eItemRotZ] = z;
  84. g_eMenuCustomRotation[i][g_eItemZoom] = zoom;
  85.  
  86. break;
  87. }
  88. return 0;
  89. }
  90.  
  91. stock HideModelESelectionMenu(playerid)
  92. {
  93. if (!IsPlayerConnected(playerid) || !g_ePlayerMenuData[playerid][g_eMenuShown])
  94. return 0;
  95.  
  96. for (new i = 0; i < 12; i ++) {
  97. PlayerTextDrawDestroy(playerid, g_ePlayerMenuData[playerid][g_eMenuTextdraws][i]);
  98. }
  99. for (new i = 0; i != MAX_MENU_ITEMS; i ++)
  100. {
  101. if (i < 18)
  102. {
  103. if (g_ePlayerMenuData[playerid][g_eMenuItems][i] != PlayerText:INVALID_TEXT_DRAW)
  104. {
  105. PlayerTextDrawDestroy(playerid, g_ePlayerMenuData[playerid][g_eMenuItems][i]);
  106. g_ePlayerMenuData[playerid][g_eMenuItems][i] = PlayerText:INVALID_TEXT_DRAW;
  107. }
  108. if (g_ePlayerMenuData[playerid][g_eMenuAmounts][i] != PlayerText:INVALID_TEXT_DRAW)
  109. {
  110. PlayerTextDrawDestroy(playerid, g_ePlayerMenuData[playerid][g_eMenuAmounts][i]);
  111. g_ePlayerMenuData[playerid][g_eMenuAmounts][i] = PlayerText:INVALID_TEXT_DRAW;
  112. }
  113. }
  114. g_ePlayerMenuData[playerid][g_eMenuModels][i] = -1;
  115. g_ePlayerMenuData[playerid][g_eMenuAmount][i] = 0;
  116. }
  117. g_ePlayerMenuData[playerid][g_eMenuShown] = false;
  118. g_ePlayerMenuData[playerid][g_eMenuTotalItems] = 0;
  119. g_ePlayerMenuData[playerid][g_eMenuExtra] = 0;
  120. g_ePlayerMenuData[playerid][g_eMenuPage] = 1;
  121. g_ePlayerMenuData[playerid][g_eMenuPages] = 0;
  122. g_ePlayerMenuData[playerid][g_eMenuIgnore] = true;
  123.  
  124. g_ePlayerMenuData[playerid][g_eMenuRot][0] = 0.0;
  125. g_ePlayerMenuData[playerid][g_eMenuRot][1] = 0.0;
  126. g_ePlayerMenuData[playerid][g_eMenuRot][2] = 0.0;
  127. g_ePlayerMenuData[playerid][g_eMenuRot][3] = 0.0;
  128.  
  129. CancelSelectTextDraw(playerid);
  130. return 1;
  131. }
  132.  
  133. stock ShowInventoryMenu(playerid, header[], playername[], playerinfo[], skinid[], skinmodelid, extraid, items[], size = sizeof(items), Float:fRotX = 0.0, Float:fRotY = 0.0, Float:fRotZ = 0.0, Float:fZoom = 1.0, carcol = -1, bool:amount = false, amounts[] = {-1})
  134. {
  135. if( !IsPlayerConnected( playerid ) )
  136. return 0;
  137.  
  138. if( size > MAX_MENU_ITEMS )
  139. return printf( "** Warning: Please increase \"MAX_MENU_ITEMS\" if you want to create more items." );
  140.  
  141. if( g_ePlayerMenuData[playerid][g_eMenuShown] ) {
  142. HideModelESelectionMenu(playerid);
  143. }
  144. for( new i = 0; i < 18; i ++ ) {
  145. g_ePlayerMenuData[playerid][g_eMenuItems][i] = PlayerText:INVALID_TEXT_DRAW;
  146. g_ePlayerMenuData[playerid][g_eMenuAmounts][i] = PlayerText:INVALID_TEXT_DRAW;
  147. }
  148.  
  149. new page[ 8 ];
  150. format(page, 8, "1/%d", (size / 18) + 1);
  151.  
  152. g_ePlayerMenuData[playerid][g_eMenuExtra] = extraid;
  153. g_ePlayerMenuData[playerid][g_eMenuShown] = true;
  154. g_ePlayerMenuData[playerid][g_eMenuPage] = 1;
  155. g_ePlayerMenuData[playerid][g_eMenuPages] = (size / 18) + 1;
  156. g_ePlayerMenuData[playerid][g_eMenuTime] = GetTickCount();
  157. g_ePlayerMenuData[playerid][g_eMenuType] = 1;
  158.  
  159. g_ePlayerMenuData[playerid][g_eMenuRot][0] = fRotX;
  160. g_ePlayerMenuData[playerid][g_eMenuRot][1] = fRotY;
  161. g_ePlayerMenuData[playerid][g_eMenuRot][2] = fRotZ;
  162. g_ePlayerMenuData[playerid][g_eMenuRot][3] = fZoom;
  163.  
  164. g_ePlayerMenuData[playerid][g_eMenuTextdraws][0] = CreatePlayerTextDraw( playerid, 136.666702, 179.500106, "_");
  165. PlayerTextDrawLetterSize( playerid, g_ePlayerMenuData[playerid][g_eMenuTextdraws][0], 0.000000, 20.666658);
  166. PlayerTextDrawTextSize( playerid, g_ePlayerMenuData[playerid][g_eMenuTextdraws][0], 535.000000, 0.000000);
  167. PlayerTextDrawAlignment( playerid, g_ePlayerMenuData[playerid][g_eMenuTextdraws][0], 1);
  168. PlayerTextDrawColor( playerid, g_ePlayerMenuData[playerid][g_eMenuTextdraws][0], -1);
  169. PlayerTextDrawUseBox( playerid, g_ePlayerMenuData[playerid][g_eMenuTextdraws][0], 1);
  170. PlayerTextDrawBoxColor( playerid, g_ePlayerMenuData[playerid][g_eMenuTextdraws][0], 187);
  171. PlayerTextDrawSetShadow( playerid, g_ePlayerMenuData[playerid][g_eMenuTextdraws][0], 0);
  172. PlayerTextDrawSetOutline( playerid, g_ePlayerMenuData[playerid][g_eMenuTextdraws][0], 0);
  173. PlayerTextDrawBackgroundColor( playerid, g_ePlayerMenuData[playerid][g_eMenuTextdraws][0], 255);
  174. PlayerTextDrawFont( playerid, g_ePlayerMenuData[playerid][g_eMenuTextdraws][0], 1);
  175. PlayerTextDrawSetProportional( playerid, g_ePlayerMenuData[playerid][g_eMenuTextdraws][0], 1);
  176. PlayerTextDrawSetShadow( playerid, g_ePlayerMenuData[playerid][g_eMenuTextdraws][0], 0);
  177.  
  178. g_ePlayerMenuData[playerid][g_eMenuTextdraws][1] = CreatePlayerTextDraw( playerid, 460.030639, 166.485183, header);
  179. PlayerTextDrawLetterSize( playerid, g_ePlayerMenuData[playerid][g_eMenuTextdraws][1], 0.201331, 0.931182);
  180. PlayerTextDrawTextSize( playerid, g_ePlayerMenuData[playerid][g_eMenuTextdraws][1], 534.901977, 0.000000);
  181. PlayerTextDrawAlignment( playerid, g_ePlayerMenuData[playerid][g_eMenuTextdraws][1], 1);
  182. PlayerTextDrawColor( playerid, g_ePlayerMenuData[playerid][g_eMenuTextdraws][1], -1);
  183. PlayerTextDrawUseBox( playerid, g_ePlayerMenuData[playerid][g_eMenuTextdraws][1], 1);
  184. PlayerTextDrawBoxColor( playerid, g_ePlayerMenuData[playerid][g_eMenuTextdraws][1], -5963521);
  185. PlayerTextDrawSetShadow( playerid, g_ePlayerMenuData[playerid][g_eMenuTextdraws][1], 0);
  186. PlayerTextDrawSetOutline( playerid, g_ePlayerMenuData[playerid][g_eMenuTextdraws][1], 1);
  187. PlayerTextDrawBackgroundColor( playerid, g_ePlayerMenuData[playerid][g_eMenuTextdraws][1], 255);
  188. PlayerTextDrawFont( playerid, g_ePlayerMenuData[playerid][g_eMenuTextdraws][1], 2);
  189. PlayerTextDrawSetProportional( playerid, g_ePlayerMenuData[playerid][g_eMenuTextdraws][1], 1);
  190. PlayerTextDrawSetShadow( playerid, g_ePlayerMenuData[playerid][g_eMenuTextdraws][1], 0);
  191.  
  192. g_ePlayerMenuData[playerid][g_eMenuTextdraws][2] = CreatePlayerTextDraw( playerid, 524.333251, 165.785171, "LD_CHAT:thumbdn");
  193. PlayerTextDrawLetterSize( playerid, g_ePlayerMenuData[playerid][g_eMenuTextdraws][2], 0.000000, 0.000000);
  194. PlayerTextDrawTextSize( playerid, g_ePlayerMenuData[playerid][g_eMenuTextdraws][2], 10.000000, 10.000000);
  195. PlayerTextDrawAlignment( playerid, g_ePlayerMenuData[playerid][g_eMenuTextdraws][2], 1);
  196. PlayerTextDrawColor( playerid, g_ePlayerMenuData[playerid][g_eMenuTextdraws][2], -1);
  197. PlayerTextDrawSetShadow( playerid, g_ePlayerMenuData[playerid][g_eMenuTextdraws][2], 0);
  198. PlayerTextDrawSetOutline( playerid, g_ePlayerMenuData[playerid][g_eMenuTextdraws][2], 0);
  199. PlayerTextDrawBackgroundColor( playerid, g_ePlayerMenuData[playerid][g_eMenuTextdraws][2], 255);
  200. PlayerTextDrawFont( playerid, g_ePlayerMenuData[playerid][g_eMenuTextdraws][2], 4);
  201. PlayerTextDrawSetProportional( playerid, g_ePlayerMenuData[playerid][g_eMenuTextdraws][2], 0);
  202. PlayerTextDrawSetShadow( playerid, g_ePlayerMenuData[playerid][g_eMenuTextdraws][2], 0);
  203. PlayerTextDrawSetSelectable( playerid, g_ePlayerMenuData[playerid][g_eMenuTextdraws][2], true);
  204.  
  205. g_ePlayerMenuData[playerid][g_eMenuTextdraws][3] = CreatePlayerTextDraw( playerid, 220.000000, 184.607421, "Predmeti");
  206. PlayerTextDrawLetterSize( playerid, g_ePlayerMenuData[playerid][g_eMenuTextdraws][3], 0.227666, 0.900663);
  207. PlayerTextDrawTextSize( playerid, g_ePlayerMenuData[playerid][g_eMenuTextdraws][3], 532.297363, 0.000000);
  208. PlayerTextDrawAlignment( playerid, g_ePlayerMenuData[playerid][g_eMenuTextdraws][3], 1);
  209. PlayerTextDrawColor( playerid, g_ePlayerMenuData[playerid][g_eMenuTextdraws][3], -1);
  210. PlayerTextDrawUseBox( playerid, g_ePlayerMenuData[playerid][g_eMenuTextdraws][3], 1);
  211. PlayerTextDrawBoxColor( playerid, g_ePlayerMenuData[playerid][g_eMenuTextdraws][3], -5963521);
  212. PlayerTextDrawSetShadow( playerid, g_ePlayerMenuData[playerid][g_eMenuTextdraws][3], 0);
  213. PlayerTextDrawSetOutline( playerid, g_ePlayerMenuData[playerid][g_eMenuTextdraws][3], 1);
  214. PlayerTextDrawBackgroundColor( playerid, g_ePlayerMenuData[playerid][g_eMenuTextdraws][3], 255);
  215. PlayerTextDrawFont( playerid, g_ePlayerMenuData[playerid][g_eMenuTextdraws][3], 2);
  216. PlayerTextDrawSetProportional( playerid, g_ePlayerMenuData[playerid][g_eMenuTextdraws][3], 1);
  217. PlayerTextDrawSetShadow( playerid, g_ePlayerMenuData[playerid][g_eMenuTextdraws][3], 0);
  218.  
  219. g_ePlayerMenuData[playerid][g_eMenuTextdraws][4] = CreatePlayerTextDraw( playerid, 176.499389, 184.607482, playername);
  220. PlayerTextDrawLetterSize( playerid, g_ePlayerMenuData[playerid][g_eMenuTextdraws][4], 0.135327, 0.841183);
  221. PlayerTextDrawTextSize( playerid, g_ePlayerMenuData[playerid][g_eMenuTextdraws][4], 0.000000, 71.000000);
  222. PlayerTextDrawAlignment( playerid, g_ePlayerMenuData[playerid][g_eMenuTextdraws][4], 2);
  223. PlayerTextDrawColor( playerid, g_ePlayerMenuData[playerid][g_eMenuTextdraws][4], -1);
  224. PlayerTextDrawUseBox( playerid, g_ePlayerMenuData[playerid][g_eMenuTextdraws][4], 1);
  225. PlayerTextDrawBoxColor( playerid, g_ePlayerMenuData[playerid][g_eMenuTextdraws][4], -5963521);
  226. PlayerTextDrawSetShadow( playerid, g_ePlayerMenuData[playerid][g_eMenuTextdraws][4], 0);
  227. PlayerTextDrawSetOutline( playerid, g_ePlayerMenuData[playerid][g_eMenuTextdraws][4], 1);
  228. PlayerTextDrawBackgroundColor( playerid, g_ePlayerMenuData[playerid][g_eMenuTextdraws][4], 255);
  229. PlayerTextDrawFont( playerid, g_ePlayerMenuData[playerid][g_eMenuTextdraws][4], 2);
  230. PlayerTextDrawSetProportional( playerid, g_ePlayerMenuData[playerid][g_eMenuTextdraws][4], 1);
  231. PlayerTextDrawSetShadow( playerid, g_ePlayerMenuData[playerid][g_eMenuTextdraws][4], 0);
  232.  
  233. g_ePlayerMenuData[playerid][g_eMenuTextdraws][5] = CreatePlayerTextDraw( playerid, 139.299942, 197.725982, "");
  234. PlayerTextDrawLetterSize( playerid, g_ePlayerMenuData[playerid][g_eMenuTextdraws][5], 0.000000, 0.000000);
  235. PlayerTextDrawTextSize( playerid, g_ePlayerMenuData[playerid][g_eMenuTextdraws][5], 74.000000, 76.000000);
  236. PlayerTextDrawAlignment( playerid, g_ePlayerMenuData[playerid][g_eMenuTextdraws][5], 1);
  237. PlayerTextDrawColor( playerid, g_ePlayerMenuData[playerid][g_eMenuTextdraws][5], -1);
  238. PlayerTextDrawSetShadow( playerid, g_ePlayerMenuData[playerid][g_eMenuTextdraws][5], 0);
  239. PlayerTextDrawSetOutline( playerid, g_ePlayerMenuData[playerid][g_eMenuTextdraws][5], 0);
  240. PlayerTextDrawBackgroundColor( playerid, g_ePlayerMenuData[playerid][g_eMenuTextdraws][5], 136);
  241. PlayerTextDrawFont( playerid, g_ePlayerMenuData[playerid][g_eMenuTextdraws][5], 5);
  242. PlayerTextDrawSetProportional( playerid, g_ePlayerMenuData[playerid][g_eMenuTextdraws][5], 0);
  243. PlayerTextDrawSetShadow( playerid, g_ePlayerMenuData[playerid][g_eMenuTextdraws][5], 0);
  244. PlayerTextDrawSetPreviewModel( playerid, g_ePlayerMenuData[playerid][g_eMenuTextdraws][5], skinmodelid);
  245. PlayerTextDrawSetPreviewRot( playerid, g_ePlayerMenuData[playerid][g_eMenuTextdraws][5], 0.000000, 0.000000, 0.000000, 1.000000);
  246.  
  247. g_ePlayerMenuData[playerid][g_eMenuTextdraws][6] = CreatePlayerTextDraw( playerid, 212.234664, 266.292572, skinid);
  248. PlayerTextDrawLetterSize( playerid, g_ePlayerMenuData[playerid][g_eMenuTextdraws][6], 0.097661, 0.736738);
  249. PlayerTextDrawAlignment( playerid, g_ePlayerMenuData[playerid][g_eMenuTextdraws][6], 3);
  250. PlayerTextDrawColor( playerid, g_ePlayerMenuData[playerid][g_eMenuTextdraws][6], -1);
  251. PlayerTextDrawSetShadow( playerid, g_ePlayerMenuData[playerid][g_eMenuTextdraws][6], 0);
  252. PlayerTextDrawSetOutline( playerid, g_ePlayerMenuData[playerid][g_eMenuTextdraws][6], 1);
  253. PlayerTextDrawBackgroundColor( playerid, g_ePlayerMenuData[playerid][g_eMenuTextdraws][6], 255);
  254. PlayerTextDrawFont( playerid, g_ePlayerMenuData[playerid][g_eMenuTextdraws][6], 2);
  255. PlayerTextDrawSetProportional( playerid, g_ePlayerMenuData[playerid][g_eMenuTextdraws][6], 1);
  256. PlayerTextDrawSetShadow( playerid, g_ePlayerMenuData[playerid][g_eMenuTextdraws][6], 0);
  257.  
  258. g_ePlayerMenuData[playerid][g_eMenuTextdraws][7] = CreatePlayerTextDraw( playerid, 140.666625, 276.981475, "_");
  259. PlayerTextDrawLetterSize( playerid, g_ePlayerMenuData[playerid][g_eMenuTextdraws][7], 0.000000, 9.566666);
  260. PlayerTextDrawTextSize( playerid, g_ePlayerMenuData[playerid][g_eMenuTextdraws][7], 212.000000, 0.000000);
  261. PlayerTextDrawAlignment( playerid, g_ePlayerMenuData[playerid][g_eMenuTextdraws][7], 1);
  262. PlayerTextDrawColor( playerid, g_ePlayerMenuData[playerid][g_eMenuTextdraws][7], -1);
  263. PlayerTextDrawUseBox( playerid, g_ePlayerMenuData[playerid][g_eMenuTextdraws][7], 1);
  264. PlayerTextDrawBoxColor( playerid, g_ePlayerMenuData[playerid][g_eMenuTextdraws][7], 136);
  265. PlayerTextDrawSetShadow( playerid, g_ePlayerMenuData[playerid][g_eMenuTextdraws][7], 0);
  266. PlayerTextDrawSetOutline( playerid, g_ePlayerMenuData[playerid][g_eMenuTextdraws][7], 0);
  267. PlayerTextDrawBackgroundColor( playerid, g_ePlayerMenuData[playerid][g_eMenuTextdraws][7], 136);
  268. PlayerTextDrawFont( playerid, g_ePlayerMenuData[playerid][g_eMenuTextdraws][7], 1);
  269. PlayerTextDrawSetProportional( playerid, g_ePlayerMenuData[playerid][g_eMenuTextdraws][7], 1);
  270. PlayerTextDrawSetShadow( playerid, g_ePlayerMenuData[playerid][g_eMenuTextdraws][7], 0);
  271.  
  272. g_ePlayerMenuData[playerid][g_eMenuTextdraws][8] = CreatePlayerTextDraw( playerid, 141.000045, 276.677612, playerinfo);
  273. PlayerTextDrawLetterSize( playerid, g_ePlayerMenuData[playerid][g_eMenuTextdraws][8], 0.092325, 0.966071);
  274. PlayerTextDrawAlignment( playerid, g_ePlayerMenuData[playerid][g_eMenuTextdraws][8], 1);
  275. PlayerTextDrawColor( playerid, g_ePlayerMenuData[playerid][g_eMenuTextdraws][8], -1);
  276. PlayerTextDrawSetShadow( playerid, g_ePlayerMenuData[playerid][g_eMenuTextdraws][8], 0);
  277. PlayerTextDrawSetOutline( playerid, g_ePlayerMenuData[playerid][g_eMenuTextdraws][8], 1);
  278. PlayerTextDrawBackgroundColor( playerid, g_ePlayerMenuData[playerid][g_eMenuTextdraws][8], 255);
  279. PlayerTextDrawFont( playerid, g_ePlayerMenuData[playerid][g_eMenuTextdraws][8], 2);
  280. PlayerTextDrawSetProportional( playerid, g_ePlayerMenuData[playerid][g_eMenuTextdraws][8], 1);
  281. PlayerTextDrawSetShadow( playerid, g_ePlayerMenuData[playerid][g_eMenuTextdraws][8], 0);
  282.  
  283. g_ePlayerMenuData[playerid][g_eMenuTextdraws][9] = CreatePlayerTextDraw( playerid, 505.866729, 183.773880, page);
  284. PlayerTextDrawLetterSize( playerid, g_ePlayerMenuData[playerid][g_eMenuTextdraws][9], 0.258327, 0.986070);
  285. PlayerTextDrawAlignment( playerid, g_ePlayerMenuData[playerid][g_eMenuTextdraws][9], 2);
  286. PlayerTextDrawColor( playerid, g_ePlayerMenuData[playerid][g_eMenuTextdraws][9], -1);
  287. PlayerTextDrawSetShadow( playerid, g_ePlayerMenuData[playerid][g_eMenuTextdraws][9], 0);
  288. PlayerTextDrawSetOutline( playerid, g_ePlayerMenuData[playerid][g_eMenuTextdraws][9], 1);
  289. PlayerTextDrawBackgroundColor( playerid, g_ePlayerMenuData[playerid][g_eMenuTextdraws][9], 255);
  290. PlayerTextDrawFont( playerid, g_ePlayerMenuData[playerid][g_eMenuTextdraws][9], 2);
  291. PlayerTextDrawSetProportional( playerid, g_ePlayerMenuData[playerid][g_eMenuTextdraws][9], 1);
  292. PlayerTextDrawSetShadow( playerid, g_ePlayerMenuData[playerid][g_eMenuTextdraws][9], 0);
  293.  
  294. g_ePlayerMenuData[playerid][g_eMenuTextdraws][10] = CreatePlayerTextDraw( playerid, 521.999877, 184.037048, "LD_BEAT:right");
  295. PlayerTextDrawLetterSize( playerid, g_ePlayerMenuData[playerid][g_eMenuTextdraws][10], 0.000000, 0.000000);
  296. PlayerTextDrawTextSize( playerid, g_ePlayerMenuData[playerid][g_eMenuTextdraws][10], 10.000000, 10.000000);
  297. PlayerTextDrawAlignment( playerid, g_ePlayerMenuData[playerid][g_eMenuTextdraws][10], 1);
  298. PlayerTextDrawColor( playerid, g_ePlayerMenuData[playerid][g_eMenuTextdraws][10], -1);
  299. PlayerTextDrawSetShadow( playerid, g_ePlayerMenuData[playerid][g_eMenuTextdraws][10], 0);
  300. PlayerTextDrawSetOutline( playerid, g_ePlayerMenuData[playerid][g_eMenuTextdraws][10], 0);
  301. PlayerTextDrawBackgroundColor( playerid, g_ePlayerMenuData[playerid][g_eMenuTextdraws][10], 255);
  302. PlayerTextDrawFont( playerid, g_ePlayerMenuData[playerid][g_eMenuTextdraws][10], 4);
  303. PlayerTextDrawSetProportional( playerid, g_ePlayerMenuData[playerid][g_eMenuTextdraws][10], 0);
  304. PlayerTextDrawSetShadow( playerid, g_ePlayerMenuData[playerid][g_eMenuTextdraws][10], 0);
  305. PlayerTextDrawSetSelectable( playerid, g_ePlayerMenuData[playerid][g_eMenuTextdraws][10], true);
  306.  
  307. g_ePlayerMenuData[playerid][g_eMenuTextdraws][11] = CreatePlayerTextDraw( playerid, 479.100311, 184.037048, "LD_BEAT:left");
  308. PlayerTextDrawLetterSize( playerid, g_ePlayerMenuData[playerid][g_eMenuTextdraws][11], 0.000000, 0.000000);
  309. PlayerTextDrawTextSize( playerid, g_ePlayerMenuData[playerid][g_eMenuTextdraws][11], 10.000000, 10.000000);
  310. PlayerTextDrawAlignment( playerid, g_ePlayerMenuData[playerid][g_eMenuTextdraws][11], 1);
  311. PlayerTextDrawColor( playerid, g_ePlayerMenuData[playerid][g_eMenuTextdraws][11], -1);
  312. PlayerTextDrawSetShadow( playerid, g_ePlayerMenuData[playerid][g_eMenuTextdraws][11], 0);
  313. PlayerTextDrawSetOutline( playerid, g_ePlayerMenuData[playerid][g_eMenuTextdraws][11], 0);
  314. PlayerTextDrawBackgroundColor( playerid, g_ePlayerMenuData[playerid][g_eMenuTextdraws][11], 255);
  315. PlayerTextDrawFont( playerid, g_ePlayerMenuData[playerid][g_eMenuTextdraws][11], 4);
  316. PlayerTextDrawSetProportional( playerid, g_ePlayerMenuData[playerid][g_eMenuTextdraws][11], 0);
  317. PlayerTextDrawSetShadow( playerid, g_ePlayerMenuData[playerid][g_eMenuTextdraws][11], 0);
  318. PlayerTextDrawSetSelectable( playerid, g_ePlayerMenuData[playerid][g_eMenuTextdraws][11], true);
  319.  
  320.  
  321. new Float:x = 169.0, Float:y = 195.0, str[ 8 ];
  322.  
  323. for( new i = 0, idx = 0; i != MAX_MENU_ITEMS; i ++ ) {
  324. if( i >= size ) {
  325. g_ePlayerMenuData[playerid][g_eMenuModels][i] = -1;
  326. }
  327. else {
  328. if( items[i] == -1 ) {
  329. g_ePlayerMenuData[playerid][g_eMenuModels][i] = -1;
  330. g_ePlayerMenuData[playerid][g_eMenuAmount][i] = 0;
  331. }
  332. else {
  333. g_ePlayerMenuData[playerid][g_eMenuTotalItems]++;
  334. g_ePlayerMenuData[playerid][g_eMenuModels][i] = items[i];
  335.  
  336. if( amount ) {
  337. g_ePlayerMenuData[playerid][g_eMenuAmount][i] = amounts[i];
  338. }
  339. }
  340. if( i < 18 && items[i] != -1 ) {
  341. if( idx > 0 && ( idx % 6 ) == 0 ) {
  342. x = 220.0;
  343. y += 57.0;
  344. }
  345. else {
  346. x += 51.00;
  347. }
  348. idx++;
  349. if( i < 18 && items[i] != -1 ) {
  350. g_ePlayerMenuData[playerid][g_eMenuItems][i] = CreatePlayerTextDraw( playerid, x, y, "");
  351.  
  352. PlayerTextDrawLetterSize( playerid, g_ePlayerMenuData[playerid][g_eMenuItems][i], 0.000000, 0.000000);
  353. PlayerTextDrawTextSize( playerid, g_ePlayerMenuData[playerid][g_eMenuItems][i], 50.000000, 50.000000);
  354. PlayerTextDrawAlignment( playerid, g_ePlayerMenuData[playerid][g_eMenuItems][i], 1);
  355. PlayerTextDrawColor( playerid, g_ePlayerMenuData[playerid][g_eMenuItems][i], -1);
  356. PlayerTextDrawSetShadow( playerid, g_ePlayerMenuData[playerid][g_eMenuItems][i], 0);
  357. PlayerTextDrawSetOutline( playerid, g_ePlayerMenuData[playerid][g_eMenuItems][i], 0);
  358. PlayerTextDrawBackgroundColor( playerid, g_ePlayerMenuData[playerid][g_eMenuItems][i], 136);
  359. PlayerTextDrawFont( playerid, g_ePlayerMenuData[playerid][g_eMenuItems][i], 5);
  360. PlayerTextDrawSetProportional( playerid, g_ePlayerMenuData[playerid][g_eMenuItems][i], 0);
  361. PlayerTextDrawSetShadow( playerid, g_ePlayerMenuData[playerid][g_eMenuItems][i], 0);
  362. PlayerTextDrawSetSelectable( playerid, g_ePlayerMenuData[playerid][g_eMenuItems][i], true);
  363. PlayerTextDrawSetPreviewModel(playerid, g_ePlayerMenuData[playerid][g_eMenuItems][i], items[i]);
  364. PlayerTextDrawSetPreviewRot(playerid, g_ePlayerMenuData[playerid][g_eMenuItems][i], fRotX, fRotY, fRotZ, fZoom);
  365.  
  366. if( amount && amounts[i] != -1 ) {
  367. format( str, 16, "(%d)", amounts[i] );
  368.  
  369. g_ePlayerMenuData[playerid][g_eMenuAmounts][i] = CreatePlayerTextDraw( playerid, x + 23.0, y + 50.0, str);
  370.  
  371. PlayerTextDrawLetterSize( playerid, g_ePlayerMenuData[playerid][g_eMenuAmounts][i], 0.097661, 0.736738);
  372. PlayerTextDrawAlignment( playerid, g_ePlayerMenuData[playerid][g_eMenuAmounts][i], 2);
  373. PlayerTextDrawColor( playerid, g_ePlayerMenuData[playerid][g_eMenuAmounts][i], -1);
  374. PlayerTextDrawSetShadow( playerid, g_ePlayerMenuData[playerid][g_eMenuAmounts][i], 0);
  375. PlayerTextDrawSetOutline( playerid, g_ePlayerMenuData[playerid][g_eMenuAmounts][i], 1);
  376. PlayerTextDrawBackgroundColor( playerid, g_ePlayerMenuData[playerid][g_eMenuAmounts][i], 255);
  377. PlayerTextDrawFont( playerid, g_ePlayerMenuData[playerid][g_eMenuAmounts][i], 2);
  378. PlayerTextDrawSetProportional( playerid, g_ePlayerMenuData[playerid][g_eMenuAmounts][i], 1);
  379. PlayerTextDrawSetShadow( playerid, g_ePlayerMenuData[playerid][g_eMenuAmounts][i], 0);
  380. }
  381. else {
  382. g_ePlayerMenuData[playerid][g_eMenuAmounts][i] = PlayerText:INVALID_TEXT_DRAW;
  383. }
  384. if( carcol != -1 ) {
  385. PlayerTextDrawSetPreviewVehCol(playerid, g_ePlayerMenuData[playerid][g_eMenuItems][i], carcol, carcol);
  386. }
  387. for( new j = 0; j != MAX_CUSTOM_ROTATIONS; j ++ ) {
  388. if( g_eMenuCustomRotation[j][g_eItemModel] == items[i] ) {
  389. PlayerTextDrawSetPreviewRot(playerid, g_ePlayerMenuData[playerid][g_eMenuItems][i], g_eMenuCustomRotation[j][g_eItemRotX], g_eMenuCustomRotation[j][g_eItemRotY], g_eMenuCustomRotation[j][g_eItemRotZ], g_eMenuCustomRotation[j][g_eItemZoom]);
  390. break;
  391. }
  392. }
  393. }
  394. }
  395. }
  396. }
  397.  
  398. for (new i = 0; i < 12; i ++) {
  399. PlayerTextDrawShow(playerid, g_ePlayerMenuData[playerid][g_eMenuTextdraws][i]);
  400. }
  401. for (new i = 0; i < 18; i ++) if (g_ePlayerMenuData[playerid][g_eMenuModels][i] != -1) {
  402. PlayerTextDrawShow(playerid, g_ePlayerMenuData[playerid][g_eMenuItems][i]);
  403.  
  404. if (g_ePlayerMenuData[playerid][g_eMenuAmounts][i] != PlayerText:INVALID_TEXT_DRAW) {
  405. PlayerTextDrawShow(playerid, g_ePlayerMenuData[playerid][g_eMenuAmounts][i]);
  406. }
  407. }
  408. SelectTextDraw(playerid, 0x36A5BCFF);
  409. return 1;
  410. }
  411.  
  412. public OnPlayerClickTextDraw(playerid, Text:clickedid)
  413. {
  414. if (g_ePlayerMenuData[playerid][g_eMenuIgnore] || (GetTickCount() - g_ePlayerMenuData[playerid][g_eMenuTime]) < 200)
  415. {
  416. g_ePlayerMenuData[playerid][g_eMenuIgnore] = false;
  417. return CallLocalFunction("MS_OnPlayerClickTextDraw", "dd", playerid, _:clickedid);
  418. }
  419. else if ((clickedid == Text:INVALID_TEXT_DRAW && g_ePlayerMenuData[playerid][g_eMenuShown]))
  420. {
  421. CallLocalFunction("OnModelSelectionResponse", "ddddd", playerid, g_ePlayerMenuData[playerid][g_eMenuExtra], 0, 0, MODEL_RESPONSE_CANCEL);
  422. HideModelESelectionMenu(playerid);
  423. }
  424. return CallLocalFunction("MS_OnPlayerClickTextDraw", "dd", playerid, _:clickedid);
  425. }
  426.  
  427. stock Menu_SetPage(playerid, page)
  428. {
  429. if (g_ePlayerMenuData[playerid][g_eMenuShown])
  430. {
  431. if (page < 1 || page > g_ePlayerMenuData[playerid][g_eMenuPages])
  432. return 0;
  433.  
  434. new
  435. start = (18 * (page - 1)),
  436. str[16];
  437.  
  438. for (new i = 0; i < 18; i ++) {
  439. PlayerTextDrawHide(playerid, g_ePlayerMenuData[playerid][g_eMenuItems][i]);
  440. }
  441. for (new i = start; i != start + 18 && i < MAX_MENU_ITEMS; i ++)
  442. {
  443. if (g_ePlayerMenuData[playerid][g_eMenuModels][i] == -1)
  444. {
  445. PlayerTextDrawHide(playerid, g_ePlayerMenuData[playerid][g_eMenuItems][i - start]);
  446.  
  447. if (g_ePlayerMenuData[playerid][g_eMenuAmounts][i - start] != PlayerText:INVALID_TEXT_DRAW)
  448. {
  449. PlayerTextDrawHide(playerid, g_ePlayerMenuData[playerid][g_eMenuAmounts][i - start]);
  450. }
  451. }
  452. else
  453. {
  454. if (g_ePlayerMenuData[playerid][g_eMenuType] == 2)
  455. {
  456. PlayerTextDrawSetPreviewModel(playerid, g_ePlayerMenuData[playerid][g_eMenuItems][i - start], 19300);
  457. PlayerTextDrawBackgroundColor(playerid, g_ePlayerMenuData[playerid][g_eMenuItems][i - start], g_arrVehicleColors[g_ePlayerMenuData[playerid][g_eMenuModels][i]]);
  458. }
  459. else
  460. {
  461. PlayerTextDrawSetPreviewRot(playerid, g_ePlayerMenuData[playerid][g_eMenuItems][i - start], g_ePlayerMenuData[playerid][g_eMenuRot][0], g_ePlayerMenuData[playerid][g_eMenuRot][1], g_ePlayerMenuData[playerid][g_eMenuRot][2], g_ePlayerMenuData[playerid][g_eMenuRot][3]);
  462.  
  463. for (new j = 0; j != MAX_CUSTOM_ROTATIONS; j ++)
  464. {
  465. if (g_eMenuCustomRotation[j][g_eItemModel] == g_ePlayerMenuData[playerid][g_eMenuModels][i])
  466. {
  467. PlayerTextDrawSetPreviewRot(playerid, g_ePlayerMenuData[playerid][g_eMenuItems][i - start], g_eMenuCustomRotation[j][g_eItemRotX], g_eMenuCustomRotation[j][g_eItemRotY], g_eMenuCustomRotation[j][g_eItemRotZ], g_eMenuCustomRotation[j][g_eItemZoom]);
  468. break;
  469. }
  470. }
  471. PlayerTextDrawSetPreviewModel(playerid, g_ePlayerMenuData[playerid][g_eMenuItems][i - start], g_ePlayerMenuData[playerid][g_eMenuModels][i]);
  472. }
  473. PlayerTextDrawHide(playerid, g_ePlayerMenuData[playerid][g_eMenuItems][i - start]);
  474. PlayerTextDrawShow(playerid, g_ePlayerMenuData[playerid][g_eMenuItems][i - start]);
  475.  
  476. if (g_ePlayerMenuData[playerid][g_eMenuAmounts][i - start] != PlayerText:INVALID_TEXT_DRAW)
  477. {
  478. format(str, sizeof(str), "%d", g_ePlayerMenuData[playerid][g_eMenuAmount][i]);
  479. PlayerTextDrawSetString(playerid, g_ePlayerMenuData[playerid][g_eMenuAmounts][i - start], str);
  480.  
  481. PlayerTextDrawHide(playerid, g_ePlayerMenuData[playerid][g_eMenuAmounts][i - start]);
  482. PlayerTextDrawShow(playerid, g_ePlayerMenuData[playerid][g_eMenuAmounts][i - start]);
  483. }
  484. }
  485. }
  486. g_ePlayerMenuData[playerid][g_eMenuPage] = page;
  487.  
  488. format(str, 8, "%d/%d", page, g_ePlayerMenuData[playerid][g_eMenuPages]);
  489. PlayerTextDrawSetString(playerid, g_ePlayerMenuData[playerid][g_eMenuTextdraws][9], str);
  490. }
  491. return 1;
  492. }
  493.  
  494. public OnPlayerClickPlayerTextDraw(playerid, PlayerText:playertextid)
  495. {
  496. if (!g_ePlayerMenuData[playerid][g_eMenuShown] || (GetTickCount() - g_ePlayerMenuData[playerid][g_eMenuTime]) < 600)
  497. {
  498. return CallLocalFunction("MS_OnPlayerClickPlayerTextDraw", "ii", playerid, _:playertextid);
  499. }
  500. if (playertextid == g_ePlayerMenuData[playerid][g_eMenuTextdraws][2])
  501. {
  502. CallLocalFunction("OnModelSelectionResponse", "ddddd", playerid, g_ePlayerMenuData[playerid][g_eMenuExtra], 0, 0, MODEL_RESPONSE_CANCEL);
  503. HideModelESelectionMenu(playerid);
  504. }
  505. else
  506. {
  507. if (playertextid == g_ePlayerMenuData[playerid][g_eMenuTextdraws][10])
  508. {
  509. if (g_ePlayerMenuData[playerid][g_eMenuPage] == g_ePlayerMenuData[playerid][g_eMenuPages])
  510. return 0;
  511.  
  512. else
  513. Menu_SetPage(playerid, g_ePlayerMenuData[playerid][g_eMenuPage] + 1);
  514. }
  515. else if (playertextid == g_ePlayerMenuData[playerid][g_eMenuTextdraws][11])
  516. {
  517. if (g_ePlayerMenuData[playerid][g_eMenuPage] < 2)
  518. return 0;
  519.  
  520. else
  521. Menu_SetPage(playerid, g_ePlayerMenuData[playerid][g_eMenuPage] - 1);
  522. }
  523. else for (new i = 0; i < 18; i ++)
  524. {
  525. if (g_ePlayerMenuData[playerid][g_eMenuItems][i] == playertextid)
  526. {
  527. new
  528. index = (i + (g_ePlayerMenuData[playerid][g_eMenuPage] - 1) * 18),
  529. extraid = g_ePlayerMenuData[playerid][g_eMenuExtra],
  530. modelid = g_ePlayerMenuData[playerid][g_eMenuModels][index];
  531.  
  532. HideModelESelectionMenu(playerid);
  533. CallLocalFunction("OnModelSelectionResponse", "ddddd", playerid, extraid, index, modelid, MODEL_RESPONSE_SELECT);
  534. break;
  535. }
  536. }
  537. }
  538. return CallLocalFunction("MS_OnPlayerClickPlayerTextDraw", "dd", playerid, _:playertextid);
  539. }
  540.  
  541. #if defined _ALS_OnPlayerClickTextDraw
  542. #undef OnPlayerClickTextDraw
  543. #else
  544. #define _ALS_OnPlayerClickTextDraw
  545. #endif
  546.  
  547. #if defined _ALS_OnPlayerClickPlayerTD
  548. #undef OnPlayerClickPlayerTextDraw
  549. #else
  550. #define _ALS_OnPlayerClickPlayerTD
  551. #endif
  552.  
  553. #define OnPlayerClickTextDraw MS_OnPlayerClickTextDraw
  554. #define OnPlayerClickPlayerTextDraw MS_OnPlayerClickPlayerTextDraw
  555.  
  556. forward MS_OnPlayerClickTextDraw(playerid, Text:clickedid);
  557. forward MS_OnPlayerClickPlayerTextDraw(playerid, PlayerText:playertextid);
  558.  
  559. forward OnModelSelectionResponse(playerid, extraid, index, modelid, response);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement