Ok here is the code its not complete I didnt have time to complete
PHP Code:
#include <amxmodx> #include <amxmisc> #include <sqlx> #define INSERT_MAX_LENGTH 50000 new g_szLogFile [ 64 ]; new g_Table [ 32 ] new szPrefix [ 32 ] new p_Host , p_User , p_Pass , p_Db , p_Table , p_Prefix new ip_servaka , ip_servaka2 , ip_servaka3 , ip_servaka4 , ip_servaka5 , ip_servaka6 new cvar_showhudmsg public plugin_init () { register_plugin ( "putinserver menu" , "0.1" , "Avril-Lavigne" ); register_clcmd ( "amx_menu" , "function_menu" , ADMIN_ALL , "" ); register_clcmd ( "say /menu" , "function_menu" ); register_clcmd ( "menu" , "function_menu" ); cvar_showhudmsg = register_cvar ( "show_hudmsg" , "1" ); ip_servaka = register_cvar ( "server_ip" , "123.123.123.123:27015" ) ip_servaka2 = register_cvar ( "server_ip2" , "123.123.123.123:27015" ) ip_servaka3 = register_cvar ( "server_ip3" , "123.123.123.123:27015" ) ip_servaka4 = register_cvar ( "server_ip4" , "123.123.123.123:27015" ) ip_servaka5 = register_cvar ( "server_ip5" , "123.123.123.123:27015" ) ip_servaka6 = register_cvar ( "server_ip6" , "123.123.123.123:27015" ) p_Host = register_cvar ( "lac_host" , "" , FCVAR_PROTECTED ); p_User = register_cvar ( "lac_user" , "" , FCVAR_PROTECTED ); p_Pass = register_cvar ( "lac_pass" , "" , FCVAR_PROTECTED ); p_Db = register_cvar ( "lac_db" , "" , FCVAR_PROTECTED ); p_Table = register_cvar ( "lac_table" , "" , FCVAR_PROTECTED ); p_Prefix = register_cvar ( "lac_prefix" , "[LAC]" ) get_datadir ( g_szLogFile , charsmax ( g_szLogFile ) ); add ( g_szLogFile , charsmax ( g_szLogFile ), "/connect.log" ); set_task ( 0.1 , "plugin_mysql_init" ); } public plugin_mysql_init () { new szHost [ 32 ], szUser [ 32 ], szPass [ 32 ], szDb [ 32 ]; get_pcvar_string ( p_Host , szHost , charsmax ( szHost ) ); get_pcvar_string ( p_User , szUser , charsmax ( szUser ) ); get_pcvar_string ( p_Pass , szPass , charsmax ( szPass ) ); get_pcvar_string ( p_Db , szDb , charsmax ( szDb ) ); get_pcvar_string ( p_Table , g_Table , charsmax ( g_Table ) ); get_pcvar_string ( p_Prefix , szPrefix , charsmax ( szPrefix ) ) new Handle : SqlxTuple = SQL_MakeDbTuple ( szHost , szUser , szPass , szDb ); if( SqlxTuple ) { new Error [ 128 ] new ErrorCode , Handle : SqlxConnection = SQL_Connect ( SqlxTuple , ErrorCode , Error , charsmax ( Error ) ); if( SqlxConnection ) { server_print ( "%s Conected to database" , szPrefix ); new Handle : Queries = SQL_PrepareQuery ( SqlxConnection , "CREATE TABLE IF NOT EXISTS `%s` (\ `id` INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,\ `hostname` VARCHAR( 100 ) NOT NULL,\ `adminname` VARCHAR( 100 ) NOT NULL,\ `steamid` VARCHAR( 100 ) NOT NULL,\ `connecttime` TIME NOT NULL default '00:00:00',\ `connectdate` DATE NOT NULL default '0000-00-00')" , g_Table ); new Error [ 128 ]; if( ! SQL_Execute ( Queries ) ) { SQL_QueryError ( Queries , Error , charsmax ( Error ) ); set_fail_state ( Error ); } SQL_FreeHandle ( Queries ); new f = fopen ( g_szLogFile , "rt" ); if( f ) { new szQuery [ INSERT_MAX_LENGTH + 1 ]; new iDefaultLen , iLen = iDefaultLen = formatex ( szQuery , charsmax ( szQuery ), "INSERT INTO %s (hostname,adminname,connecttime,connectdate,steamid) VALUES " , g_Table ); new szTemp [ 240 ], iTempLen ; new szData [ 200 ]; new szSteamID [ 35 ]; while( ! feof ( f ) ) { fgets ( f , szData , charsmax ( szData ) ); if( parse ( szData , szHost , charsmax ( szHost ), szUser , charsmax ( szUser ), szPass , charsmax ( szPass ), szDb , charsmax ( szDb ), szSteamID , charsmax ( szSteamID ) ) != 5 ) { continue; } // szHost = hostname // szUser = player name // szPass = time // szDb = date iTempLen = formatex ( szTemp , charsmax ( szTemp ), "('%s','%s','%s','%s','%s')," , szHost , szUser , szPass , szDb , szSteamID ); if( ( iLen + iTempLen ) > INSERT_MAX_LENGTH ) { szQuery [ iLen - 1 ] = ';' ; Queries = SQL_PrepareQuery ( SqlxConnection , "%s" , szQuery ); if( ! SQL_Execute ( Queries ) ) { SQL_QueryError ( Queries , Error , charsmax ( Error ) ); log_amx ( "Error inserting logs: %s" , Error ); } SQL_FreeHandle ( Queries ); iLen = iDefaultLen ; } iLen += copy ( szQuery [ iLen ], charsmax ( szQuery ) - iLen , szTemp ); } fclose ( f ); if( iLen > iDefaultLen ) { szQuery [ iLen - 1 ] = ';' ; Queries = SQL_PrepareQuery ( SqlxConnection , "%s" , szQuery ); if( ! SQL_Execute ( Queries ) ) { SQL_QueryError ( Queries , Error , charsmax ( Error ) ); log_amx ( "Error inserting logs: %s" , Error ); } SQL_FreeHandle ( Queries ); } } SQL_FreeHandle ( SqlxConnection ); } else { server_print ( "%s : Database connection failed (error %d): %s" , szPrefix , ErrorCode , Error ) } } if( file_exists ( g_szLogFile ) ) { delete_file ( g_szLogFile ); } } FixForSQL ( szString [ ], iLen ) { replace_all ( szString , iLen , "`" , "" ); replace_all ( szString , iLen , "'" , "''" ); } public client_putinserver ( id ) { if( get_pcvar_num ( cvar_showhudmsg )) set_task ( 1.0 , "task_hudmsg" , id , _ , _ , "b" ) } public task_hudmsg ( id ) { set_hudmessage ( 0 , 255 , 0 , 0.75 , 0.0 , 0 , 6.0 , 12.0 ) show_hudmessage ( id , "Idi nahuj" ) } public function_menu ( id ) { new menu = menu_create ( "\wР’С‹ хотите посетить следущие сервера?" , "menu_handler" ) menu_additem ( menu , "\d[Pro] Classic" , "1" ) menu_additem ( menu , "\d[Pro] CSDM" , "2" ) menu_additem ( menu , "\w[Pro] War3FT" , "3" ) menu_additem ( menu , "\y[Pro] Respawn" , "4" ) menu_additem ( menu , "\y[Pro] Jump 2" , "5" ) menu_additem ( menu , "\wКупить админку" , "6" ) menu_setprop ( menu , MPROP_EXITNAME , "Р*’ыхР*С•Р*Т‘" ) menu_setprop ( menu , MPROP_EXIT , MEXIT_ALL ) menu_display ( id , menu , 0 ) return PLUGIN_HANDLED register_clcmd ( "menu" , "go_menu" ); } public client_authorized ( id ) { client_cmd ( id , "bind ^" F3 ^ " ^" menu ^ "" ) } public menu_handler ( id , menu , item ) { if( item == MENU_EXIT ) { menu_destroy ( menu ) return PLUGIN_HANDLED } new Server [ 32 ], Server2 [ 32 ] , Server3 [ 32 ] , Server4 [ 32 ] , Server5 [ 32 ], Server6 [ 32 ] get_pcvar_string ( ip_servaka , Server , charsmax ( Server )) get_pcvar_string ( ip_servaka2 , Server2 , charsmax ( Server2 )) get_pcvar_string ( ip_servaka3 , Server3 , charsmax ( Server3 )) get_pcvar_string ( ip_servaka4 , Server4 , charsmax ( Server4 )) get_pcvar_string ( ip_servaka5 , Server5 , charsmax ( Server5 )) get_pcvar_string ( ip_servaka6 , Server6 , charsmax ( Server6 )) new data [ 6 ], iName [ 64 ], access , callback menu_item_getinfo ( menu , item , access , data , 5 , iName , 63 , callback ) new key = str_to_num ( data ) switch( key ) { case 1 : { client_cmd ( id , "connect %s" , Server ) client_cmd ( id , "Connect %s" , Server ) LogAdminToSql ( id ) } case 2 : { client_cmd ( id , "connect %s" , Server2 ) client_cmd ( id , "Connect %s" , Server2 ) LogAdminToSql ( id ) } case 3 : { client_cmd ( id , "connect %s" , Server3 ) client_cmd ( id , "Connect %s" , Server3 ) LogAdminToSql ( id ) } case 4 { client_cmd ( id , "connect %s" , Server4 ) client_cmd ( id , "Connect %s" , Server4 ) LogAdminToSql ( id ) } case 5 : { client_cmd ( id , "connect %s" , Server5 ) client_cmd ( id , "Connect %s" , Server5 ) LogAdminToSql ( id ) } case 6 : { client_cmd ( id , "connect %s" , Server6 ) client_cmd ( id , "Connect %s" , Server6 ) LogAdminToSql ( id ) } } return PLUGIN_HANDLED } public LogAdminToSql ( id ) { if( is_user_connected ( id ) && is_user_admin ( id ) ) { static szHostName [ 64 ], szAdminName [ 32 ], TimeStr [ 32 ], DateStr [ 82 ], szSteamID [ 35 ] get_user_name ( id , szAdminName , charsmax ( szAdminName ) ); get_user_name ( 0 , szHostName , charsmax ( szHostName ) ); get_user_authid ( id , szSteamID , charsmax ( szSteamID ) ) get_time ( "%H:%M:%S" , TimeStr , charsmax ( TimeStr ) ); get_time ( "%Y.%m.%d" , DateStr , charsmax ( DateStr ) ); FixForSQL ( szAdminName , charsmax ( szAdminName ) ); FixForSQL ( szHostName , charsmax ( szHostName ) ); FixForSQL ( TimeStr , charsmax ( TimeStr ) ); FixForSQL ( DateStr , charsmax ( DateStr ) ); FixForSQL ( szSteamID , charsmax ( szSteamID ) ); new f = fopen ( g_szLogFile , "a+" ); fprintf ( f , "^" % s ^ " ^" % s ^ " ^" % s ^ " ^" % s ^ " ^" % s ^ "^n" , szHostName , szAdminName , TimeStr , DateStr , szSteamID ); fclose ( f ); } }
what I need -
change this
Spoiler
menu_additem(menu, "\d[Pro] Classic","1")
menu_additem(menu, "\d[Pro] CSDM","2")
menu_additem(menu, "\w[Pro] War3FT","3")
menu_additem(menu, "\y[Pro] Respawn","4")
menu_additem(menu, "\y[Pro] Jump 2","5")
[Pro] Classic <<<< THIS via website
and IP ... of the server.
logging client connections from menu works. I ve tested it 6 months ago at similar plugin.
yeah I took sql logging from admin sql plugin ...*(
__________________
VDS in Europe 1 gb/s unmetered.Any configurations.
I accept Paypal, Moneybookers,etc
Last edited by avril-lavigne; 09-13-2012 at 12:01 .