Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* Plugin generated by AMXX-Studio */
- #include <amxmodx>
- #include <amxmisc>
- #include <sqlx>
- #define PLUGIN "New Plug-In"
- #define VERSION "1.0"
- #define AUTHOR "author"
- /*------------------------------------------------------------------------------------------------*/
- new const SQL_TABLE_NAME[ ] = "AvH_NAME";
- new Handle:SqlConnection;
- new Handle:g_SqlTuple;
- new g_Error[ 512 ];
- new g_pcvarHost;
- new g_pcvaruUser;
- new g_pcvarPass;
- new g_pcvarDB;
- new g_iCvar_SaveXP;
- new g_authed[ 33 ];
- new g_sql_ready = false;
- new bool:g_loaded[ 33 ];
- new g_iXP[ 33 ];
- new g_iArtifact[ 33 ];
- new g_iLevel[ 33 ];
- new g_iMaxPlayers;
- /*------------------------------------------------------------------------------------------------*/
- public plugin_init() {
- register_plugin(PLUGIN, VERSION, AUTHOR)
- g_iMaxPlayers = get_maxplayers();
- // SQL
- g_pcvarHost = register_cvar( "avh_sql_host", "db.tni.ro" );
- g_pcvaruUser = register_cvar( "avh_sql_user", "vuser359" );
- g_pcvarPass = register_cvar( "avh_sql_pass", "sjSE1239SLA3Sj138S" );
- g_pcvarDB = register_cvar( "avh_sql_db", "vuser359" );
- set_task( 0.1,"SQL_Init" );
- // Add your code here...
- }
- public fw_ClientDisconnect( id ) {
- DB_SaveData( id );
- g_authed[ id ] = false;
- g_loaded[ id ] = false;
- }
- public client_authorized( id ) {
- g_authed[ id ] = true;
- DB_LoadData( id );
- }
- public DB_SaveData(id) {
- if( !g_loaded[ id ] )
- return;
- new szQuotedName[ 64 ], szName[ 32 ];
- get_user_name( id, szName, sizeof( szName ) - 1 );
- SQL_QuoteString( SqlConnection, szQuotedName, 63, szName );
- new szTemp[ 512 ];
- format( szTemp, charsmax( szTemp ), "UPDATE `%s` SET `XP` = '%d', `LEVEL` = '%d', `ARTIFACTS` = '%d' WHERE `%s`.`name` = '%s';", SQL_TABLE_NAME, g_iXP[ id ], g_iLevel[ id ], g_iArtifact[ id ], SQL_TABLE_NAME, szQuotedName );
- SQL_ThreadQuery( g_SqlTuple, "IgnoreHandle", szTemp );
- }
- /*------------------------------------------------------------------------------------------------*/
- public IgnoreHandle( FailState, Handle:Query, Error[ ], Errcode, Data[ ], DataSize ) {
- SQL_FreeHandle( Query )
- return PLUGIN_HANDLED;
- }
- /*------------------------------------------------------------------------------------------------*/
- public DB_LoadData(id) {
- if( !g_sql_ready )
- return;
- if( g_SqlTuple == Empty_Handle )
- set_fail_state( g_Error );
- new Data[ 1 ];
- Data[ 0 ] = id;
- new szName[ 32 ];
- get_user_name(id, szName, sizeof( szName ) - 1 );
- new szTemp[ 512 ];
- formatex( szTemp, charsmax( szTemp ), "SELECT * FROM `%s` WHERE (`%s`.`name` = '%s')", SQL_TABLE_NAME, SQL_TABLE_NAME, szName );
- SQL_ThreadQuery( g_SqlTuple, "RegisterClient", szTemp, Data, 1 );
- }
- public RegisterClient( FailState, Handle:Query, Error[ ], Errcode, Data[ ], DataSize ) {
- if( FailState == TQUERY_CONNECT_FAILED )
- {
- log_amx( "[Error] Could not connect to SQL database: [%d] %s", Errcode, Error );
- return PLUGIN_HANDLED;
- }
- else if( FailState == TQUERY_QUERY_FAILED )
- {
- log_amx( "[Error] Query failed: [%d] %s", Errcode, Error );
- return PLUGIN_HANDLED;
- }
- static id; id = Data[ 0 ];
- if( SQL_NumResults( Query ) < 1 )
- {
- new szName[ 32 ];
- get_user_name(id, szName, sizeof( szName ) - 1 );
- new szIp[ 40 ];
- get_user_ip( id, szIp, sizeof ( szIp ) -1, 1 );
- new authid[ 32 ];
- get_user_authid(id, authid, sizeof( authid ) -1 );
- new szTemp[ 512 ];
- if( g_SqlTuple == Empty_Handle )
- set_fail_state( g_Error );
- format( szTemp, charsmax( szTemp ), "INSERT INTO `%s` (`name`, `XP`, `LEVEL`, `ARTIFACTS`) VALUES ('%s', '0', '0', '0');", SQL_TABLE_NAME, szName );
- SQL_ThreadQuery( g_SqlTuple, "IgnoreHandle", szTemp );
- }
- else
- {
- g_iXP[ id ] = SQL_ReadResult( Query, 1 );
- g_iLevel[ id ] = SQL_ReadResult( Query, 2 );
- g_iArtifact[ id ] = SQL_ReadResult( Query, 3 );
- }
- g_loaded[ id ] = true;
- return PLUGIN_HANDLED;
- }
- /*------------------------------------------------------------------------------------------------*/
- public SQL_Init( ) {
- if( get_pcvar_num( g_iCvar_SaveXP ) != 0 ) {
- new szHost[ 32 ];
- new szUser[ 32 ];
- new szPass[ 32 ];
- new szDB[ 32 ];
- get_pcvar_string( g_pcvarHost, szHost, charsmax( szHost ) );
- get_pcvar_string( g_pcvaruUser, szUser, charsmax( szUser ) );
- get_pcvar_string( g_pcvarPass, szPass, charsmax( szPass ) );
- get_pcvar_string( g_pcvarDB, szDB, charsmax( szDB ) );
- g_SqlTuple = SQL_MakeDbTuple( szHost, szUser, szPass, szDB );
- new ErrorCode;
- SqlConnection = SQL_Connect( g_SqlTuple, ErrorCode, g_Error, charsmax( g_Error ) );
- if( SqlConnection == Empty_Handle )
- set_fail_state( g_Error );
- new Handle:Queries;
- Queries = SQL_PrepareQuery( SqlConnection, "CREATE TABLE IF NOT EXISTS %s (Name VARCHAR(64) NOT NULL,`XP` INT(10), `LEVEL` INT(20), `ARTIFACTS` INT(21) )", SQL_TABLE_NAME );
- if( !SQL_Execute( Queries ) )
- {
- SQL_QueryError( Queries, g_Error, charsmax( g_Error ) );
- set_fail_state( g_Error );
- }
- SQL_FreeHandle( Queries );
- g_sql_ready = true;
- for( new i = 1; i <= g_iMaxPlayers; i++ ) {
- if( g_authed[ i ] ) {
- DB_LoadData( i );
- }
- }
- }
- }
- /*------------------------------------------------------------------------------------------------*/
- public plugin_end() {
- if( SqlConnection != Empty_Handle ) {
- SQL_FreeHandle( SqlConnection );
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement