Advertisement
Guest User

Alternative Dialogs

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