Guest User

Alternative Dialogs

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