Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #if defined _ROA_REC_
- ================================================================================
- RoaRec by Roach
- ================================================================================
- - Credits to Zh3r0 from some ideeas and councils.
- - Credits to stuntman from some ideeas and councils.
- - Credits to Ryder_RO and AirKite for the Ideea.
- - Credits to Y_Less for foreach and all the YSI Library.
- ================================================================================
- Log RoaRec v2.0
- ================================================================================
- - [Added]: Some SQLite Defines.
- - [Added]: foreach, but with a new Iterator.
- - [Added]: Two more stocks( GLOBALS ), g_date and g_hour.
- - [Added]: It will print in the Console:
- » Record Type.
- » Recorder Name.
- » Record Date.
- » Record Hour.
- » Record Number.
- - [Update]: Modifyed FormatMSG Define.
- - [Removed]: Some Variables.
- - [Removed]: The INI System.
- - [UPDATE]: Now all the Record System is on SQLite.
- - [INFO]: The system should be more faster than last Version...
- - [INFO]: I''ve rewrited all the code for some reasons...
- ================================================================================
- #endif
- //==============================================================================//
- // Includes //
- //==============================================================================//
- #include < a_samp> // Credits to the SA:MP - Developement Team
- #include <foreach> // Credits to Y_Less
- #include < ZCMD > // Credits to ZeeX
- //==============================================================================//
- // RoaRec Timer Time //
- //==============================================================================//
- #define r_Time 2 * 1000 // You can Modify this( in Miliseconds, of course )
- //==============================================================================//
- // Repleaced/Shorcuts //
- //==============================================================================//
- #define Public:%0(%1)\
- forward %0(%1);\
- public %0(%1)
- #define FormatMSG(%0,%1,%2,%3,%4)\
- do\
- {\
- format( %0, sizeof(%0), (%3), %4 );\
- SendClientMessage((%1),(%2), %0);\
- }\
- while ( False )
- #define db_query_set(%0,%1,%2,%3)\
- do\
- {\
- format(%1, sizeof(%1), (%2), %3);\
- db_free_result(db_query(%0, %1));\
- }\
- while ( False )
- #define db_query_get(%0,%1,%2,%3)\
- do\
- {\
- format(%1, sizeof(%1), "SELECT `%s` FROM `records`", %3);\
- db_get_field(db_query(%0, %1), 0, %2, sizeof(%2) );\
- db_free_result(db_query(%0, %1));\
- }\
- while ( False )
- #define DEFAULT_COLUMNS "`Name` TEXT, `Number` INTEGRER, `Date` TEXT, `Hour` TEXT"
- //------------------------------------------------------------------------------//
- new
- DB: DB_Record,
- Iterator:ON_Player< MAX_PLAYERS >,
- s_Name[ MAX_PLAYER_NAME ] = "No-One",
- i_Number[ 3 ] = "0",
- s_Date[ 100 ] = "2012.12.12",
- s_Hour[ 100 ] = "00:00"
- ;
- stock
- bool:False = false
- ;
- public OnFilterScriptInit( )
- {
- DB_Record = db_open( #DB_Record.db );
- db_query( DB_Record, "CREATE TABLE IF NOT EXISTS `records` ( " DEFAULT_COLUMNS " )" );
- r_LoadRec( );
- print ( " " );
- print ( " ======================================= " );
- print ( " | | " );
- print ( " | Record Type: OLD | " );
- printf( " | Recorder Name: %s | ", s_Name );
- printf( " | Record Date: %s | ", s_Date );
- printf( " | Record Hour: %s | ", s_Hour );
- printf( " | Record Number: %03d Players |", strval(i_Number));
- print ( " | | " );
- print ( " ======================================= " );
- print ( " " );
- return ( 1 );
- }
- public OnFilterScriptExit( )
- {
- db_close( DB: DB_Record );
- return ( 1 );
- }
- public OnPlayerConnect( playerid )
- {
- Iter_Add(ON_Player, playerid);
- SetTimerEx( "r_Record", r_Time, ( false ), "i", playerid );
- return ( 1 );
- }
- public OnPlayerDisconnect( playerid, reason )
- {
- Iter_Remove(ON_Player, playerid);
- return( 1 );
- }
- //------------------------------------------------------------------------------//
- //==============================================================================
- // Usage: ---
- // Function: To check if is a new record or the Old.
- //==============================================================================
- Public:r_Record( playerid )
- {
- if( strval(i_Number) )
- {
- new o_Rec[ 250 ];
- FormatMSG( o_Rec, playerid, -1, "» Record for Online Players: {97FA17}%d{FFFFFF}, fixed by {97FA17}%s{FFFFFF}, on {97FA17}%s{FFFFFF}, at {97FA17}%s{FFFFFF}.", strval(i_Number), s_Name, s_Date, s_Hour );
- return ( 0 );
- }
- if( strval(i_Number) < Iter_Count(ON_Player) )
- {
- new n_Rec[ 250 ];
- format( s_Name, sizeof s_Name, "%s", p_Name( playerid ) );
- format( i_Number, sizeof i_Number, "%d", Iter_Count(ON_Player) );
- r_SaveRec( ); r_LoadRec( );
- format( n_Rec, 250, "» New record for Online Players: {97FA17}%d{FFFFFF}, fixed by {97FA17}%s{FFFFFF}, on {97FA17}%s{FFFFFF}, at {97FA17}%s{FFFFFF}.", Iter_Count(ON_Player), p_Name( playerid ), g_date( #. ), g_hour( #: ) );
- SendClientMessage( playerid, -1, n_Rec );
- print ( " " );
- print ( " ======================================= " );
- print ( " | | " );
- print ( " | Record Type: NEW | " );
- printf( " | Recorder Name: %s | ", s_Name );
- printf( " | Record Date: %s | ", s_Date );
- printf( " | Record Hour: %s | ", s_Hour );
- printf( " | Record Number: %03d Players | ", strval(i_Number));
- print ( " | | " );
- print ( " ======================================= " );
- print ( " " );
- }
- return ( 1 );
- }
- CMD:add( ) return Iter_Add(ON_Player, random( 500 ) );
- //==============================================================================
- // Usage: r_SaveRec( );
- // Function: To write( with SQLite ) in the Datebase file.
- //==============================================================================
- r_SaveRec( )
- {
- new s_DB[ 500 ];
- db_query_set( DB:DB_Record, s_DB, "DELETE FROM `records`", 0 );
- db_query_set( DB:DB_Record, s_DB, "INSERT INTO `records` ( `Name`, `Number`, `Date`, `Hour` ) VALUES ( '%s', '%d', '%s', '%s' )", s_Name, Iter_Count(ON_Player), g_date( #. ), g_hour( #: ) );
- return ( 1 * 1 );
- }
- //==============================================================================
- // Usage: r_LoadRec( );
- // Function: To load( SQLite ) the Rec that is in the Datebase file.
- //==============================================================================
- r_LoadRec( )
- {
- new s_DB[ 500 ];
- db_query_get( DB:DB_Record, s_DB, s_Name, "Name" );
- db_query_get( DB:DB_Record, s_DB, i_Number, "Number" );
- db_query_get( DB:DB_Record, s_DB, s_Date, "Date" );
- db_query_get( DB:DB_Record, s_DB, s_Hour, "Hour" );
- return ( 1 * 1 );
- }
- //==============================================================================
- // Usage: p_Name( playerid );
- // Function: Used to get the name of a player.
- //==============================================================================
- p_Name( p )
- {
- new NAME[ MAX_PLAYER_NAME ];
- GetPlayerName( p, NAME, MAX_PLAYER_NAME );
- return ( NAME );
- }
- //==============================================================================
- // Usage: g_date( character ) / g_hour( character, *g_Sec = true/false )
- // Function: Used to get the Date/Hour.
- // * = Optional.
- //==============================================================================
- stock g_date( g_char[ ] )
- {
- new
- g_s_date[ 50 char ],
- g_d_date[ 3 ]
- ;
- getdate( g_d_date[ 0 ], g_d_date[ 1 ], g_d_date[ 2 ] );
- format( g_s_date, sizeof g_s_date, "%02d%s%02d%s%02d", g_d_date[ 0 ], g_char, g_d_date[ 1 ], g_char, g_d_date[ 2 ] );
- return ( g_s_date );
- }
- stock g_hour( g_char[ ], bool:g_Sec = false )
- {
- new
- g_s_hour[ 50 char ],
- g_d_hour[ 3 ]
- ;
- if( !g_Sec )
- {
- gettime( g_d_hour[ 0 ], g_d_hour[ 1 ] );
- format( g_s_hour, sizeof g_s_hour, "%02d%s%02d", g_d_hour[ 0 ], g_char, g_d_hour[ 1 ] );
- }
- else
- {
- gettime( g_d_hour[ 0 ], g_d_hour[ 1 ], g_d_hour[ 2 ] );
- format( g_s_hour, sizeof g_s_hour, "%02d%s%02d%s%02d", g_d_hour[ 0 ], g_char, g_d_hour[ 1 ], g_char, g_d_hour[ 2 ] );
- }
- return ( g_s_hour );
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement