Welcome Soldier.



Admin Vencimiento MySQL v1.0

ChrstopH Ausente
Hypnotize
#1
Buenas en está ocasión vengo a aportar la beta de admins vencimiento por MySQL & una pequeña APP de gestión


DESCRIPCIÓN:
Es un admins Vencimientos POR NICK via MySQL y puedes agregar tus admins con facilidad desde una APP desarrollada en c#

REQUERIMIENTOS

MySQL CONNECTOR: https://dev.mysql.com/downloads/file/?id=475576
MODULO MySQLT: https://amxmodx-es.com/Thread-Modulo-MySQL-Threads-1-2
FRAMEWORK 4.5
VISUAL STUDIO 2012 ( PARA COMPILAR EL PROGRAMA )
AMXX STUDIO ( PARA COMPILAR EL PLUGIN )


IMAGENES:

[Imagen: gg.jpg]


[Imagen: gg2.jpg]

[Imagen: gg3.jpg]

[Imagen: gg4.jpg]

COMO AGREGA UN ADMIN!?

"NICK" "PW" "FLAGS" "TIPO" "02/11/2018"


PLUGIN SMA
Código PHP:
/* Script generated by Pawn Studio */

#include <amxmodx>
#include <amxmisc>
#include <mysqlt>
#include <fakemeta> 

#define PLUGIN    "xd"
#define AUTHOR    "Hypnotize"
#define VERSION    "1.0"

new const HOST[] = "";
new const 
USUARIO[] = "k1s";
new const 
PASSWORD[] = "";
new const 
DB[] = "test_pin";

new const 
szTableP[] = "mysql_admins";

new 
Handle:g_isTupleHandle:g_Connection;

new 
g_password33 ][ 32 ];
new 
iNombre33 ][ 32 ];

public 
plugin_init()
{
    
register_plugin(PLUGINVERSIONAUTHOR);
    
// Add your own code here
    
MySQL_Init( );
    
    
register_forward(FM_ClientUserInfoChanged"ClientUserInfoChanged"
    
    
remove_user_flags(0read_flags("z"))
    
register_concmd("amx_admins""adminSql");
    
server_cmd("amx_admins");
    
}
public 
client_putinserverid )
{
    
get_user_nameidiNombreid ], charsmaxiNombre ) );
    
    new 
Query300 ], iData];
    
iData] = id;
    
iData] = 1;
    
    
formatexQuery charsmaxQuery ) , "SELECT fecha FROM %s WHERE authid = ^"%s^""szTablePiNombreid ] );
    
mysql_query(g_Connection"fnCargar"QueryiData);
    
}
public 
ClientUserInfoChanged(id

    static const 
name[] = "name" 
    
static szOldName[32], szNewName[32
    
pev(idpev_netnameszOldNamecharsmax(szOldName)) 
    if( 
szOldName[0] ) 
    { 
        
get_user_info(idnameszNewNamecharsmax(szNewName)) 
        if( !
equal(szOldNameszNewName) ) 
        { 
            
set_user_info(idnameszOldName
            return 
FMRES_HANDLED 
        

    } 
    return 
FMRES_IGNORED 

public 
adminSql( )
{
    new 
Query300 ];
    
formatexQuery charsmaxQuery ) , "SELECT authid, password, access, flags FROM %s"szTableP );
    
mysql_query(g_Connection"fnAdmins"Query );
}
public 
MySQL_Init( )
{
    
g_isTuple mysql_makehost(HOSTUSUARIOPASSWORDDB);
    
    new 
error32 ], errnum;
    
g_Connection mysql_connect(g_isTupleerrnumerror31);
    
    if(
errnum)
    {
        
log_to_file("mysqlt.log""ERROR1: [%d]- [%s]"errnumerror)
        return 
pause"a" );
    }
    new 
szTable1000 ], len 0;
    
    
len += format(szTable[len], charsmax(szTable) - len"CREATE TABLE IF NOT EXISTS %s"szTableP);
    
len += format(szTable[len], charsmax(szTable) - len"( id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,");
    
len += format(szTable[len], charsmax(szTable) - len"authid varchar(110) NOT NULL UNIQUE,");
    
len += format(szTable[len], charsmax(szTable) - len"password varchar(110) NOT NULL,");
    
len += format(szTable[len], charsmax(szTable) - len"access varchar(50) NOT NULL,");
    
len += format(szTable[len], charsmax(szTable) - len"flags varchar(10) NOT NULL,");
    
len += format(szTable[len], charsmax(szTable) - len"fecha varchar(50) )");
    
mysql_query(g_Connection"QueryCreateTable"szTable);
    
    return 
PLUGIN_CONTINUE;
}

public 
QueryCreateTable(failstateerror[], error2data[], sizeFloat:queuetime)
{
    switch ( 
failstate )
    {
        case 
TQUERY_CONNECT_FAILEDlog_to_file("SQL_LOG_TQ.txt""Failed to connect to database [%i]: %s"error2error)
        case 
TQUERY_QUERY_FAILEDlog_to_file("SQL_LOG_TQ.txt""Error on query for creating table [%i]: %s"error2error)
    }
    
    return 
PLUGIN_HANDLED;
}
public 
fnCargar(failstateerror[], error2data[], sizeFloat:queuetime)
{
    static 
idid data];
    
    if( !
is_user_connectedid ) ) return;
    
    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 
1:
        {
            if( 
mysql_num_results( ) )
            {
                new 
szDate[60];
                
mysql_read_result(0szDatesizeof(szDate));
                
replace_all(szDatecharsmax(szDate), "/"" ");
                new 
Dia[100]; get_time("%d/%m/%Y"Diacharsmax(Dia)) 
                
                new 
szDay[10], szMonth[10], szYear[10];
                
parse(szDateszDaycharsmax(szDay), szMonthcharsmax(szMonth), szYearcharsmax(szYear));
                
                new 
szDay2[10], szMonth2[10], szYear2[10];
                
replace_all(Diacharsmax(Dia), "/"" ");
                
parse(DiaszDay2charsmax(szDay2), szMonth2charsmax(szMonth2), szYear2charsmax(szYear2));
                
                if( 
str_to_num(szDay2) >= str_to_num(szDay) && str_to_num(szMonth2) >= str_to_num(szMonth)  && str_to_num(szYear2) >= str_to_num(szYear) )
                {
                    new 
Query300 ];
                    
formatexQuery charsmaxQuery ) , "DELETE FROM %s WHERE authid = ^"%s^""szTablePiNombreid ] );
                    
mysql_query(g_Connection"fnCargarAdmin"Query );
                }
                else
                {
                    
adminSql( );
                }
            }
        }
    }

public 
fnCargarAdmin(failstateerror[], errnumdata[], sizeFloat:queuetime)
{
    if(
failstate != TQUERY_SUCCESS)
    {
        
log_to_file("mysqlt.log""ERROR1: [%d]- [%s]"errnumerror)
        return 
PLUGIN_HANDLED;
    }
    
    
    if( 
mysql_affected_rows() )
    {
        
adminSql( );
    }
    return 
PLUGIN_CONTINUE;

public 
fnAdmins(failstateerror[], errnumdata[], sizeFloat:queuetime)
{
    if(
failstate != TQUERY_SUCCESS)
    {
        
log_to_file("mysqlt.log""ERROR2: [%d]- [%s]"errnumerror)
        return 
PLUGIN_HANDLED;
    }
    
    static 
id;
    
id data[0];
    
    if(!
mysql_num_results())
    {
        
remove_user_flags(id);
        return 
PLUGIN_HANDLED;
    }
    
    if( 
mysql_num_results( ) )
    {
        new 
Authid[33], Password[33], Access[33], Flags[33];
        
        while( 
mysql_more_results( ) )
        {
            
mysql_read_result(0Authidsizeof(Authid));
            
mysql_read_result(1Passwordsizeof(Password));
            
mysql_read_result(2Accesssizeof(Access));
            
mysql_read_result(3Flagssizeof(Flags));
            
            
admins_push(AuthidPasswordread_flags(Access), read_flags(Flags));
            
            
mysql_next_row();
        }
    }
    
    
users_access();
    return 
PLUGIN_CONTINUE;

stock users_access(){
    new 
players[32];
    new 
iNum;
    
get_players(playersiNum);
    for(--
iNumiNum >= 0iNum--){
        
SetFlags(players[iNum]);
    }
}

stock SetFlags(idname[] = ""){
    
remove_user_flags(id);
    
    new 
szName[32];
    
get_user_info(id"_pw"g_password[id], sizeof(g_password[]));
    if(
name[0])
        
copy(szNamesizeof(szName), name);
    else
    
get_user_name(idszName31);
    
    new 
result lookup_access(idszNameg_password[id])
    
    if(
result 1)
    {
        
server_cmd("kick #%d ^"Ingresa la setinfo de tu administrador^""get_user_userid(id));
        return 
PLUGIN_HANDLED;
    }
    if(
result 2){
        
server_cmd("kick #%d ^"Ingresa la setinfo de tu administrador^""get_user_userid(id));
        return 
PLUGIN_HANDLED;
    }
    if(
result 4)
        
client_cmd(id"echo ^"*Password validated!^"");
    if(
result 8)
        
client_cmd(id"echo ^"Privilegios establecidos!^"");
    
    return 
PLUGIN_CONTINUE;
}
stock lookup_access(idusername[], password[]) {
    new 
index = -1result 0;
    new 
iadminname[32], adminpassword[32], count admins_num()-1;
    
    for(
count>= 0i--) {
        
admins_lookup(iAdminProp_Authadminnamecharsmax(adminname));
        if(
equali(usernameadminname)) {
            
index i;
            break;
        }
    }
    
    if(
index != -1) {
        new 
access admins_lookup(indexAdminProp_Access), ip[32], steamid[32];
        
admins_lookup(indexAdminProp_Passwordadminpasswordcharsmax(adminpassword));
        
get_user_ip(idipcharsmax(ip), 1);
        
get_user_authid(idsteamidcharsmax(steamid));
        
        if(
equal(passwordadminpassword)) {
            
            
result |= 12;
            
set_user_flags(idaccess);
            
            new 
sflags[32];
            
get_flags(accesssflagscharsmax(sflags));
            
            
log_amx("[AMXX] Login: ^"%s<%d><%s><>^" became an admin (access ^"%s^") (address ^"%s^")"usernameget_user_userid(id), steamidsflagsip);
        }
        else {
            
result |= 1;
            
            if(
admins_lookup(indexAdminProp_Flags) & FLAG_KICK) {
                
result |= 2;
                
log_amx("[AMXX] Login: ^"%s<%d><%s><>^" kicked due to invalid password (address ^"%s^")"usernameget_user_userid(id), steamidip);
            }
        }
    }
    else {
        new 
access read_flags("z");
        
        if(
access) {
            
result |= 8;
            
set_user_flags(idaccess);
        }
    }
    
    return 
result;

/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang3082\\ f0\\ fs16 \n\\ par }
*/ 


APP SIN COMPILAR: https://mega.nz/#!B7xy3SqK!S8YuNcfWsOzPL...Gmxg9qOdNA


ES BETA RECIÉN LA HICE xd
puede tener fallos :whatever:


EDIT;

CREDITOS

NIPER ( LE SAQUE UNOS STOCKS xd )
DESTRO ( MODULO MYSQLT )


TEMA COPIADO DESDE: https://amxmodx-es.com/Thread-Admin-Venc...MySQL-v1-0
[Imagen: 76561198283253977.png]

Mapas Frutas 100%
DeathRun Levels 100%
Atrapa al Traidor (Edición) 100%
Battle Royale 40%
[+] 6 users say Thank You to ChrstopH for this post
Responder

mxemexico Sin conexión
mXe
#2
Pasame tu steam id wey para hablar weon qliao fome o agregame id mxemexico
[Imagen: 76561198063536708.png]
Responder

ChrstopH Ausente
Hypnotize
#3
(11-03-2018, 12:48 AM)mxemexico escribió: Pasame tu steam id wey para hablar weon qliao fome o agregame id mxemexico

https://steamcommunity.com/id/cHypnotize/
[Imagen: 76561198283253977.png]

Mapas Frutas 100%
DeathRun Levels 100%
Atrapa al Traidor (Edición) 100%
Battle Royale 40%
Responder

ChrstopH Ausente
Hypnotize
#4
-----------------------------------------------------------
UPDATE

- removida posible bug de cambio de nick
actualizaciones en amx-es
contacto : fb.com/chrshy13
otras act; http://mxemexico.com/showthread.php?tid=6220
-----------------------------------------------------------
[Imagen: 76561198283253977.png]

Mapas Frutas 100%
DeathRun Levels 100%
Atrapa al Traidor (Edición) 100%
Battle Royale 40%
Responder





Usuarios navegando en este tema:
1 invitado(s)



Sobre M X E M E X I C O

Comunidad MxE © 2020 - La mejorar comunidad de Counter Strike 1.6 .