Advertisement
Guest User

Untitled

a guest
Jun 10th, 2015
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 6.77 KB | None | 0 0
  1. ////////////////////////////////////////////////////
  2. ////////////////////////////////////////////////////
  3. /*
  4.         PizzaPuntjes Website Displayer
  5.             Please do not remove credits :)
  6.            
  7. */
  8. ////////////////////////////////////////////////////
  9. ////////////////////////////////////////////////////
  10.  
  11. #include <a_samp>
  12.  
  13. ////////////////////////////////////////////////////
  14. ////////////////////////////////////////////////////
  15.  
  16. forward UpdateWebsiteDraw();
  17.  
  18. ////////////////////////////////////////////////////
  19. ////////////////////////////////////////////////////
  20.  
  21. #define FS_NAME                 "PizzaPuntjes Website Shower"
  22.  
  23. #define WEBSITE                 ("www.example.com") // change this to your own website or do it from in-game
  24.  
  25. #define MODE_EDIT_TEXT          (0)
  26. #define MODE_EDIT_SPEED         (1)
  27. #define MODE_NOTHING            (2)
  28. #define MODE_RANDOM_COLORS      (3)
  29. #define MODE_FLASH_COLOR        (4)
  30.  
  31. ////////////////////////////////////////////////////
  32. ////////////////////////////////////////////////////
  33.  
  34.  
  35. new td_colors[][] = {
  36.     {"~r~"}, {"~b~"}, {"~p~"}, {"~g~"}, {"~y~"}, {"~h~"}
  37. };
  38.  
  39. new dr_options[][] = {
  40.     {"Change Website Text"}, {"Speed"}, {"No Mode"}, {"Random Letter Colors"}, {"Flashy Colors"}
  41. };
  42.  
  43. new speeds[][] = {
  44.     {1300,  "Normal Speed"},
  45.     {1000,  "Regular Speed"},
  46.     {750,   "Rapid Speed"}
  47. };
  48.  
  49. enum { DIALOG_SHOW_OPTIONS, DIALOG_CHANGE_WEBSITE };
  50.  
  51. ////////////////////////////////////////////////////
  52. ////////////////////////////////////////////////////
  53.  
  54. new active_mode = MODE_RANDOM_COLORS, speed_mode, website_timer;
  55. new real_site[30];
  56. new Text:Website_Draw;
  57.  
  58. ////////////////////////////////////////////////////
  59. ////////////////////////////////////////////////////
  60.  
  61. public OnFilterScriptInit()
  62. {
  63.     print("\n--------------------------------------");
  64.     print(" Website Displayer v1 by PizzaPuntjes (2015)");
  65.     print("--------------------------------------\n");
  66.  
  67.     if(active_mode) website_timer = SetTimer("UpdateWebsiteDraw", speeds[speed_mode][0], true);
  68.    
  69.     Website_Draw = TextDrawCreate(511.714691, 412.293243, WEBSITE);
  70.     TextDrawLetterSize(Website_Draw, 0.268190, 1.523199);
  71.     TextDrawAlignment(Website_Draw, 1);
  72.     TextDrawColor(Website_Draw, -1);
  73.     TextDrawSetShadow(Website_Draw, 0);
  74.     TextDrawSetOutline(Website_Draw, 1);
  75.     TextDrawBackgroundColor(Website_Draw, 30);
  76.     TextDrawFont(Website_Draw, 2);
  77.     TextDrawSetProportional(Website_Draw, 1);
  78.     TextDrawSetShadow(Website_Draw, 0);
  79.    
  80.     real_site = WEBSITE;
  81.     return 1;
  82. }
  83.  
  84. public OnFilterScriptExit()
  85. {
  86.     TextDrawDestroy(Website_Draw);
  87.     return 1;
  88. }
  89.  
  90. public OnPlayerConnect(playerid)
  91. {
  92.     TextDrawShowForPlayer(playerid, Website_Draw);
  93.     return 1;
  94. }
  95.  
  96. public OnPlayerDisconnect(playerid, reason)
  97. {
  98.     TextDrawHideForPlayer(playerid, Website_Draw);
  99.     return 1;
  100. }
  101.  
  102. public UpdateWebsiteDraw()
  103. {
  104.     new td_str[60];
  105.     static new_cid, prev_cid;
  106.    
  107.     if(strlen(real_site) > 1) format(td_str, sizeof(td_str), real_site); else td_str = WEBSITE;
  108.  
  109.     switch(active_mode)
  110.     {
  111.         case MODE_RANDOM_COLORS:
  112.         {
  113.             for(new i = strlen(td_str); i > 0; i --)
  114.             {
  115.                 if(i == strlen(td_str)) continue;
  116.  
  117.                 repick:
  118.  
  119.                 new_cid = random(sizeof(td_colors));
  120.                 if(prev_cid == new_cid) goto repick;
  121.                
  122.                 prev_cid = new_cid;
  123.                 strins(td_str, td_colors[new_cid], i);
  124.             }
  125.            
  126.             repick_2:
  127.  
  128.             new_cid = random(sizeof(td_colors));
  129.             if(prev_cid == new_cid) goto repick_2;
  130.  
  131.             strins(td_str, td_colors[new_cid], 0);
  132.         }
  133.         case MODE_FLASH_COLOR:
  134.         {
  135.             repick_3:
  136.            
  137.             new_cid = random(sizeof(td_colors));
  138.             if(prev_cid == new_cid) goto repick_3;
  139.             if(!strfind(td_colors[new_cid], "~h~", false, 0)) goto repick_3;
  140.  
  141.             prev_cid = new_cid;
  142.             strins(td_str, td_colors[new_cid], 0);
  143.         }
  144.     }
  145.    
  146.     TextDrawSetString(Website_Draw, td_str);
  147.     return 1;
  148. }
  149.  
  150. public OnPlayerCommandText(playerid, cmdtext[])
  151. {
  152.     if(!strcmp(cmdtext, "/website", true))
  153.     {
  154.         if(!IsPlayerAdmin(playerid)) return 1;
  155.        
  156.         ShowSelectionDialog(playerid);
  157.         return 1;
  158.     }
  159.     return 0;
  160. }
  161.  
  162. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  163. {
  164.     switch(dialogid)
  165.     {
  166.         case DIALOG_SHOW_OPTIONS:
  167.         {
  168.             if(!response) return SendClientMessage(playerid, 0xFFC00CFF, "> You have closed the dialog for changing settings.");
  169.  
  170.             switch(listitem)
  171.             {
  172.                 case 0:
  173.                 {
  174.                     ShowDialogChangeSite(playerid, 0);
  175.                 }
  176.                 case 1:
  177.                 {
  178.                     speed_mode ++;
  179.                     if(speed_mode == sizeof(speeds)) speed_mode = 0;
  180.  
  181.                     if(website_timer)
  182.                     {
  183.                         KillTimer(website_timer);
  184.                         website_timer = SetTimer("UpdateWebsiteDraw", speeds[speed_mode][0], true);
  185.                     }
  186.                     ShowSelectionDialog(playerid);
  187.                 }
  188.                 case 2:
  189.                 {
  190.                     if(website_timer) KillTimer(website_timer);
  191.  
  192.                     TextDrawSetString(Website_Draw, real_site);
  193.                 }
  194.                 default:
  195.                 {
  196.                     if(website_timer)
  197.                     {
  198.                         KillTimer(website_timer);
  199.                         website_timer = SetTimer("UpdateWebsiteDraw", speeds[speed_mode][0], true);
  200.                     }
  201.                     else website_timer = SetTimer("UpdateWebsiteDraw", speeds[speed_mode][0], true);
  202.                 }
  203.             }
  204.  
  205.             if(listitem >= 2)
  206.             {
  207.                 active_mode = listitem;
  208.                 ShowSelectionDialog(playerid);
  209.             }
  210.             return 1;
  211.         }
  212.         case DIALOG_CHANGE_WEBSITE:
  213.         {
  214.             if(!response) return SendClientMessage(playerid, 0xFFC00CFF, "> You have returned to the options."), ShowSelectionDialog(playerid);
  215.  
  216.             if(strlen(inputtext) < 2 || strlen(inputtext) > 30) return ShowDialogChangeSite(playerid, 1);
  217.  
  218.             format(real_site, sizeof(real_site), inputtext);
  219.  
  220.             UpdateWebsiteDraw();
  221.  
  222.             ShowSelectionDialog(playerid);
  223.             return 1;
  224.         }
  225.     }
  226.     return 0;
  227. }
  228.  
  229. ShowSelectionDialog(playerid)
  230. {
  231.     new dialog_str[128 * 2];
  232.  
  233.     for(new i = 0; i < sizeof(dr_options); i ++)
  234.     {
  235.         strcat(dialog_str, dr_options[i]);
  236.        
  237.         if(i == MODE_EDIT_TEXT) strcat(dialog_str, " {FF0000}||{FFFFFF} "), strcat(dialog_str, real_site);
  238.         if(i == MODE_EDIT_SPEED) strcat(dialog_str, " {FF0000}||{FFFFFF} "), strcat(dialog_str, speeds[speed_mode][1]);
  239.        
  240.         if(active_mode == i) strcat(dialog_str, " {FF0000}||{FFFFFF}{7cfc00} [ACTIVE]{FFFFFF}");
  241.         if(i != sizeof(dr_options)) strcat(dialog_str, "\n");
  242.     }
  243.    
  244.     ShowPlayerDialog(playerid, DIALOG_SHOW_OPTIONS, DIALOG_STYLE_LIST, "{FFC00C}"FS_NAME"", dialog_str, "Select", "Exit");
  245.     return 1;
  246. }
  247.  
  248. ShowDialogChangeSite(playerid, error)
  249. {
  250.     new dialog_str[128];
  251.    
  252.     strcat(dialog_str, "{FFFFFF}Please fill in your desired website name:\n\n");
  253.    
  254.     if(error) strcat(dialog_str, "{FF0000}The length must be between 2 and 30 characters!\n");
  255.    
  256.     ShowPlayerDialog(playerid, DIALOG_CHANGE_WEBSITE, DIALOG_STYLE_INPUT, "{FFC00C}"FS_NAME"", dialog_str, "Change", "Return");
  257.     return 1;
  258. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement