2018-02-12 20:17:51 +00:00
/*
* Irresistible Gaming 2018
* Developed by Lorenc Pekaj
* Module : fps . inc
* Purpose : fps counter in - game
*/
2018-03-16 18:28:58 +00:00
/* ** Includes ** */
#include < YSI\y_hooks >
2018-02-12 20:17:51 +00:00
/* ** Defines ** */
#define GetPlayerFPS(%1) p_FPS[%1]
/* ** Variables ** */
new
Text : p_FPSCounterTD [ MAX_PLAYERS ] = { Text : INVALID_TEXT_DRAW , ... },
bool : p_FPSCounter [ MAX_PLAYERS char ],
p_FPS_DrunkLevel [ MAX_PLAYERS ],
p_FPS [ MAX_PLAYERS ]
;
/* ** Commands ** */
CMD : fps ( playerid , params [ ] )
{
if ( ( p_FPSCounter { playerid } = ! p_FPSCounter { playerid } ) == true )
{
formatFPSCounter ( playerid );
TextDrawShowForPlayer ( playerid , p_FPSCounterTD [ playerid ] );
SendClientMessage ( playerid , 0x84aa63ff , " -> FPS counter enabled " );
}
else
{
TextDrawHideForPlayer ( playerid , p_FPSCounterTD [ playerid ] );
SendClientMessage ( playerid , 0x84aa63ff , " -> FPS counter disabled " );
}
return 1 ;
}
2018-03-17 18:51:31 +00:00
#if defined _streamer_included
CMD : drawdistance ( playerid , params [ ] )
{
if ( strmatch ( params , " low " ) ) {
Streamer_SetVisibleItems ( STREAMER_TYPE_OBJECT , 300 , playerid );
SendClientMessage ( playerid , 0x84aa63ff , " -> Draw distance of objects now set to LOW. " );
} else if ( strmatch ( params , " medium " ) ) {
Streamer_SetVisibleItems ( STREAMER_TYPE_OBJECT , 625 , playerid );
SendClientMessage ( playerid , 0x84aa63ff , " -> Draw distance of objects now set to MEDIUM. " );
} else if ( strmatch ( params , " high " ) ) {
Streamer_SetVisibleItems ( STREAMER_TYPE_OBJECT , 950 , playerid );
SendClientMessage ( playerid , 0x84aa63ff , " -> Draw distance of objects now set to HIGH. " );
} else if ( strmatch ( params , " info " ) ) {
SendClientMessage ( playerid , 0x84aa63ff , sprintf ( " -> You have currently %d objects streamed towards your client. " , Streamer_GetVisibleItems ( STREAMER_TYPE_OBJECT , playerid ) ) );
}
else {
SendClientMessage ( playerid , 0xa9c4e4ff , " -> /drawdistance [LOW/MEDIUM/HIGH/INFO] " );
}
return 1 ;
}
#endif
2018-02-12 20:17:51 +00:00
/* ** Functions ** */
stock formatFPSCounter ( playerid ) {
if ( ! p_FPSCounter { playerid } )
return ;
static
iFPS ,
szColor [ 10 ],
szFPS [ sizeof ( szColor ) + 4 ]
;
switch ( ( iFPS = p_FPS [ playerid ] ) ) {
case 32 .. 120 : szColor = " ~g~~h~~h~ " ;
case 18 .. 31 : szColor = " ~y~~h~ " ;
case 0 .. 17 : szColor = " ~r~~h~~h~ " ;
default : szColor = " ~g~~h~~h~ " ;
}
format ( szFPS , sizeof ( szFPS ), " %s%d " , szColor , iFPS );
TextDrawSetString ( p_FPSCounterTD [ playerid ], szFPS );
}
2018-03-16 18:28:58 +00:00
/* ** Hooks ** */
hook InitializeTextDraws ( )
2018-02-12 20:17:51 +00:00
{
for ( new playerid ; playerid != MAX_PLAYERS ; playerid ++ )
{
p_FPSCounterTD [ playerid ] = TextDrawCreate ( 636.000000 , 2.000000 , " _ " );
TextDrawAlignment ( p_FPSCounterTD [ playerid ], 3 );
TextDrawBackgroundColor ( p_FPSCounterTD [ playerid ], 255 );
TextDrawFont ( p_FPSCounterTD [ playerid ], 3 );
TextDrawLetterSize ( p_FPSCounterTD [ playerid ], 0.300000 , 1.500000 );
TextDrawColor ( p_FPSCounterTD [ playerid ], - 1 );
TextDrawSetOutline ( p_FPSCounterTD [ playerid ], 1 );
TextDrawSetProportional ( p_FPSCounterTD [ playerid ], 1 );
}
}