Advertisement
S4T3K

dialog queue

Jun 30th, 2014
259
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 2.60 KB | None | 0 0
  1. #include <a_samp>
  2.  
  3. #define MAX_DIALOGS_QUEUED             7
  4. #define MAX_CAPTION_SIZE               30
  5. #define MAX_INFO_SIZE                  1024
  6. #define MAX_BUTTON_TEXT_SIZE           15
  7.  
  8.  
  9. enum dInfo
  10. {
  11.     E_ID,
  12.     E_STYLE,
  13.     E_CAPTION[MAX_CAPTION_SIZE],
  14.     E_INFO[MAX_INFO_SIZE],
  15.     E_BUTTON1[MAX_BUTTON_TEXT_SIZE],
  16.     E_BUTTON2[MAX_BUTTON_TEXT_SIZE],
  17. };
  18.  
  19. new gDialogs[MAX_PLAYERS][MAX_DIALOGS_QUEUED][dInfo], gCurrentDialog[MAX_PLAYERS];
  20.  
  21. stock QUEUE_ShowPlayerDialog(playerid, dialogid, style, caption[MAX_CAPTION_SIZE], info[MAX_INFO_SIZE], button1[MAX_BUTTON_TEXT_SIZE], button2[MAX_BUTTON_TEXT_SIZE])
  22. {
  23.     for(new i = 0; i < MAX_DIALOGS_QUEUED; i++)
  24.     {
  25.         if(isnull(gDialogs[playerid][i][E_CAPTION]) && isnull(gDialogs[playerid][i][E_INFO]))
  26.         {
  27.             gDialogs[playerid][i][E_ID] = dialogid;
  28.             gDialogs[playerid][i][E_STYLE] = style;
  29.             strcat(gDialogs[playerid][i][E_CAPTION], caption);
  30.             strcat(gDialogs[playerid][i][E_INFO], info);
  31.             strcat(gDialogs[playerid][i][E_BUTTON1], button1);
  32.             strcat(gDialogs[playerid][i][E_BUTTON2], button2);
  33.             gCurrentDialog[playerid]++;
  34.             return ShowPlayerDialog(playerid, dialogid, style, caption, info, button1, button2);
  35.         }
  36.     }
  37.     return 0;
  38. }
  39.  
  40. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  41. {
  42.     if(!response)
  43.     {
  44.         gCurrentDialog[playerid]--;
  45.         ShowPlayerDialog(playerid, gDialogs[playerid][gCurrentDialog[playerid]][E_ID], gDialogs[playerid][gCurrentDialog[playerid]][E_STYLE], gDialogs[playerid][gCurrentDialog[playerid]][E_CAPTION], gDialogs[playerid][gCurrentDialog[playerid]][E_INFO], gDialogs[playerid][gCurrentDialog[playerid]][E_BUTTON1], gDialogs[playerid][gCurrentDialog[playerid]][E_BUTTON2]);
  46.         gDialogs[playerid][gCurrentDialog[playerid]][E_ID] = -1;
  47.         gDialogs[playerid][gCurrentDialog[playerid]][E_STYLE] = -1;
  48.         gDialogs[playerid][gCurrentDialog[playerid]][E_CAPTION] = EOS;
  49.         gDialogs[playerid][gCurrentDialog[playerid]][E_INFO] = EOS;
  50.         gDialogs[playerid][gCurrentDialog[playerid]][E_BUTTON1] = EOS;
  51.         gDialogs[playerid][gCurrentDialog[playerid]][E_BUTTON2] = EOS;
  52.         return 1;
  53.     }
  54.     return 0;
  55. }
  56.  
  57.  
  58. #if defined _ALS_OnDialogResponse
  59.     #undef OnDialogResponse
  60. #else
  61.     #define                            _ALS_OnDialogResponse
  62. #endif
  63.  
  64. #define OnDialogResponse               QUEUE_OnDialogResponse
  65. #if defined QUEUE_OnDialogResponse
  66.     forward QUEUE_OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]);
  67. #endif
  68.  
  69.  
  70. #if defined _ALS_ShowPlayerDialog
  71.     #undef ShowPlayerDialog
  72. #else
  73.     #define                            _ALS_ShowPlayerDialog
  74. #endif
  75.  
  76. #define ShowPlayerDialog               QUEUE_ShowPlayerDialog
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement