AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Scripting Help (https://forums.alliedmods.net/forumdisplay.php?f=11)
-   -   Save data (add a menu more) syst.accountMYSQL (https://forums.alliedmods.net/showthread.php?t=295391)

Rigex 03-24-2017 14:15

Save data (add a menu more) syst.accountMYSQL
 
Hello I need a help, I want to add to this code, I need to save the name and password when registering also register if it is human zombie or HM, and save that, the truth is not much I am not so advanced and I need a little, Thanks in advance.

PHP Code:

#include < amxmodx >
#include < sqlx >


#define MYSQL

#if defined MYSQL

#define MYSQL_HOST "localhost"
#define MYSQL_USER "root"
#define MYSQL_PASS ""
#define MYSQL_DATEBASE "FFH"

#else

#define SQLITE_DATEBASE "cuentas"

#endif

new const szTable[ ] = "cuentas"

new const szPrefix[ ] = "[Cuentas]";

new 
Handle:g_hTuple;
new 
g_maxplayers;

new 
gClase33 ];

new 
g_estado;
new 
g_id33 ];
new 
g_usuario33 ][ 34 ];
new 
g_password33 ][ 34 ];
new 
g_playername33 ][ 33 ];

enum
{
    
REGISTRAR_CUENTA,
    
LOGUEAR_CUENTA,
    
CARGAR_DATOS,
    
GUARDAR_DATOS
};

/* consulta MYSQL:
CREATE TABLE cuentas 
(
    id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ,
    Usuario varchar(34) NOT NULL UNIQUE KEY, 
    Password varchar(34) NOT NULL, 
    Pj varchar(32) NOT NULL UNIQUE KEY,
)
*/

/* consulta SQLite:
CREATE TABLE "cuentas" 
(
    "id" INTEGER PRIMARY KEY  AUTOINCREMENT  NOT NULL, 
    "Usuario" VARCHAR NOT NULL  UNIQUE, 
    "Password" VARCHAR NOT NULL, 
    "Pj" VARCHAR NOT NULL  UNIQUE,
    "Experiencia" INTEGER DEFAULT 0
)
*/


public plugin_init( )  {
    
register_pluginPLUGINVERSIONAUTHOR );

    
register_clcmd"CREAR_USUARIO""reg_usuario" );
    
register_clcmd"CREAR_PASSWORD""reg_password" );
    
register_clcmd"LOGUEAR_USUARIO""log_usuario" );
    
register_clcmd"LOGUEAR_PASSWORD""log_password" );
    
    
register_clcmd"chooseteam""clcmd_changeteam" );
    
register_clcmd"jointeam""clcmd_changeteam" );
    
    
register_messageget_user_msgid"ShowMenu" ), "message_ShowMenu" );
    
register_messageget_user_msgid"VGUIMenu" ), "message_VGUIMenu" );
    
    
register_event"HLTV""event_round_start""a""1=0""2=0" );
    
    
g_maxplayers get_maxplayers( );
    
    
MySQLx_Init( );
}

public 
message_VGUIMenuiMsgidiDestid ) {
    if( 
g_estado & (1<<id) ||  get_msg_arg_int) != 
        return 
PLUGIN_CONTINUE;
    
    
show_login_menuid );
    return 
PLUGIN_HANDLED;
}

public 
message_ShowMenuiMsgidiDestid ) {
    if( 
g_estado & (1<<id) )
        return 
PLUGIN_CONTINUE;
    
    static 
sMenuCode33 ];
    
get_msg_arg_string4sMenuCodecharsmaxsMenuCode ) );
    
    if( 
containisMenuCode"Team_Select" ) != -) {
        
show_login_menuid );
        return 
PLUGIN_HANDLED;
    }
    
    return 
PLUGIN_CONTINUE;
}

public 
clcmd_changeteamid ) {
    if( ~
g_estado & (1<<id) ) {
        
show_login_menuid );
        
        return 
PLUGIN_HANDLED;
    }
    
    return 
PLUGIN_CONTINUE;
}

public 
show_login_menuid ) {
    new 
menu menu_create"Menu de cuentas""login_menu" );
    
    
menu_additemmenu"Crear cuenta" );
    
menu_additemmenu"Ingresar" );
    
    
menu_setpropmenuMPROP_EXITMEXIT_NEVER );
    
    
menu_displayidmenu );
    
    return 
PLUGIN_HANDLED;
}

public 
login_menuidmenuitem ) {
    
    switch( 
item ) {
        case 
0client_cmdid"messagemode CREAR_USUARIO" );
        case 
1client_cmdid"messagemode LOGUEAR_USUARIO" );
    }
    
    return 
PLUGIN_HANDLED;
}

public 
sec_claseid )
{
    new 
menu menu_create"Menu de cuentas""sec_menu" );
    
    
menu_additemmenu"Zombie" );
    
menu_additemmenu"Humano" );
    
menu_additemmenu"Red" );
    
    
menu_setpropmenuMPROP_EXITMEXIT_NEVER);
    
    
menu_displayidmenu);
    
    return 
PLUGIN_HANDLED;
}

public 
sec_menuidmenuitem ){
    
    switch( 
item ){
        case 
0gClase[id] = 1;
        case 
1gClase[id] = 2;
        case 
2gClase[id] = 3;
    }
    
    return 
PLUGIN_HANDLED;
}

public 
reg_usuarioid ) {
    
read_argsg_usuarioid ], charsmaxg_usuario[ ] ) );
    
remove_quotesg_usuarioid ] );
    
trimg_usuarioid ] );
    
    
md5g_usuarioid ], g_usuarioid ] );
    
    
client_cmdid"messagemode CREAR_PASSWORD" );
    
    return 
PLUGIN_HANDLED;
}

public 
reg_passwordid ) {
    
read_argsg_passwordid ], charsmaxg_password[ ] ) );
    
remove_quotesg_passwordid ] );
    
trimg_passwordid ] );
    
md5g_passwordid ], g_passwordid ] );
    
    new 
szQuery256 ], iData];
    
    
iData] = id;
    
iData] = REGISTRAR_CUENTA;
    
    
get_user_nameidg_playernameid ], charsmaxg_playername[ ] ) );
    
    
formatexszQuerycharsmaxszQuery ), "INSERT INTO %s (Usuario, Password, Pj) VALUES (^"%s^", ^"%s^", ^"%s^")"szTableg_usuarioid ], g_passwordid ], g_playernameid ] );
    
SQL_ThreadQuery(g_hTuple"DataHandler"szQueryiData2);
    
    
    return 
PLUGIN_HANDLED;
}

public 
log_usuarioid ) {
    
read_argsg_usuarioid ], charsmaxg_usuario[ ] ) );
    
remove_quotesg_usuarioid ] );
    
trimg_usuarioid ] );
    
md5g_usuarioid ], g_usuarioid ] );
    
    
client_cmdid"messagemode LOGUEAR_PASSWORD" );
    
    return 
PLUGIN_HANDLED;
}

public 
log_passwordid ) {
    
read_argsg_passwordid ], charsmaxg_password[ ] ) );
    
remove_quotesg_passwordid ] );
    
trimg_passwordid ] );
    
md5g_passwordid ], g_passwordid ] );
    
    new 
szQuery128 ], iData];
    
    
iData] = id;
    
iData] = LOGUEAR_CUENTA;
    
    
formatexszQuerycharsmaxszQuery ), "SELECT * FROM %s WHERE Usuario=^"%s^" AND Password=^"%s^""szTableg_usuarioid ], g_passwordid ] );
    
SQL_ThreadQueryg_hTuple"DataHandler"szQueryiData);
    
    return 
PLUGIN_HANDLED;
}

public 
guardar_datosid ) {
    new 
szQuery128 ], iData];
    
    
iData] = id;
    
iData] = GUARDAR_DATOS;
    
    
formatexszQuerycharsmaxszQuery ), "UPDATE %s SET WHERE id='%d'"szTableg_idid ] );
    
SQL_ThreadQueryg_hTuple"DataHandler"szQueryiData);
}

public 
DataHandlerfailstateHandle:Queryerror[ ], error2data[ ], datasizeFloat:time ) {
    static 
id;
    
id 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 
REGISTRAR_CUENTA: {
            if( 
failstate TQUERY_SUCCESS ) {
                if( 
containierror"Usuario" ) != -)
                    
client_printidprint_chat"%s El usuario ya existe."szPrefix );

                else if( 
containierror"Pj" ) != -)
                    
client_printidprint_chat"%s El nombre de personaje esta en uso."szPrefix );
                else
                    
client_printidprint_chat"%s Error al crear la cuenta. Intente nuevamente."szPrefix );
                
                
client_cmdid"spk buttons/button10.wav" );
                
                
show_login_menuid );
            }
            else {
                
client_printidprint_chat"%s Tu cuenta ha sido creada correctamente."szPrefix );
                
                new 
szQuery128 ], iData];
                
                
iData] = id;
                
iData] = CARGAR_DATOS;
                
                
formatexszQuerycharsmaxszQuery ), "SELECT id FROM %s WHERE Usuario=^"%s^""szTableg_usuarioid ] );
                
SQL_ThreadQueryg_hTuple"DataHandler"szQueryiData);
            }
            
        }
        case 
LOGUEAR_CUENTA: {
            if( 
SQL_NumResultsQuery ) ) {
                
g_idid ] = SQL_ReadResultQuery);
                
SQL_ReadResultQuery3g_playernameid ], charsmaxg_playername[ ] ) );                    
                
                
// Cargamos datos
                
                
func_login_successid );
            }
            else {
                
client_printidprint_chat"%s Usuario o ContraseA± incorrecta."szPrefix );
                
client_cmdid"spk buttons/button10.wav" );
                
                
show_login_menuid );
            }
        }
        case 
CARGAR_DATOS: {
            if( 
SQL_NumResultsQuery ) ) {
                
g_idid ] = SQL_ReadResultQuery);
                
                
// Ponemos la exp en 0 para el nuevo usuario.
                
                
func_login_successid );
            }
            else {
                
client_printidprint_chat"%s Error al cargar los datos, intente nuevamente."szPrefix );
                
show_login_menuid );
            }
        }
        case 
GUARDAR_DATOS: {
            if( 
failstate TQUERY_SUCCESS )
                
console_printid"%s Error en el guardado de datos."szPrefix );
            
            else
                
console_printid"%s Datos guardados."szPrefix );
        }
    }
}

public 
func_login_successid ) {
    
engclient_cmdid"jointeam""5" );
    
engclient_cmdid"joinclass""5" );
    
    
g_estado |= (1<<id);
    
    
set_user_infoid"name"g_playernameid ] );
}

public 
event_round_start( ) {
    for( new 
1<= g_maxplayersi++ ) {
        if( 
g_estado & (1<<i) && is_user_connected) )
            
guardar_datos);
    }
}        

public 
client_infochangedid ) {
    if( ~
g_estado & (1<<id) )
        return 
PLUGIN_CONTINUE;
    
    static 
name33 ];
    
get_user_infoid"name"namecharsmaxname ) );
    
    if( !
equalg_playernameid ], name ) ) {
        
set_user_infoid"name"g_playernameid ] );
        
        return 
PLUGIN_HANDLED;
    }
    
    return 
PLUGIN_CONTINUE;
}

public 
client_disconnect(  id ) {
    
    if( 
g_estado & (1<<id) ) {
        
guardar_datosid );
        
        
g_estado &= ~(1<<id);
    }
    
    
g_usuarioid ][ ] = '^0';
    
g_passwordid ][ ] = '^0';
}

#if defined MYSQL
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" );
    }
    
    return 
PLUGIN_CONTINUE;
}
#else

// Gracias ILUSION por fixear la conexion
public MySQLx_Init( )
{
    new 
get_type12 ];
    
    
SQL_SetAffinity"sqlite" );
    
    
SQL_GetAffinityget_typesizeof get_type );

    if( !
equaliget_type"sqlite" ) )
    {
        
log_to_file"SQLITE_ERROR.txt""Error de conexion" );
        return 
pause"a" );
    }
    
    
g_hTuple SQL_MakeDbTuple""""""SQLITE_DATEBASE );
    
    return 
PLUGIN_CONTINUE
}
#endif

public plugin_end( )
    
SQL_FreeHandleg_hTuple ); 

this is what i wanna add, and i need too that save the class please in the database :(

PHP Code:

public sec_claseid )
{
    new 
menu menu_create"Menu de cuentas""sec_menu" );
    
    
menu_additemmenu"Zombie" );
    
menu_additemmenu"Humano" );
    
menu_additemmenu"Red" );
    
    
menu_setpropmenuMPROP_EXITMEXIT_NEVER);
    
    
menu_displayidmenu);
    
    return 
PLUGIN_HANDLED;
}

public 
sec_menuidmenuitem ){
    
    switch( 
item ){
        case 
0gClase[id] = 1;
        case 
1gClase[id] = 2;
        case 
2gClase[id] = 3;
    }
    
    return 
PLUGIN_HANDLED;



Rigex 03-25-2017 14:16

Re: Save data (add a menu more) syst.accountMYSQL
 
revive please help :(


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

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