Advertisement
Guest User

Alternative Dialogs

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