Guest User

Untitled

a guest
Apr 23rd, 2018
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 15.36 KB | None | 0 0
  1. /*---------------------------------------------------------------------------------------------*\
  2. |   (C)Remi-X                                                                                   |
  3. |    _________       _______    ______           ______    ____          ____      ____         |
  4. |   |    _    \     |       |  |      \         /      |  |    |         \   \    /   /         |
  5. |   |   | |   |     |   ____|  |       \       /       |  |    |          \   \  /   /          |
  6. |   |   |_|   |     |  |____   |   |\   \     /   /|   |  |    |  ______   \   \/   /           |
  7. |   |    _    \     |       |  |   | \   \   /   / |   |  |    | |      |   \      /            |
  8. |   |   | \    \    |   ____|  |   |  \   \_/   /  |   |  |    | |______|   /      \            |
  9. |   |   |  \    \   |  |____   |   |   \       /   |   |  |    |           /   /\   \           |
  10. |   |   |   \    \  |       |  |   |    \     /    |   |  |    |          /   /  \   \          |
  11. |   |___|    \____\ |_______|  |___|     \___/     |___|  |____|         /___/    \___\         |
  12. |                                                                                               |
  13. |   The Remi-X Time Tools V2.0                                                                  |
  14. |   Please, do not remove any credits.                                                          |
  15. \*---------------------------------------------------------------------------------------------*/
  16.  
  17. /*---------------------------------------------------------------------------------------------*\
  18. | Changelog V2.0:                                                                               |
  19. | -Removed commands. They seemed to bug.                                                        |
  20. | -Removed bool between playertime and servertime. It doesn't work in the old version.          |
  21. | -Some bugfixes fixed. (I thought only Playrid 0 can see the clock counting)                   |
  22. | -Some things done wich are faster to use.                                                     |
  23. | -Less script.                                                                                 |
  24. | -More information to edit the code.                                                           |
  25. | -This code should'nt have the atomic bomb bug.                                                |
  26. | -I'm busy to get a place for the year. Coming in V2.1.                                        |
  27. \*---------------------------------------------------------------------------------------------*/
  28.  
  29. /*---------------------------------------------------------------------------------------------*\
  30. | Changelog V1.3:                                                                               |
  31. | -You can coose if players must see their time, or the servertime.                             |
  32. |   -Edit line: 239, and set it to true if you want the servertime, or false for the playertime.|
  33. | -Commands (RCON):                                                                             |
  34. |   -/rw : Sets a random weather.                                                               |
  35. |   -/w [weatherid] to choose a weather.                                                        |
  36. |   -/settime [hour] to set the Server World Time.                                              |
  37. \*---------------------------------------------------------------------------------------------*/
  38.  
  39. /*---------------------------------------------------------------------------------------------*\
  40. | Changelog V1.2:                                                                               |
  41. | -Stupid red weather hopefully deleted...                                                      |
  42. \*---------------------------------------------------------------------------------------------*/
  43.  
  44. /*---------------------------------------------------------------------------------------------*\
  45. | Changelog V1.1:                                                                               |
  46. | -Some Dutch text translated, that I was forgotten.                                            |
  47. | -If you startup the FilterScript, a random weather will be choosen.                           |
  48. | -If you startup the FilterScript, the worldtime will also set directly.                       |
  49. | -The weather, changed at the older version just one time (Bug). Now always.                   |
  50. \*---------------------------------------------------------------------------------------------*/
  51.  
  52. /*---------------------------------------------------------------------------------------------*\
  53. | The Remi-X Time Tools V1.0:                                                                   |
  54. | -Ingame clock, working on servertime, in seconds.                                             |
  55. | -If it is night in your server time, than will it be also ingame night.                       |
  56. | -A random weather script, that will change the weather every hour.                            |
  57. | -The weather is based on the seasons, so if it's summer, you don't get winter weather.        |
  58. | -There are no bullshit weathers, like the darkest weather ever.                               |
  59. | -The clock works on servertime, with seconds.                                                 |
  60. | -The clock has the same place as the original clock of San Andreas.                           |
  61. | -There is also a simple date, only without the year.                                          |
  62. | -If it's month 4, the game says April.                                                        |
  63. | -The WorldTime change also, so if someone check your server values, he see also the hour.     |
  64. | -There is a SetPlayerTime, so every minute will the daytime changed.                          |
  65. \*---------------------------------------------------------------------------------------------*/
  66.  
  67. //=====Includes================================================================================//
  68. #include <a_samp>
  69.  
  70.  
  71.  
  72. //=====Defines=================================================================================//
  73. //-----Colors----------------------------------------------------------------------------------//
  74. #define BLACK           0x000000FF
  75. #define WHITE           0xFFFFFFFF
  76. #define YELLOW          0xFFFF00FF
  77. #define RED             0xE60000FF
  78.  
  79. //-----TextDrawSetFormat(Text:text, const format[], {Float,_}:...)-----------------------------//
  80. new FALSE = false;
  81. #define TextDrawSetFormat(%0,%1) do{new _str[128]; format(_str,128,%1); TextDrawSetString(%0,_str);}while(FALSE)
  82.  
  83.  
  84.  
  85. //=====New variables===========================================================================//
  86. //-----TextDraws-------------------------------------------------------------------------------//
  87. new Text:TextdrawHour;
  88. new Text:TextdrawSeconds;
  89. new Text:TextdrawDay;
  90. new Text:TextdrawMonth;
  91.  
  92. //-----Weather---------------------------------------------------------------------------------//
  93. // You can change the numbers for different weathers. Look the wiki for all weathers.
  94. new SpringWeather[8]  =  {1,10,11,14,17,23,29,33};
  95. new SummerWeather[5]  =  {0,1,10,11,19};
  96. new AutumnWeather[10] =  {7,8,9,12,15,16,17,25,30,32};
  97. new WinterWeather[13] =  {1,4,5,7,8,9,12,15,17,20,25,27,30};
  98.  
  99.  
  100.  
  101. //=====Forwarding==============================================================================//
  102. forward RemiX_Time_Tools();
  103.  
  104.  
  105.  
  106. //=====Callbacks==============================================================================//
  107. public OnFilterScriptInit()
  108. {
  109.     //Print
  110.     print("\n--------------------------------------");
  111.     print(" Remi-X Time-Tools V2.0 started up.");
  112.     print("--------------------------------------\n");
  113.  
  114.     //News
  115.     new Year, Month, Day;
  116.     new ServerHour, ServerMinute, ServerSecond;
  117.     new summerrand = random(sizeof(SummerWeather));
  118.     new winterrand = random(sizeof(WinterWeather));
  119.     new springrand = random(sizeof(SpringWeather));
  120.     new autumnrand = random(sizeof(AutumnWeather));
  121.  
  122.     //Gets
  123.     getdate(Year, Month, Day);
  124.     gettime(ServerHour, ServerMinute, ServerSecond);
  125.  
  126.    
  127.     CreateRXTT();
  128.  
  129.     switch(Month)
  130.     {
  131.         case 1:{
  132.         TextDrawSetString(TextdrawMonth, " January");
  133.         SetWeather(WinterWeather[winterrand]);
  134.         }
  135.  
  136.         case 2:{
  137.         TextDrawSetString(TextdrawMonth, " February");
  138.         SetWeather(WinterWeather[winterrand]);
  139.         }
  140.  
  141.         case 3:{
  142.         TextDrawSetString(TextdrawMonth, " March");
  143.         if(Day <21){SetWeather(WinterWeather[winterrand]);}
  144.         else{SetWeather(SpringWeather[springrand]);}
  145.         }
  146.  
  147.         case 4:{
  148.         TextDrawSetString(TextdrawMonth, " April");
  149.         SetWeather(SpringWeather[springrand]);
  150.         }
  151.  
  152.         case 5:{
  153.         TextDrawSetString(TextdrawMonth, " May");
  154.         SetWeather(SpringWeather[springrand]);
  155.         }
  156.  
  157.         case 6:{
  158.         TextDrawSetString(TextdrawMonth, " June");
  159.         if(Day <21){SetWeather(SpringWeather[springrand]);}
  160.         else{SetWeather(SummerWeather[summerrand]);}
  161.         }
  162.  
  163.         case 7:{
  164.         TextDrawSetString(TextdrawMonth, " July");
  165.         SetWeather(SummerWeather[summerrand]);
  166.         }
  167.  
  168.         case 8:{
  169.         TextDrawSetString(TextdrawMonth, " August");
  170.         SetWeather(SummerWeather[summerrand]);
  171.         }
  172.  
  173.         case 9:{
  174.         TextDrawSetString(TextdrawMonth, " September");
  175.         if(Day <21){SetWeather(SummerWeather[summerrand]);}
  176.         else{SetWeather(AutumnWeather[autumnrand]);}
  177.         }
  178.  
  179.         case 10:{
  180.         TextDrawSetString(TextdrawMonth, " October");
  181.         SetWeather(AutumnWeather[autumnrand]);
  182.         }
  183.  
  184.         case 11:{
  185.         TextDrawSetString(TextdrawMonth, " November");
  186.         SetWeather(AutumnWeather[autumnrand]);
  187.         }
  188.  
  189.         case 12:{
  190.         TextDrawSetString(TextdrawMonth, " December");
  191.         if(Day <21){SetWeather(AutumnWeather[autumnrand]);}
  192.         else{SetWeather(WinterWeather[winterrand]);}
  193.         }
  194.     }
  195.    
  196.     if(ServerHour == 22){SetWorldTime(22);} //Can't be different. I don't know why, but otherwise you get a atomic bomb weather.
  197.     else{SetWorldTime(ServerHour);}
  198.  
  199.     //Timers
  200.     SetTimer("RemiX_Time_Tools", 1000, true);
  201.     return 1;
  202. }
  203.  
  204. public OnFilterScriptExit()
  205. {
  206.     DestroyRXTT();
  207.     return 1;
  208. }
  209.  
  210. public OnPlayerConnect(playerid)
  211. {
  212.     HideRXTT(playerid);
  213. }
  214.  
  215. public OnPlayerRequestClass(playerid, classid)
  216. {
  217.     HideRXTT(playerid);
  218.     return 1;
  219. }
  220.  
  221. public OnPlayerSpawn(playerid)
  222. {
  223.     ShowRXTT(playerid);
  224.     return 1;
  225. }
  226.  
  227. public OnPlayerDisconnect(playerid, reason)
  228. {
  229.     HideRXTT(playerid);
  230.     return 1;
  231. }
  232.  
  233.  
  234.  
  235. //=====Forwarding==============================================================================//
  236. //=====Forwarding==============================================================================//
  237. public RemiX_Time_Tools()
  238. {
  239.     //News
  240.     new ServerHour, ServerMinute, ServerSecond;
  241.     new Year, Month, Day;
  242.     new summerrand = random(sizeof(SummerWeather));
  243.     new winterrand = random(sizeof(WinterWeather));
  244.     new springrand = random(sizeof(SpringWeather));
  245.     new autumnrand = random(sizeof(AutumnWeather));
  246.  
  247.     //Gets
  248.     gettime(ServerHour,ServerMinute,ServerSecond);
  249.     getdate(Year, Month, Day);
  250.  
  251.     //TextDraw Clock
  252.     TextDrawSetFormat(TextdrawHour, "%02d", ServerHour);
  253.     TextDrawSetFormat(TextdrawSeconds, ":%02d", ServerSecond);
  254.     for(new i = 0; i < GetMaxPlayers(); i++){SetPlayerTime(i, ServerHour, ServerMinute);}
  255.    
  256.     //TextDraw Day
  257.     TextDrawSetFormat(TextdrawDay, "%02d", Day);
  258.  
  259.     //Weather Changer
  260.     if(ServerMinute == 0 && ServerSecond == 1) //When a new hour starts. The one second is to prevent a bug.
  261.     {
  262.         new string[128];
  263.         format(string, sizeof(string), "It's %02d o' clock. The weather is changed.",ServerHour);
  264.         SendClientMessageToAll(YELLOW, string);
  265.         printf("The weather is changed.  [%02d:%02d:%02d]",ServerHour, ServerMinute, ServerSecond);
  266.  
  267.         switch(Month)
  268.         {
  269.             case 1:{
  270.             TextDrawSetString(TextdrawMonth, " January");
  271.             SetWeather(WinterWeather[winterrand]);
  272.             }
  273.            
  274.             case 2:{
  275.             TextDrawSetString(TextdrawMonth, " February");
  276.             SetWeather(WinterWeather[winterrand]);
  277.             }
  278.            
  279.             case 3:{
  280.             TextDrawSetString(TextdrawMonth, " March");
  281.             if(Day <21){SetWeather(WinterWeather[winterrand]);}
  282.             else{SetWeather(SpringWeather[springrand]);}
  283.             }
  284.            
  285.             case 4:{
  286.             TextDrawSetString(TextdrawMonth, " April");
  287.             SetWeather(SpringWeather[springrand]);
  288.             }
  289.            
  290.             case 5:{
  291.             TextDrawSetString(TextdrawMonth, " May");
  292.             SetWeather(SpringWeather[springrand]);
  293.             }
  294.            
  295.             case 6:{
  296.             TextDrawSetString(TextdrawMonth, " June");
  297.             if(Day <21){SetWeather(SpringWeather[springrand]);}
  298.             else{SetWeather(SummerWeather[summerrand]);}
  299.             }
  300.            
  301.             case 7:{
  302.             TextDrawSetString(TextdrawMonth, " July");
  303.             SetWeather(SummerWeather[summerrand]);
  304.             }
  305.            
  306.             case 8:{
  307.             TextDrawSetString(TextdrawMonth, " August");
  308.             SetWeather(SummerWeather[summerrand]);
  309.             }
  310.            
  311.             case 9:{
  312.             TextDrawSetString(TextdrawMonth, " September");
  313.             if(Day <21){SetWeather(SummerWeather[summerrand]);}
  314.             else{SetWeather(AutumnWeather[autumnrand]);}
  315.             }
  316.            
  317.             case 10:{
  318.             TextDrawSetString(TextdrawMonth, " October");
  319.             SetWeather(AutumnWeather[autumnrand]);
  320.             }
  321.            
  322.             case 11:{
  323.             TextDrawSetString(TextdrawMonth, " November");
  324.             SetWeather(AutumnWeather[autumnrand]);
  325.             }
  326.            
  327.             case 12:{
  328.             TextDrawSetString(TextdrawMonth, " December");
  329.             if(Day <21){SetWeather(AutumnWeather[autumnrand]);}
  330.             else{SetWeather(WinterWeather[winterrand]);}
  331.             }
  332.         }
  333.         if(ServerHour == 22){SetWorldTime(22);}
  334.         else{SetWorldTime(ServerHour);}
  335.     }
  336.     return 1;
  337. }
  338.  
  339. stock CreateRXTT()
  340. {
  341.     //Hours
  342.     TextdrawHour = TextDrawCreate(546.000000,22.000000,"--");
  343.     TextDrawAlignment(TextdrawHour,0);
  344.     TextDrawBackgroundColor(TextdrawHour,BLACK);
  345.     TextDrawFont(TextdrawHour,3);
  346.     TextDrawLetterSize(TextdrawHour,0.634,2.4);
  347.     TextDrawColor(TextdrawHour,WHITE);
  348.     TextDrawSetOutline(TextdrawHour,1);
  349.     TextDrawSetProportional(TextdrawHour,1);
  350.     TextDrawSetShadow(TextdrawHour,1);
  351.  
  352.     //Seconds
  353.     TextdrawSeconds = TextDrawCreate(606.500000,33.000000,"--");
  354.     TextDrawAlignment(TextdrawSeconds,0);
  355.     TextDrawBackgroundColor(TextdrawSeconds,BLACK);
  356.     TextDrawFont(TextdrawSeconds,3);
  357.     TextDrawLetterSize(TextdrawSeconds,0.3,1.0);
  358.     TextDrawColor(TextdrawSeconds,WHITE);
  359.     TextDrawSetOutline(TextdrawSeconds,1);
  360.     TextDrawSetProportional(TextdrawSeconds,1);
  361.     TextDrawSetShadow(TextdrawSeconds,1);
  362.  
  363.     //Day
  364.     TextdrawDay = TextDrawCreate(500.000000,10.000000,"--");
  365.     TextDrawAlignment(TextdrawDay,0);
  366.     TextDrawBackgroundColor(TextdrawDay,BLACK);
  367.     TextDrawFont(TextdrawDay,3);
  368.     TextDrawLetterSize(TextdrawDay,0.44,1.2);
  369.     TextDrawColor(TextdrawDay,WHITE);
  370.     TextDrawSetOutline(TextdrawDay,1);
  371.     TextDrawSetProportional(TextdrawDay,1);
  372.     TextDrawSetShadow(TextdrawDay,1);
  373.  
  374.     //Month
  375.     TextdrawMonth = TextDrawCreate(515.000000,10.000000,"---------");
  376.     TextDrawAlignment(TextdrawMonth,0);
  377.     TextDrawBackgroundColor(TextdrawMonth,BLACK);
  378.     TextDrawFont(TextdrawMonth,3);
  379.     TextDrawLetterSize(TextdrawMonth,0.44,1.2);
  380.     TextDrawColor(TextdrawMonth,WHITE);
  381.     TextDrawSetOutline(TextdrawMonth,1);
  382.     TextDrawSetProportional(TextdrawMonth,1);
  383.     TextDrawSetShadow(TextdrawMonth,1);
  384. }
  385.  
  386. stock HideRXTT(playerid)
  387. {
  388.     TextDrawHideForPlayer(playerid,TextdrawHour);
  389.     TextDrawHideForPlayer(playerid,TextdrawSeconds);
  390.     TextDrawHideForPlayer(playerid,TextdrawDay);
  391.     TextDrawHideForPlayer(playerid,TextdrawMonth);
  392. }
  393.  
  394. stock ShowRXTT(playerid)
  395. {
  396.     TextDrawShowForPlayer(playerid,TextdrawHour);
  397.     TextDrawShowForPlayer(playerid,TextdrawSeconds);
  398.     TextDrawShowForPlayer(playerid,TextdrawDay);
  399.     TextDrawShowForPlayer(playerid,TextdrawMonth);
  400. }
  401.  
  402. stock DestroyRXTT()
  403. {
  404.     TextDrawDestroy(TextdrawHour);
  405.     TextDrawDestroy(TextdrawSeconds);
  406.     TextDrawDestroy(TextdrawDay);
  407.     TextDrawDestroy(TextdrawMonth);
  408. }
Add Comment
Please, Sign In to add comment