Guest User

Alternative Dialogs

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