2018-12-26 12:57:45 +00:00
|
|
|
/*
|
|
|
|
* Irresistible Gaming (c) 2018
|
|
|
|
* Developed by Lorenc
|
|
|
|
* Module: cnr\features\new_years_eve.pwn
|
|
|
|
* Purpose: new years countdown in-game
|
|
|
|
*/
|
|
|
|
|
|
|
|
/* ** Includes ** */
|
|
|
|
#include < YSI\y_hooks >
|
|
|
|
|
|
|
|
/* ** Definitions ** */
|
|
|
|
#define NEW_YEAR_TIMESTAMP ( 1546300800 ) // the exact timestamp for the new year, e.g 1/1/2020 00:00:00
|
|
|
|
#define NEW_YEAR ( 2019 ) // the new year
|
|
|
|
|
|
|
|
/* ** Variables ** */
|
|
|
|
static stock Text: g_NewYearCDTD [ 3 ] = { Text: INVALID_TEXT_DRAW, ... };
|
|
|
|
|
|
|
|
/* ** Hooks ** */
|
|
|
|
hook OnScriptInit( )
|
|
|
|
{
|
|
|
|
NewYears_InitializeTextdraws( );
|
|
|
|
return 1;
|
|
|
|
}
|
|
|
|
|
2018-12-27 07:30:50 +00:00
|
|
|
hook OnServerUpdate( )
|
2018-12-26 12:57:45 +00:00
|
|
|
{
|
|
|
|
new iCompare = NEW_YEAR_TIMESTAMP - GetServerTime( );
|
|
|
|
|
|
|
|
static bool: bNewYear;
|
|
|
|
|
|
|
|
if ( ! bNewYear ) {
|
2019-01-01 13:36:14 +00:00
|
|
|
if ( iCompare <= 0 ) {
|
|
|
|
TextDrawSetString( g_NewYearCDTD[ 0 ], "Happy New Year!" ), bNewYear = true;
|
2018-12-26 12:57:45 +00:00
|
|
|
} else {
|
2019-01-01 13:36:14 +00:00
|
|
|
TextDrawSetString( g_NewYearCDTD[ 0 ], sprintf( "~w~%s~n~~w~ till %d", secstonewyear( iCompare ), NEW_YEAR ) );
|
2018-12-26 12:57:45 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
return 1;
|
|
|
|
}
|
|
|
|
|
|
|
|
hook OnPlayerLoadTextdraws( playerid ) {
|
|
|
|
for ( new i = 0; i < sizeof ( g_NewYearCDTD ); i ++ ) {
|
|
|
|
TextDrawShowForPlayer( playerid, g_NewYearCDTD[ i ] );
|
|
|
|
}
|
|
|
|
return 1;
|
|
|
|
}
|
|
|
|
|
|
|
|
hook OnPlayerUnloadTextdraws( playerid ) {
|
|
|
|
for ( new i = 0; i < sizeof ( g_NewYearCDTD ); i ++ ) {
|
|
|
|
TextDrawHideForPlayer( playerid, g_NewYearCDTD[ i ] );
|
|
|
|
}
|
|
|
|
return 1;
|
|
|
|
}
|
|
|
|
|
|
|
|
/* ** Functions ** */
|
|
|
|
static stock secstonewyear(seconds, const delimiter[] = " ")
|
|
|
|
{
|
|
|
|
static const times[] = {
|
|
|
|
1,
|
|
|
|
60,
|
|
|
|
3600
|
|
|
|
};
|
|
|
|
|
|
|
|
static const names[][] = {
|
|
|
|
"S",
|
|
|
|
"M",
|
|
|
|
"H"
|
|
|
|
};
|
|
|
|
|
|
|
|
new string[128];
|
|
|
|
|
|
|
|
for(new i = sizeof(times) - 1; i != -1; i--)
|
|
|
|
{
|
|
|
|
if(seconds / times[i])
|
|
|
|
{
|
|
|
|
if(string[0])
|
|
|
|
{
|
|
|
|
format(string, sizeof(string), "%s%s%d%s", string, delimiter, (seconds / times[i]), names[i]);
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
format(string, sizeof(string), "%d%s", (seconds / times[i]), names[i]);
|
|
|
|
}
|
|
|
|
seconds -= ((seconds / times[i]) * times[i]);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return string;
|
|
|
|
}
|
|
|
|
|
|
|
|
static stock NewYears_InitializeTextdraws( )
|
|
|
|
{
|
|
|
|
g_NewYearCDTD[ 0 ] = TextDrawCreate(586.000000, 321.000000, "__");
|
|
|
|
TextDrawAlignment(g_NewYearCDTD[ 0 ], 2);
|
|
|
|
TextDrawBackgroundColor(g_NewYearCDTD[ 0 ], 255);
|
|
|
|
TextDrawFont(g_NewYearCDTD[ 0 ], 3);
|
|
|
|
TextDrawLetterSize(g_NewYearCDTD[ 0 ], 0.230000, 1.100000);
|
2019-01-01 13:36:14 +00:00
|
|
|
TextDrawColor(g_NewYearCDTD[ 0 ], COLOR_GOLD);
|
2018-12-26 12:57:45 +00:00
|
|
|
TextDrawSetOutline(g_NewYearCDTD[ 0 ], 1);
|
|
|
|
TextDrawSetProportional(g_NewYearCDTD[ 0 ], 1);
|
|
|
|
|
|
|
|
g_NewYearCDTD[ 1 ] = TextDrawCreate(515.000000, 308.000000, "obj");
|
|
|
|
TextDrawBackgroundColor(g_NewYearCDTD[ 1 ], 0);
|
|
|
|
TextDrawFont(g_NewYearCDTD[ 1 ], 5);
|
|
|
|
TextDrawLetterSize(g_NewYearCDTD[ 1 ], 0.500000, 1.000000);
|
|
|
|
TextDrawColor(g_NewYearCDTD[ 1 ], -1);
|
|
|
|
TextDrawSetOutline(g_NewYearCDTD[ 1 ], 0);
|
|
|
|
TextDrawSetProportional(g_NewYearCDTD[ 1 ], 1);
|
|
|
|
TextDrawSetShadow(g_NewYearCDTD[ 1 ], 1);
|
|
|
|
TextDrawUseBox(g_NewYearCDTD[ 1 ], 1);
|
2018-12-27 07:26:13 +00:00
|
|
|
TextDrawBoxColor(g_NewYearCDTD[ 1 ], 0);
|
2018-12-26 12:57:45 +00:00
|
|
|
TextDrawTextSize(g_NewYearCDTD[ 1 ], 34.000000, 40.000000);
|
|
|
|
TextDrawSetPreviewModel(g_NewYearCDTD[ 1 ], 19822);
|
|
|
|
TextDrawSetPreviewRot(g_NewYearCDTD[ 1 ], 0.000000, 0.000000, 0.000000, 1.000000);
|
|
|
|
|
|
|
|
g_NewYearCDTD[ 2 ] = TextDrawCreate(526.000000, 318.000000, "obj");
|
|
|
|
TextDrawBackgroundColor(g_NewYearCDTD[ 2 ], 0);
|
|
|
|
TextDrawFont(g_NewYearCDTD[ 2 ], 5);
|
|
|
|
TextDrawLetterSize(g_NewYearCDTD[ 2 ], 0.500000, 1.000000);
|
|
|
|
TextDrawColor(g_NewYearCDTD[ 2 ], -1);
|
|
|
|
TextDrawSetOutline(g_NewYearCDTD[ 2 ], 0);
|
|
|
|
TextDrawSetProportional(g_NewYearCDTD[ 2 ], 1);
|
|
|
|
TextDrawSetShadow(g_NewYearCDTD[ 2 ], 1);
|
|
|
|
TextDrawUseBox(g_NewYearCDTD[ 2 ], 1);
|
2018-12-27 07:26:13 +00:00
|
|
|
TextDrawBoxColor(g_NewYearCDTD[ 2 ], 0);
|
2018-12-26 12:57:45 +00:00
|
|
|
TextDrawTextSize(g_NewYearCDTD[ 2 ], 30.000000, 30.000000);
|
|
|
|
TextDrawSetPreviewModel(g_NewYearCDTD[ 2 ], 19818);
|
|
|
|
TextDrawSetPreviewRot(g_NewYearCDTD[ 2 ], 0.000000, 0.000000, 0.000000, 1.000000);
|
|
|
|
return 1;
|
|
|
|
}
|