23/05/2020, 07:37 PM (Última modificación: 23/05/2020, 07:49 PM por Alejandro. Edited 2 times in total.)
(23/05/2020, 07:35 PM)+rdNN! escribió: Tal cual dice el titulo arme un top15 y no me abre el top15 tengo el modulo sqlite activo y asi no me abre en consola me tira esto
Código:
L 05/23/2020 - 19:24:01: [SQLITE] Invalid info tuple handle: 0
L 05/23/2020 - 19:24:01: [AMXX] Displaying debug trace (plugin "top.amxx", version "unknown")
L 05/23/2020 - 19:24:01: [AMXX] Run time error 10: native error (native "SQL_ThreadQuery")
L 05/23/2020 - 19:24:01: [AMXX] [0] top.sma::checkTop (line 17)
la base lo saque del codigo de Hypnotize en un Rango CSGO
Código PHP:
#include <amxmodx> #include <sqlx>
enum { SQL_TOP } new Handle:g_hTuple;
public plugin_init() { register_clcmd("say /menutop", "checkTop"); } public checkTop(id) { new szTabla[200], iData[2];
iData[0] = id; iData[1] = SQL_TOP;
formatex(szTabla, charsmax(szTabla), "SELECT Pj, Muertes, Kills FROM usuarios ORDER BY nivel DESC LIMIT 15") SQL_ThreadQuery(g_hTuple, "DataHandler", szTabla, iData, 2 ); } public DataHandler(failstate, Handle:Query, error[], error2, data[], size, Float:queuetime) { 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 SQL_TOP: { new len = 0, szBuffer[MAX_MOTD_LENGTH], iPosition, szName[MAX_NAME_LENGTH+1], Muertes, Kill; if(SQL_NumResults(Query)) { len = format(szBuffer[len], charsmax(szBuffer) - len, "<STYLE>body{background:#232323;color:#cfcbc2;font-family:sans-serif}table{width:100%%;line-height:160%%;font-size:12px}.q{border:1px solid #4a4945}.b{background:#2a2a2a}</STYLE><table cellpadding=2 cellspacing=0 border=0>"); len += format(szBuffer[len], charsmax(szBuffer) - len, "<tr align=center bgcolor=#52697B><th width=5%%> # <th width=22%%> Nombre <th width=10%%> Muertes <th width=13%%> Kills");
(23/05/2020, 07:37 PM)Alejandro escribió: La consulta va saliendo mal.
Una duda tu no cambiaste nada?
veo que el de hyp tiene la columna con este nombre Personaje y tu la tienes con pj
Ni idea solo trate de sacar las cosas del top capas me falto algo la verdad nunca había tratado de editar un top y menos en sqlite
(23/05/2020, 08:12 PM)Hypnotize escribió: lo adaptaste a algún código tuyo o directamente así tratas de hacerlo?
también tienes que mostrar tu tabla para ver kpx
Mi idea es hacer uno de base para guardarlo y lo otro que quiero es adaptar un top15 a un kz pero para eso necesitaría uno base.
(23/05/2020, 10:12 PM)+rdNN! escribió: Ni idea solo trate de sacar las cosas del top capas me falto algo la verdad nunca había tratado de editar un top y menos en sqlite
Mi idea es hacer uno de base para guardarlo y lo otro que quiero es adaptar un top15 a un kz pero para eso necesitaría uno base.
En el codigo que pusiste no estas conectando con la db, igual puedes ver sistemas de cuentas para que veas como se hace todo el proceso, es realmente simple
Mira si tu estás tratando de usar ese plugin de arriba solo así falla porque no se conecta a tu base de datos a la cual conectarse y consultar, no tiene una tabla, & quizá te falte una que otra cosita.
La cuestión sería primero si tienes algún plugin que use SQL?
si es así primero deja la tabla y los datos que quieres cargar al top.
23/05/2020, 11:03 PM (Última modificación: 23/05/2020, 11:04 PM por +rdNN!. Edited 1 time in total.)
(23/05/2020, 10:17 PM)Hypnotize escribió: Mira si tu estás tratando de usar ese plugin de arriba solo así falla porque no se conecta a tu base de datos a la cual conectarse y consultar, no tiene una tabla, & quizá te falte una que otra cosita.
La cuestión sería primero si tienes algún plugin que use SQL?
si es así primero deja la tabla y los datos que quieres cargar al top.
a si ocupo un sistema de cuenta, es este:
perdon por responder tarde pero estaba trantando de hacerlo yo mismo pero le erre mas jaja
return FMRES_IGNORED; } public hamKilled(victim, attacker) { if(victim != attacker) { gMatados[attacker]++ gMuertes[victim]++ } return HAM_IGNORED } public cambiarpw(id) { if(gEstado[id] != LOGUEADO) { client_print_color(id, print_team_default, "^4[ASD]^1 Tienes que estar logeado para cambiar tu clave.") return; } client_cmd(id, "messagemode CAMBIAR_CLAVE"); } public checkTop(id) { new szTabla[200], iData[2];
iData[0] = id; iData[1] = SQL_TOP;
formatex(szTabla, charsmax(szTabla), "SELECT Pj, Muertes, Kills FROM usuarios ORDER BY nivel DESC LIMIT 15") SQL_ThreadQuery(g_hTuple, "DataHandler", szTabla, iData, 2 ); } public show_menu_registrar(id) { new text[MAX_MOTD_LENGTH], menu; formatex(text, charsmax(text), "\r(ZP) \w Menu de registro^n\w- Estado : \r%s", (gEstado[id] == SINREGISTRAR) ? "No registrado" : "\dRegistrado") menu = menu_create(text, "h_registro");
return PLUGIN_HANDLED; } public log_password(id) { read_args(g_password[id], charsmax(g_password[])); remove_quotes(g_password[id]); trim(g_password[id]);
if(equal(g_password[id], "")) { client_cmd(id, "messagemode LOGUEAR_PASSWORD"); client_cmd(id, "spk ^"buttons/button11.wav^""); client_print(id, print_center, "No has introducido tu password."); return PLUGIN_HANDLED; } if(contain(g_password[id], " ") != -1) { client_cmd(id, "messagemode LOGUEAR_PASSWORD"); client_cmd(id, "spk ^"buttons/button11.wav^""); client_print(id, print_center, "Tu password no tiene espacios."); return PLUGIN_HANDLED; } if (containi(g_password[id], "^"") != -1) { client_cmd(id, "messagemode LOGUEAR_PASSWORD"); client_cmd(id, "spk ^"buttons/button11.wav^""); client_print(id, print_center, "Tu password no tiene comillas.") return PLUGIN_HANDLED; } new szQuery[128], iData[2];
iData[0] = id; iData[1] = LOGUEAR_CUENTA;
formatex(szQuery, charsmax(szQuery), "SELECT * FROM %s WHERE Pj=^"%s^" AND Password=^"%s^"", szTable, g_playername[id], g_password[id]); SQL_ThreadQuery(g_hTuple, "DataHandler", szQuery, iData, 2 );
return PLUGIN_HANDLED; } public camb_password(id) { new szPass[34] read_args(szPass, charsmax(szPass)) remove_quotes(szPass) trim(szPass)
if (equal(g_password[id], szPass)) { client_cmd(id, "messagemode CAMBIAR_CLAVE") client_cmd(id, "spk ^"buttons/button11.wav^""); client_print(id, print_center, "Tu clave nueva es igual a la actual.") return PLUGIN_HANDLED; } if(equal(szPass, "")) { client_cmd(id, "messagemode CAMBIAR_CLAVE"); client_cmd(id, "spk ^"buttons/button11.wav^""); client_print(id, print_center, "No has introducido tu password."); return PLUGIN_HANDLED; } if(contain(szPass, " ") != -1) { client_cmd(id, "messagemode CAMBIAR_CLAVE"); client_cmd(id, "spk ^"buttons/button11.wav^""); client_print(id, print_center, "Tu clave nueva no puede tener espacios."); return PLUGIN_HANDLED; } if (containi(szPass, "^"") != -1) { client_cmd(id, "messagemode CAMBIAR_CLAVE"); client_cmd(id, "spk ^"buttons/button11.wav^""); client_print(id, print_center, "Tu clave nueva no puede tener comillas.") return PLUGIN_HANDLED; } g_password[id] = szPass
new szQuery[250], szData[2] szData[0] = id szData[1] = CAMBIAR_PASSWORD
formatex(szQuery, charsmax(szQuery), "UPDATE %s SET Password=^"%s^" WHERE Pj=^"%s^"", szTable, szPass, g_playername[id]) SQL_ThreadQuery(g_hTuple, "DataHandler", szQuery, szData, 2);
return PLUGIN_HANDLED; } public Cargar(id) { static text[128], DataX[2] DataX[0] = id DataX[1] = CHEQUEAR_CUENTA formatex(text, charsmax(text), "SELECT id FROM %s WHERE Pj=^"%s^"", szTable, g_playername[id]) SQL_ThreadQuery(g_hTuple, "DataHandler", text, DataX, 2) } public Guardar(id) { new szTabla[MAX_MOTD_LENGTH], len = 0, iData[2];
iData[0] = id; iData[1] = GUARDAR_DATOS;
len += format(szTabla[len], charsmax(szTabla) - len, "UPDATE %s SET Muertes='%d', Kills='%d' ", szTable, gMuertes[id], gMatados[id]); len += format(szTabla[len], charsmax(szTabla) - len, "WHERE id='%d'", g_id[id]); SQL_ThreadQuery(g_hTuple, "DataHandler", szTabla, 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 SQL [%i]: %s", error2, error ); return; } case TQUERY_QUERY_FAILED: log_to_file( "SQL_LOG_TQ.txt", "Error en la consulta al SQL [%i]: %s", error2, error ); } switch(data[1]) { case REGISTRAR_CUENTA: { if( failstate < TQUERY_SUCCESS ) { if(containi(error, "Pj") != -1) client_print_color(id, print_team_default, "^4[ASD]^1 El nombre esta en uso.") else client_print_color(id, print_team_default, "^4[ASD]^1 Error al crear la cuenta, intenta nuevamente.")
client_cmd(id, "spk buttons/button10.wav" ); } else { client_print_color(id, print_team_default, "^4[ASD]^1 Tu cuenta ha sido creada correctamente.")
new szQuery[128], iData[2];
iData[0] = id; iData[1] = CARGAR_DATOS;
formatex(szQuery, charsmax(szQuery), "SELECT id FROM %s WHERE Pj=^"%s^"", szTable, g_playername[id]); SQL_ThreadQuery(g_hTuple, "DataHandler", szQuery, iData, 2); gEstado[id] = REGISTRADO } } case LOGUEAR_CUENTA: { if(SQL_NumResults(Query)) { g_id[id] = SQL_ReadResult(Query, 0); SQL_ReadResult(Query, 1, g_playername[id], charsmax(g_playername[]));
len = 0; len += formatex(g_tabla[len], charsmax(g_tabla), "CREATE TABLE IF NOT EXISTS '%s' (", szTable); len += formatex(g_tabla[len], charsmax(g_tabla), "id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,"); len += formatex(g_tabla[len], charsmax(g_tabla), "Pj VARCHAR NOT NULL UNIQUE,"); len += formatex(g_tabla[len], charsmax(g_tabla), "Password VARCHAR NOT NULL,"); len += formatex(g_tabla[len], charsmax(g_tabla), "Muertes INTERGER DEFAULT '0',") len += formatex(g_tabla[len], charsmax(g_tabla), "Kills INTERGER DEFAULT '0'")
SQL_ThreadQuery(g_hTuple, "SQL_TABLA", g_tabla); return PLUGIN_HANDLED; } public SQL_TABLA(failstate, Handle:Query, error[ ], error2, data[ ], datasize, Float:time) { switch(failstate) { case TQUERY_CONNECT_FAILED: { log_to_file("SQL_LOG_TQ.txt", "Error en la conexion al SQL [%i]: %s", error2, error); return; } case TQUERY_QUERY_FAILED: { log_to_file("SQL_LOG_TQ.txt", "Error en la consulta al SQL [%i]: %s", error2, error); } } } ForceJoinTeam(index) { static teammsg_block, teammsg_block_vgui, restore, vgui;
23/05/2020, 11:15 PM (Última modificación: 23/05/2020, 11:16 PM por Hinami.)
formatex(szTabla, charsmax(szTabla), "SELECT Pj, Muertes, Kills FROM usuarios ORDER BY nivel DESC LIMIT 15")
->
formatex(szTabla, charsmax(szTabla), "SELECT Pj, Muertes, Kills FROM %s ORDER BY Kills DESC LIMIT 15", szTable)
Muestra los logs que te deje ese código porque noto que es diferente al primero
23/05/2020, 11:21 PM (Última modificación: 24/05/2020, 12:01 AM por +rdNN!. Edited 3 times in total.)
(23/05/2020, 11:15 PM)Hypnotize escribió: formatex(szTabla, charsmax(szTabla), "SELECT Pj, Muertes, Kills FROM usuarios ORDER BY nivel DESC LIMIT 15")
->
formatex(szTabla, charsmax(szTabla), "SELECT Pj, Muertes, Kills FROM %s ORDER BY Kills DESC LIMIT 15", szTable)
Muestra los logs que te deje ese código porque noto que es diferente al primero
Se me cierra el servidor dedicado y no me arroja nada en la carpeta logs.
edit : perdon me explique mal cuando creo la cuenta se me cierra el servidor dedicado.
return PLUGIN_HANDLED; } public log_password(id) { read_args(g_password[id], charsmax(g_password[])); remove_quotes(g_password[id]); trim(g_password[id]);
if(equal(g_password[id], "")) { client_cmd(id, "messagemode LOGUEAR_PASSWORD"); client_cmd(id, "spk ^"buttons/button11.wav^""); client_print(id, print_center, "No has introducido tu password."); return PLUGIN_HANDLED; } if(contain(g_password[id], " ") != -1) { client_cmd(id, "messagemode LOGUEAR_PASSWORD"); client_cmd(id, "spk ^"buttons/button11.wav^""); client_print(id, print_center, "Tu password no tiene espacios."); return PLUGIN_HANDLED; } if (containi(g_password[id], "^"") != -1) { client_cmd(id, "messagemode LOGUEAR_PASSWORD"); client_cmd(id, "spk ^"buttons/button11.wav^""); client_print(id, print_center, "Tu password no tiene comillas.") return PLUGIN_HANDLED; } new szQuery[128], iData[2];
iData[0] = id; iData[1] = LOGUEAR_CUENTA;
formatex(szQuery, charsmax(szQuery), "SELECT * FROM %s WHERE Pj=^"%s^" AND Password=^"%s^"", szTable, g_playername[id], g_password[id]); SQL_ThreadQuery(g_hTuple, "DataHandler", szQuery, iData, 2 );
return PLUGIN_HANDLED; } public camb_password(id) { new szPass[34] read_args(szPass, charsmax(szPass)) remove_quotes(szPass) trim(szPass)
if (equal(g_password[id], szPass)) { client_cmd(id, "messagemode CAMBIAR_CLAVE") client_cmd(id, "spk ^"buttons/button11.wav^""); client_print(id, print_center, "Tu clave nueva es igual a la actual.") return PLUGIN_HANDLED; } if(equal(szPass, "")) { client_cmd(id, "messagemode CAMBIAR_CLAVE"); client_cmd(id, "spk ^"buttons/button11.wav^""); client_print(id, print_center, "No has introducido tu password."); return PLUGIN_HANDLED; } if(contain(szPass, " ") != -1) { client_cmd(id, "messagemode CAMBIAR_CLAVE"); client_cmd(id, "spk ^"buttons/button11.wav^""); client_print(id, print_center, "Tu clave nueva no puede tener espacios."); return PLUGIN_HANDLED; } if (containi(szPass, "^"") != -1) { client_cmd(id, "messagemode CAMBIAR_CLAVE"); client_cmd(id, "spk ^"buttons/button11.wav^""); client_print(id, print_center, "Tu clave nueva no puede tener comillas.") return PLUGIN_HANDLED; } g_password[id] = szPass
new szQuery[250], szData[2] szData[0] = id szData[1] = CAMBIAR_PASSWORD
formatex(szQuery, charsmax(szQuery), "UPDATE %s SET Password=^"%s^" WHERE Pj=^"%s^"", szTable, szPass, g_playername[id]) SQL_ThreadQuery(g_hTuple, "DataHandler", szQuery, szData, 2);
return PLUGIN_HANDLED; } public Guardar(id) { new szTabla[MAX_MOTD_LENGTH], len = 0, iData[2];
iData[0] = id; iData[1] = GUARDAR_DATOS;
len += format(szTabla[len], charsmax(szTabla) - len, "UPDATE %s SET Muertes='%d', Matados='%d' ", szTable, gMuertes[id], gMatados[id]); len += format(szTabla[len], charsmax(szTabla) - len, "WHERE id='%d'", g_id[id]); SQL_ThreadQuery(g_hTuple, "DataHandler", szTabla, iData, 2); } public Cargar(id) { static text[128], DataX[2] DataX[0] = id DataX[1] = CHEQUEAR_CUENTA formatex(text, charsmax(text), "SELECT id FROM %s WHERE Pj=^"%s^"", szTable, g_playername[id]) SQL_ThreadQuery(g_hTuple, "DataHandler", text, DataX, 2) } public checkTop(id) { new szTabla[200], iData[2];
iData[0] = id; iData[1] = SQL_TOP;
formatex(szTabla, charsmax(szTabla), "SELECT Pj, Muertes, Matados FROM %s ORDER BY Matados DESC LIMIT 15", szTable) SQL_ThreadQuery(g_hTuple, "DataHandler", szTabla, 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 SQL [%i]: %s", error2, error ); return; } case TQUERY_QUERY_FAILED: log_to_file( "SQL_LOG_TQ.txt", "Error en la consulta al SQL [%i]: %s", error2, error ); } switch(data[1]) { case REGISTRAR_CUENTA: { if( failstate < TQUERY_SUCCESS ) { if(containi(error, "Pj") != -1) client_print_color(id, print_team_default, "^4[ASD]^1 El nombre esta en uso.") else client_print_color(id, print_team_default, "^4[ASD]^1 Error al crear la cuenta, intenta nuevamente.")
client_cmd(id, "spk buttons/button10.wav" ); } else { client_print_color(id, print_team_default, "^4[ASD]^1 Tu cuenta ha sido creada correctamente.")
new szQuery[128], iData[2];
iData[0] = id; iData[1] = CARGAR_DATOS;
formatex(szQuery, charsmax(szQuery), "SELECT id FROM %s WHERE Pj=^"%s^"", szTable, g_playername[id]); SQL_ThreadQuery(g_hTuple, "DataHandler", szQuery, iData, 2); gEstado[id] = REGISTRADO } } case LOGUEAR_CUENTA: { if(SQL_NumResults(Query)) { g_id[id] = SQL_ReadResult(Query, 0); SQL_ReadResult(Query, 1, g_playername[id], charsmax(g_playername[]));
len = 0; len += formatex(g_tabla[len], charsmax(g_tabla), "CREATE TABLE IF NOT EXISTS '%s' (", szTable); len += formatex(g_tabla[len], charsmax(g_tabla), "id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,"); len += formatex(g_tabla[len], charsmax(g_tabla), "Pj VARCHAR NOT NULL UNIQUE,"); len += formatex(g_tabla[len], charsmax(g_tabla), "Password VARCHAR NOT NULL,"); len += formatex(g_tabla[len], charsmax(g_tabla), "Muertes INTERGER DEFAULT '0',") len += formatex(g_tabla[len], charsmax(g_tabla), "Matados INTERGER DEFAULT '0')")
SQL_ThreadQuery(g_hTuple, "SQL_TABLA", g_tabla); return PLUGIN_HANDLED; } public SQL_TABLA(failstate, Handle:Query, error[ ], error2, data[ ], datasize, Float:time) { switch(failstate) { case TQUERY_CONNECT_FAILED: { log_to_file("SQL_LOG_TQ.txt", "Error en la conexion al SQL [%i]: %s", error2, error); return; } case TQUERY_QUERY_FAILED: { log_to_file("SQL_LOG_TQ.txt", "Error en la consulta al SQL [%i]: %s", error2, error); } } } ForceJoinTeam(index) { static teammsg_block, teammsg_block_vgui, restore, vgui;
return PLUGIN_HANDLED; } public log_password(id) { read_args(g_password[id], charsmax(g_password[])); remove_quotes(g_password[id]); trim(g_password[id]);
if(equal(g_password[id], "")) { client_cmd(id, "messagemode LOGUEAR_PASSWORD"); client_cmd(id, "spk ^"buttons/button11.wav^""); client_print(id, print_center, "No has introducido tu password."); return PLUGIN_HANDLED; } if(contain(g_password[id], " ") != -1) { client_cmd(id, "messagemode LOGUEAR_PASSWORD"); client_cmd(id, "spk ^"buttons/button11.wav^""); client_print(id, print_center, "Tu password no tiene espacios."); return PLUGIN_HANDLED; } if (containi(g_password[id], "^"") != -1) { client_cmd(id, "messagemode LOGUEAR_PASSWORD"); client_cmd(id, "spk ^"buttons/button11.wav^""); client_print(id, print_center, "Tu password no tiene comillas.") return PLUGIN_HANDLED; } new szQuery[128], iData[2];
iData[0] = id; iData[1] = LOGUEAR_CUENTA;
formatex(szQuery, charsmax(szQuery), "SELECT * FROM %s WHERE Pj=^"%s^" AND Password=^"%s^"", szTable, g_playername[id], g_password[id]); SQL_ThreadQuery(g_hTuple, "DataHandler", szQuery, iData, 2 );
return PLUGIN_HANDLED; } public camb_password(id) { new szPass[34] read_args(szPass, charsmax(szPass)) remove_quotes(szPass) trim(szPass)
if (equal(g_password[id], szPass)) { client_cmd(id, "messagemode CAMBIAR_CLAVE") client_cmd(id, "spk ^"buttons/button11.wav^""); client_print(id, print_center, "Tu clave nueva es igual a la actual.") return PLUGIN_HANDLED; } if(equal(szPass, "")) { client_cmd(id, "messagemode CAMBIAR_CLAVE"); client_cmd(id, "spk ^"buttons/button11.wav^""); client_print(id, print_center, "No has introducido tu password."); return PLUGIN_HANDLED; } if(contain(szPass, " ") != -1) { client_cmd(id, "messagemode CAMBIAR_CLAVE"); client_cmd(id, "spk ^"buttons/button11.wav^""); client_print(id, print_center, "Tu clave nueva no puede tener espacios."); return PLUGIN_HANDLED; } if (containi(szPass, "^"") != -1) { client_cmd(id, "messagemode CAMBIAR_CLAVE"); client_cmd(id, "spk ^"buttons/button11.wav^""); client_print(id, print_center, "Tu clave nueva no puede tener comillas.") return PLUGIN_HANDLED; } g_password[id] = szPass
new szQuery[250], szData[2] szData[0] = id szData[1] = CAMBIAR_PASSWORD
formatex(szQuery, charsmax(szQuery), "UPDATE %s SET Password=^"%s^" WHERE Pj=^"%s^"", szTable, szPass, g_playername[id]) SQL_ThreadQuery(g_hTuple, "DataHandler", szQuery, szData, 2);
return PLUGIN_HANDLED; } public Guardar(id) { new szTabla[MAX_MOTD_LENGTH], len = 0, iData[2];
iData[0] = id; iData[1] = GUARDAR_DATOS;
len += format(szTabla[len], charsmax(szTabla) - len, "UPDATE %s SET Muertes='%d', Matados='%d' ", szTable, gMuertes[id], gMatados[id]); len += format(szTabla[len], charsmax(szTabla) - len, "WHERE id='%d'", g_id[id]); SQL_ThreadQuery(g_hTuple, "DataHandler", szTabla, iData, 2); } public Cargar(id) { static text[128], DataX[2] DataX[0] = id DataX[1] = CHEQUEAR_CUENTA formatex(text, charsmax(text), "SELECT id FROM %s WHERE Pj=^"%s^"", szTable, g_playername[id]) SQL_ThreadQuery(g_hTuple, "DataHandler", text, DataX, 2) } public checkTop(id) { new szTabla[200], iData[2];
iData[0] = id; iData[1] = SQL_TOP;
formatex(szTabla, charsmax(szTabla), "SELECT Pj, Muertes, Matados FROM %s ORDER BY Matados DESC LIMIT 15", szTable) SQL_ThreadQuery(g_hTuple, "DataHandler", szTabla, 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 SQL [%i]: %s", error2, error ); return; } case TQUERY_QUERY_FAILED: log_to_file( "SQL_LOG_TQ.txt", "Error en la consulta al SQL [%i]: %s", error2, error ); } switch(data[1]) { case REGISTRAR_CUENTA: { if( failstate < TQUERY_SUCCESS ) { if(containi(error, "Pj") != -1) client_print_color(id, print_team_default, "^4[ASD]^1 El nombre esta en uso.") else client_print_color(id, print_team_default, "^4[ASD]^1 Error al crear la cuenta, intenta nuevamente.")
client_cmd(id, "spk buttons/button10.wav" ); } else { client_print_color(id, print_team_default, "^4[ASD]^1 Tu cuenta ha sido creada correctamente.")
new szQuery[128], iData[2];
iData[0] = id; iData[1] = CARGAR_DATOS;
formatex(szQuery, charsmax(szQuery), "SELECT id FROM %s WHERE Pj=^"%s^"", szTable, g_playername[id]); SQL_ThreadQuery(g_hTuple, "DataHandler", szQuery, iData, 2); gEstado[id] = REGISTRADO } } case LOGUEAR_CUENTA: { if(SQL_NumResults(Query)) { g_id[id] = SQL_ReadResult(Query, 0); SQL_ReadResult(Query, 1, g_playername[id], charsmax(g_playername[]));
len = 0; len += formatex(g_tabla[len], charsmax(g_tabla), "CREATE TABLE IF NOT EXISTS '%s' (", szTable); len += formatex(g_tabla[len], charsmax(g_tabla), "id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,"); len += formatex(g_tabla[len], charsmax(g_tabla), "Pj VARCHAR NOT NULL UNIQUE,"); len += formatex(g_tabla[len], charsmax(g_tabla), "Password VARCHAR NOT NULL,"); len += formatex(g_tabla[len], charsmax(g_tabla), "Muertes INTERGER DEFAULT '0',") len += formatex(g_tabla[len], charsmax(g_tabla), "Matados INTERGER DEFAULT '0')")
SQL_ThreadQuery(g_hTuple, "SQL_TABLA", g_tabla); return PLUGIN_HANDLED; } public SQL_TABLA(failstate, Handle:Query, error[ ], error2, data[ ], datasize, Float:time) { switch(failstate) { case TQUERY_CONNECT_FAILED: { log_to_file("SQL_LOG_TQ.txt", "Error en la conexion al SQL [%i]: %s", error2, error); return; } case TQUERY_QUERY_FAILED: { log_to_file("SQL_LOG_TQ.txt", "Error en la consulta al SQL [%i]: %s", error2, error); } } } ForceJoinTeam(index) { static teammsg_block, teammsg_block_vgui, restore, vgui;
return PLUGIN_HANDLED; } public log_password(id) { read_args(g_password[id], charsmax(g_password[])); remove_quotes(g_password[id]); trim(g_password[id]);
if(equal(g_password[id], "")) { client_cmd(id, "messagemode LOGUEAR_PASSWORD"); client_cmd(id, "spk ^"buttons/button11.wav^""); client_print(id, print_center, "No has introducido tu password."); return PLUGIN_HANDLED; } if(contain(g_password[id], " ") != -1) { client_cmd(id, "messagemode LOGUEAR_PASSWORD"); client_cmd(id, "spk ^"buttons/button11.wav^""); client_print(id, print_center, "Tu password no tiene espacios."); return PLUGIN_HANDLED; } if (containi(g_password[id], "^"") != -1) { client_cmd(id, "messagemode LOGUEAR_PASSWORD"); client_cmd(id, "spk ^"buttons/button11.wav^""); client_print(id, print_center, "Tu password no tiene comillas.") return PLUGIN_HANDLED; } new szQuery[128], iData[2];
iData[0] = id; iData[1] = LOGUEAR_CUENTA;
formatex(szQuery, charsmax(szQuery), "SELECT * FROM %s WHERE Pj=^"%s^" AND Password=^"%s^"", szTable, g_playername[id], g_password[id]); SQL_ThreadQuery(g_hTuple, "DataHandler", szQuery, iData, 2 );
return PLUGIN_HANDLED; } public camb_password(id) { new szPass[34] read_args(szPass, charsmax(szPass)) remove_quotes(szPass) trim(szPass)
if (equal(g_password[id], szPass)) { client_cmd(id, "messagemode CAMBIAR_CLAVE") client_cmd(id, "spk ^"buttons/button11.wav^""); client_print(id, print_center, "Tu clave nueva es igual a la actual.") return PLUGIN_HANDLED; } if(equal(szPass, "")) { client_cmd(id, "messagemode CAMBIAR_CLAVE"); client_cmd(id, "spk ^"buttons/button11.wav^""); client_print(id, print_center, "No has introducido tu password."); return PLUGIN_HANDLED; } if(contain(szPass, " ") != -1) { client_cmd(id, "messagemode CAMBIAR_CLAVE"); client_cmd(id, "spk ^"buttons/button11.wav^""); client_print(id, print_center, "Tu clave nueva no puede tener espacios."); return PLUGIN_HANDLED; } if (containi(szPass, "^"") != -1) { client_cmd(id, "messagemode CAMBIAR_CLAVE"); client_cmd(id, "spk ^"buttons/button11.wav^""); client_print(id, print_center, "Tu clave nueva no puede tener comillas.") return PLUGIN_HANDLED; } g_password[id] = szPass
new szQuery[250], szData[2] szData[0] = id szData[1] = CAMBIAR_PASSWORD
formatex(szQuery, charsmax(szQuery), "UPDATE %s SET Password=^"%s^" WHERE Pj=^"%s^"", szTable, szPass, g_playername[id]) SQL_ThreadQuery(g_hTuple, "DataHandler", szQuery, szData, 2);
return PLUGIN_HANDLED; } public Guardar(id) { new szTabla[MAX_MOTD_LENGTH], len = 0, iData[2];
iData[0] = id; iData[1] = GUARDAR_DATOS;
len += format(szTabla[len], charsmax(szTabla) - len, "UPDATE %s SET Muertes='%d', Matados='%d' ", szTable, gMuertes[id], gMatados[id]); len += format(szTabla[len], charsmax(szTabla) - len, "WHERE id='%d'", g_id[id]); SQL_ThreadQuery(g_hTuple, "DataHandler", szTabla, iData, 2); } public Cargar(id) { static text[128], DataX[2] DataX[0] = id DataX[1] = CHEQUEAR_CUENTA formatex(text, charsmax(text), "SELECT id FROM %s WHERE Pj=^"%s^"", szTable, g_playername[id]) SQL_ThreadQuery(g_hTuple, "DataHandler", text, DataX, 2) } public checkTop(id) { new szTabla[200], iData[2];
iData[0] = id; iData[1] = SQL_TOP;
formatex(szTabla, charsmax(szTabla), "SELECT Pj, Muertes, Matados FROM %s ORDER BY Matados DESC LIMIT 15", szTable) SQL_ThreadQuery(g_hTuple, "DataHandler", szTabla, 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 SQL [%i]: %s", error2, error ); return; } case TQUERY_QUERY_FAILED: log_to_file( "SQL_LOG_TQ.txt", "Error en la consulta al SQL [%i]: %s", error2, error ); } switch(data[1]) { case REGISTRAR_CUENTA: { if( failstate < TQUERY_SUCCESS ) { if(containi(error, "Pj") != -1) client_print_color(id, print_team_default, "^4[ASD]^1 El nombre esta en uso.") else client_print_color(id, print_team_default, "^4[ASD]^1 Error al crear la cuenta, intenta nuevamente.")
client_cmd(id, "spk buttons/button10.wav" ); } else { client_print_color(id, print_team_default, "^4[ASD]^1 Tu cuenta ha sido creada correctamente.")
new szQuery[128], iData[2];
iData[0] = id; iData[1] = CARGAR_DATOS;
formatex(szQuery, charsmax(szQuery), "SELECT id FROM %s WHERE Pj=^"%s^"", szTable, g_playername[id]); SQL_ThreadQuery(g_hTuple, "DataHandler", szQuery, iData, 2); gEstado[id] = REGISTRADO } } case LOGUEAR_CUENTA: { if(SQL_NumResults(Query)) { g_id[id] = SQL_ReadResult(Query, 0); SQL_ReadResult(Query, 1, g_playername[id], charsmax(g_playername[]));
len = 0; len += formatex(g_tabla[len], charsmax(g_tabla), "CREATE TABLE IF NOT EXISTS '%s' (", szTable); len += formatex(g_tabla[len], charsmax(g_tabla), "id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,"); len += formatex(g_tabla[len], charsmax(g_tabla), "Pj VARCHAR NOT NULL UNIQUE,"); len += formatex(g_tabla[len], charsmax(g_tabla), "Password VARCHAR NOT NULL,"); len += formatex(g_tabla[len], charsmax(g_tabla), "Muertes INTERGER DEFAULT '0',") len += formatex(g_tabla[len], charsmax(g_tabla), "Matados INTERGER DEFAULT '0')")
SQL_ThreadQuery(g_hTuple, "SQL_TABLA", g_tabla); return PLUGIN_HANDLED; } public SQL_TABLA(failstate, Handle:Query, error[ ], error2, data[ ], datasize, Float:time) { switch(failstate) { case TQUERY_CONNECT_FAILED: { log_to_file("SQL_LOG_TQ.txt", "Error en la conexion al SQL [%i]: %s", error2, error); return; } case TQUERY_QUERY_FAILED: { log_to_file("SQL_LOG_TQ.txt", "Error en la consulta al SQL [%i]: %s", error2, error); } } } ForceJoinTeam(index) { static teammsg_block, teammsg_block_vgui, restore, vgui;