Guest User

Alternative Dialogs

a guest
Nov 22nd, 2016
237
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. //Alternative Dialogs by Nexius v3.5
  2.  
  3. #if defined _alt_dialogs_included
  4.     #endinput
  5. #endif
  6. #define _alt_dialogs_included
  7.  
  8. #include <a_samp>
  9.  
  10. #define AD_VERSION                      "3.5"
  11.  
  12. #define AD_STYLE_LIST                   2
  13.  
  14. //#define FAST_DOUBLE_CLICK
  15.  
  16. #if defined FAST_DOUBLE_CLICK
  17.     #define MAX_CLICK_INTERVAL          250
  18. #endif
  19.  
  20. #define AD_SELECTION_COLOR              -10
  21. #define AD_TITLE_COLOR                  -75
  22. #define AD_CLOSE_BUTTON_COLOR           -75
  23. #define AD_BUTTONS_COLOR                -75
  24. #define AD_UP_DOWN_BUTTONS_COLOR        -75
  25. #define AD_ITEMS_COLOR                  -75
  26.  
  27. #define AD_TITLE_BOX_COLOR              110
  28. #define AD_PANEL_BOX_COLOR              70
  29. #define AD_CLOSE_BUTTON_BOX_COLOR       -16777156
  30. #define AD_BUTTONS_BOX_COLOR            50
  31. #define AD_SCROLL_BOX_COLOR             35
  32. #define AD_UP_DOWN_BUTTONS_BOX_COLOR    25
  33. #define AD_ITEMS_BOX_COLOR              15
  34.  
  35. #define AD_SELECTED_ITEM_BOX_COLOR      35
  36.  
  37. #define AD_MAX_DIALOG_PAGES             3   //Change if you want
  38. #define AD_MAX_CAPTION_LENGTH           38
  39. #define AD_MAX_ITEM_LENGTH              40
  40. #define AD_MAX_BUTTONS_LENGTH           6
  41.  
  42. #define AD_INVALID_ID                   -1
  43.  
  44. static
  45.     adItemID[MAX_PLAYERS],
  46.     adPageID[MAX_PLAYERS],
  47.     adDialogID[MAX_PLAYERS],
  48.     adMaxItems[MAX_PLAYERS],
  49.     bool:adIgnoreEsc[MAX_PLAYERS],
  50.     #if defined FAST_DOUBLE_CLICK
  51.         adLastClicked[MAX_PLAYERS],
  52.     #endif
  53.  
  54.     Text:adArrayTDs[11] = {Text:65535, ...},
  55.     PlayerText:adArrayPTDs[MAX_PLAYERS][21],
  56.  
  57.     adItems[MAX_PLAYERS][AD_MAX_DIALOG_PAGES * 8][AD_MAX_ITEM_LENGTH];
  58.  
  59. #undef AD_MAX_ITEM_LENGTH
  60.  
  61. forward OnAltDialogResponse(playerid, dialogid, response, listitem);
  62.  
  63. //To unlock the Easter egg, uncomment the next line...
  64. //#define EASTER_EGG_WHITE_STYLE
  65.  
  66. #if defined EASTER_EGG_WHITE_STYLE
  67.     #undef AD_SELECTION_COLOR
  68.     #define AD_SELECTION_COLOR              50
  69.     #undef AD_TITLE_COLOR
  70.     #define AD_TITLE_COLOR                  100
  71.     #undef AD_CLOSE_BUTTON_COLOR
  72.     #define AD_CLOSE_BUTTON_COLOR           100
  73.     #undef AD_BUTTONS_COLOR
  74.     #define AD_BUTTONS_COLOR                100
  75.     #undef AD_UP_DOWN_BUTTONS_COLOR
  76.     #define AD_UP_DOWN_BUTTONS_COLOR        100
  77.     #undef AD_ITEMS_COLOR
  78.     #define AD_ITEMS_COLOR                  100
  79.  
  80.     #undef AD_TITLE_BOX_COLOR
  81.     #define AD_TITLE_BOX_COLOR              -170
  82.     #undef AD_PANEL_BOX_COLOR
  83.     #define AD_PANEL_BOX_COLOR              -165
  84.     #undef AD_CLOSE_BUTTON_BOX_COLOR
  85.     #define AD_CLOSE_BUTTON_BOX_COLOR       -16777156
  86.     #undef AD_BUTTONS_BOX_COLOR
  87.     #define AD_BUTTONS_BOX_COLOR            -160
  88.     #undef AD_UP_DOWN_BUTTONS_BOX_COLOR
  89.     #define AD_UP_DOWN_BUTTONS_BOX_COLOR    -155
  90.     #undef AD_ITEMS_BOX_COLOR
  91.     #define AD_ITEMS_BOX_COLOR              -150
  92.     #undef AD_SCROLL_BOX_COLOR
  93.     #define AD_SCROLL_BOX_COLOR             -125
  94.  
  95.     #undef AD_SELECTED_ITEM_BOX_COLOR
  96.     #define AD_SELECTED_ITEM_BOX_COLOR      -80
  97. #endif
  98.  
  99. #if defined _inc_y_hooks || defined _INC_y_hooks
  100.     hook OnGameModeInit()
  101. #else
  102.     public OnGameModeInit()
  103. #endif
  104. {
  105.     adArrayTDs[0] = TextDrawCreate(470.0, 140.0, "_"); //Title box
  106.     TextDrawTextSize(adArrayTDs[0], 175.0, 0.0);
  107.     TextDrawLetterSize(adArrayTDs[0], 0.0, 1.3);
  108.     TextDrawUseBox(adArrayTDs[0], 1);
  109.     TextDrawBoxColor(adArrayTDs[0], AD_TITLE_BOX_COLOR);
  110.     #undef AD_TITLE_BOX_COLOR
  111.  
  112.     adArrayTDs[1] = TextDrawCreate(470.0, 155.0, "_"); //Panel box
  113.     TextDrawTextSize(adArrayTDs[1], 175.0, 0.0);
  114.     TextDrawLetterSize(adArrayTDs[1], 0.0, 17.1);
  115.     TextDrawUseBox(adArrayTDs[1], 1);
  116.     TextDrawBoxColor(adArrayTDs[1], AD_PANEL_BOX_COLOR);
  117.     #undef AD_PANEL_BOX_COLOR
  118.  
  119.     adArrayTDs[2] = TextDrawCreate(470.0, 140.0, "_"); //Close button box
  120.     TextDrawTextSize(adArrayTDs[2], 446.0, 12.0);
  121.     TextDrawLetterSize(adArrayTDs[2], 0.0, 1.3);
  122.     TextDrawUseBox(adArrayTDs[2], 1);
  123.     TextDrawBoxColor(adArrayTDs[2], AD_CLOSE_BUTTON_BOX_COLOR);
  124.     #undef AD_CLOSE_BUTTON_BOX_COLOR
  125.  
  126.     adArrayTDs[3] = TextDrawCreate(314.0, 290.5, "_"); //Button 1 box
  127.     TextDrawTextSize(adArrayTDs[3], 264.0, 12.0);
  128.     TextDrawLetterSize(adArrayTDs[3], 0.0, 1.3);
  129.     TextDrawUseBox(adArrayTDs[3], 1);
  130.     TextDrawBoxColor(adArrayTDs[3], AD_BUTTONS_BOX_COLOR);
  131.  
  132.     adArrayTDs[4] = TextDrawCreate(376.0, 290.5, "_"); //Button 2 box
  133.     TextDrawTextSize(adArrayTDs[4], 325.0, 12.0);
  134.     TextDrawLetterSize(adArrayTDs[4], 0.0, 1.3);
  135.     TextDrawUseBox(adArrayTDs[4], 1);
  136.     TextDrawBoxColor(adArrayTDs[4], AD_BUTTONS_BOX_COLOR);
  137.  
  138.     adArrayTDs[5] = TextDrawCreate(346.0, 290.5, "_"); //Button 1 box only
  139.     TextDrawTextSize(adArrayTDs[5], 296.0, 12.0);
  140.     TextDrawLetterSize(adArrayTDs[5], 0.0, 1.3);
  141.     TextDrawUseBox(adArrayTDs[5], 1);
  142.     TextDrawBoxColor(adArrayTDs[5], AD_BUTTONS_BOX_COLOR);
  143.     #undef AD_BUTTONS_BOX_COLOR
  144.  
  145.     adArrayTDs[6] = TextDrawCreate(470.0, 155.0, "_"); //Up button box
  146.     TextDrawTextSize(adArrayTDs[6], 460.0, 5.0);
  147.     TextDrawLetterSize(adArrayTDs[6], 0.0, 1.3);
  148.     TextDrawUseBox(adArrayTDs[6], 1);
  149.     TextDrawBoxColor(adArrayTDs[6], AD_UP_DOWN_BUTTONS_BOX_COLOR);
  150.  
  151.     adArrayTDs[7] = TextDrawCreate(470.0, 262.0, "_"); //Down button box
  152.     TextDrawTextSize(adArrayTDs[7], 460.0, 5.0);
  153.     TextDrawLetterSize(adArrayTDs[7], 0.0, 1.3);
  154.     TextDrawUseBox(adArrayTDs[7], 1);
  155.     TextDrawBoxColor(adArrayTDs[7], AD_UP_DOWN_BUTTONS_BOX_COLOR);
  156.     #undef AD_UP_DOWN_BUTTONS_BOX_COLOR
  157.  
  158.     adArrayTDs[8] = TextDrawCreate(454.0, 141.0, "X"); //Close button
  159.     TextDrawFont(adArrayTDs[8], 2);
  160.     TextDrawTextSize(adArrayTDs[8], 465.0, 12.0);
  161.     TextDrawLetterSize(adArrayTDs[8], 0.27, 0.9);
  162.     TextDrawColor(adArrayTDs[8], AD_CLOSE_BUTTON_COLOR);
  163.     #undef AD_CLOSE_BUTTON_COLOR
  164.     TextDrawSetShadow(adArrayTDs[8], 0);
  165.     TextDrawSetSelectable(adArrayTDs[8], 1);
  166.  
  167.     adArrayTDs[9] = TextDrawCreate(462.3, 165.0, "v"); //Up button
  168.     TextDrawFont(adArrayTDs[9], 2);
  169.     TextDrawTextSize(adArrayTDs[9], 471.0, 4.5);
  170.     TextDrawLetterSize(adArrayTDs[9], 0.18, -0.8);
  171.     TextDrawColor(adArrayTDs[9], AD_UP_DOWN_BUTTONS_COLOR);
  172.     TextDrawSetShadow(adArrayTDs[9], 0);
  173.     TextDrawSetSelectable(adArrayTDs[9], 1);
  174.  
  175.     adArrayTDs[10] = TextDrawCreate(462.3, 264.0, "v"); //Down button
  176.     TextDrawFont(adArrayTDs[10], 2);
  177.     TextDrawTextSize(adArrayTDs[10], 471.0, 4.5);
  178.     TextDrawLetterSize(adArrayTDs[10], 0.18, 0.8);
  179.     TextDrawColor(adArrayTDs[10], AD_UP_DOWN_BUTTONS_COLOR);
  180.     #undef AD_UP_DOWN_BUTTONS_COLOR
  181.     TextDrawSetShadow(adArrayTDs[10], 0);
  182.     TextDrawSetSelectable(adArrayTDs[10], 1);
  183.  
  184.     printf("Alternative Dialogs v%s by Nexius loaded!\n", AD_VERSION);
  185.     #if !defined _inc_y_hooks && !defined _INC_y_hooks\
  186.         && defined ad_OnGameModeInit
  187.         return ad_OnGameModeInit();
  188.     #else
  189.         return 1;
  190.     #endif
  191. }
  192.  
  193. #if !defined _inc_y_hooks && !defined _INC_y_hooks
  194.     #if defined _ALS_OnGameModeInit
  195.         #undef OnGameModeInit
  196.     #else
  197.         #define _ALS_OnGameModeInit
  198.     #endif
  199.     #define OnGameModeInit ad_OnGameModeInit
  200.     #if defined ad_OnGameModeInit
  201.         forward ad_OnGameModeInit();
  202.     #endif
  203. #endif
  204.  
  205. #if defined _inc_y_hooks || defined _INC_y_hooks
  206.     hook OnGameModeExit()
  207. #else
  208.     public OnGameModeExit()
  209. #endif
  210. {
  211.     for(new i = sizeof(adArrayTDs) - 1; i != -1; --i) TextDrawDestroy(adArrayTDs[i]);
  212.     #if !defined _inc_y_hooks && !defined _INC_y_hooks\
  213.         && defined ad_OnGameModeExit
  214.         return ad_OnGameModeExit();
  215.     #else
  216.         return 1;
  217.     #endif
  218. }
  219.  
  220. #if !defined _inc_y_hooks && !defined _INC_y_hooks
  221.     #if defined _ALS_OnGameModeExit
  222.         #undef OnGameModeExit
  223.     #else
  224.         #define _ALS_OnGameModeExit
  225.     #endif
  226.     #define OnGameModeExit ad_OnGameModeExit
  227.     #if defined ad_OnGameModeExit
  228.         forward ad_OnGameModeExit();
  229.     #endif
  230. #endif
  231.  
  232. #if defined _inc_y_hooks || defined _INC_y_hooks
  233.     hook OnPlayerConnect(playerid)
  234. #else
  235.     public OnPlayerConnect(playerid)
  236. #endif
  237. {
  238.     adIgnoreEsc[playerid] = false;
  239.     adDialogID[playerid] = AD_INVALID_ID;
  240.     for(new i = sizeof(adArrayPTDs[]) - 1; i != -1; --i) adArrayPTDs[playerid][i] = PlayerText:65535;
  241.     #if !defined _inc_y_hooks && !defined _INC_y_hooks\
  242.         && defined ad_OnPlayerConnect
  243.         return ad_OnPlayerConnect(playerid);
  244.     #else
  245.         return 1;
  246.     #endif
  247. }
  248.  
  249. #if !defined _inc_y_hooks && !defined _INC_y_hooks
  250.     #if defined _ALS_OnPlayerConnect
  251.         #undef OnPlayerConnect
  252.     #else
  253.         #define _ALS_OnPlayerConnect
  254.     #endif
  255.     #define OnPlayerConnect ad_OnPlayerConnect
  256.     #if defined ad_OnPlayerConnect
  257.         forward ad_OnPlayerConnect(playerid);
  258.     #endif
  259. #endif
  260.  
  261. #if defined _inc_y_hooks || defined _INC_y_hooks
  262.     hook OnPlayerClickTextDraw(playerid, Text:clickedid)
  263. #else
  264.     public OnPlayerClickTextDraw(playerid, Text:clickedid)
  265. #endif
  266. {
  267.     if(adIgnoreEsc[playerid] && clickedid == Text:65535) adIgnoreEsc[playerid] = false;
  268.     else if(adDialogID[playerid] != AD_INVALID_ID)
  269.     {
  270.         if(clickedid == Text:65535 || clickedid == adArrayTDs[8])
  271.         {
  272.             new tmp_dialogid = adDialogID[playerid], tmp_itemid = adItemID[playerid];
  273.             ShowPlayerAltDialog(playerid, AD_INVALID_ID, -1, "", "", "");
  274.             CallRemoteFunction("OnAltDialogResponse", "iiii", playerid, tmp_dialogid, 2, tmp_itemid);
  275.         }
  276.         else if(clickedid == adArrayTDs[9])
  277.         {
  278.             if(adPageID[playerid] > 0)
  279.             {
  280.                 new i, Float:ssize, Float:spos;
  281.                 adPageID[playerid]--;
  282.                 adItemID[playerid] = adPageID[playerid] * 8;
  283.                 for(i = 11; i != 4; --i)
  284.                 {
  285.                     PlayerTextDrawBoxColor(playerid, adArrayPTDs[playerid][i], AD_ITEMS_BOX_COLOR);
  286.                     PlayerTextDrawShow(playerid, adArrayPTDs[playerid][i]);
  287.                 }
  288.                 PlayerTextDrawBoxColor(playerid, adArrayPTDs[playerid][4], AD_SELECTED_ITEM_BOX_COLOR);
  289.                 PlayerTextDrawShow(playerid, adArrayPTDs[playerid][4]);
  290.                 i = adPageID[playerid] * 8;
  291.                 for(new j = i + 8, c; i < j; i++)
  292.                 {
  293.                     PlayerTextDrawSetString(playerid, adArrayPTDs[playerid][12 + c], adItems[playerid][i]);
  294.                     if(!adItems[playerid][i][0]) PlayerTextDrawSetSelectable(playerid, adArrayPTDs[playerid][12 + c], 0);
  295.                     else PlayerTextDrawSetSelectable(playerid, adArrayPTDs[playerid][12 + c], 1);
  296.                     PlayerTextDrawShow(playerid, adArrayPTDs[playerid][12 + c]);
  297.                     c++;
  298.                 }
  299.                 PlayerTextDrawDestroy(playerid, adArrayPTDs[playerid][20]);
  300.                 ssize = 9.8 / (floatround(adMaxItems[playerid] / 8, floatround_tozero) + 1);
  301.                 spos = (ssize * 9) * adPageID[playerid];
  302.                 adArrayPTDs[playerid][20] = CreatePlayerTextDraw(playerid, 470.0, 170.3 + spos, "_"); //Scroll box
  303.                 PlayerTextDrawTextSize(playerid, adArrayPTDs[playerid][20], 460.0, 5.0);
  304.                 PlayerTextDrawLetterSize(playerid, adArrayPTDs[playerid][20], 0.0, ssize);
  305.                 PlayerTextDrawUseBox(playerid, adArrayPTDs[playerid][20], 1);
  306.                 PlayerTextDrawBoxColor(playerid, adArrayPTDs[playerid][20], AD_SCROLL_BOX_COLOR);
  307.                 PlayerTextDrawShow(playerid, adArrayPTDs[playerid][20]);
  308.             }
  309.         }
  310.         else if(clickedid == adArrayTDs[10])
  311.         {
  312.             if(adPageID[playerid] < floatround(adMaxItems[playerid] / 8, floatround_tozero))
  313.             {
  314.                 new i, Float:ssize, Float:spos;
  315.                 adPageID[playerid]++;
  316.                 adItemID[playerid] = adPageID[playerid] * 8;
  317.                 for(i = 11; i != 4; --i)
  318.                 {
  319.                     PlayerTextDrawBoxColor(playerid, adArrayPTDs[playerid][i], AD_ITEMS_BOX_COLOR);
  320.                     PlayerTextDrawShow(playerid, adArrayPTDs[playerid][i]);
  321.                 }
  322.                 PlayerTextDrawBoxColor(playerid, adArrayPTDs[playerid][4], AD_SELECTED_ITEM_BOX_COLOR);
  323.                 PlayerTextDrawShow(playerid, adArrayPTDs[playerid][4]);
  324.                 i = adPageID[playerid] * 8;
  325.                 for(new j = i + 8, c; i < j; i++)
  326.                 {
  327.                     PlayerTextDrawSetString(playerid, adArrayPTDs[playerid][12 + c], adItems[playerid][i]);
  328.                     if(!adItems[playerid][i][0]) PlayerTextDrawSetSelectable(playerid, adArrayPTDs[playerid][12 + c], 0);
  329.                     else PlayerTextDrawSetSelectable(playerid, adArrayPTDs[playerid][12 + c], 1);
  330.                     PlayerTextDrawShow(playerid, adArrayPTDs[playerid][12 + c]);
  331.                     c++;
  332.                 }
  333.                 PlayerTextDrawDestroy(playerid, adArrayPTDs[playerid][20]);
  334.                 ssize = 9.8 / (floatround(adMaxItems[playerid] / 8, floatround_tozero) + 1);
  335.                 spos = (ssize * 9) * adPageID[playerid];
  336.                 adArrayPTDs[playerid][20] = CreatePlayerTextDraw(playerid, 470.0, 170.3 + spos, "_"); //Scroll box
  337.                 PlayerTextDrawTextSize(playerid, adArrayPTDs[playerid][20], 460.0, 5.0);
  338.                 PlayerTextDrawLetterSize(playerid, adArrayPTDs[playerid][20], 0.0, ssize);
  339.                 PlayerTextDrawUseBox(playerid, adArrayPTDs[playerid][20], 1);
  340.                 PlayerTextDrawBoxColor(playerid, adArrayPTDs[playerid][20], AD_SCROLL_BOX_COLOR);
  341.                 PlayerTextDrawShow(playerid, adArrayPTDs[playerid][20]);
  342.             }
  343.         }
  344.     }
  345.     #if !defined _inc_y_hooks && !defined _INC_y_hooks\
  346.         && defined ad_OnPlayerClickTextDraw
  347.         return ad_OnPlayerClickTextDraw(playerid, clickedid);
  348.     #else
  349.         return 1;
  350.     #endif
  351. }
  352.  
  353. #if !defined _inc_y_hooks && !defined _INC_y_hooks
  354.     #if defined _ALS_OnPlayerClickTextDraw
  355.         #undef OnPlayerClickTextDraw
  356.     #else
  357.         #define _ALS_OnPlayerClickTextDraw
  358.     #endif
  359.     #define OnPlayerClickTextDraw ad_OnPlayerClickTextDraw
  360.     #if defined ad_OnPlayerClickTextDraw
  361.         forward ad_OnPlayerClickTextDraw(playerid, Text:clickedid);
  362.     #endif
  363. #endif
  364.  
  365. #if defined _inc_y_hooks || defined _INC_y_hooks
  366.     hook OnPlayerClickPlayerTD(playerid, PlayerText:playertextid)
  367. #else
  368.     public OnPlayerClickPlayerTextDraw(playerid, PlayerText:playertextid)
  369. #endif
  370. {
  371.     if(adDialogID[playerid] != AD_INVALID_ID)
  372.     {
  373.         if(playertextid == adArrayPTDs[playerid][1] || playertextid == adArrayPTDs[playerid][2])
  374.         {
  375.             new tmp_dialogid = adDialogID[playerid], tmp_itemid = adItemID[playerid];
  376.             ShowPlayerAltDialog(playerid, AD_INVALID_ID, -1, "", "", "");
  377.             CallRemoteFunction("OnAltDialogResponse", "iiii", playerid, tmp_dialogid, 1, tmp_itemid);
  378.         }
  379.         else if(playertextid == adArrayPTDs[playerid][3])
  380.         {
  381.             new tmp_dialogid = adDialogID[playerid], tmp_itemid = adItemID[playerid];
  382.             ShowPlayerAltDialog(playerid, AD_INVALID_ID, -1, "", "", "");
  383.             CallRemoteFunction("OnAltDialogResponse", "iiii", playerid, tmp_dialogid, 0, tmp_itemid);
  384.         }
  385.         else
  386.         {
  387.             #if defined FAST_DOUBLE_CLICK
  388.                 new gtc = GetTickCount();
  389.             #endif
  390.             if(playertextid == adArrayPTDs[playerid][12])
  391.             {
  392.                 PlayerTextDrawBoxColor(playerid, adArrayPTDs[playerid][4], AD_SELECTED_ITEM_BOX_COLOR);
  393.                 PlayerTextDrawShow(playerid, adArrayPTDs[playerid][4]);
  394.                 if(adItemID[playerid] == 0 + (adPageID[playerid] * 8))
  395.                 {
  396.                     #if defined FAST_DOUBLE_CLICK
  397.                         if(gtc - adLastClicked[playerid] <= MAX_CLICK_INTERVAL)
  398.                         {
  399.                     #endif
  400.                     new tmp_dialogid = adDialogID[playerid], tmp_itemid = adItemID[playerid];
  401.                     ShowPlayerAltDialog(playerid, AD_INVALID_ID, -1, "", "", "");
  402.                     CallRemoteFunction("OnAltDialogResponse", "iiii", playerid, tmp_dialogid, 1, tmp_itemid);
  403.                     #if defined FAST_DOUBLE_CLICK
  404.                         }
  405.                     #endif
  406.                 }
  407.                 else
  408.                 {
  409.                     if(adItemID[playerid] > 7) adItemID[playerid] %= 8;
  410.                     PlayerTextDrawBoxColor(playerid, adArrayPTDs[playerid][adItemID[playerid] + 4], AD_ITEMS_BOX_COLOR);
  411.                     PlayerTextDrawShow(playerid, adArrayPTDs[playerid][adItemID[playerid] + 4]);
  412.                 }
  413.                 adItemID[playerid] = 0 + (adPageID[playerid] * 8);
  414.                 #if defined FAST_DOUBLE_CLICK
  415.                     adLastClicked[playerid] = gtc;
  416.                 #endif
  417.             }
  418.             else if(playertextid == adArrayPTDs[playerid][13])
  419.             {
  420.                 PlayerTextDrawBoxColor(playerid, adArrayPTDs[playerid][5], AD_SELECTED_ITEM_BOX_COLOR);
  421.                 PlayerTextDrawShow(playerid, adArrayPTDs[playerid][5]);
  422.                 if(adItemID[playerid] == 1 + (adPageID[playerid] * 8))
  423.                 {
  424.                     #if defined FAST_DOUBLE_CLICK
  425.                         if(gtc - adLastClicked[playerid] <= MAX_CLICK_INTERVAL)
  426.                         {
  427.                     #endif
  428.                     new tmp_dialogid = adDialogID[playerid], tmp_itemid = adItemID[playerid];
  429.                     ShowPlayerAltDialog(playerid, AD_INVALID_ID, -1, "", "", "");
  430.                     CallRemoteFunction("OnAltDialogResponse", "iiii", playerid, tmp_dialogid, 1, tmp_itemid);
  431.                     #if defined FAST_DOUBLE_CLICK
  432.                         }
  433.                     #endif
  434.                 }
  435.                 else
  436.                 {
  437.                     if(adItemID[playerid] > 7) adItemID[playerid] %= 8;
  438.                     PlayerTextDrawBoxColor(playerid, adArrayPTDs[playerid][adItemID[playerid] + 4], AD_ITEMS_BOX_COLOR);
  439.                     PlayerTextDrawShow(playerid, adArrayPTDs[playerid][adItemID[playerid] + 4]);
  440.                 }
  441.                 adItemID[playerid] = 1 + (adPageID[playerid] * 8);
  442.                 #if defined FAST_DOUBLE_CLICK
  443.                     adLastClicked[playerid] = gtc;
  444.                 #endif
  445.             }
  446.             else if(playertextid == adArrayPTDs[playerid][14])
  447.             {
  448.                 PlayerTextDrawBoxColor(playerid, adArrayPTDs[playerid][6], AD_SELECTED_ITEM_BOX_COLOR);
  449.                 PlayerTextDrawShow(playerid, adArrayPTDs[playerid][6]);
  450.                 if(adItemID[playerid] == 2 + (adPageID[playerid] * 8))
  451.                 {
  452.                     #if defined FAST_DOUBLE_CLICK
  453.                         if(gtc - adLastClicked[playerid] <= MAX_CLICK_INTERVAL)
  454.                         {
  455.                     #endif
  456.                     new tmp_dialogid = adDialogID[playerid], tmp_itemid = adItemID[playerid];
  457.                     ShowPlayerAltDialog(playerid, AD_INVALID_ID, -1, "", "", "");
  458.                     CallRemoteFunction("OnAltDialogResponse", "iiii", playerid, tmp_dialogid, 1, tmp_itemid);
  459.                     #if defined FAST_DOUBLE_CLICK
  460.                         }
  461.                     #endif
  462.                 }
  463.                 else
  464.                 {
  465.                     if(adItemID[playerid] > 7) adItemID[playerid] %= 8;
  466.                     PlayerTextDrawBoxColor(playerid, adArrayPTDs[playerid][adItemID[playerid] + 4], AD_ITEMS_BOX_COLOR);
  467.                     PlayerTextDrawShow(playerid, adArrayPTDs[playerid][adItemID[playerid] + 4]);
  468.                 }
  469.                 adItemID[playerid] = 2 + (adPageID[playerid] * 8);
  470.                 #if defined FAST_DOUBLE_CLICK
  471.                     adLastClicked[playerid] = gtc;
  472.                 #endif
  473.             }
  474.             else if(playertextid == adArrayPTDs[playerid][15])
  475.             {
  476.                 PlayerTextDrawBoxColor(playerid, adArrayPTDs[playerid][7], AD_SELECTED_ITEM_BOX_COLOR);
  477.                 PlayerTextDrawShow(playerid, adArrayPTDs[playerid][7]);
  478.                 if(adItemID[playerid] == 3 + (adPageID[playerid] * 8))
  479.                 {
  480.                     #if defined FAST_DOUBLE_CLICK
  481.                         if(gtc - adLastClicked[playerid] <= MAX_CLICK_INTERVAL)
  482.                         {
  483.                     #endif
  484.                     new tmp_dialogid = adDialogID[playerid], tmp_itemid = adItemID[playerid];
  485.                     ShowPlayerAltDialog(playerid, AD_INVALID_ID, -1, "", "", "");
  486.                     CallRemoteFunction("OnAltDialogResponse", "iiii", playerid, tmp_dialogid, 1, tmp_itemid);
  487.                     #if defined FAST_DOUBLE_CLICK
  488.                         }
  489.                     #endif
  490.                 }
  491.                 else
  492.                 {
  493.                     if(adItemID[playerid] > 7) adItemID[playerid] %= 8;
  494.                     PlayerTextDrawBoxColor(playerid, adArrayPTDs[playerid][adItemID[playerid] + 4], AD_ITEMS_BOX_COLOR);
  495.                     PlayerTextDrawShow(playerid, adArrayPTDs[playerid][adItemID[playerid] + 4]);
  496.                 }
  497.                 adItemID[playerid] = 3 + (adPageID[playerid] * 8);
  498.                 #if defined FAST_DOUBLE_CLICK
  499.                     adLastClicked[playerid] = gtc;
  500.                 #endif
  501.             }
  502.             else if(playertextid == adArrayPTDs[playerid][16])
  503.             {
  504.                 PlayerTextDrawBoxColor(playerid, adArrayPTDs[playerid][8], AD_SELECTED_ITEM_BOX_COLOR);
  505.                 PlayerTextDrawShow(playerid, adArrayPTDs[playerid][8]);
  506.                 if(adItemID[playerid] == 4 + (adPageID[playerid] * 8))
  507.                 {
  508.                     #if defined FAST_DOUBLE_CLICK
  509.                         if(gtc - adLastClicked[playerid] <= MAX_CLICK_INTERVAL)
  510.                         {
  511.                     #endif
  512.                     new tmp_dialogid = adDialogID[playerid], tmp_itemid = adItemID[playerid];
  513.                     ShowPlayerAltDialog(playerid, AD_INVALID_ID, -1, "", "", "");
  514.                     CallRemoteFunction("OnAltDialogResponse", "iiii", playerid, tmp_dialogid, 1, tmp_itemid);
  515.                     #if defined FAST_DOUBLE_CLICK
  516.                         }
  517.                     #endif
  518.                 }
  519.                 else
  520.                 {
  521.                     if(adItemID[playerid] > 7) adItemID[playerid] %= 8;
  522.                     PlayerTextDrawBoxColor(playerid, adArrayPTDs[playerid][adItemID[playerid] + 4], AD_ITEMS_BOX_COLOR);
  523.                     PlayerTextDrawShow(playerid, adArrayPTDs[playerid][adItemID[playerid] + 4]);
  524.                 }
  525.                 adItemID[playerid] = 4 + (adPageID[playerid] * 8);
  526.                 #if defined FAST_DOUBLE_CLICK
  527.                     adLastClicked[playerid] = gtc;
  528.                 #endif
  529.             }
  530.             else if(playertextid == adArrayPTDs[playerid][17])
  531.             {
  532.                 PlayerTextDrawBoxColor(playerid, adArrayPTDs[playerid][9], AD_SELECTED_ITEM_BOX_COLOR);
  533.                 PlayerTextDrawShow(playerid, adArrayPTDs[playerid][9]);
  534.                 if(adItemID[playerid] == 5 + (adPageID[playerid] * 8))
  535.                 {
  536.                     #if defined FAST_DOUBLE_CLICK
  537.                         if(gtc - adLastClicked[playerid] <= MAX_CLICK_INTERVAL)
  538.                         {
  539.                     #endif
  540.                     new tmp_dialogid = adDialogID[playerid], tmp_itemid = adItemID[playerid];
  541.                     ShowPlayerAltDialog(playerid, AD_INVALID_ID, -1, "", "", "");
  542.                     CallRemoteFunction("OnAltDialogResponse", "iiii", playerid, tmp_dialogid, 1, tmp_itemid);
  543.                     #if defined FAST_DOUBLE_CLICK
  544.                         }
  545.                     #endif
  546.                 }
  547.                 else
  548.                 {
  549.                     if(adItemID[playerid] > 7) adItemID[playerid] %= 8;
  550.                     PlayerTextDrawBoxColor(playerid, adArrayPTDs[playerid][adItemID[playerid] + 4], AD_ITEMS_BOX_COLOR);
  551.                     PlayerTextDrawShow(playerid, adArrayPTDs[playerid][adItemID[playerid] + 4]);
  552.                 }
  553.                 adItemID[playerid] = 5 + (adPageID[playerid] * 8);
  554.                 #if defined FAST_DOUBLE_CLICK
  555.                     adLastClicked[playerid] = gtc;
  556.                 #endif
  557.             }
  558.             else if(playertextid == adArrayPTDs[playerid][18])
  559.             {
  560.                 PlayerTextDrawBoxColor(playerid, adArrayPTDs[playerid][10], AD_SELECTED_ITEM_BOX_COLOR);
  561.                 PlayerTextDrawShow(playerid, adArrayPTDs[playerid][10]);
  562.                 if(adItemID[playerid] == 6 + (adPageID[playerid] * 8))
  563.                 {
  564.                     #if defined FAST_DOUBLE_CLICK
  565.                         if(gtc - adLastClicked[playerid] <= MAX_CLICK_INTERVAL)
  566.                         {
  567.                     #endif
  568.                     new tmp_dialogid = adDialogID[playerid], tmp_itemid = adItemID[playerid];
  569.                     ShowPlayerAltDialog(playerid, AD_INVALID_ID, -1, "", "", "");
  570.                     CallRemoteFunction("OnAltDialogResponse", "iiii", playerid, tmp_dialogid, 1, tmp_itemid);
  571.                     #if defined FAST_DOUBLE_CLICK
  572.                         }
  573.                     #endif
  574.                 }
  575.                 else
  576.                 {
  577.                     if(adItemID[playerid] > 7) adItemID[playerid] %= 8;
  578.                     PlayerTextDrawBoxColor(playerid, adArrayPTDs[playerid][adItemID[playerid] + 4], AD_ITEMS_BOX_COLOR);
  579.                     PlayerTextDrawShow(playerid, adArrayPTDs[playerid][adItemID[playerid] + 4]);
  580.                 }
  581.                 adItemID[playerid] = 6 + (adPageID[playerid] * 8);
  582.                 #if defined FAST_DOUBLE_CLICK
  583.                     adLastClicked[playerid] = gtc;
  584.                 #endif
  585.             }
  586.             else if(playertextid == adArrayPTDs[playerid][19])
  587.             {
  588.                 PlayerTextDrawBoxColor(playerid, adArrayPTDs[playerid][11], AD_SELECTED_ITEM_BOX_COLOR);
  589.                 PlayerTextDrawShow(playerid, adArrayPTDs[playerid][11]);
  590.                 if(adItemID[playerid] == 7 + (adPageID[playerid] * 8))
  591.                 {
  592.                     #if defined FAST_DOUBLE_CLICK
  593.                         if(gtc - adLastClicked[playerid] <= MAX_CLICK_INTERVAL)
  594.                         {
  595.                     #endif
  596.                     new tmp_dialogid = adDialogID[playerid], tmp_itemid = adItemID[playerid];
  597.                     ShowPlayerAltDialog(playerid, AD_INVALID_ID, -1, "", "", "");
  598.                     CallRemoteFunction("OnAltDialogResponse", "iiii", playerid, tmp_dialogid, 1, tmp_itemid);
  599.                     #if defined FAST_DOUBLE_CLICK
  600.                         }
  601.                     #endif
  602.                 }
  603.                 else
  604.                 {
  605.                     if(adItemID[playerid] > 7) adItemID[playerid] %= 8;
  606.                     PlayerTextDrawBoxColor(playerid, adArrayPTDs[playerid][adItemID[playerid] + 4], AD_ITEMS_BOX_COLOR);
  607.                     PlayerTextDrawShow(playerid, adArrayPTDs[playerid][adItemID[playerid] + 4]);
  608.                 }
  609.                 adItemID[playerid] = 7 + (adPageID[playerid] * 8);
  610.                 #if defined FAST_DOUBLE_CLICK
  611.                     adLastClicked[playerid] = gtc;
  612.                 #endif
  613.             }
  614.         }
  615.     }
  616.     #if !defined _inc_y_hooks && !defined _INC_y_hooks\
  617.         && defined ad_OnPlayerClickPlayerTextDraw
  618.         return ad_OnPlayerClickPlayerTextDraw(playerid, playertextid);
  619.     #else
  620.         return 1;
  621.     #endif
  622. }
  623.  
  624. #if !defined _inc_y_hooks && !defined _INC_y_hooks
  625.     #if defined _ALS_OnPlayerClickPlayerTextDra\
  626.         || defined _ALS_OnPlayerClickPlayerTD || defined _ALS_OnPlayer\
  627.         ClickPlayerTextDraw
  628.         #undef OnPlayerClickPlayerTextDraw
  629.     #else
  630.         #define _ALS_OnPlayerClickPlayerTD
  631.     #endif
  632.     #define OnPlayerClickPlayerTextDraw ad_OnPlayerClickPlayerTextDraw
  633.     #if defined ad_OnPlayerClickPlayerTextDraw
  634.         forward ad_OnPlayerClickPlayerTextDraw(playerid, PlayerText:playertextid);
  635.     #endif
  636. #endif
  637.  
  638. #if defined FAST_DOUBLE_CLICK
  639.     #undef FAST_DOUBLE_CLICK
  640.     #undef MAX_CLICK_INTERVAL
  641. #endif
  642.  
  643. ShowPlayerAltDialog(playerid, dialogid, style, caption[], info[], button1[], button2[] = "")
  644. {
  645.     if(IsPlayerConnected(playerid))
  646.     {
  647.         new i;
  648.         adDialogID[playerid] = AD_INVALID_ID;
  649.         for(i = (AD_MAX_DIALOG_PAGES * 8) - 1; i != -1; --i) adItems[playerid][i][0] = EOS;
  650.         #undef AD_MAX_DIALOG_PAGES
  651.         for(i = sizeof(adArrayTDs) - 1; i != -1; --i) TextDrawHideForPlayer(playerid, adArrayTDs[i]);
  652.         for(i = sizeof(adArrayPTDs[]) - 1; i != -1; --i)
  653.         {
  654.             PlayerTextDrawDestroy(playerid, adArrayPTDs[playerid][i]);
  655.             adArrayPTDs[playerid][i] = PlayerText:65535;
  656.         }
  657.         if(dialogid <= AD_INVALID_ID)
  658.         {
  659.             adIgnoreEsc[playerid] = true;
  660.             return CancelSelectTextDraw(playerid);
  661.         }
  662.         if(style == AD_STYLE_LIST)
  663.         {
  664.             adPageID[playerid] = 0;
  665.             adItemID[playerid] = 0;
  666.             adDialogID[playerid] = dialogid;
  667.  
  668.             adArrayPTDs[playerid][4] = CreatePlayerTextDraw(playerid, 464.0, 155.0, "_"); //Item 1 box
  669.             PlayerTextDrawTextSize(playerid, adArrayPTDs[playerid][4], 181.0, 12.0);
  670.             PlayerTextDrawLetterSize(playerid, adArrayPTDs[playerid][4], 0.0, 1.3);
  671.             PlayerTextDrawUseBox(playerid, adArrayPTDs[playerid][4], 1);
  672.             PlayerTextDrawBoxColor(playerid, adArrayPTDs[playerid][4], AD_SELECTED_ITEM_BOX_COLOR);
  673.             #undef AD_SELECTED_ITEM_BOX_COLOR
  674.  
  675.             adArrayPTDs[playerid][5] = CreatePlayerTextDraw(playerid, 464.0, 170.5, "_"); //Item 2 box
  676.             PlayerTextDrawTextSize(playerid, adArrayPTDs[playerid][5], 181.0, 12.0);
  677.             PlayerTextDrawLetterSize(playerid, adArrayPTDs[playerid][5], 0.0, 1.3);
  678.             PlayerTextDrawUseBox(playerid, adArrayPTDs[playerid][5], 1);
  679.             PlayerTextDrawBoxColor(playerid, adArrayPTDs[playerid][5], AD_ITEMS_BOX_COLOR);
  680.  
  681.             adArrayPTDs[playerid][6] = CreatePlayerTextDraw(playerid, 464.0, 185.8, "_"); //Item 3 box
  682.             PlayerTextDrawTextSize(playerid, adArrayPTDs[playerid][6], 181.0, 12.0);
  683.             PlayerTextDrawLetterSize(playerid, adArrayPTDs[playerid][6], 0.0, 1.3);
  684.             PlayerTextDrawUseBox(playerid, adArrayPTDs[playerid][6], 1);
  685.             PlayerTextDrawBoxColor(playerid, adArrayPTDs[playerid][6], AD_ITEMS_BOX_COLOR);
  686.  
  687.             adArrayPTDs[playerid][7] = CreatePlayerTextDraw(playerid, 464.0, 201.0, "_"); //Item 4 box
  688.             PlayerTextDrawTextSize(playerid, adArrayPTDs[playerid][7], 181.0, 12.0);
  689.             PlayerTextDrawLetterSize(playerid, adArrayPTDs[playerid][7], 0.0, 1.3);
  690.             PlayerTextDrawUseBox(playerid, adArrayPTDs[playerid][7], 1);
  691.             PlayerTextDrawBoxColor(playerid, adArrayPTDs[playerid][7], AD_ITEMS_BOX_COLOR);
  692.  
  693.             adArrayPTDs[playerid][8] = CreatePlayerTextDraw(playerid, 464.0, 216.2, "_"); //Item 5 box
  694.             PlayerTextDrawTextSize(playerid, adArrayPTDs[playerid][8], 181.0, 12.0);
  695.             PlayerTextDrawLetterSize(playerid, adArrayPTDs[playerid][8], 0.0, 1.3);
  696.             PlayerTextDrawUseBox(playerid, adArrayPTDs[playerid][8], 1);
  697.             PlayerTextDrawBoxColor(playerid, adArrayPTDs[playerid][8], AD_ITEMS_BOX_COLOR);
  698.  
  699.             adArrayPTDs[playerid][9] = CreatePlayerTextDraw(playerid, 464.0, 231.2, "_"); //Item 6 box
  700.             PlayerTextDrawTextSize(playerid, adArrayPTDs[playerid][9], 181.0, 12.0);
  701.             PlayerTextDrawLetterSize(playerid, adArrayPTDs[playerid][9], 0.0, 1.3);
  702.             PlayerTextDrawUseBox(playerid, adArrayPTDs[playerid][9], 1);
  703.             PlayerTextDrawBoxColor(playerid, adArrayPTDs[playerid][9], AD_ITEMS_BOX_COLOR);
  704.  
  705.             adArrayPTDs[playerid][10] = CreatePlayerTextDraw(playerid, 464.0, 246.5, "_"); //Item 7 box
  706.             PlayerTextDrawTextSize(playerid, adArrayPTDs[playerid][10], 181.0, 12.0);
  707.             PlayerTextDrawLetterSize(playerid, adArrayPTDs[playerid][10], 0.0, 1.3);
  708.             PlayerTextDrawUseBox(playerid, adArrayPTDs[playerid][10], 1);
  709.             PlayerTextDrawBoxColor(playerid, adArrayPTDs[playerid][10], AD_ITEMS_BOX_COLOR);
  710.  
  711.             adArrayPTDs[playerid][11] = CreatePlayerTextDraw(playerid, 464.0, 261.8, "_"); //Item 8 box
  712.             PlayerTextDrawTextSize(playerid, adArrayPTDs[playerid][11], 181.0, 12.0);
  713.             PlayerTextDrawLetterSize(playerid, adArrayPTDs[playerid][11], 0.0, 1.3);
  714.             PlayerTextDrawUseBox(playerid, adArrayPTDs[playerid][11], 1);
  715.             PlayerTextDrawBoxColor(playerid, adArrayPTDs[playerid][11], AD_ITEMS_BOX_COLOR);
  716.             #undef AD_ITEMS_BOX_COLOR
  717.  
  718.             adArrayPTDs[playerid][12] = CreatePlayerTextDraw(playerid, 191.0, 156.3, ""); //Item 1
  719.             PlayerTextDrawFont(playerid, adArrayPTDs[playerid][12], 2);
  720.             PlayerTextDrawTextSize(playerid, adArrayPTDs[playerid][12], 460.0, 13.6);
  721.             PlayerTextDrawLetterSize(playerid, adArrayPTDs[playerid][12], 0.27, 0.9);
  722.             PlayerTextDrawColor(playerid, adArrayPTDs[playerid][12], AD_ITEMS_COLOR);
  723.             PlayerTextDrawSetShadow(playerid, adArrayPTDs[playerid][12], 0);
  724.             PlayerTextDrawSetSelectable(playerid, adArrayPTDs[playerid][12], 1);
  725.  
  726.             adArrayPTDs[playerid][13] = CreatePlayerTextDraw(playerid, 191.0, 171.8, ""); //Item 2
  727.             PlayerTextDrawFont(playerid, adArrayPTDs[playerid][13], 2);
  728.             PlayerTextDrawTextSize(playerid, adArrayPTDs[playerid][13], 460.0, 13.6);
  729.             PlayerTextDrawLetterSize(playerid, adArrayPTDs[playerid][13], 0.27, 0.9);
  730.             PlayerTextDrawColor(playerid, adArrayPTDs[playerid][13], AD_ITEMS_COLOR);
  731.             PlayerTextDrawSetShadow(playerid, adArrayPTDs[playerid][13], 0);
  732.             PlayerTextDrawSetSelectable(playerid, adArrayPTDs[playerid][13], 1);
  733.  
  734.             adArrayPTDs[playerid][14] = CreatePlayerTextDraw(playerid, 191.0, 187.3, ""); //Item 3
  735.             PlayerTextDrawFont(playerid, adArrayPTDs[playerid][14], 2);
  736.             PlayerTextDrawTextSize(playerid, adArrayPTDs[playerid][14], 460.0, 13.6);
  737.             PlayerTextDrawLetterSize(playerid, adArrayPTDs[playerid][14], 0.27, 0.9);
  738.             PlayerTextDrawColor(playerid, adArrayPTDs[playerid][14], AD_ITEMS_COLOR);
  739.             PlayerTextDrawSetShadow(playerid, adArrayPTDs[playerid][14], 0);
  740.             PlayerTextDrawSetSelectable(playerid, adArrayPTDs[playerid][14], 1);
  741.  
  742.             adArrayPTDs[playerid][15] = CreatePlayerTextDraw(playerid, 191.0, 202.6, ""); //Item 4
  743.             PlayerTextDrawFont(playerid, adArrayPTDs[playerid][15], 2);
  744.             PlayerTextDrawTextSize(playerid, adArrayPTDs[playerid][15], 460.0, 13.6);
  745.             PlayerTextDrawLetterSize(playerid, adArrayPTDs[playerid][15], 0.27, 0.9);
  746.             PlayerTextDrawColor(playerid, adArrayPTDs[playerid][15], AD_ITEMS_COLOR);
  747.             PlayerTextDrawSetShadow(playerid, adArrayPTDs[playerid][15], 0);
  748.             PlayerTextDrawSetSelectable(playerid, adArrayPTDs[playerid][15], 1);
  749.  
  750.             adArrayPTDs[playerid][16] = CreatePlayerTextDraw(playerid, 191.0, 217.6, ""); //Item 5
  751.             PlayerTextDrawFont(playerid, adArrayPTDs[playerid][16], 2);
  752.             PlayerTextDrawTextSize(playerid, adArrayPTDs[playerid][16], 460.0, 13.6);
  753.             PlayerTextDrawLetterSize(playerid, adArrayPTDs[playerid][16], 0.27, 0.9);
  754.             PlayerTextDrawColor(playerid, adArrayPTDs[playerid][16], AD_ITEMS_COLOR);
  755.             PlayerTextDrawSetShadow(playerid, adArrayPTDs[playerid][16], 0);
  756.             PlayerTextDrawSetSelectable(playerid, adArrayPTDs[playerid][16], 1);
  757.  
  758.             adArrayPTDs[playerid][17] = CreatePlayerTextDraw(playerid, 191.0, 232.7, ""); //Item 6
  759.             PlayerTextDrawFont(playerid, adArrayPTDs[playerid][17], 2);
  760.             PlayerTextDrawTextSize(playerid, adArrayPTDs[playerid][17], 460.0, 13.6);
  761.             PlayerTextDrawLetterSize(playerid, adArrayPTDs[playerid][17], 0.27, 0.9);
  762.             PlayerTextDrawColor(playerid, adArrayPTDs[playerid][17], AD_ITEMS_COLOR);
  763.             PlayerTextDrawSetShadow(playerid, adArrayPTDs[playerid][17], 0);
  764.             PlayerTextDrawSetSelectable(playerid, adArrayPTDs[playerid][17], 1);
  765.  
  766.             adArrayPTDs[playerid][18] = CreatePlayerTextDraw(playerid, 191.0, 247.9, ""); //Item 7
  767.             PlayerTextDrawFont(playerid, adArrayPTDs[playerid][18], 2);
  768.             PlayerTextDrawTextSize(playerid, adArrayPTDs[playerid][18], 460.0, 13.6);
  769.             PlayerTextDrawLetterSize(playerid, adArrayPTDs[playerid][18], 0.27, 0.9);
  770.             PlayerTextDrawColor(playerid, adArrayPTDs[playerid][18], AD_ITEMS_COLOR);
  771.             PlayerTextDrawSetShadow(playerid, adArrayPTDs[playerid][18], 0);
  772.             PlayerTextDrawSetSelectable(playerid, adArrayPTDs[playerid][18], 1);
  773.  
  774.             adArrayPTDs[playerid][19] = CreatePlayerTextDraw(playerid, 191.0, 263.0, ""); //Item 8
  775.             PlayerTextDrawFont(playerid, adArrayPTDs[playerid][19], 2);
  776.             PlayerTextDrawTextSize(playerid, adArrayPTDs[playerid][19], 460.0, 13.6);
  777.             PlayerTextDrawLetterSize(playerid, adArrayPTDs[playerid][19], 0.27, 0.9);
  778.             PlayerTextDrawColor(playerid, adArrayPTDs[playerid][19], AD_ITEMS_COLOR);
  779.             #undef AD_ITEMS_COLOR
  780.             PlayerTextDrawSetShadow(playerid, adArrayPTDs[playerid][19], 0);
  781.             PlayerTextDrawSetSelectable(playerid, adArrayPTDs[playerid][19], 1);
  782.  
  783.             if(strlen(caption) >= AD_MAX_CAPTION_LENGTH)
  784.             {
  785.                 caption[AD_MAX_CAPTION_LENGTH - 3] = '.';
  786.                 caption[AD_MAX_CAPTION_LENGTH - 2] = '.';
  787.                 caption[AD_MAX_CAPTION_LENGTH - 1] = '.';
  788.                 caption[AD_MAX_CAPTION_LENGTH] = EOS;
  789.                 #undef AD_MAX_CAPTION_LENGTH
  790.             }
  791.  
  792.             adArrayPTDs[playerid][0] = CreatePlayerTextDraw(playerid, 188.0, 141.0, caption); //Title
  793.             PlayerTextDrawFont(playerid, adArrayPTDs[playerid][0], 2);
  794.             PlayerTextDrawLetterSize(playerid, adArrayPTDs[playerid][0], 0.27, 0.9);
  795.             PlayerTextDrawColor(playerid, adArrayPTDs[playerid][0], AD_TITLE_COLOR);
  796.             #undef AD_TITLE_COLOR
  797.             PlayerTextDrawSetShadow(playerid, adArrayPTDs[playerid][0], 0);
  798.  
  799.             if(strlen(button1) >= AD_MAX_BUTTONS_LENGTH) button1[AD_MAX_BUTTONS_LENGTH] = EOS;
  800.             new lb2 = strlen(button2);
  801.             if(lb2)
  802.             {
  803.                 adArrayPTDs[playerid][1] = CreatePlayerTextDraw(playerid, 289.0, 292.0, button1); //Button 1
  804.                 PlayerTextDrawAlignment(playerid, adArrayPTDs[playerid][1], 2);
  805.                 PlayerTextDrawFont(playerid, adArrayPTDs[playerid][1], 2);
  806.                 PlayerTextDrawTextSize(playerid, adArrayPTDs[playerid][1], 12.0, 38.0);
  807.                 PlayerTextDrawLetterSize(playerid, adArrayPTDs[playerid][1], 0.27, 0.9);
  808.                 PlayerTextDrawColor(playerid, adArrayPTDs[playerid][1], AD_BUTTONS_COLOR);
  809.                 PlayerTextDrawSetShadow(playerid, adArrayPTDs[playerid][1], 0);
  810.                 PlayerTextDrawSetSelectable(playerid, adArrayPTDs[playerid][1], 1);
  811.  
  812.                 if(lb2 >= AD_MAX_BUTTONS_LENGTH) button2[AD_MAX_BUTTONS_LENGTH] = EOS;
  813.                 #undef AD_MAX_BUTTONS_LENGTH
  814.  
  815.                 adArrayPTDs[playerid][3] = CreatePlayerTextDraw(playerid, 350.5, 292.0, button2); //Button 2
  816.                 PlayerTextDrawAlignment(playerid, adArrayPTDs[playerid][3], 2);
  817.                 PlayerTextDrawFont(playerid, adArrayPTDs[playerid][3], 2);
  818.                 PlayerTextDrawTextSize(playerid, adArrayPTDs[playerid][3], 12.0, 38.0);
  819.                 PlayerTextDrawLetterSize(playerid, adArrayPTDs[playerid][3], 0.27, 0.9);
  820.                 PlayerTextDrawColor(playerid, adArrayPTDs[playerid][3], AD_BUTTONS_COLOR);
  821.                 PlayerTextDrawSetShadow(playerid, adArrayPTDs[playerid][3], 0);
  822.                 PlayerTextDrawSetSelectable(playerid, adArrayPTDs[playerid][3], 1);
  823.             }
  824.             else
  825.             {
  826.                 adArrayPTDs[playerid][2] = CreatePlayerTextDraw(playerid, 321.0, 292.0, button1); //Button 1 only
  827.                 PlayerTextDrawAlignment(playerid, adArrayPTDs[playerid][2], 2);
  828.                 PlayerTextDrawFont(playerid, adArrayPTDs[playerid][2], 2);
  829.                 PlayerTextDrawTextSize(playerid, adArrayPTDs[playerid][2], 12.0, 38.0);
  830.                 PlayerTextDrawLetterSize(playerid, adArrayPTDs[playerid][2], 0.27, 0.9);
  831.                 PlayerTextDrawColor(playerid, adArrayPTDs[playerid][2], AD_BUTTONS_COLOR);
  832.                 #undef AD_BUTTONS_COLOR
  833.                 PlayerTextDrawSetShadow(playerid, adArrayPTDs[playerid][2], 0);
  834.                 PlayerTextDrawSetSelectable(playerid, adArrayPTDs[playerid][2], 1);
  835.             }
  836.             new c = -1; i = 0;
  837.             for(new j, s = strlen(info); i <= s; i++)
  838.             {
  839.                 if(info[i] == '\n' || i == s)
  840.                 {
  841.                     if(c + 1 >= sizeof adItems[]) break;
  842.                     c++;
  843.                     strmid(adItems[playerid][c], info, j, i);
  844.                     if(i - j >= sizeof adItems[][])
  845.                     {
  846.                         adItems[playerid][c][sizeof(adItems[][]) - 3] = '.';
  847.                         adItems[playerid][c][sizeof(adItems[][]) - 2] = '.';
  848.                         adItems[playerid][c][sizeof(adItems[][]) - 1] = '.';
  849.                     }
  850.                     if(c < 8) PlayerTextDrawSetString(playerid, adArrayPTDs[playerid][12 + c], adItems[playerid][c]);
  851.                     j = i + 1;
  852.                 }
  853.             }
  854.             adMaxItems[playerid] = c;
  855.  
  856.             adArrayPTDs[playerid][20] = CreatePlayerTextDraw(playerid, 470.0, 170.3, "_"); //Scroll box
  857.             PlayerTextDrawTextSize(playerid, adArrayPTDs[playerid][20], 460.0, 5.0);
  858.             PlayerTextDrawLetterSize(playerid, adArrayPTDs[playerid][20], 0.0, 9.8 / (floatround(c / 8, floatround_tozero) + 1));
  859.             PlayerTextDrawUseBox(playerid, adArrayPTDs[playerid][20], 1);
  860.             PlayerTextDrawBoxColor(playerid, adArrayPTDs[playerid][20], AD_SCROLL_BOX_COLOR);
  861.             #undef AD_SCROLL_BOX_COLOR
  862.  
  863.             for(i = sizeof(adArrayTDs) - 1; i != -1; --i)
  864.             {
  865.                 if(c < 8 && (5 < i < 8 || 8 < i < 11)
  866.                 || lb2 && i == 5 || !lb2 && 2 < i < 5) continue;
  867.                 TextDrawShowForPlayer(playerid, adArrayTDs[i]);
  868.             }
  869.             for(i = sizeof(adArrayPTDs[]) - 1; i != -1; --i)
  870.             {
  871.                 if(c < 8 && i == 20) continue;
  872.                 PlayerTextDrawShow(playerid, adArrayPTDs[playerid][i]);
  873.             }
  874.             return SelectTextDraw(playerid, AD_SELECTION_COLOR);
  875.             #undef AD_SELECTION_COLOR
  876.         }
  877.     }
  878.     return 0;
  879. }
  880.  
  881. stock GetPlayerAltDialog(playerid)
  882. {
  883.     if(!IsPlayerConnected(playerid)) return AD_INVALID_ID;
  884.     return adDialogID[playerid];
  885. }
Advertisement
Add Comment
Please, Sign In to add comment