Aporte Sistema de BAN para servidores NO-STEAM
#1
Lo que dice el titulo, el sistema es para servidores no steam donde ya no sirve banear por ip y tampoco por hid; Lo que hace el codigo es agregar una setinfo ..

El código sirve para varios servidores, pudiendo banear en varios servidores desde uno solo.

Código PHP:
#include < amxmodx >
#include < sqlx >
#include < amxmisc >

#include < hns_print_color >

#include < fakemeta >
#include < hamsandwich >

#define MYSQL_HOST         "190.210.244.26"
#define MYSQL_USER         "alservers"
#define MYSQL_PASS         "passwordanotherservidoresee"
#define MYSQL_DATEBASE     "anotherlevel"

#define PLUGIN         "EasyBans - EasyAdmines"
#define VERSION     "2.0.414"
#define AUTHOR         "cLAANS"

//#define SQLITE_DATEBASE "bans"

#define SetBit(%1,%2) ( %1 |= ( 1 << ( %2 & 31 ) ) )  
#define ClearBit(%1,%2) ( %1 &= ~ ( 1 << ( %2 & 31 ) ) )  
#define IsBit(%1,%2) ( %1 & ( 1 << ( %2 & 31 ) ) ) 

new const szTable[ ] = "tBans";

new const 
TASK_TAKEHID 2222;
new const 
TASK_BAN_MENU 5555;

new 
Handle:g_hTuple;

new 
g_id_ban33 ];

new 
idBan33 ];
new 
idJugadorBan33 ];

new 
g_id33 ];
new 
g_hid33 ][ 35 ];

new 
g_last_players_desconectados;
new 
g_last_playername500 ][ 32 ];
new 
g_last_id500 ];

new 
g_minutos_ban33 ];
new 
g_razon_ban33 ][ 128 ];

new 
cvar_output;
new 
g_maxplayers;

new 
g_tiempo_jugador33 ];

new 
g_setinfo33 ][ 40 ];
new 
g_errores_setinfo33 ];
new 
g_nombre_admin33 ][ 32 ];
new 
g_flags_admin33 ][ 22 ];

enum
{
    
GUARDAR_DATOS,
    
UNBAN_PLAYER,
    
CHEQUEAR_ESTADO,
    
INGRESO_NUEVO_JUGADOR,
    
CHEQUEAR_BAN,
    
CHEQUEAR_ADMIN
};

new 
g_indentificador_sv];

/* Vencimiento del admin */
new g_fechaVencimientoAdmin33 ][ ][ 12 ];

public 
asdjorgeid )
{
    
hns_print_color0,0"tu id: %d"id );
}

public 
plugin_init( )  
{
    new 
iAddress22 ];
    
get_cvar_string("net_address"iAddress], charsmaxiAddress ) )

    
register_pluginPLUGINVERSIONAUTHOR );
    
    
cvar_output get_cvar_pointer"__sxei_output" );

    
register_clcmd"asd""asdjorge" );

    
register_clcmd"say /vencimiento""clcmd_vencimiento_admin" 

    
register_clcmd"al_unban_staff""clcmd_unban" );

    
register_clcmd"say /ban""show_menu_players_bannear");
    
register_clcmd"say /banlast""show_menu_players_bannear_last");

    
register_clcmd"ban""show_menu_players_bannear");

    
register_clcmd"INTRODUCIR_RAZON",         "introducir_razon" );
    
register_clcmd"INTRODUCIR_RAZON_BAN_LAST""introducir_razon_ban_last")

    
register_clcmd"INTRODUCIR_MINUTOS""introducir_minutos" );

//    register_clcmd( "INTRODUCIR_SETINFO", "introducir_setinfo_admin")

    
register_menu"Menu_UnBanJugador", (1<<0)|(1<<1)|(1<<2)|(1<<3)|(1<<4)|(1<<5)|(1<<6)|(1<<7)|(1<<8)|(1<<9), "Menu_UnBanJugadorHandler")

    
register_forward(FM_ClientUserInfoChanged"ClientUserInfoChanged")

    
register_clcmd"tcaracteres""tcaracteres" );

    
register_event"HLTV""round_start" "a""1=0""2=0" );

    if( 
equaliAddress"190.210.244.26:27015" ) )
    
copyg_indentificador_sv1"a" );
    else if( 
equaliAddress"190.210.244.26:27016" ) )
    
copyg_indentificador_sv1"b" );
    else if( 
equaliAddress"190.210.244.26:27017" ) )
    
copyg_indentificador_sv1"c" );
    else if( 
equaliAddress"190.210.244.26:27018" ) )
    
copyg_indentificador_sv1"d" );
    else if( 
equaliAddress"190.210.244.26:27019" ) )
    
copyg_indentificador_sv1"e" );
    else if( 
equaliAddress"190.210.244.26:27020" ) )
    
copyg_indentificador_sv1"f" );
    else if( 
equaliAddress"190.210.244.26:27021" ) )
    
copyg_indentificador_sv1"g" );

    
g_maxplayers get_maxplayers( );

    
MySQLx_Init( );
}

public 
tcaracteresid )
{
    new 
servidor];
    new 
tiempo15 ];

    new 
data100 ];
    
get_user_infoid"_c_rate"data99 );

    
strtokdataservidor1tiempo14' ' );

    
hns_print_color00"A %s %s"servidortiempo );
    
hns_print_color00"B %s "tiempo );
    
hns_print_color00"C %s "servidor );

    if( 
equalservidorg_indentificador_sv ) )
    {
        
hns_print_color00"asdasd" ); 
    }
}

public 
plugin_cfg( )
{
    if(
is_plugin_loaded("Pause Plugins") != -1)
    
server_cmd("amx_pausecfg add ^"EasyBans^"")
}

public 
round_start( )
{
    for( new 
id 0id <= g_maxplayersid++ )
    {
        if( !
is_user_connectedid ) )
        continue;

        if( 
g_idid ] == || strleng_hidid ] ) < 10 )
        {
            if( ( 
get_systime( ) - g_tiempo_jugadorid ] ) > 60 )
            {
                
set_task1.0"test_hid"id+TASK_TAKEHID__"b" );
            }
        }
    }
}

/* ============================================================== */
/* ================== [ BAN JUGADORES ONLINE ] ================== */
/* ============================================================== */

public show_menu_players_bannearid )
{
    if( !( 
get_user_flags(id) & ADMIN_KICK ) )
    return 
PLUGIN_HANDLED

    new 
menu menu_create("\y[EasyBan]\w Jugadores online""PlayerMenuHandler"), iMenu406 ], iLen 0;

    new 
players32 ], pnumtempidszName32 ], szTempid10 ];

    
iLen += formatexiMenuiLen ], charsmaxiMenu ) - iLen"\wBanear durante: \y%s^n^n"g_minutos_banid ] == "5 minutos" g_minutos_banid ] == "15 minutos" g_minutos_banid ] == "30 minutos" g_minutos_banid ] == "1 hora" g_minutos_banid ] == "3 horas" g_minutos_banid ] == "12 horas" g_minutos_banid ] == "1 Dia" "Permamente" ); 
    
menu_additemmenuiMenu );

    
get_playersplayerspnum );

    for( new 
0pnumi++ )
    {
        
tempid players];

        if( (
get_user_flagstempid ) & ADMIN_KICK) && !(get_user_flagsid ) & ADMIN_IMMUNITY ) )
        continue;

        
get_user_name(tempidszName31);
        
num_to_str(tempidszTempid9);

        
menu_additem(menuszNameszTempid);
    }

    
menu_display(idmenu);
    return 
PLUGIN_HANDLED;
}

public 
PlayerMenuHandler(idmenuitem)
{
    if( 
item == MENU_EXIT )
    {
        
menu_destroymenu );
        return 
PLUGIN_HANDLED;
    }

    if( 
item == )
    {
        
g_minutos_banid ]++;

        if( 
get_user_flagsid ) & ADMIN_IMMUNITY )
        {
            if( 
g_minutos_banid ] > )
            
g_minutos_banid ] = 0;
        }
        else
        {
            if( 
g_minutos_banid ] > 6  )    
            
g_minutos_banid ] = 0;
        }

        
show_menu_players_bannearid );
    }
    else 
    {
        new 
iData], iName64 ];
        new 
accesscallback;
        
menu_item_getinfo(menuitemaccessiData5iName63callback);

        new 
iTarget str_to_numiData );

        new 
iMinutos

        
if( is_user_connectediTarget ) )
        {
            new 
Name32 ];
            
get_user_nameiTargetNamecharsmaxName ) );

            switch( 
g_minutos_banid ] )
            {
                case 
0iMinutos 5
                
case 1iMinutos 15
                
case 2iMinutos 30
                
case 3iMinutos 60
                
case 4iMinutos 180
                
case 5iMinutos 720
                
case 6iMinutos 1440
                
case 7iMinutos 99999999
            
}

            
hns_print_colorid0"^x04[EasyBan]^x01 Estas por banear a^x03 %s^x01 durante^x03 %d^x01 minutos"NameiMinutos );

            
g_id_banid ] = iTarget;
            
client_cmdid"messagemode INTRODUCIR_RAZON" );
        }

        else 
hns_print_colorid0"^x04[EasyBan]^x01 El jugador se desconecto. Utiliza el comando^x03 /banlast^x01" );

        
menu_destroymenu );
    }

    return 
PLUGIN_HANDLED;
}

public 
introducir_razonid )
{
    
read_argsg_razon_banid ], charsmaxg_razon_ban[ ] ) );
    
remove_quotesg_razon_banid ] );

    
set_task0.1"dar_ban_conectado"id+TASK_BAN_MENU )
}

public 
dar_ban_conectadoid 
{
    
id -= TASK_BAN_MENU

    
if( !( get_user_flagsid ) & ADMIN_KICK ) )
    return 
PLUGIN_HANDLED;

    new 
iMinutos

    
switch( g_minutos_banid ] )
    {
        case 
0iMinutos 5
        
case 1iMinutos 15
        
case 2iMinutos 30
        
case 3iMinutos 60
        
case 4iMinutos 180
        
case 5iMinutos 720
        
case 6iMinutos 1440
        
case 7iMinutos 999999
    
}

    new 
minutos get_systime( ) + iMinutos 60;

    new 
iMap64 ], currentDate15 ], tiempodiashorasminutos2;

    
get_mapnameiMap31 );
    
get_time"%Y-%m-%d"currentDate14 );

    
tiempo     minutos get_systime( );
    
dias     = ( tiempo 86400 );
    
horas     = ( ( tiempo 86400 ) / 3600 );
    
minutos2 = ( ( ( tiempo 86400 ) % 3600 ) / 60 );

    new 
szQuery1024 ], iData];

    
iData] = id;
    
iData] = GUARDAR_DATOS;

    
formatexszQuerycharsmaxszQuery ), "INSERT INTO tBans (nuIdJugador, nuIdAdministrador, txRazon, nuTiempo, txMapa, txFechaBan, txServidor) VALUES ( '%d', '%d', '%s', '%d', '%s', '%s', '%s')",
        
g_idg_id_banid ] ], g_idid ], g_razon_banid ], minutosiMapcurrentDateg_indentificador_sv );
    
SQL_ThreadQueryg_hTuple"DataHandler"szQueryiData);

    
formatexszQuerycharsmaxszQuery ), "INSERT INTO tBansHistorial (`nuIdJugador`, `nuIdAdministrador`, `nuTiempo`, `txRazon`, `txFecha`, `txServidor`) VALUES ( '%d', '%d', '%d', '%s', '%s', '%s' )"
        
g_idg_id_banid ] ], g_idid ], minutosg_razon_banid ], currentDateg_indentificador_sv );
    
SQL_ThreadQueryg_hTuple"DataHandler"szQueryiData);

    new 
iNombreBaneado32 ], iNombreAdministrador32 ];
    
get_user_name(idiNombreAdministrador31);
    
get_user_name(g_id_banid ], iNombreBaneado31);

    
hns_print_color00"^x04[EasyBan]^x01 El jugador^x03 %s^x01 fue baneado por el administrador^x03 %s"iNombreBaneadoiNombreAdministrador );
    
hns_print_color00"^x04[EasyBan]^x01 Razon^x03 %s^x01 durante^x03 %d^x01 dias^x03 %d^x01 horas^x03 %d^x01 minutos"g_razon_banid ], diashorasminutos2 );

    
consola_logs_datag_id_banid ] , diashorasminutos2iMapg_razon_banid ], currentDateiNombreBaneadoiNombreAdministradorminutostrue );

    return 
PLUGIN_HANDLED;
}

public 
consola_logs_dataiddiashorasminutos, const mapa[ ], const razon[ ], const fecha[ ], const nombreBaneado[ ], const nombreAdministrador[ ], tiempobool:logs )
{
    if( 
id != )
    {
        new 
address32 ];
        
get_user_ipidaddress31);

        
client_printidprint_console" " );
        
client_printidprint_console" " );
        
client_printidprint_console"**************** [ ANOTHER LEVEL ] ****************^n^n" );
        
client_printidprint_console"* [ATENCION] Fuiste baneado | Datos del ban^n- Fecha: %s^n- Nombre: %s^n"fechanombreBaneado );
        
client_printidprint_console"- Administrador: %s^n"nombreAdministrador );
        
client_printidprint_console"- Razon: %s"razon );
        
client_printidprint_console"- Mapa: %s^n- Baneado hasta dentro de %d dias, %d horas, %d minutos^n"mapadiashorasminutos );
        
client_printidprint_console"* Si crees que fuiste baneado injustamente visita el foro^n* Foro: www.anotherlevel.com.ar" );
        
client_printidprint_console"^n^n***************************************************"  );
        
client_printidprint_console" " );
        
client_printidprint_console" " );

        
client_cmdid"setinfo _c_rate %s-%d"g_indentificador_svtiempo );

        
KickPlayerid"[EasyBan] Fuiste baneado, revisa tu consola" );
    }

    if( 
logs )
    {
        new 
data300 ], iLen;

        
iLen += formatexdataiLen ], charsmaxdata ) - iLen,  "^n[EasyBan] ADMIN: %s | Jugador: %s - Razon: %s ( %d dias - %d horas - %d minutos)^nID En base datos: %d^n^nJugadores online^n"nombreAdministradornombreBaneado
            
razondiashorasminutosg_idid ] );

        new 
iNameLog32 ];

        for( new 
0<= g_maxplayersi++ )
        {
            if( !
is_user_connected) )
            continue;

            
get_user_nameiiNameLogcharsmaxiNameLog ) );
            
iLen += formatexdataiLen ], charsmaxdata ) - iLen"^n%d %s",iiNameLog );
        }

        
iLen += formatexdataiLen ], charsmaxdata ) - iLen"^n***************************************" );

        
log_to_file"Bans.log"data );

    }

    return 
PLUGIN_HANDLED;
}

/* ============================================================== */
/* ================= [ BAN JUGADORES OFFLINE ] ================== */
/* ============================================================== */

public show_menu_players_bannear_lastid )
{
    if( !( 
get_user_flags(id) & ADMIN_KICK ) )
    return 
PLUGIN_HANDLED

    new 
menu menu_create("\y[EasyBan]\w Ultimos desconectados""PlayerMenuHandler_last");

    static 
iMenu406 ], iLenszTempid10 ];
    
iLen 0;
    
    
iLen += formatexiMenuiLen ], charsmaxiMenu ) - iLen"\wBanear durante: \y%s^n^n"g_minutos_banid ] == "5 minutos" g_minutos_banid ] == "15 minutos" g_minutos_banid ] == "30 minutos" g_minutos_banid ] == "1 hora" g_minutos_banid ] == "3 horas" g_minutos_banid ] == "12 horas" g_minutos_banid ] == "1 Dia" "Permamente" ); 
    
menu_additemmenuiMenu );

    for( new 
0g_last_players_desconectadosi++)
    {
        
num_to_striszTempid9);
        
menu_additemmenug_last_playername], szTempid );
    }

    
menu_display(idmenu);
    return 
PLUGIN_HANDLED;
}

public 
PlayerMenuHandler_last(idmenuitem)
{
    if(
item == MENU_EXIT)
    {
        
menu_destroy(menu);
        return 
PLUGIN_HANDLED;
    }

    if( 
item == )
    {
        
g_minutos_banid ]++;

        if( 
get_user_flagsid ) & ADMIN_IMMUNITY )
        {
            if( 
g_minutos_banid ] > )
            
g_minutos_banid ] = 0;
        }
        else
        {
            if( 
g_minutos_banid ] > 6  )    
            
g_minutos_banid ] = 0;
        }

        
show_menu_players_bannear_lastid );
    }
    else 
    {
        new 
iData], iName64 ];
        new 
accesscallback;
        
menu_item_getinfo(menuitemaccessiData,5iName63callback);

        new 
iTarget str_to_numiData );

        
g_id_banid ] = iTarget;
        
        
client_cmdid"messagemode INTRODUCIR_RAZON_BAN_LAST" );

        
menu_destroymenu );
    }

    return 
PLUGIN_HANDLED;
}

public 
introducir_razon_ban_lastid )
{
    
read_argsg_razon_banid ], charsmaxg_razon_ban[ ] ) );
    
remove_quotesg_razon_banid ] );

    new 
iMinutos

    
switch( g_minutos_banid ] )
    {
        case 
0iMinutos 5
        
case 1iMinutos 15
        
case 2iMinutos 30
        
case 3iMinutos 60
        
case 4iMinutos 180
        
case 5iMinutos 720
        
case 6iMinutos 1440
        
case 7iMinutos 9999999
    
}

    new 
minutos get_systime( ) + iMinutos 60;

    new 
tiempo     minutos get_systime( );
    new 
dias     = ( tiempo 86400 );
    new 
horas     = ( ( tiempo 86400 ) / 3600 );
    new 
minutos2 = ( ( ( tiempo 86400 ) % 3600 ) / 60 );

    new 
iMap64 ];
    
get_mapnameiMap31 );

    new 
currentDate15 ]; 
    
get_time"%Y-%m-%d"currentDate14 );

    new 
szQuery1024 ], iData];

    
iData] = id;
    
iData] = GUARDAR_DATOS;

    
formatexszQuerycharsmaxszQuery ), "INSERT INTO tBans (nuIdJugador, nuIdAdministrador, txRazon, nuTiempo, txMapa, txFechaBan, txServidor) VALUES ( '%d', '%d', '%s', '%d', '%s', '%s', '%s')",
        
g_last_idg_id_banid ] ], g_idid ], g_razon_banid ], minutosiMapcurrentDateg_indentificador_sv );
    
SQL_ThreadQueryg_hTuple"DataHandler"szQueryiData);

    
formatexszQuerycharsmaxszQuery ), "INSERT INTO tBansHistorial (`nuIdJugador`, `nuIdAdministrador`, `nuTiempo`, `txRazon`, `txFecha`, `txServidor`) VALUES ( '%d', '%d', '%d', '%s', '%s', '%s' )"
        
g_last_idg_id_banid ] ], g_idid ], minutosg_razon_banid ], currentDateg_indentificador_sv );
    
SQL_ThreadQueryg_hTuple"DataHandler"szQueryiData);

    new 
iNombreAdministrador32 ];
    
get_user_name(idiNombreAdministrador31);

    
consola_logs_data0diashorasminutos2iMapg_razon_banid ], currentDateg_last_playernameg_id_banid ] ], iNombreAdministradortiempotrue )

    
hns_print_color00"^x04[EasyBan]^x01 El jugador^x03 %s^x01 fue baneado por el administrador^x03 %s"g_last_playernameg_id_banid ] ], iNombreAdministrador );
    
hns_print_color00"^x04[EasyBan]^x01 Razon^x03 %s^x01 durante^x03 %d^x01 dias^x03 %d^x01 horas^x03 %d^x01 minutos"g_razon_banid ], diashorasminutos2 );
}

/* ============================================================== */
/* ================== [ DESBANEAR JUGADORES ] =================== */
/* ============================================================== */

public clcmd_unbanid )
{
    if( 
get_user_flagsid ) & ADMIN_IMMUNITY )
    {
        new 
szQuery1024 ], iData];

        
iData] = id;
        
iData] = 0

        formatex
szQuerycharsmaxszQuery ), "SELECT id, (SELECT txNombre FROM tJugadores WHERE id = tBans.nuIdJugador) AS NombreBaneado, txServidor FROM tBans WHERE nuTiempo > '1'" );
        
SQL_ThreadQueryg_hTuple"menu_unban"szQueryiData);
    }
    else if( 
get_user_flagsid ) & ADMIN_KICK )
    {
        new 
szQuery256 ], iData];

        
iData] = id;
        
iData] = 0

        formatex
szQuerycharsmaxszQuery ), "SELECT id, (SELECT txNombre FROM tJugadores WHERE id = tBans.nuIdJugador) AS NombreBaneado, txServidor FROM tBans WHERE nuTiempo > '1' AND txServidor='%s'"g_indentificador_sv );
        
SQL_ThreadQueryg_hTuple"menu_unban"szQueryiData);
    }

    else 
hns_print_colorid0"^x04[EasyBan]^x01 No tiene acceso")

    return 
PLUGIN_CONTINUE
}

public 
menu_unbaniFailStateHandle:iQueryszError[ ], iErroriData[ ], iDataSizeFloat:fQueueTime )  
{
    if( 
iFailState == TQUERY_CONNECT_FAILED || iFailState == TQUERY_QUERY_FAILED )  
    {  
        
log_amx"%s"szError ); 
        return; 
    } 
    else 
    {
        new 
id iData]; 

        switch( 
iData] )
        {
            case 
0:
            {
                if( 
SQL_NumResultsiQuery ) ) 
                {
                    new 
szNombreBaneado32 ], txServidorBaneado26 ], nuIdBan;

                    static 
szBuffer2368 ], szIdJugador10 ];

                    new 
menu menu_create"\y[EasyBan]\w Jugadores baneados: ""handle_baneados")

                    while( 
SQL_MoreResultsiQuery ) ) 
                    {
                        
nuIdBan SQL_ReadResultiQuery);
                        
SQL_ReadResultiQuery1szNombreBaneadocharsmaxszNombreBaneado ) );
                        
SQL_ReadResultiQuery2txServidorBaneadocharsmaxtxServidorBaneado ) );

                        
formatszBuffercharsmaxszBuffer ), "%s\y (%s)"szNombreBaneadotxServidorBaneado )

                        
num_to_strnuIdBanszIdJugador9);

                        
menu_additemmenuszBufferszIdJugador )

                        
SQL_NextRowiQuery )
                    }
                    
                    
menu_setpropmenuMPROP_BACKNAME,"\yAtras" )
                    
menu_setpropmenuMPROP_NEXTNAME,"\ysiguiente" )
                    
menu_setpropmenuMPROP_EXITNAME,"\ySalir" )
                    
menu_displayidmenu )  
                }

                
SQL_FreeHandleiQuery );
            }

            case 
1:
            {
                if( 
SQL_NumResultsiQuery ) ) 
                {
                    new 
szNombreBaneado32 ], szNombreAdministrador32 ], txRazon32 ], txMapa26 ], TiempoDBidBanDbtxFechaBan12 ], szBuffer800 ], iLen;

                    
SQL_ReadResultiQuery0szNombreBaneadocharsmaxszNombreBaneado ) );
                    
SQL_ReadResultiQuery1szNombreAdministradorcharsmaxszNombreAdministrador ) );
                    
SQL_ReadResultiQuery2txRazoncharsmaxtxRazon ) );
                    
SQL_ReadResultiQuery3txMapacharsmaxtxMapa ) )
                    
TiempoDB SQL_ReadResultiQuery);
                    
SQL_ReadResultiQuery5txFechaBancharsmaxtxFechaBan ) )
                    
idBanDb SQL_ReadResultiQuery);
                    
idJugadorBanid ] = SQL_ReadResultiQuery);

                    
idBanid ] = idBanDb;

                    new 
tiempo TiempoDB get_systime( );
                    new 
dias = ( tiempo 86400 );
                    new 
horas = ( ( tiempo 86400 ) / 3600 );
                    new 
minutos = ( ( ( tiempo 86400 ) % 3600 ) / 60 );

                    
iLen += formatexszBufferiLen ], charsmaxszBuffer ) - iLen"\y[EasyBan]\w Baneados:^n^n" ); 

                    
iLen += formatexszBufferiLen ], charsmaxszBuffer ) - iLen"Jugador:\y %s\w^nTiempo baneado:\y %d\w Dias |\y %d\w Horas |\y %d\w Minutos^n^n\wAdmin:\y %s^n\wRazon:\y %s^n\wMapa: \y%s^n\wFecha del ban: \y%s"
                        
szNombreBaneadodiashorasminutosszNombreAdministradortxRazontxMapatxFechaBan );

                    
iLen += formatexszBufferiLen ], charsmaxszBuffer ) - iLen"^n^n\r1.\w Desbanear" );

                    if( 
get_user_flagsid ) & ADMIN_KICK )
                    
iLen += formatexszBufferiLen ], charsmaxszBuffer ) - iLen"^n\r2.\w Nuevo tiempo" );

                    
iLen += formatexszBufferiLen ], charsmaxszBuffer ) - iLen"^n\r0.\w Salir " );

                    
show_menuid, (1<<0)|(1<<1)|(1<<2)|(1<<3)|(1<<4)|(1<<5)|(1<<6)|(1<<7)|(1<<8)|(1<<9), szBuffer_"Menu_UnBanJugador" );// register_menu( "Menu_UnBanJugador", KEYSMENU, "Menu_UnBanJugadorHandler")
                
}

                else 
hns_print_colorid0"ERRORRRR" );
            }
        }
    }
}

public 
Menu_UnBanJugadorHandler(id key)
{
    switch( 
key )
    {
        case 
0:
        {
            new 
szQuery1024 ], iData];

            
iData] = id;
            
iData] = UNBAN_PLAYER;

            
formatexszQuerycharsmaxszQuery ), "SELECT nuTiempo, id, (SELECT txNombre FROM tJugadores WHERE id = tBans.nuIdJugador) FROM tBans where id = '%d'"idBanid ] );
            
SQL_ThreadQueryg_hTuple"DataHandler"szQueryiData);
        }

        case 
1client_cmdid"messagemode INTRODUCIR_MINUTOS" );
    }

    return 
PLUGIN_HANDLED;
}

public 
handle_baneados(idmenuitem)
{
    if( 
item == MENU_EXIT )
    {   
        
menu_destroymenu );
        return 
PLUGIN_HANDLED;
    }

    new 
iData[6], iName[64];
    new 
accesscallback;
    
menu_item_getinfo(menuitemaccessiData,5iName63callback);

    new 
idBaneado str_to_numiData );

    new 
szQuery512 ], iData2];
    
    
iData2] = id;
    
iData2] = 1;

    
formatexszQuerycharsmaxszQuery ), "SELECT (SELECT txNombre FROM tJugadores where id = tBans.nuIdJugador) as NombreBaneado, (SELECT txNombre FROM tJugadores where id = tBans.nuIdAdministrador) as NombreAdministrador, txRazon, txMapa, nuTiempo, txFechaBan, id, nuIdJugador FROM tBans where id = '%d'"idBaneado );
    
SQL_ThreadQueryg_hTuple"menu_unban"szQueryiData2);

    return 
PLUGIN_HANDLED;
}

public 
introducir_minutosid )
{
    new 
iMinutos];

    
read_argsiMinutoscharsmaxiMinutos ) );
    
remove_quotesiMinutos );

    new 
minutos get_systime( ) + str_to_numiMinutos ) * 60;

    new 
currentDate15 ];
    
get_time"%Y-%m-%d"currentDate14 );

    new 
szQuery1024 ], iData];

    
iData] = id;
    
iData] = GUARDAR_DATOS;

    
formatexszQuerycharsmaxszQuery ), "UPDATE tBans SET nuTiempo='%d' WHERE id=^"%d^""minutosidBanid ] );
    
SQL_ThreadQueryg_hTuple"DataHandler"szQueryiData);

    
formatexszQuerycharsmaxszQuery ), "INSERT INTO tBansHistorial (`nuIdJugador`, `nuIdAdministrador`, `nuTiempo`, `txRazon`, `txFecha`, `txServidor`) VALUES ( '%d', '%d', '%d', 'CAMBIO TIEMPO DE BAN', '%s', '%s' )"
        
idJugadorBanid ], g_idid ], minutoscurrentDateg_indentificador_sv );
    
SQL_ThreadQueryg_hTuple"DataHandler"szQueryiData);
}

public 
client_connectid )
{
    
g_hidid ][ ] = '^0';
    
set_task2.0"test_hid"id+TASK_TAKEHID__"b" );
}

public 
client_disconnectid )
{
    new 
Name32 ];
    
get_user_nameidNamecharsmaxName ) );
    
    
/* ==== [ PARA BAN LAST ] ==== */
    
copyg_last_playernameg_last_players_desconectados ], charsmaxg_last_playername[ ] ), Name );
    
g_last_idg_last_players_desconectados ] = g_idid ];

    
g_last_players_desconectados++
    
/* ==== [ PARA BAN LAST ] ==== */

    
new iTiempoTotal get_systime( ) - g_tiempo_jugadorid ];

    new 
szQuery1024 ], iData];

    
iData] = id;
    
iData] = GUARDAR_DATOS;

    
formatexszQuerycharsmaxszQuery ), "UPDATE tJugadores SET txNombre=^"%s^", nuTiempoOnline='%d' WHERE id=^"%d^""NameiTiempoTotalg_idid ] );
    
SQL_ThreadQueryg_hTuple"DataHandler"szQueryiData);

    
remove_taskid+TASK_TAKEHID );

    
g_idid ] = 0;

    
g_setinfoid ][ ] = '^0';
    
g_errores_setinfoid ] = 0;
}

public 
test_hidid )
{
    
id -= TASK_TAKEHID;

    
server_cmd"sxe_userhid #%d"get_user_useridid ) );
    
server_exec( );

    
get_pcvar_stringcvar_outputg_hidid ], charsmaxg_hid[ ] ) );

    if( 
strleng_hidid ] ) >= 27 )
    {
        new 
hidSetinfo20 ];
        
get_user_infoid"*HID"hidSetinfo19 );

        new 
iGetip32 ];
        
get_user_ipidiGetipcharsmaxiGetip ) );

        new 
szQuery1024 ], iData];

        
iData] = id;
        
iData] = CHEQUEAR_ESTADO;

        
formatexszQuerycharsmaxszQuery ), "SELECT id FROM tJugadores WHERE txHid=^"%s^" OR txHidSetinfo='%s' OR txIp='%s'"g_hidid ], hidSetinfoiGetip );
        
SQL_ThreadQueryg_hTuple"DataHandler"szQueryiData);

        
iData] = id;
        
iData] = CHEQUEAR_ADMIN;

        
formatexszQuerycharsmaxszQuery ), "SELECT nombreJuego, setinfo, flags, servidorFVencimiento1, servidorFVencimiento2, servidorFVencimiento3, servidorFVencimiento4, servidorFVencimiento5, servidorFVencimiento6, servidorFVencimiento7, estadoAdmin FROM tAdmines WHERE hid='%s'"g_hidid ] );
        
SQL_ThreadQueryg_hTuple"DataHandler"szQueryiData);

        
remove_taskid+TASK_TAKEHID )
    }
}

public 
ClientUserInfoChanged(idbuffer)
{
    static const 
name[ ] = "name";
    static 
szOldName32 ], szNewName32 ];

    
pevidpev_netnameszOldNamecharsmaxszOldName ) );

    if( 
szOldName] )
    {
        
get_user_infoidnameszNewNamecharsmaxszNewName ) );

        if( 
strlen(szNewName) < )
        {
            return 
FMRES_HANDLED;
        }

        if( !
equal(szOldNameszNewName) )
        {
            new 
szQuery1024 ], iData];

            
iData] = id;
            
iData] = GUARDAR_DATOS;

            
formatexszQuerycharsmaxszQuery ), "UPDATE tJugadores SET txNombre=^"%s^" WHERE id=^"%d^""szNewNameg_idid ] );
            
SQL_ThreadQueryg_hTuple"DataHandler"szQueryiData);
        }
    }

    return 
PLUGIN_CONTINUE;


public 
chequear_ban_setinfoid )
{
    new 
servidor];
    new 
tiempo15 ];

    new 
data100 ];
    
get_user_infoid"_c_rate"data99 );

    
strtokdataservidor1tiempo14'-' );

    if( !
equalservidorg_indentificador_sv ) )
    return;

    if( 
str_to_numtiempo ) > get_systime( ) )
    {
        new 
iMap64 ];
        
get_mapnameiMap31 );

        new 
currentDate15 ]; 
        
get_time"%Y-%m-%d"currentDate14 );

        new 
szQuery1024 ], iData];

        
iData] = id;
        
iData] = GUARDAR_DATOS;

        
formatexszQuerycharsmaxszQuery ), "INSERT INTO tBans (nuIdJugador, nuIdAdministrador, txRazon, nuTiempo, txMapa, txFechaBan, txServidor) VALUES ( '%d', '1', 'Sacarse el BAN', '%d', '%s', '%s', '%s')",
            
g_idid ], str_to_numtiempo ) , iMapcurrentDateg_indentificador_sv );
        
SQL_ThreadQueryg_hTuple"DataHandler"szQueryiData);
    }
}

public 
DataHandlerfailstateHandle:Queryerror[ ], error2data[ ], datasizeFloat:time 
{
    static 
id;
    
id data];
    
    switch( 
failstate ) {
        case 
TQUERY_CONNECT_FAILED: {
            
log_to_file"SQL_LOG_TQ.txt""Error en la conexion al MySQL [%i]: %s"error2error );
            return;
        }
        case 
TQUERY_QUERY_FAILED:
        
log_to_file"SQL_LOG_TQ.txt""Error en la consulta al MySQL [%i]: %s"error2error );
    }
    
    switch( 
data] ) 
    {
        case 
GUARDAR_DATOS:
        {
            if( 
failstate != TQUERY_SUCCESS 
            
client_printidprint_console"[EasyBan] Error, mal estrucutrado el sistema, o el jugador no esta en nuestra base de datos" 
            else 
            
client_printidprint_console"[EasyBan] El ban fue dado/removido exitosamente" );
        }

        case 
INGRESO_NUEVO_JUGADOR:
        {
            static 
Name32 ];
            
get_user_nameidNamecharsmaxName ) );

            
g_idid ] = SQL_ReadResultQuery);

            
hns_print_color00"^x04[AL]^x01 Demosle la bienvenida al jugador^x03 %s^x01 a nuestra comunidad"Name );

            
chequear_ban_setinfoid );
        }

        case 
UNBAN_PLAYER:
        {
            if( 
SQL_NumResultsQuery ) ) 
            {
                new 
iTiempoBaneadoidBanszNombreBaneado32 ];

                
iTiempoBaneado SQL_ReadResultQuery); 
                
idBan SQL_ReadResultQuery); 
                
SQL_ReadResultQuery2szNombreBaneadocharsmaxszNombreBaneado ) ); 

                if( 
iTiempoBaneado )
                {
                    static 
Name32 ];
                    
get_user_nameidNamecharsmaxName ) );

                    new 
szQuery1024 ], iData];

                    
iData] = id;
                    
iData] = GUARDAR_DATOS;

                    
formatexszQuerycharsmaxszQuery ), "DELETE FROM `tBans` WHERE id = '%d'"idBan );
                    
SQL_ThreadQueryg_hTuple"DataHandler"szQueryiData);

                    
hns_print_color00"^x04[EasyBan]^x01 El jugador^x03 %s^x01 fue desbaneado por el administrador^x03 %s"szNombreBaneadoName );
                }
                else 
hns_print_colorid0"^x04[EasyBan]^x01 El jugador^x03 %s^x01 no esta baneado"szNombreBaneado ); 
            }
            else
            {
                
hns_print_colorid0"^x04[EasyBan]^x01 El jugador no fue encontrado" );
                
client_printidprint_console"[EasyBan] El jugador no fue encontrado" );
            }
        }

        case 
CHEQUEAR_ESTADO:
        {
            new 
hidSetinfo20 ];
            
get_user_infoid"*HID"hidSetinfo19 );

            new 
iGetip32 ];
            
get_user_ipidiGetipcharsmaxiGetip ) );

            static 
Name32 ];
            
get_user_nameidNamecharsmaxName ) );

            new 
currentDate15 ]; 
            
get_time"%Y-%m-%d"currentDate14 );

            
g_tiempo_jugadorid ] = get_systime( );

            if( 
SQL_NumResultsQuery ) ) 
            {
                
g_idid ] = SQL_ReadResultQuery); 

                new 
szQuery1024 ], iData];

                
iData] = id;
                
iData] = GUARDAR_DATOS;

                
formatexszQuerycharsmaxszQuery ), "UPDATE tJugadores SET txHid='%s', txHidSetinfo='%s', txIp='%s', txNombre='%s', txUltimoIngreso='%s' WHERE id='%d'"g_hidid ], hidSetinfoiGetipNamecurrentDateg_idid ] );
                
SQL_ThreadQueryg_hTuple"DataHandler"szQueryiData);

                
iData] = id;
                
iData] = CHEQUEAR_BAN;

                
formatexszQuerycharsmaxszQuery ), "SELECT *, (SELECT txNombre FROM tJugadores WHERE tBans.nuIdJugador = id), (SELECT txNombre FROM tJugadores WHERE tBans.nuIdAdministrador = id) FROM tBans WHERE nuIdJugador = '%d'"g_idid ] );
                
SQL_ThreadQueryg_hTuple"DataHandler"szQueryiData);
            }
            else
            {
                new 
szQuery1024 ], iData];

                
iData] = id;
                
iData] = GUARDAR_DATOS;

                
formatexszQuerycharsmaxszQuery ), "INSERT INTO tJugadores (txNombre, txHid, txHidSetinfo, txIp, txFechaIngreso, txUltimoIngreso) VALUES ('%s', '%s', '%s', '%s', '%s', '%s' )"Nameg_hidid ], hidSetinfoiGetipcurrentDatecurrentDate );
                
SQL_ThreadQuery(g_hTuple"DataHandler"szQueryiData2);

                
iData] = id;
                
iData] = INGRESO_NUEVO_JUGADOR;

                
formatexszQuerycharsmaxszQuery ), "SELECT id FROM tJugadores ORDER BY id DESC LIMIT 1" );
                
SQL_ThreadQuery(g_hTuple"DataHandler"szQueryiData2);
            }
        }

        case 
CHEQUEAR_BAN:
        {
            if( 
SQL_NumResultsQuery ) ) 
            {
                while( 
SQL_MoreResultsQuery ) ) 
                {
                    new 
idDbrazon200 ], tiempomapa26 ], servidor26 ], fechaBan16 ], iNombreBaneado32 ], iNombreAdministrador32 ];

                    
idDb SQL_ReadResultQuery); 
                    
SQL_ReadResultQuery3razoncharsmaxrazon ) ); 
                    
tiempo SQL_ReadResultQuery); 
                    
SQL_ReadResultQuery5mapacharsmaxmapa ) ); 
                    
SQL_ReadResultQuery6servidorcharsmaxservidor ) ); 
                    
SQL_ReadResultQuery7fechaBancharsmaxfechaBan ) ); 
                    
SQL_ReadResultQuery8iNombreBaneadocharsmaxiNombreBaneado ) ); 
                    
SQL_ReadResultQuery9iNombreAdministradorcharsmaxiNombreAdministrador ) ); 

                    if( 
equalservidorg_indentificador_sv ) )
                    {
                        if( 
tiempo get_systime( ) )
                        {
                            new 
tiempo2 tiempo get_systime( );
                            new 
dias     = ( tiempo2 86400 );
                            new 
horas     = ( ( tiempo2 86400 ) / 3600 );
                            new 
minutos = ( ( ( tiempo2 86400 ) % 3600 ) / 60 );

                            
consola_logs_dataiddiashorasminutosmaparazonfechaBaniNombreBaneadoiNombreAdministradortiempofalse );

                            
hns_print_color00"^x04[EasyBan]^x01 El jugador^x03 %s^x01 quiere ingresar al servidor pero esta baneado"iNombreBaneado );
                            
hns_print_color00"^x04[EasyBan]^x01 La razon por la cual fue baneado:^x03 %s"razon );
                        }
                        else
                        {
                            new 
szQuery1024 ], iData];

                            
iData] = id;
                            
iData] = GUARDAR_DATOS;

                            
formatexszQuerycharsmaxszQuery ), "DELETE FROM `tBans` WHERE id = '%d'"idDb );
                            
SQL_ThreadQueryg_hTuple"DataHandler"szQueryiData);

                            
hns_print_color00"^x04[EasyBan]^x01 El jugador^x03 %s^x01 fue desbaneado tras cumplir su condena"iNombreBaneado );
                        }
                    }

                    
SQL_NextRowQuery )
                }
            }

            
SQL_FreeHandleQuery );
        }
        
        
/* Si llego aca es por que coincide tag o hid */

        
case CHEQUEAR_ADMIN:
        {
            if( 
SQL_NumResultsQuery ) ) 
            {
                new 
iFlags30 ], iSetinfo25 ], iNombre33 ], estadoAdmin;

                
SQL_ReadResultQuery0g_nombre_adminid ], charsmaxg_nombre_admin[ ] ) );
                
SQL_ReadResultQuery1g_setinfoid ], charsmaxg_setinfo[ ] ) ); 
                
SQL_ReadResultQuery2g_flags_adminid ], charsmaxg_flags_admin[ ] ) );

                
SQL_ReadResultQuery3g_fechaVencimientoAdminid ][ ], charsmaxg_fechaVencimientoAdmin[ ][ ] ) );
                
SQL_ReadResultQuery4g_fechaVencimientoAdminid ][ ], charsmaxg_fechaVencimientoAdmin[ ][ ] ) );
                
SQL_ReadResultQuery5g_fechaVencimientoAdminid ][ ], charsmaxg_fechaVencimientoAdmin[ ][ ] ) );
                
SQL_ReadResultQuery6g_fechaVencimientoAdminid ][ ], charsmaxg_fechaVencimientoAdmin[ ][ ] ) );
                
SQL_ReadResultQuery7g_fechaVencimientoAdminid ][ ], charsmaxg_fechaVencimientoAdmin[ ][ ] ) );
                
SQL_ReadResultQuery8g_fechaVencimientoAdminid ][ ], charsmaxg_fechaVencimientoAdmin[ ][ ] ) );
                
SQL_ReadResultQuery9g_fechaVencimientoAdminid ][ ], charsmaxg_fechaVencimientoAdmin[ ][ ] ) );

                
estadoAdmin SQL_ReadResultQuery10 ); 

                new 
setinfoJugador25 ];
                
get_user_infoid"_pw"setinfoJugador24 );

                new 
currentDate15 ]; 
                
get_time"%Y-%m-%d"currentDate14 );

                new 
address32 ];
                
get_user_ipidaddress31);

                if( 
estadoAdmin != )
                return

                switch( 
g_indentificador_sv] )
                {
                    case 
'a'
                    {
                        if( !( 
equalg_fechaVencimientoAdminid ][ ], "0000-00-00" ) ) )
                        {
                            
hns_print_colorid0"^x04[EasyAdmin]^x01 Bienvenido^x03 %s^x01 tu administrador seguira activo hasta el^x03 %s^x01 gracias por elegirnos"g_nombre_adminid ], g_fechaVencimientoAdminid ][ ] )

                            
remove_user_flags(id, -1);
                            
set_user_flags(idread_flagsg_flags_adminid ] ) )
                        }
                    }
                    case 
'b':
                    {
                        if( !( 
equalg_fechaVencimientoAdminid ][ ], "0000-00-00" ) ) )
                        {
                            
hns_print_colorid0"^x04[EasyAdmin]^x01 Bienvenido^x03 %s^x01 tu administrador seguira activo hasta el^x03 %s^x01 gracias por elegirnos"g_nombre_adminid ], g_fechaVencimientoAdminid ][ ] )

                            
remove_user_flags(id, -1);
                            
set_user_flags(idread_flagsg_flags_adminid ] ) )
                        }
                    }
                    case 
'c':
                    {
                        if( !( 
equalg_fechaVencimientoAdminid ][ ], "0000-00-00" ) ) )
                        {
                            
hns_print_colorid0"^x04[EasyAdmin]^x01 Bienvenido^x03 %s^x01 tu administrador seguira activo hasta el^x03 %s^x01 gracias por elegirnos"g_nombre_adminid ], g_fechaVencimientoAdminid ][ ] )

                            
remove_user_flags(id, -1);
                            
set_user_flags(idread_flagsg_flags_adminid ] ) )
                        }
                    }
                    case 
'd':
                    {
                        if( !( 
equalg_fechaVencimientoAdminid ][ ], "0000-00-00" ) ) )
                        {
                            
hns_print_colorid0"^x04[EasyAdmin]^x01 Bienvenido^x03 %s^x01 tu administrador seguira activo hasta el^x03 %s^x01 gracias por elegirnos"g_nombre_adminid ], g_fechaVencimientoAdminid ][ ] )

                            
remove_user_flags(id, -1);
                            
set_user_flags(idread_flagsg_flags_adminid ] ) )
                        }
                    }
                    case 
'e':
                    {
                        if( !( 
equalg_fechaVencimientoAdminid ][ ], "0000-00-00" ) ) )
                        {
                            
hns_print_colorid0"^x04[EasyAdmin]^x01 Bienvenido^x03 %s^x01 tu administrador seguira activo hasta el^x03 %s^x01 gracias por elegirnos"g_nombre_adminid ], g_fechaVencimientoAdminid ][ ] )

                            
remove_user_flags(id, -1);
                            
set_user_flags(idread_flagsg_flags_adminid ] ) )
                        }
                    }
                    case 
'f':
                    {
                        if( !( 
equalg_fechaVencimientoAdminid ][ ], "0000-00-00" ) ) )
                        {
                            
hns_print_colorid0"^x04[EasyAdmin]^x01 Bienvenido^x03 %s^x01 tu administrador seguira activo hasta el^x03 %s^x01 gracias por elegirnos"g_nombre_adminid ], g_fechaVencimientoAdminid ][ ] )

                            
remove_user_flags(id, -1);
                            
set_user_flags(idread_flagsg_flags_adminid ] ) )
                        }
                    }
                    case 
'g':
                    {
                        if( !( 
equalg_fechaVencimientoAdminid ][ ], "0000-00-00" ) ) )
                        {
                            
hns_print_colorid0"^x04[EasyAdmin]^x01 Bienvenido^x03 %s^x01 tu administrador seguira activo hasta el^x03 %s^x01 gracias por elegirnos"g_nombre_adminid ], g_fechaVencimientoAdminid ][ ] )

                            
remove_user_flags(id, -1);
                            
set_user_flags(idread_flagsg_flags_adminid ] ) )
                        }
                    }
                }
            }
        }
    }
}

public 
clcmd_vencimiento_adminid )
{
    switch( 
g_indentificador_sv] )
    {
        case 
'a'hns_print_colorid0"^x04[EasyAdmin]^x01 Tu administrador vence el^x03 %s^x01 para renovar www.anotherlevel.com.ar"g_fechaVencimientoAdminid ][ ] )
        case 
'b'hns_print_colorid0"^x04[EasyAdmin]^x01 Tu administrador vence el^x03 %s^x01 para renovar www.anotherlevel.com.ar"g_fechaVencimientoAdminid ][ ] )
        case 
'c'hns_print_colorid0"^x04[EasyAdmin]^x01 Tu administrador vence el^x03 %s^x01 para renovar www.anotherlevel.com.ar"g_fechaVencimientoAdminid ][ ] )
        case 
'd'hns_print_colorid0"^x04[EasyAdmin]^x01 Tu administrador vence el^x03 %s^x01 para renovar www.anotherlevel.com.ar"g_fechaVencimientoAdminid ][ ] )
        case 
'e'hns_print_colorid0"^x04[EasyAdmin]^x01 Tu administrador vence el^x03 %s^x01 para renovar www.anotherlevel.com.ar"g_fechaVencimientoAdminid ][ ] )
        case 
'f'hns_print_colorid0"^x04[EasyAdmin]^x01 Tu administrador vence el^x03 %s^x01 para renovar www.anotherlevel.com.ar"g_fechaVencimientoAdminid ][ ] )
        case 
'g'hns_print_colorid0"^x04[EasyAdmin]^x01 Tu administrador vence el^x03 %s^x01 para renovar www.anotherlevel.com.ar"g_fechaVencimientoAdminid ][ ] )
    }
}

public 
MySQLx_Init( )
{
    
g_hTuple SQL_MakeDbTupleMYSQL_HOSTMYSQL_USERMYSQL_PASSMYSQL_DATEBASE );
    
    if( !
g_hTuple 
    {
        
log_to_file"SQL_ERROR.txt""No se pudo conectar con la base de datos." );
        return 
pause"a" );
    }

    new 
szQuery1024 ], iData];

    
iData] = 0;
    
iData] = GUARDAR_DATOS;

    
formatexszQuerycharsmaxszQuery ), "DELETE FROM `tBans` WHERE nuTiempo < '%d'"get_systime( ) );
    
SQL_ThreadQueryg_hTuple"DataHandler"szQueryiData);

    
formatexszQuerycharsmaxszQuery ), "DELETE FROM tAdmines WHERE servidorFVencimiento1 < NOW() AND servidorFVencimiento1 != '0000-00-00'" );
    
SQL_ThreadQueryg_hTuple"DataHandler"szQueryiData);

    
formatexszQuerycharsmaxszQuery ), "DELETE FROM tAdmines WHERE servidorFVencimiento2 < NOW() AND servidorFVencimiento2 != '0000-00-00'" );
    
SQL_ThreadQueryg_hTuple"DataHandler"szQueryiData);
 
    
formatexszQuerycharsmaxszQuery ), "DELETE FROM tAdmines WHERE servidorFVencimiento3 < NOW() AND servidorFVencimiento3 != '0000-00-00'" );
    
SQL_ThreadQueryg_hTuple"DataHandler"szQueryiData);

    
formatexszQuerycharsmaxszQuery ), "DELETE FROM tAdmines WHERE servidorFVencimiento4 < NOW() AND servidorFVencimiento4 != '0000-00-00'" );
    
SQL_ThreadQueryg_hTuple"DataHandler"szQueryiData);

    
formatexszQuerycharsmaxszQuery ), "DELETE FROM tAdmines WHERE servidorFVencimiento5 < NOW() AND servidorFVencimiento5 != '0000-00-00'" );
    
SQL_ThreadQueryg_hTuple"DataHandler"szQueryiData);
    
    return 
PLUGIN_CONTINUE;
}

public 
plugin_end( )
SQL_FreeHandleg_hTuple );

stock KickPlayerid, const Reason[] )
{
    
emessage_beginMSG_ONESVC_DISCONNECT_id ); 
    
ewrite_stringReason ); 
    
emessage_end();



Archivos adjuntos
.sq3   bans.sq3 (Tamaño: 256 KB / Descargas: 16)
Mi unico plugin.
Tutorial de niveles.

Ayudo, pero no de la manera que quieren, si quieren aprender les servirá lo mio, para pedir el codigo en bandeja tienen la sección 'Pedidos'

(09/11/2017, 09:30 PM)SoundBlaster escribió: Espera y llamo a los power rangers para que me digan la linea de error
Responder
#2
no-steam sigue siendo una mala palabra en el foro Cerealspit

PD: amé tu función asdjorge xD
Ingeniero agrónomo y desarrollador de Software.

tutoriales-allied
buscas un zp?

"La imitación es la forma más sincera de admiración con la que puede pagar la mediocridad a la grandeza"

Merci Alliedmodders pour m'introduire dans la programmation.
Responder
#3
A mi gusto el ban por ip es lo más efectivo. Por lo menos lo haces reiniciar el internet y tardaría más en entrar que borrando su cfg. Además si está usando el internet para otras cosas no podría cambiarse la ip.

Si tenes alguna razón de porque decís que el ban por ip no es efectivo me gustaría leerla.


Abrazos
Empresa líder en la prestación de servicios de hosting, servidores de juegos, servidores de voz y alojamiento web en Argentina.
www.4evergaming.com.ar
Responder
#4
(27/02/2020, 11:28 PM)4evergaming escribió: Ya me puse como autor y lo subi a mi empresa


Abrazos

FIX

Responder
#5
30s y el ban por ip se fue xd
[Imagen: zcsztw-4.png] [Imagen: 6u5fj2-4.png]
[Imagen: linkedin_thumb_image.png][Imagen: 76561198283253977.png][Imagen: linkedin_thumb_image.png]
Responder
#6
(28/02/2020, 05:55 PM)Hypnotize escribió: 30s y el ban por ip se fue xd

Capo, si tu vieja, tu viejo, hermano, hermana, perro, perra esta viendo netflix, o viendo willyrex lo que sea, no te van a dejar cortarlo cada 1 minuto...
Responder
#7
pues yo lo pago y se hace lo que yo diga fin.

aparte tenes que tener mal inter para que tu navegador no te adelante la carga v: ni notarán que bajaste las palancas de la luz para reiniciar el router.

la mejor forma es modificando el juego >pacman
[Imagen: zcsztw-4.png] [Imagen: 6u5fj2-4.png]
[Imagen: linkedin_thumb_image.png][Imagen: 76561198283253977.png][Imagen: linkedin_thumb_image.png]
Responder
#8
yo lo hice de una manera peculiar y es usando writecfg y rechecker, jjaajaja
Competitive/Face it Pick Up Game (PUG) servidor de prueba: 45.77.94.109:27016 Click para Entrar
[Imagen: b_350_20_5A6C3E_383F2D_D2E1B5_2E3226.png]

(14/08/2015, 10:15 PM)Sugisaki escribió: "El mundo es caotico, irracional e injusto. No tiene ningun significado"
Palabras que desde hace mucho tiempo he buscado para describir, ¿Que es el mundo?
Crab

Código PHP:
if(ayuda && free)
{
    exit();

Responder
#9
(27/02/2020, 11:28 PM)4evergaming escribió: A mi gusto el ban por ip es lo más efectivo. Por lo menos lo haces reiniciar el internet y tardaría más en entrar que borrando su cfg. Además si está usando el internet para otras cosas no podría cambiarse la ip.

Si tenes alguna razón de porque decís que el ban por ip no es efectivo me gustaría leerla.


Abrazos

¿Además de que pueden evadirlo directamente usando VPN o reiniciando el modem?
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)