|
Junior Member
|

03-24-2017
, 14:15
Save data (add a menu more) syst.accountMYSQL
|
#1
|
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 gClase[ 33 ];
new g_estado; new g_id[ 33 ]; new g_usuario[ 33 ][ 34 ]; new g_password[ 33 ][ 34 ]; new g_playername[ 33 ][ 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_plugin( PLUGIN, VERSION, AUTHOR );
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_message( get_user_msgid( "ShowMenu" ), "message_ShowMenu" ); register_message( get_user_msgid( "VGUIMenu" ), "message_VGUIMenu" ); register_event( "HLTV", "event_round_start", "a", "1=0", "2=0" ); g_maxplayers = get_maxplayers( ); MySQLx_Init( ); }
public message_VGUIMenu( iMsgid, iDest, id ) { if( g_estado & (1<<id) || get_msg_arg_int( 1 ) != 2 ) return PLUGIN_CONTINUE; show_login_menu( id ); return PLUGIN_HANDLED; }
public message_ShowMenu( iMsgid, iDest, id ) { if( g_estado & (1<<id) ) return PLUGIN_CONTINUE; static sMenuCode[ 33 ]; get_msg_arg_string( 4, sMenuCode, charsmax( sMenuCode ) ); if( containi( sMenuCode, "Team_Select" ) != -1 ) { show_login_menu( id ); return PLUGIN_HANDLED; } return PLUGIN_CONTINUE; }
public clcmd_changeteam( id ) { if( ~g_estado & (1<<id) ) { show_login_menu( id ); return PLUGIN_HANDLED; } return PLUGIN_CONTINUE; }
public show_login_menu( id ) { new menu = menu_create( "Menu de cuentas", "login_menu" ); menu_additem( menu, "Crear cuenta" ); menu_additem( menu, "Ingresar" ); menu_setprop( menu, MPROP_EXIT, MEXIT_NEVER ); menu_display( id, menu ); return PLUGIN_HANDLED; }
public login_menu( id, menu, item ) { switch( item ) { case 0: client_cmd( id, "messagemode CREAR_USUARIO" ); case 1: client_cmd( id, "messagemode LOGUEAR_USUARIO" ); } return PLUGIN_HANDLED; }
public sec_clase( id ) { new menu = menu_create( "Menu de cuentas", "sec_menu" ); menu_additem( menu, "Zombie" ); menu_additem( menu, "Humano" ); menu_additem( menu, "Red" ); menu_setprop( menu, MPROP_EXIT, MEXIT_NEVER); menu_display( id, menu); return PLUGIN_HANDLED; }
public sec_menu( id, menu, item ){ switch( item ){ case 0: gClase[id] = 1; case 1: gClase[id] = 2; case 2: gClase[id] = 3; } return PLUGIN_HANDLED; }
public reg_usuario( id ) { read_args( g_usuario[ id ], charsmax( g_usuario[ ] ) ); remove_quotes( g_usuario[ id ] ); trim( g_usuario[ id ] ); md5( g_usuario[ id ], g_usuario[ id ] ); client_cmd( id, "messagemode CREAR_PASSWORD" ); return PLUGIN_HANDLED; }
public reg_password( id ) { read_args( g_password[ id ], charsmax( g_password[ ] ) ); remove_quotes( g_password[ id ] ); trim( g_password[ id ] ); md5( g_password[ id ], g_password[ id ] ); new szQuery[ 256 ], iData[ 2 ]; iData[ 0 ] = id; iData[ 1 ] = REGISTRAR_CUENTA; get_user_name( id, g_playername[ id ], charsmax( g_playername[ ] ) ); formatex( szQuery, charsmax( szQuery ), "INSERT INTO %s (Usuario, Password, Pj) VALUES (^"%s^", ^"%s^", ^"%s^")", szTable, g_usuario[ id ], g_password[ id ], g_playername[ id ] ); SQL_ThreadQuery(g_hTuple, "DataHandler", szQuery, iData, 2); return PLUGIN_HANDLED; }
public log_usuario( id ) { read_args( g_usuario[ id ], charsmax( g_usuario[ ] ) ); remove_quotes( g_usuario[ id ] ); trim( g_usuario[ id ] ); md5( g_usuario[ id ], g_usuario[ id ] ); client_cmd( id, "messagemode LOGUEAR_PASSWORD" ); return PLUGIN_HANDLED; }
public log_password( id ) { read_args( g_password[ id ], charsmax( g_password[ ] ) ); remove_quotes( g_password[ id ] ); trim( g_password[ id ] ); md5( g_password[ id ], g_password[ id ] ); new szQuery[ 128 ], iData[ 2 ]; iData[ 0 ] = id; iData[ 1 ] = LOGUEAR_CUENTA; formatex( szQuery, charsmax( szQuery ), "SELECT * FROM %s WHERE Usuario=^"%s^" AND Password=^"%s^"", szTable, g_usuario[ id ], g_password[ id ] ); SQL_ThreadQuery( g_hTuple, "DataHandler", szQuery, iData, 2 ); return PLUGIN_HANDLED; }
public guardar_datos( id ) { new szQuery[ 128 ], iData[ 2 ]; iData[ 0 ] = id; iData[ 1 ] = GUARDAR_DATOS; formatex( szQuery, charsmax( szQuery ), "UPDATE %s SET WHERE id='%d'", szTable, g_id[ id ] ); SQL_ThreadQuery( g_hTuple, "DataHandler", szQuery, iData, 2 ); }
public DataHandler( failstate, Handle:Query, error[ ], error2, data[ ], datasize, Float:time ) { static id; id = data[ 0 ]; if( !is_user_connected( id ) ) return;
switch( failstate ) { case TQUERY_CONNECT_FAILED: { log_to_file( "SQL_LOG_TQ.txt", "Error en la conexion al MySQL [%i]: %s", error2, error ); return; } case TQUERY_QUERY_FAILED: log_to_file( "SQL_LOG_TQ.txt", "Error en la consulta al MySQL [%i]: %s", error2, error ); } switch( data[ 1 ] ) { case REGISTRAR_CUENTA: { if( failstate < TQUERY_SUCCESS ) { if( containi( error, "Usuario" ) != -1 ) client_print( id, print_chat, "%s El usuario ya existe.", szPrefix );
else if( containi( error, "Pj" ) != -1 ) client_print( id, print_chat, "%s El nombre de personaje esta en uso.", szPrefix ); else client_print( id, print_chat, "%s Error al crear la cuenta. Intente nuevamente.", szPrefix ); client_cmd( id, "spk buttons/button10.wav" ); show_login_menu( id ); } else { client_print( id, print_chat, "%s Tu cuenta ha sido creada correctamente.", szPrefix ); new szQuery[ 128 ], iData[ 2 ]; iData[ 0 ] = id; iData[ 1 ] = CARGAR_DATOS; formatex( szQuery, charsmax( szQuery ), "SELECT id FROM %s WHERE Usuario=^"%s^"", szTable, g_usuario[ id ] ); SQL_ThreadQuery( g_hTuple, "DataHandler", szQuery, iData, 2 ); } } case LOGUEAR_CUENTA: { if( SQL_NumResults( Query ) ) { g_id[ id ] = SQL_ReadResult( Query, 0 ); SQL_ReadResult( Query, 3, g_playername[ id ], charsmax( g_playername[ ] ) ); // Cargamos datos func_login_success( id ); } else { client_print( id, print_chat, "%s Usuario o ContraseA± incorrecta.", szPrefix ); client_cmd( id, "spk buttons/button10.wav" ); show_login_menu( id ); } } case CARGAR_DATOS: { if( SQL_NumResults( Query ) ) { g_id[ id ] = SQL_ReadResult( Query, 0 ); // Ponemos la exp en 0 para el nuevo usuario. func_login_success( id ); } else { client_print( id, print_chat, "%s Error al cargar los datos, intente nuevamente.", szPrefix ); show_login_menu( id ); } } case GUARDAR_DATOS: { if( failstate < TQUERY_SUCCESS ) console_print( id, "%s Error en el guardado de datos.", szPrefix ); else console_print( id, "%s Datos guardados.", szPrefix ); } } }
public func_login_success( id ) { engclient_cmd( id, "jointeam", "5" ); engclient_cmd( id, "joinclass", "5" ); g_estado |= (1<<id); set_user_info( id, "name", g_playername[ id ] ); }
public event_round_start( ) { for( new i = 1; i <= g_maxplayers; i++ ) { if( g_estado & (1<<i) && is_user_connected( i ) ) guardar_datos( i ); } }
public client_infochanged( id ) { if( ~g_estado & (1<<id) ) return PLUGIN_CONTINUE; static name[ 33 ]; get_user_info( id, "name", name, charsmax( name ) ); if( !equal( g_playername[ id ], name ) ) { set_user_info( id, "name", g_playername[ id ] ); return PLUGIN_HANDLED; } return PLUGIN_CONTINUE; }
public client_disconnect( id ) { if( g_estado & (1<<id) ) { guardar_datos( id ); g_estado &= ~(1<<id); } g_usuario[ id ][ 0 ] = '^0'; g_password[ id ][ 0 ] = '^0'; }
#if defined MYSQL public MySQLx_Init( ) { g_hTuple = SQL_MakeDbTuple( MYSQL_HOST, MYSQL_USER, MYSQL_PASS, MYSQL_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_type[ 12 ]; SQL_SetAffinity( "sqlite" ); SQL_GetAffinity( get_type, sizeof get_type );
if( !equali( get_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_FreeHandle( g_hTuple );
this is what i wanna add, and i need too that save the class please in the database
PHP Code:
public sec_clase( id ) { new menu = menu_create( "Menu de cuentas", "sec_menu" ); menu_additem( menu, "Zombie" ); menu_additem( menu, "Humano" ); menu_additem( menu, "Red" ); menu_setprop( menu, MPROP_EXIT, MEXIT_NEVER); menu_display( id, menu); return PLUGIN_HANDLED; }
public sec_menu( id, menu, item ){ switch( item ){ case 0: gClase[id] = 1; case 1: gClase[id] = 2; case 2: gClase[id] = 3; } return PLUGIN_HANDLED; }
Last edited by Rigex; 03-24-2017 at 14:16.
|
|