Advertisement
Guest User

Untitled

a guest
Nov 18th, 2016
141
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 5.17 KB | None | 0 0
  1. /*
  2.  
  3. Textdraw Menu v1.0
  4. Made by Jelly23
  5.  
  6. */
  7.  
  8. #include <a_samp>
  9.  
  10. /*Textdraws & Variables*/
  11. static PlayerText:J_TMenu[MAX_PLAYERS][2],
  12. MenuID[MAX_PLAYERS],pHasItems[MAX_PLAYERS];
  13.  
  14. /*Response callback*/
  15. forward OnTextMenuResponse(playerid,menuid,listitem);
  16.  
  17.  
  18. public OnPlayerConnect(playerid)
  19. {
  20.     MenuID[playerid] = -1;
  21.     pHasItems[playerid] = 0;
  22.     J_TMenu[playerid][0] = CreatePlayerTextDraw(playerid, 143.249816, 130.266815, "Header");
  23.     PlayerTextDrawLetterSize(playerid, J_TMenu[playerid][0], 0.541876, 1.489166);
  24.     PlayerTextDrawAlignment(playerid, J_TMenu[playerid][0], 2);
  25.     PlayerTextDrawColor(playerid, J_TMenu[playerid][0], -5963521);
  26.     PlayerTextDrawSetShadow(playerid, J_TMenu[playerid][0], 0);
  27.     PlayerTextDrawSetOutline(playerid, J_TMenu[playerid][0], 0);
  28.     PlayerTextDrawBackgroundColor(playerid, J_TMenu[playerid][0], 255);
  29.     PlayerTextDrawFont(playerid, J_TMenu[playerid][0], 3);
  30.     PlayerTextDrawSetProportional(playerid, J_TMenu[playerid][0], 1);
  31.     PlayerTextDrawSetShadow(playerid, J_TMenu[playerid][0], 0);
  32.  
  33.     J_TMenu[playerid][1] = CreatePlayerTextDraw(playerid, 30.724655, 129.533676, "Content");
  34.     PlayerTextDrawLetterSize(playerid, J_TMenu[playerid][1], 0.251874, 0.940833);
  35.     PlayerTextDrawTextSize(playerid, J_TMenu[playerid][1], 266.977142, 0.000000);
  36.     PlayerTextDrawAlignment(playerid, J_TMenu[playerid][1], 1);
  37.     PlayerTextDrawColor(playerid, J_TMenu[playerid][1], -1);
  38.     PlayerTextDrawUseBox(playerid, J_TMenu[playerid][1], 1);
  39.     PlayerTextDrawBoxColor(playerid, J_TMenu[playerid][1], 120);
  40.     PlayerTextDrawSetShadow(playerid, J_TMenu[playerid][1], 1);
  41.     PlayerTextDrawSetOutline(playerid, J_TMenu[playerid][1], 0);
  42.     PlayerTextDrawBackgroundColor(playerid, J_TMenu[playerid][1], 255);
  43.     PlayerTextDrawFont(playerid, J_TMenu[playerid][1], 1);
  44.     PlayerTextDrawSetProportional(playerid, J_TMenu[playerid][1], 1);
  45.     PlayerTextDrawSetShadow(playerid, J_TMenu[playerid][1], 1);
  46.     #if defined J_OnPlayerConnect
  47.         return J_OnPlayerConnect(playerid);
  48.     #else
  49.         return 1;
  50.     #endif
  51. }
  52.  
  53. public OnPlayerText(playerid, text[])
  54. {
  55.     if(MenuID[playerid] != -1)
  56.     {
  57.         if(pHasItems[playerid] != 0)
  58.         {
  59.             if(J_IsNumeric(text))
  60.             {
  61.                 if(strval(text) > 0 && strval(text) <= pHasItems[playerid])
  62.                 {
  63.                     new var;
  64.                     var = MenuID[playerid];
  65.                     MenuID[playerid] = -1;
  66.                     pHasItems[playerid] = 0;
  67.                     PlayerTextDrawHide(playerid,J_TMenu[playerid][0]);
  68.                     PlayerTextDrawHide(playerid,J_TMenu[playerid][1]);
  69.                    
  70.                     CallLocalFunction("OnTextMenuResponse", "iii", playerid,var,strval(text));
  71.                     return 0;
  72.                 }
  73.             }
  74.         }
  75.     }
  76.     #if defined J_OnPlayerText
  77.         return J_OnPlayerText(playerid, text);
  78.     #else
  79.         return 1;
  80.     #endif
  81. }
  82.  
  83. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  84. {
  85.     if (GetPlayerState(playerid) == PLAYER_STATE_ONFOOT)
  86.     {
  87.         if(MenuID[playerid] != -1)
  88.         {
  89.             if(newkeys == KEY_FIRE)
  90.             {
  91.                 MenuID[playerid] = -1;
  92.                 pHasItems[playerid] = 0;
  93.                 PlayerTextDrawHide(playerid,J_TMenu[playerid][0]);
  94.                 PlayerTextDrawHide(playerid,J_TMenu[playerid][1]);
  95.             }
  96.         }
  97.     }
  98.     #if defined J_OnPlayerKeyStateChange
  99.         return J_OnPlayerKeyStateChange(playerid, newkeys, oldkeys);
  100.     #else
  101.         return 1;
  102.     #endif
  103. }
  104.  
  105. static J_IsNumeric(const string[])
  106. {
  107.         for (new i = 0, j = strlen(string); i < j; i++)
  108.         {
  109.                 if (string[i] > '9' || string[i] < '0') return 0;
  110.         }
  111.         return 1;
  112. }
  113. stock TextMenuShowForPlayer(playerid,menuid,header[],content[],items=0)
  114. {
  115.     new J_Menustring[1028];
  116.     MenuID[playerid] = menuid;
  117.     PlayerTextDrawSetString(playerid, J_TMenu[playerid][0], header);
  118.     if(items != 0)
  119.     {
  120.         pHasItems[playerid] = items;
  121.         format(J_Menustring, sizeof(J_Menustring), "~n~~n~~n~%s~n~~n~~w~___________Press_~y~T_~w~Or_~y~F6~w~_and_type_option_number~n~_________________Press_~y~LMB_~w~to_close_this_box~n~~n~", content);
  122.     }
  123.     else
  124.     {
  125.         pHasItems[playerid] = 0;
  126.         format(J_Menustring, sizeof(J_Menustring), "~n~~n~~n~%s~n~~n~~w~_________________Press_~y~LMB_~w~to_close_this_box~n~~n~", content);
  127.     }
  128.     PlayerTextDrawSetString(playerid, J_TMenu[playerid][1], J_Menustring);
  129.     PlayerTextDrawShow(playerid,J_TMenu[playerid][0]);
  130.     PlayerTextDrawShow(playerid,J_TMenu[playerid][1]);
  131. }
  132. stock TextMenuHideForPlayer(playerid)
  133. {
  134.     MenuID[playerid] = -1;
  135.     pHasItems[playerid] = 0;
  136.     PlayerTextDrawHide(playerid,J_TMenu[playerid][0]);
  137.     PlayerTextDrawHide(playerid,J_TMenu[playerid][1]);
  138. }
  139.  
  140. #if defined _ALS_OnPlayerConnect
  141.     #undef OnPlayerConnect
  142. #else
  143.     #define _ALS_OnPlayerConnect
  144. #endif
  145. #define OnPlayerConnect     J_OnPlayerConnect
  146.  
  147. #if defined _ALS_OnPlayerKeyStateChange
  148.     #undef OnPlayerKeyStateChange
  149. #else
  150.     #define _ALS_OnPlayerKeyStateChange
  151. #endif
  152. #define OnPlayerKeyStateChange  J_OnPlayerKeyStateChange
  153.  
  154. #if defined _ALS_OnPlayerText
  155.     #undef OnPlayerText
  156. #else
  157.     #define _ALS_OnPlayerText
  158. #endif
  159. #define OnPlayerText    J_OnPlayerText
  160.  
  161. #if defined J_OnPlayerText
  162.     forward J_OnPlayerText(playerid, text[]);
  163. #endif
  164.  
  165. #if defined J_OnPlayerConnect
  166.     forward J_OnPlayerConnect(playerid);
  167. #endif
  168.  
  169. #if defined J_OnPlayerKeyStateChange
  170.     forward J_OnPlayerKeyStateChange(playerid, newkeys, oldkeys);
  171. #endif
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement