Buenos dias, estoy utilizando el sistema de cuentas adv vault de cs axel como plugin externo, y lo estoy utilizando con un zp 4.2 que tambien adapte a adv vault, el problema es que con el zp manejo 10 tablas y cuando utilizo solo 3 tablas no me tira ningun error pero cuando supero las 3 tablas se bugea con el sistema de cuentas...
me tira estos errores que desconozco por que podrian ser
Código PHP:
L 08/27/2022 - 11:29:18: ERROR Invalid VaultIndex: 0 L 08/27/2022 - 11:29:18: [AMXX] Run time error 10 (plugin "sys_accounts.amxx") (native "adv_vault_get_prepare") - debug not enabled! L 08/27/2022 - 11:29:18: [AMXX] To enable debug mode, add "debug" after the plugin name in plugins.ini (without quotes). L 08/27/2022 - 11:29:18: ERROR Invalid VaultIndex: 0 L 08/27/2022 - 11:29:18: [AMXX] Run time error 10 (plugin "sys_accounts.amxx") (native "adv_vault_get_prepare") - debug not enabled! L 08/27/2022 - 11:29:18: [AMXX] To enable debug mode, add "debug" after the plugin name in plugins.ini (without quotes). L 08/27/2022 - 11:29:19: ERROR Invalid VaultIndex: 0 L 08/27/2022 - 11:29:19: [AMXX] Run time error 10 (plugin "sys_accounts.amxx") (native "adv_vault_get_prepare") - debug not enabled! L 08/27/2022 - 11:29:19: [AMXX] To enable debug mode, add "debug" after the plugin name in plugins.ini (without quotes).
(27/08/2022, 11:30 AM)aramayo123 escribió: Buenos dias, estoy utilizando el sistema de cuentas adv vault de cs axel como plugin externo, y lo estoy utilizando con un zp 4.2 que tambien adapte a adv vault, el problema es que con el zp manejo 10 tablas y cuando utilizo solo 3 tablas no me tira ningun error pero cuando supero las 3 tablas se bugea con el sistema de cuentas...
me tira estos errores que desconozco por que podrian ser
Código PHP:
L 08/27/2022 - 11:29:18: ERROR Invalid VaultIndex: 0 L 08/27/2022 - 11:29:18: [AMXX] Run time error 10 (plugin "sys_accounts.amxx") (native "adv_vault_get_prepare") - debug not enabled! L 08/27/2022 - 11:29:18: [AMXX] To enable debug mode, add "debug" after the plugin name in plugins.ini (without quotes). L 08/27/2022 - 11:29:18: ERROR Invalid VaultIndex: 0 L 08/27/2022 - 11:29:18: [AMXX] Run time error 10 (plugin "sys_accounts.amxx") (native "adv_vault_get_prepare") - debug not enabled! L 08/27/2022 - 11:29:18: [AMXX] To enable debug mode, add "debug" after the plugin name in plugins.ini (without quotes). L 08/27/2022 - 11:29:19: ERROR Invalid VaultIndex: 0 L 08/27/2022 - 11:29:19: [AMXX] Run time error 10 (plugin "sys_accounts.amxx") (native "adv_vault_get_prepare") - debug not enabled! L 08/27/2022 - 11:29:19: [AMXX] To enable debug mode, add "debug" after the plugin name in plugins.ini (without quotes).
Distribuye las tablas, en una solo guarda 4 columnas en la otra 4 mas y por ultimo las 2 restantes
(27/08/2022, 01:02 PM)Meliodas escribió: Distribuye las tablas, en una solo guarda 4 columnas en la otra 4 mas y por ultimo las 2 restantes
Sucede que son demaciados datos para guardar, me arme un sistema de armas con niveles, eso me da un total de 1500 datos que guardar en total, por eso necesito todas las tablas
(27/08/2022, 02:16 PM)aramayo123 escribió: Sucede que son demaciados datos para guardar, me arme un sistema de armas con niveles, eso me da un total de 1500 datos que guardar en total, por eso necesito todas las tablas
Te recomiendo que uses Sqlite si son muchos datos los que guardas es tu mejor opcion
(27/08/2022, 02:16 PM)aramayo123 escribió: Sucede que son demaciados datos para guardar, me arme un sistema de armas con niveles, eso me da un total de 1500 datos que guardar en total, por eso necesito todas las tablas
si jajaj pero como soy noob los hice como arrays separados, estoy haciendo un sistema de nuevo y lo estoy haciendo con enums
me ayudas acomo puedo guardar esto?
Te dejo un sistema de cuentas que hice con soporte externo al zp 4.3 (guarda la clase zombie y los ammopacks).
También un tutorial de sqlite para que aprendas a usarlo: https://amxmodx-es.com/Thread-Tutorial-sobre-sqlite
PD: si siempre tenes que tener activado el modulo sql o mysql dependiendo cual vayas a ocupar...
Código PHP:
/* Sistema de Cuentas - MySql */ /* Soporte para ZP 4.3 */ /* Creado por: Emanuelitop15 */
// Tablas new const tabla_principal[] = "sdcUSUARIOS";
// Data del Usuario enum _: _data_usuario { USUARIO_NOMBRE[32], USUARIO_AUTHID[32], USUARIO_PW[32], USUARIO_AUTOLOGUEO };
// Variables new bool: g_logueado[MAX_PLAYERS+1]; new g_usuario_data[MAX_PLAYERS+1][_data_usuario]; new cvar_on, cvar_autologueo; new g_msg_vgui, g_msg_showmenu; new Handle: g_sqltuple, Handle: g_sqlconexion;
if (containi(text, "Team_Select") != -1) return PLUGIN_HANDLED;
return PLUGIN_HANDLED; }
public clcmd_autologueo(id) { if (!is_user_connected(id) || !g_logueado[id] || !get_pcvar_num(cvar_on) || !get_pcvar_num(cvar_autologueo)) return PLUGIN_HANDLED;
g_usuario_data[id][USUARIO_AUTOLOGUEO] = !g_usuario_data[id][USUARIO_AUTOLOGUEO]; client_print_color(id, 0, "%s El autologueo de tu cuenta ha sido:^4 %s^1.", PREFIJO, g_usuario_data[id][USUARIO_AUTOLOGUEO] ? "ACTIVADO" : "DESACTIVADO"); return PLUGIN_HANDLED; }
public clcmd_blockequipos(id) { if (!is_user_connected(id) || !get_pcvar_num(cvar_on)) return PLUGIN_CONTINUE;
if (!g_logueado[id]) { menu_cuentas(id); return PLUGIN_HANDLED; }
return PLUGIN_CONTINUE; }
public clcmd_crear_cuenta(id) { if (g_logueado[id]) return PLUGIN_HANDLED;
if (equal(g_usuario_data[id][USUARIO_PW], "") || containi(g_usuario_data[id][USUARIO_PW], " ") != -1) { client_print_color(id, 0, "%s Tu^3 contraseña^1 esta en blanco o contiene errores, recuerda no usar simbolos ni acentos!", PREFIJO); menu_cuentas(id); return PLUGIN_HANDLED; }
for (new i = 0; i < sizeof (SIMBOLOS_NO_PERMITIDOS); i++) { if (containi(g_usuario_data[id][USUARIO_PW], SIMBOLOS_NO_PERMITIDOS[i]) != -1) { client_print_color(id, 0, "%s Tu^3 contraseña^1 contiene simbolos que no estan permitidos!", PREFIJO); menu_cuentas(id); return PLUGIN_HANDLED; } }
if (equal(g_usuario_data[id][USUARIO_PW], g_usuario_data[id][USUARIO_NOMBRE])) { client_print_color(id, 0, "%s Tu^3 contraseña^1 es igual que tu^3 nombre^1, create una diferente.", PREFIJO); menu_cuentas(id); return PLUGIN_HANDLED; }
if (strlen(g_usuario_data[id][USUARIO_PW]) < 3) { client_print_color(id, 0, "%s Tu^3 contraseña^1 es muy corta, tiene que contener 3 o mas caracteres.", PREFIJO); menu_cuentas(id); return PLUGIN_HANDLED; }
if (strlen(g_usuario_data[id][USUARIO_PW]) >= 10) { client_print_color(id, 0, "%s Tu^3 contraseña^1 es demasiado larga, acortala e intenta otra vez.", PREFIJO); menu_cuentas(id); return PLUGIN_HANDLED; }
if (!check_registrado(id)) registrar_cuenta(id); else client_print_color(id, 0, "%s Al parecer ya estas registrado, no te puedes crear una cuenta con el mismo nombre.", PREFIJO);
return PLUGIN_HANDLED; }
public clcmd_ingresar_cuenta(id) { if (g_logueado[id]) return PLUGIN_HANDLED;
new Handle: query; query = SQL_PrepareQuery(g_sqlconexion, "SELECT Contrasena FROM ^"%s^" WHERE Usuario = ^"%s^"", tabla_principal, g_usuario_data[id][USUARIO_NOMBRE]);
if (!SQL_Execute(query)) { SQL_ERROR(query, tabla_principal, "clcmd_ingresar_cuenta(id)", g_usuario_data[id][USUARIO_NOMBRE]); client_print_color(id, 0, "%s Hubo un error en la base de datos, tu cuenta no se ha podido cargar...", PREFIJO); return false; }
if (SQL_NumResults(query)) { new szcontrasena[32]; SQL_ReadResult(query, 0, szcontrasena, charsmax(szcontrasena));
if (equali(g_usuario_data[id][USUARIO_PW], szcontrasena)) cargar_datos(id, .omitir_autologueo = true); else client_print_color(id, 0, "%s La contraseña ingresada es incorrecta.", PREFIJO);
SQL_FreeHandle(query); } else { SQL_FreeHandle(query); client_print_color(id, 0, "%s Hubo un error en la base de datos, tu cuenta no se ha podido cargar...", PREFIJO); }
return PLUGIN_HANDLED; }
public client_putinserver(id) { if (!get_pcvar_num(cvar_on)) return;
g_logueado[id] = false;
for (new i = 0; i < _data_usuario; i++) { g_usuario_data[id][i] = EOS; }
public client_disconnected(id) { if (!get_pcvar_num(cvar_on)) return;
guardar_datos(id); }
public cargar_datos_pre(id) { if (!is_user_connected(id)) return; cargar_datos(id, .omitir_autologueo = false); }
cargar_datos(id, bool: omitir_autologueo = false) { new Handle: query; query = SQL_PrepareQuery(g_sqlconexion, "SELECT * FROM ^"%s^" WHERE Usuario = ^"%s^"", tabla_principal, g_usuario_data[id][USUARIO_NOMBRE]);
if (!SQL_Execute(query)) { SQL_ERROR(query, tabla_principal, "cargar_datos(id)", g_usuario_data[id][USUARIO_NOMBRE]); return; }
// Si encontramos resultados de la consulta le cargamos sus datos if (SQL_NumResults(query)) { g_usuario_data[id][USUARIO_AUTOLOGUEO] = SQL_ReadResult(query, 2); /* Columna de 'Autologeo' */
cargar_datos_post(id, Handle: query) { // 0 - Nombre de la Cuenta SQL_ReadResult(query, 0, g_usuario_data[id][USUARIO_NOMBRE], charsmax(g_usuario_data[][USUARIO_NOMBRE])); set_user_info(id, "name", g_usuario_data[id][USUARIO_NOMBRE]);
if (!is_user_connected(id) || g_logueado[id]) return PLUGIN_HANDLED;
if (!item) { if (check_registrado(id)) { menu_cuentas(id); client_print_color(id, 0, "%s Ya tienes una cuenta creada, elige la opción de^4 Loguearse^1.", PREFIJO); return PLUGIN_HANDLED; }
client_cmd(id, "messagemode ^"%s^"", szmsg_crear_cuenta); } else if (item == 1) { if (!check_registrado(id)) { menu_cuentas(id); client_print_color(id, 0, "%s No tienes una cuenta creada aún, elige la opción de^4 Registrarse^1.", PREFIJO); return PLUGIN_HANDLED; }
#if defined MYSQL g_sqltuple = SQL_MakeDbTuple(db_data[SQL_HOST], db_data[SQL_USUARIO], db_data[SQL_CONTRASENA], db_data[SQL_DATABASE], db_data[SQL_TIMEOUT]);
if (!g_sqltuple) { log_to_file("ERROR_SQL_CONEXION.txt", "No se pudo conectar a la base de datos..."); return; }
if (g_sqlconexion == Empty_Handle) log_to_file("ERROR_SQL_CREAR_CONEXION.txt", "No se pudo crear la conexión a la base de datos..."); else SQL_CREAR_TABLAS(); }
SQL_CREAR_TABLAS() { new sztablas[1000]; static len; len = 0;
len += formatex(sztablas[len], charsmax(sztablas) - len, "CREATE TABLE IF NOT EXISTS `%s` (", tabla_principal); len += formatex(sztablas[len], charsmax(sztablas) - len, "Usuario varchar NOT NULL UNIQUE, "); len += formatex(sztablas[len], charsmax(sztablas) - len, "Contrasena varchar NOT NULL, "); len += formatex(sztablas[len], charsmax(sztablas) - len, "Autologueo int NOT NULL DEFAULT '1', ");
#if defined SOPORTE_ZP43 len += formatex(sztablas[len], charsmax(sztablas) - len, "SteamIDIP varchar NOT NULL, "); len += formatex(sztablas[len], charsmax(sztablas) - len, "Ammopacks int NOT NULL DEFAULT '0', "); len += formatex(sztablas[len], charsmax(sztablas) - len, "ClaseZombie int NOT NULL DEFAULT '0')"); #else len += formatex(sztablas[len], charsmax(sztablas) - len, "SteamIDIP varchar NOT NULL, "); len += formatex(sztablas[len], charsmax(sztablas) - len, "Dinero int NOT NULL DEFAULT '0' )"); #endif
new Handle: query; query = SQL_PrepareQuery(g_sqlconexion, sztablas);
if (!SQL_Execute(query)) SQL_ERROR(query, tabla_principal, "SQL_CREAR_TABLAS()"); else SQL_FreeHandle(query); }
(28/08/2022, 02:31 AM)[E]manuelitop15 escribió: Te dejo un sistema de cuentas que hice con soporte externo al zp 4.3 (guarda la clase zombie y los ammopacks).
También un tutorial de sqlite para que aprendas a usarlo: https://amxmodx-es.com/Thread-Tutorial-sobre-sqlite
PD: si siempre tenes que tener activado el modulo sql o mysql dependiendo cual vayas a ocupar...
Código PHP:
/* Sistema de Cuentas - MySql */ /* Soporte para ZP 4.3 */ /* Creado por: Emanuelitop15 */
// Tablas new const tabla_principal[] = "sdcUSUARIOS";
// Data del Usuario enum _: _data_usuario { USUARIO_NOMBRE[32], USUARIO_AUTHID[32], USUARIO_PW[32], USUARIO_AUTOLOGUEO };
// Variables new bool: g_logueado[MAX_PLAYERS+1]; new g_usuario_data[MAX_PLAYERS+1][_data_usuario]; new cvar_on, cvar_autologueo; new g_msg_vgui, g_msg_showmenu; new Handle: g_sqltuple, Handle: g_sqlconexion;
if (containi(text, "Team_Select") != -1) return PLUGIN_HANDLED;
return PLUGIN_HANDLED; }
public clcmd_autologueo(id) { if (!is_user_connected(id) || !g_logueado[id] || !get_pcvar_num(cvar_on) || !get_pcvar_num(cvar_autologueo)) return PLUGIN_HANDLED;
g_usuario_data[id][USUARIO_AUTOLOGUEO] = !g_usuario_data[id][USUARIO_AUTOLOGUEO]; client_print_color(id, 0, "%s El autologueo de tu cuenta ha sido:^4 %s^1.", PREFIJO, g_usuario_data[id][USUARIO_AUTOLOGUEO] ? "ACTIVADO" : "DESACTIVADO"); return PLUGIN_HANDLED; }
public clcmd_blockequipos(id) { if (!is_user_connected(id) || !get_pcvar_num(cvar_on)) return PLUGIN_CONTINUE;
if (!g_logueado[id]) { menu_cuentas(id); return PLUGIN_HANDLED; }
return PLUGIN_CONTINUE; }
public clcmd_crear_cuenta(id) { if (g_logueado[id]) return PLUGIN_HANDLED;
if (equal(g_usuario_data[id][USUARIO_PW], "") || containi(g_usuario_data[id][USUARIO_PW], " ") != -1) { client_print_color(id, 0, "%s Tu^3 contraseña^1 esta en blanco o contiene errores, recuerda no usar simbolos ni acentos!", PREFIJO); menu_cuentas(id); return PLUGIN_HANDLED; }
for (new i = 0; i < sizeof (SIMBOLOS_NO_PERMITIDOS); i++) { if (containi(g_usuario_data[id][USUARIO_PW], SIMBOLOS_NO_PERMITIDOS[i]) != -1) { client_print_color(id, 0, "%s Tu^3 contraseña^1 contiene simbolos que no estan permitidos!", PREFIJO); menu_cuentas(id); return PLUGIN_HANDLED; } }
if (equal(g_usuario_data[id][USUARIO_PW], g_usuario_data[id][USUARIO_NOMBRE])) { client_print_color(id, 0, "%s Tu^3 contraseña^1 es igual que tu^3 nombre^1, create una diferente.", PREFIJO); menu_cuentas(id); return PLUGIN_HANDLED; }
if (strlen(g_usuario_data[id][USUARIO_PW]) < 3) { client_print_color(id, 0, "%s Tu^3 contraseña^1 es muy corta, tiene que contener 3 o mas caracteres.", PREFIJO); menu_cuentas(id); return PLUGIN_HANDLED; }
if (strlen(g_usuario_data[id][USUARIO_PW]) >= 10) { client_print_color(id, 0, "%s Tu^3 contraseña^1 es demasiado larga, acortala e intenta otra vez.", PREFIJO); menu_cuentas(id); return PLUGIN_HANDLED; }
if (!check_registrado(id)) registrar_cuenta(id); else client_print_color(id, 0, "%s Al parecer ya estas registrado, no te puedes crear una cuenta con el mismo nombre.", PREFIJO);
return PLUGIN_HANDLED; }
public clcmd_ingresar_cuenta(id) { if (g_logueado[id]) return PLUGIN_HANDLED;
new Handle: query; query = SQL_PrepareQuery(g_sqlconexion, "SELECT Contrasena FROM ^"%s^" WHERE Usuario = ^"%s^"", tabla_principal, g_usuario_data[id][USUARIO_NOMBRE]);
if (!SQL_Execute(query)) { SQL_ERROR(query, tabla_principal, "clcmd_ingresar_cuenta(id)", g_usuario_data[id][USUARIO_NOMBRE]); client_print_color(id, 0, "%s Hubo un error en la base de datos, tu cuenta no se ha podido cargar...", PREFIJO); return false; }
if (SQL_NumResults(query)) { new szcontrasena[32]; SQL_ReadResult(query, 0, szcontrasena, charsmax(szcontrasena));
if (equali(g_usuario_data[id][USUARIO_PW], szcontrasena)) cargar_datos(id, .omitir_autologueo = true); else client_print_color(id, 0, "%s La contraseña ingresada es incorrecta.", PREFIJO);
SQL_FreeHandle(query); } else { SQL_FreeHandle(query); client_print_color(id, 0, "%s Hubo un error en la base de datos, tu cuenta no se ha podido cargar...", PREFIJO); }
return PLUGIN_HANDLED; }
public client_putinserver(id) { if (!get_pcvar_num(cvar_on)) return;
g_logueado[id] = false;
for (new i = 0; i < _data_usuario; i++) { g_usuario_data[id][i] = EOS; }
public client_disconnected(id) { if (!get_pcvar_num(cvar_on)) return;
guardar_datos(id); }
public cargar_datos_pre(id) { if (!is_user_connected(id)) return; cargar_datos(id, .omitir_autologueo = false); }
cargar_datos(id, bool: omitir_autologueo = false) { new Handle: query; query = SQL_PrepareQuery(g_sqlconexion, "SELECT * FROM ^"%s^" WHERE Usuario = ^"%s^"", tabla_principal, g_usuario_data[id][USUARIO_NOMBRE]);
if (!SQL_Execute(query)) { SQL_ERROR(query, tabla_principal, "cargar_datos(id)", g_usuario_data[id][USUARIO_NOMBRE]); return; }
// Si encontramos resultados de la consulta le cargamos sus datos if (SQL_NumResults(query)) { g_usuario_data[id][USUARIO_AUTOLOGUEO] = SQL_ReadResult(query, 2); /* Columna de 'Autologeo' */
cargar_datos_post(id, Handle: query) { // 0 - Nombre de la Cuenta SQL_ReadResult(query, 0, g_usuario_data[id][USUARIO_NOMBRE], charsmax(g_usuario_data[][USUARIO_NOMBRE])); set_user_info(id, "name", g_usuario_data[id][USUARIO_NOMBRE]);
if (!is_user_connected(id) || g_logueado[id]) return PLUGIN_HANDLED;
if (!item) { if (check_registrado(id)) { menu_cuentas(id); client_print_color(id, 0, "%s Ya tienes una cuenta creada, elige la opción de^4 Loguearse^1.", PREFIJO); return PLUGIN_HANDLED; }
client_cmd(id, "messagemode ^"%s^"", szmsg_crear_cuenta); } else if (item == 1) { if (!check_registrado(id)) { menu_cuentas(id); client_print_color(id, 0, "%s No tienes una cuenta creada aún, elige la opción de^4 Registrarse^1.", PREFIJO); return PLUGIN_HANDLED; }
#if defined MYSQL g_sqltuple = SQL_MakeDbTuple(db_data[SQL_HOST], db_data[SQL_USUARIO], db_data[SQL_CONTRASENA], db_data[SQL_DATABASE], db_data[SQL_TIMEOUT]);
if (!g_sqltuple) { log_to_file("ERROR_SQL_CONEXION.txt", "No se pudo conectar a la base de datos..."); return; }
if (g_sqlconexion == Empty_Handle) log_to_file("ERROR_SQL_CREAR_CONEXION.txt", "No se pudo crear la conexión a la base de datos..."); else SQL_CREAR_TABLAS(); }
SQL_CREAR_TABLAS() { new sztablas[1000]; static len; len = 0;
len += formatex(sztablas[len], charsmax(sztablas) - len, "CREATE TABLE IF NOT EXISTS `%s` (", tabla_principal); len += formatex(sztablas[len], charsmax(sztablas) - len, "Usuario varchar NOT NULL UNIQUE, "); len += formatex(sztablas[len], charsmax(sztablas) - len, "Contrasena varchar NOT NULL, "); len += formatex(sztablas[len], charsmax(sztablas) - len, "Autologueo int NOT NULL DEFAULT '1', ");
#if defined SOPORTE_ZP43 len += formatex(sztablas[len], charsmax(sztablas) - len, "SteamIDIP varchar NOT NULL, "); len += formatex(sztablas[len], charsmax(sztablas) - len, "Ammopacks int NOT NULL DEFAULT '0', "); len += formatex(sztablas[len], charsmax(sztablas) - len, "ClaseZombie int NOT NULL DEFAULT '0')"); #else len += formatex(sztablas[len], charsmax(sztablas) - len, "SteamIDIP varchar NOT NULL, "); len += formatex(sztablas[len], charsmax(sztablas) - len, "Dinero int NOT NULL DEFAULT '0' )"); #endif
new Handle: query; query = SQL_PrepareQuery(g_sqlconexion, sztablas);
if (!SQL_Execute(query)) SQL_ERROR(query, tabla_principal, "SQL_CREAR_TABLAS()"); else SQL_FreeHandle(query); }