Raised This Month: $ Target: $400
 0% 

[Request] So cool script . Can anyone teach ?


  
 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
milutinke
AlliedModders Donor
Join Date: Jun 2012
Location: Serbia
Old 12-06-2015 , 18:00   Re: [Request] So cool script . Can anyone teach ?
Reply With Quote #4

Can someone test it, i wrote this using my mobile phone

AMXX:
PHP Code:
#include < amxmodx >
#include < sqlx >

enum _:StructPlayerInfo {
    
g_szSteamID32 ],
    
g_szName32 ],
    
g_szIp20 ],
    
    
g_iPlayerId,
    
g_iPlayedTime
}

enum _:StructCvars {
    
g_szCvarHost,
    
g_szCvarUser,
    
g_szCvarPwd,
    
g_szCvarDb
}

new 
g_szCvarsStructCvars ][ ][ ] = {
    
//  Name            Value
    
{    "aat_host",        "localhost"  },
    {     
"aat_user",        "root"        },
    {    
"aat_pwd",        "root"        },
    {     
"aat_db",        "root"        }
};

new 
g_szCvarDataStructCvars ][ 64 ];
new 
g_iCvarDataStructCvars ];
new 
Handleg_hSqlConnection;
new 
g_iMaxPlayers;

new 
g_PlayerInfo33 ][ StructPlayerInfo ];

public 
plugin_init( ) {
    
register_plugin"Admin Activity Tracker""1.0""Milutinke (ByM)" );
    
    
g_iMaxPlayers get_maxplayers( );
    
    for( new 
0sizeofg_szCvars[ ] ); i++ ) {
        
g_iCvarData] = register_cvarg_szCvars][ ], g_szCvars][ ] );
        
get_cvar_stringg_iCvarData], g_szCvarData], charsmaxg_szCvarData[ ] ) );
    }
    
    
g_hSqlConnection SQL_MakeDbTupleg_szCvarDatag_szCvarHost ], g_szCvarDatag_szCvarUser ], g_szCvarDatag_szCvarPwd ], g_szCvarDatag_szCvarDb ] );
}

public 
plugin_end( ) {
    
SQL_FreeHandleg_hSqlConnection );
}    

public 
client_putinserveriPlayer ) {
    if( 
is_user_botiPlayer ) )
        return;
        
    
get_user_authidiPlayerg_PlayerInfoiPlayer ][ g_szSteamID ], charsmaxg_PlayerInfo[ ][ g_szSteamID ] ) );
    
get_user_nameiPlayerg_PlayerInfoiPlayer ][ g_szName ], charsmaxg_PlayerInfo[ ][ g_szName ] ) );
    
get_user_ipiPlayerg_PlayerInfoiPlayer ][ g_szIp ], charsmaxg_PlayerInfo[ ][ g_szIp ] ), );
    
    
PlayerHasConnectediPlayer );
}

public 
client_disconnectiPlayer ) {
    if( 
is_user_botiPlayer ) )
        return;
        
    
PlayerHasDisconnectediPlayer );
}

public 
PlayerHasConnectediPlayer ) {
    if( !
is_user_connectediPlayer ) || !( <= iPlayer <= g_iMaxPlayers ) )
        return;
        
    new 
szQuery128 ];
    
formatexszQuerycharsmaxszQuery ), "SELECT `Id`, `PlayedTime` FROM `aatdb` WHERE `SteamID` = '%s'"g_PlayerInfoiPlayer ][ g_szSteamID ] );
    
    new 
iData];
    
iData] = iPlayer;
    
    
SQL_ThreadQueryg_hSqlConnection"HandlePlayerConnect"szQueryiData);
}

public 
HandlePlayerConnectiFailStateHandlehQueryszError[ ], iErroriData[ ], iSizeFloatflQueueTime ) {
    if( 
SQL_IsFailiFailStateiErrorszError ) ) {
        return;
    }
    
    new 
iPlayer iData];
    if( !
is_user_connectediPlayer ) || !( <= iPlayer <= g_iMaxPlayers ) )
        return;
    
    if( 
SQL_NumResultshQuery ) ) {
        
g_PlayerInfoiPlayer ][ g_iPlayerId ] = SQL_ReadResulthQuery);
        
g_PlayerInfoiPlayer ][ g_iPlayedTime ] = SQL_ReadResulthQuery);
        
        
SQL_QueryMe_"UPDATE `aatdb` SET `Online` = '1', `Nick` = '%s', `Ip` = '%s' WHERE `Id` = '%d'"g_PlayerInfoiPlayer ][ g_szName ], g_PlayerInfoiPlayer ][ g_szIp ], g_PlayerInfoiPlayer ][ g_iPlayerId ] );
    }
    else {
        new 
szQuery128 ], szDate32 ];
        
get_time"%m.%d.%Y - %H:%M"szDatecharsmaxszDate ) );
        
        
formatexszQuerycharsmaxszQuery ), "INSERT INTO `aatdb` (`SteamID`, `LastConnection`, `Nick`, `Ip`, `Online`, `PlayedTime`) VALUES ('%s', '%s', '%s', '%s', '1', '0')"g_PlayerInfoiPlayer ][ g_szSteamID ], szDateg_PlayerInfoiPlayer ][ g_szName ], g_PlayerInfoiPlayer ][ g_szIp ] );
        
        
SQL_ThreadQueryg_hSqlConnection"HandlePlayerInsert"szQueryiData);
    }
}

public 
HandlePlayerInsertiFailStateHandlehQueryszError[ ], iErroriData[ ], iSizeFloatflQueueTime ) {
    if( 
SQL_IsFailiFailStateiErrorszError ) ) {
        return;
    }
    
    new 
iPlayer iData];
    if( !
is_user_connectediPlayer ) || !( <= iPlayer <= g_iMaxPlayers ) )
        return;
        
    
g_PlayerInfoiPlayer ][ g_iPlayerId ] = SQL_GetInsertIdhQuery );
    
g_PlayerInfoiPlayer ][ g_iPlayedTime ] = 0;
}

public 
PlayerHasDisconnectediPlayer ) {
    
SQL_QueryMe_"UPDATE `aatdb` SET `PlayedTime` = '%d', `Score` = '%d', `Online` = '0' WHERE `Id` = '%d'"get_user_timeiPlayer ) + g_PlayerInfoiPlayer ][ g_iPlayedTime ], get_user_fragsiPlayer ), g_PlayerInfoiPlayer ][ g_iPlayerId ] );
}

//Following code is taken from xPawn plugins (Saved 5 minute of work xD)
public HandleQueryiFailStateHandlehQueryszError[ ], iErrorszData[ ], iSizeFloatflQueueTime ) {
    
SQL_IsFailiFailStateiErrorszError );
}

SQL_QueryMeszHandle[ ] = "HandleQuery", const szQuery[ ], any:... ) {
    new 
szMessage256 ];
    
vformatszMessage255szQuery);
    
    
SQL_ThreadQueryg_hSqlConnectionszHandleszMessage );
}

stock boolSQL_IsFail( const iFailState, const iError, const szError[ ] ) {
    if( 
iFailState == TQUERY_CONNECT_FAILED ) {
        
server_print"[ByM] Could not connect to SQL database: %s"szError );
        
log_to_file"SQL_Error.txt""[ByM] Could not connect to SQL database: %s"szError );
        return 
true;
    }
    else if( 
iFailState == TQUERY_QUERY_FAILED ) {
        
server_print"[ByM] Query failed: (%i) %s"iErrorszError );
        
log_to_file"SQL_Error.txt""[ByM] Could not connect to SQL database: %s"szError );
        return 
true;
    }
    
    return 
false;

SQL:
Code:
CREATE TABLE IF NOT EXISTS `aatdb` (
  `Id` int(11) NOT NULL AUTO_INCREMENT,
  `SteamID` varchar(32) NOT NULL DEFAULT '',
  `Nick` varchar(64) NOT NULL DEFAULT '',
  `Ip` varchar(32) NOT NULL DEFAULT '',
  `Online` int(11) NOT NULL DEFAULT '0',
  `PlayedTime` int(11) NOT NULL DEFAULT '0',
  `LastConnection` varchar(64) NOT NULL DEFAULT '',
  `Score` int(11) NOT NULL DEFAULT '0',
  PRIMARY KEY (`Id`),
  UNIQUE KEY `SteamID` (`SteamID`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

Last edited by milutinke; 12-07-2015 at 14:51.
milutinke is offline
Send a message via Skype™ to milutinke
 



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 18:12.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode