[Solucionado] No me abre el top15
#1
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(szTablacharsmax(szTabla), "SELECT Pj, Muertes, Kills FROM usuarios ORDER BY nivel DESC LIMIT 15")
    
SQL_ThreadQuery(g_hTuple"DataHandler"szTablaiData);
}
public 
DataHandler(failstateHandle:Queryerror[], error2data[], sizeFloat:queuetime) {
    static 
idid 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"error2error)
            return;
        }
        case 
TQUERY_QUERY_FAILED: {
            
log_to_file("SQL_LOG_TQ.txt""Error en la consulta al MySQL [%i]: %s"error2error)
        }
    }
    switch(
data[1]) {
        case 
SQL_TOP: {
            new 
len 0szBuffer[MAX_MOTD_LENGTH], iPositionszName[MAX_NAME_LENGTH+1], MuertesKill;
            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");

                while(
SQL_MoreResults(Query)) {
                    ++
iPosition;

                    
SQL_ReadResult(Query0szNamecharsmax(szName));
                    
Muertes SQL_ReadResult(Query1);
                    
Kill SQL_ReadResult(Query2);

                    
len += format(szBuffer[len], charsmax(szBuffer) - len"<tr align=center bgcolor=#2f3030><td> %d <td> %s <td> %s <td> %s"iPositionszNameMuertesKill);

                    
SQL_NextRow(Query);
                }
                
show_motd(idszBuffer"Top 15");
            }
        }
    }

Responder
#2
(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(szTablacharsmax(szTabla), "SELECT Pj, Muertes, Kills FROM usuarios ORDER BY nivel DESC LIMIT 15")
    SQL_ThreadQuery(g_hTuple"DataHandler"szTablaiData);
}
public 
DataHandler(failstateHandle:Queryerror[], error2data[], sizeFloat:queuetime) {
    static idid 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"error2error)
            return;
        }
        case TQUERY_QUERY_FAILED: {
            log_to_file("SQL_LOG_TQ.txt""Error en la consulta al MySQL [%i]: %s"error2error)
        }
    }
    switch(data[1]) {
        case SQL_TOP: {
            new len 0szBuffer[MAX_MOTD_LENGTH], iPositionszName[MAX_NAME_LENGTH+1], MuertesKill;
            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");

                while(SQL_MoreResults(Query)) {
                    ++iPosition;

                    SQL_ReadResult(Query0szNamecharsmax(szName));
                    Muertes SQL_ReadResult(Query1);
                    Kill SQL_ReadResult(Query2);

                    len += format(szBuffer[len], charsmax(szBuffer) - len"<tr align=center bgcolor=#2f3030><td> %d <td> %s <td> %s <td> %s"iPositionszNameMuertesKill);

                    SQL_NextRow(Query);
                }
                show_motd(idszBuffer"Top 15");
            }
        }
    }


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
Responder
#3
Me parece que te hace falta realizar la conexión a la base de datos  Insecure


https://amxmodx-es.com/Thread-Gu%C3%ADa-...tas-SQLite
https://amxmodx-es.com/Thread-Tutorial-sobre-sqlite
[Imagen: b_350_20_323957_202743_f19a15_111111.png]

Estudia siempre; el tiempo es oro, lo material se puede recuperar pero el tiempo no se puede recuperar.
(02/10/2016, 05:05 PM)meTaLiCroSS escribió: Siempre me gusta ayudar cuando alguien esta interesado realmente en ver que esta programando.
(08/08/2019, 05:32 PM)meTaLiCroSS escribió: grax x el dato cr4ck


Mis aportes

PLUGINS
MAPAS
Menú LANG [SF] Sistema de Frags
Say System (Admin Prefix)
Responder
#4
lo adaptaste a algún código tuyo o directamente así tratas de hacerlo?

también tienes que mostrar tu tabla para ver kpx
Responder
#5
(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.
Responder
#6
(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

NO DOY AYUDA VIA MENSAJE PRIVADO

* Si requieres algún servicio de pago puedes contactarme vía MP o en mi facebook

[Imagen: w8565u-4.png]
Responder
#7
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.
Responder
#8
(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

Código PHP:
#include <amxmodx>
#include <sqlx>
#include <fakemeta>
#include <hamsandwich>

#define SQLITE_DATEBASE "db_publico"
new const szTable[] = "cuentas"
enum REGISTRAR_CUENTALOGUEAR_CUENTACARGAR_DATOSGUARDAR_DATOSCAMBIAR_PASSWORDCHEQUEAR_CUENTASQL_TOP };
enum _:DataID SINREGISTRAR 0REGISTRADOLOGUEADO }

new 
g_password[33][34], g_playername[33][33];
new 
gMuertes[33], gMatados[33];

new 
gEstado[33], g_id[33];
new 
g_iMsgVguiMenug_iMsgShowMenuHandle:g_hTuple;
public 
plugin_init() {
    
register_plugin("Sistema de cuentas MySQL/SQLite""1.1.2""r0ma");
    
register_forward(FM_ClientUserInfoChanged"fwClientInfoChanged");
    
RegisterHam(Ham_Killed"player""hamKilled")
    
register_clcmd("say /menutop""checkTop");
    
register_clcmd("say /cambiarpw""cambiarpw");
    
    
register_clcmd("CREAR_PASSWORD""reg_password");
    
register_clcmd("LOGUEAR_PASSWORD""log_password");
    
register_clcmd("CAMBIAR_CLAVE""camb_password"
    
    
g_iMsgVguiMenu get_user_msgid("VGUIMenu");
    
g_iMsgShowMenu get_user_msgid("ShowMenu");
    
register_message(g_iMsgVguiMenu"message_VGUImenu");
    
register_message(g_iMsgShowMenu"message_VGUImenu");

    
SQLx_Init();
}
public 
client_putinserver(id) {
    
get_user_name(idg_playername[id], charsmax(g_playername[]))
    
Cargar(id)
    
gEstado[id] = SINREGISTRAR
}
public 
client_disconnected(id) {
    if(
gEstado[id] == LOGUEADO) {
        
Guardar(id);
    }
    
gEstado[id] = SINREGISTRAR
    g_playername
[id][0] = '^0';
    
g_password[id][0] = '^0';
}
public 
message_VGUImenu(msgiddestid) {
    if(
gEstado[id] != LOGUEADO) {
        
show_menu_registrar(id);
        return 
PLUGIN_HANDLED;
    }
    return 
PLUGIN_CONTINUE;
}
public 
fwClientInfoChanged(idbuffer) {
    if(!
is_user_connected(id)) return FMRES_IGNORED;

    static 
OldName[33];
    
engfunc(EngFunc_InfoKeyValuebuffer"name"OldNamesizeof OldName 1);

    if(
equal(OldNameg_playername[id])) return FMRES_IGNORED;

    
set_user_info(id"name"g_playername[id]);
    
client_cmd(id"setinfo ^"name^" ^"%s^""g_playername[id]);
    
    return 
FMRES_IGNORED;    
}
public 
hamKilled(victimattacker) {
    if(
victim != attacker) {
        
gMatados[attacker]++
        
gMuertes[victim]++
    }
    return 
HAM_IGNORED
}
public 
cambiarpw(id) {
    if(
gEstado[id] != LOGUEADO) { 
        
client_print_color(idprint_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(szTablacharsmax(szTabla), "SELECT Pj, Muertes, Kills FROM usuarios ORDER BY nivel DESC LIMIT 15")
    SQL_ThreadQuery(g_hTuple"DataHandler"szTablaiData);
}
public 
show_menu_registrar(id) {
    new 
text[MAX_MOTD_LENGTH], menu;
    
formatex(textcharsmax(text), "\r(ZP) \w Menu de registro^n\w- Estado : \r%s", (gEstado[id] == SINREGISTRAR) ? "No registrado" "\dRegistrado")
    
menu menu_create(text"h_registro");

    
menu_additem(menu, (gEstado[id] == SINREGISTRAR) ? "\wCrear cuenta" "\dCrear cuenta""1");
    
menu_additem(menu, (gEstado[id] == REGISTRADO) ? "\wIniciar sesion" "\dIniciar sesion""2");

    
menu_setprop(menuMPROP_EXITMEXIT_NEVER);
    
menu_display(idmenu);

    return 
PLUGIN_HANDLED;
}
public 
h_registro(idmenuitem) {
    switch(
item) {
        case 
0: {
            if(
gEstado[id] == REGISTRADO) {
                
show_menu_registrar(id);
                
client_print_color(idprint_team_default"^4[ASD]^1 Ya tienes una cuenta registrada.")
                return 
PLUGIN_HANDLED;
            }
            
client_cmd(id"messagemode CREAR_PASSWORD");
        }
        case 
1: {
            if(
gEstado[id] == SINREGISTRAR) {
                
show_menu_registrar(id);
                
client_print_color(idprint_team_default"^4[ASD]^1 No tienes una cuenta registrada.")
                return 
PLUGIN_HANDLED;
            }
            
client_cmd(id"messagemode LOGUEAR_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]);

    if(
equal(g_password[id], "")) {
        
client_cmd(id"messagemode CREAR_PASSWORD");
        
client_cmd(id"spk ^"buttons/button11.wav^"");
        
client_print(idprint_center"No has introducido una password.");
        return 
PLUGIN_HANDLED;
    }
    if(
contain(g_password[id], " ") != -1) {
        
client_cmd(id"messagemode CREAR_PASSWORD");
        
client_cmd(id"spk ^"buttons/button11.wav^"");
        
client_print(idprint_center"La password no tiene que tener espacios.");
        return 
PLUGIN_HANDLED;
    }
    if (
containi(g_password[id], "^"") != -1) {
        client_cmd(id, "
messagemode CREAR_PASSWORD");
        client_cmd(id, "
spk ^"buttons/button11.wav^"");
        client_print(id, print_center, "
No puedes usar comillas")
        return PLUGIN_HANDLED;
    }
    new szQuery[256], iData[2];

    iData[0] = id;
    iData[1] = REGISTRAR_CUENTA;

    formatex(szQuery, charsmax(szQuery), "
INSERT INTO %(PjPasswordVALUES (^"%s^", ^"%s^")", szTable, g_playername[id], g_password[id]);
    SQL_ThreadQuery(g_hTuple, "
DataHandler", szQuery, iData, 2);

    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(idprint_center"Tu password no tiene comillas.")
        return 
PLUGIN_HANDLED;
    }
    new 
szQuery[128], iData[2];

    
iData[0] = id;
    
iData[1] = LOGUEAR_CUENTA;

    
formatex(szQuerycharsmax(szQuery), "SELECT * FROM %s WHERE Pj=^"%s^" AND Password=^"%s^""szTableg_playername[id], g_password[id]);
    
SQL_ThreadQuery(g_hTuple"DataHandler"szQueryiData);

    return 
PLUGIN_HANDLED;
}
public 
camb_password(id) {
    new 
szPass[34]
    
read_args(szPasscharsmax(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(idprint_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(idprint_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(idprint_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 cuentaintenta 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[]));                    
                
                // Cargamos datos
                gMuertes[id] = SQL_ReadResult(Query, 2)
                gMatados[id] = SQL_ReadResult(Query, 3)

                gEstado[id] = LOGUEADO;
                ForceJoinTeam(id)
            }
            else {
                client_print_color(id, print_team_default, "
^4[ASD]^1 Contraseña incorrecta.")
                client_cmd(id, "
spk buttons/button10.wav");
            }
        }
        case CARGAR_DATOS: {
            if(SQL_NumResults(Query)) {
                g_id[id] = SQL_ReadResult(Query, 0);
                
                // Carge datos usuario nuevo
                gMuertes[id] = 0
                gMatados[id] = 0

                gEstado[id] = LOGUEADO;
                ForceJoinTeam(id)
            }
            else {
                client_print_color(id, print_team_default, "
^4[ASD]^1 Error al cargar los datosintente nuevamente.")
            }
        }
        case GUARDAR_DATOS: {
            if(failstate < TQUERY_SUCCESS)
                console_print(id, "
[SQLError en el guardado de datos.");
            
            else
                console_print(id, "
[SQLDatos guardados.");
        }
        case CAMBIAR_PASSWORD: {
            if(failstate < TQUERY_SUCCESS)
                client_print_color(id, print_team_default, "
^4[ASD]^1 Error al intentar cambiar la clave.")      
            else
                client_print_color(id, print_team_default, "
^4[ASD]^1 Clave cambiada con exito.")
        }
        case CHEQUEAR_CUENTA: {
            if(SQL_NumResults(Query)) {
                gEstado[id] = REGISTRADO
            }
            else {
                gEstado[id] = SINREGISTRAR
            }
        }
        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");

                while(
SQL_MoreResults(Query)) {
                    ++
iPosition;

                    
SQL_ReadResult(Query0szNamecharsmax(szName));
                    
Muertes SQL_ReadResult(Query1);
                    
Kill SQL_ReadResult(Query2);

                    
len += format(szBuffer[len], charsmax(szBuffer) - len"<tr align=center bgcolor=#2f3030><td> %d <td> %s <td> %s <td> %s"iPositionszNameMuertesKill);

                    
SQL_NextRow(Query);
                }
                
show_motd(idszBuffer"Top 15");
            }
        }
    }
}
public 
SQLx_Init()
{
    new 
get_type[12], g_tabla[MAX_MOTD_LENGTH], len;
    
    
SQL_SetAffinity("sqlite");
    
SQL_GetAffinity(get_typesizeof get_type);

    if(!
equali(get_type"sqlite")) {
        
log_to_file"SQLITE_ERROR.txt""[SQL] Error de conexion" );
        return 
pause"a" );
    }
    
g_hTuple SQL_MakeDbTuple""""""SQLITE_DATEBASE );

    
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(failstateHandle:Queryerror[ ], error2data[ ], datasizeFloat:time) {
    switch(
failstate) {
        case 
TQUERY_CONNECT_FAILED: {
            
log_to_file("SQL_LOG_TQ.txt""Error en la conexion al SQL [%i]: %s"error2error);
            return;
        }
        case 
TQUERY_QUERY_FAILED: {
            
log_to_file("SQL_LOG_TQ.txt""Error en la consulta al SQL [%i]: %s"error2error);
        }
    }
}
ForceJoinTeam(index)
{
    static 
teammsg_blockteammsg_block_vguirestorevgui;

    
restore get_pdata_int(index510);
    
vgui restore & (1<<0);

    if (
vguiset_pdata_int(index510restore & ~(1<<0));

    
teammsg_block get_msg_block(g_iMsgShowMenu);
    
teammsg_block_vgui get_msg_block(g_iMsgVguiMenu);

    
set_msg_block(g_iMsgShowMenuBLOCK_ONCE);
    
set_msg_block(g_iMsgVguiMenuBLOCK_ONCE);

    
engclient_cmd(index"jointeam""5");
    
engclient_cmd(index"joinclass""5");

    
set_msg_block(g_iMsgShowMenuteammsg_block);
    
set_msg_block(g_iMsgVguiMenuteammsg_block_vgui);

    if (
vgui) { set_pdata_int(index510restore); }
}
public 
plugin_end()
{
    
SQL_FreeHandle(g_hTuple);

Responder
#9
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
Responder
#10
(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.

Código PHP:
#include <amxmodx>
#include <sqlx>
#include <fakemeta>
#include <hamsandwich>

#define SQLITE_DATEBASE "db_publico"
new const szTable[] = "cuentas"
enum REGISTRAR_CUENTALOGUEAR_CUENTACARGAR_DATOSGUARDAR_DATOSCAMBIAR_PASSWORDCHEQUEAR_CUENTASQL_TOP };
enum _:DataID SINREGISTRAR 0REGISTRADOLOGUEADO }

new 
g_password[33][34], g_playername[33][33];
new 
gMuertes[33], gMatados[33];

new 
gEstado[33], g_id[33];
new 
g_iMsgVguiMenug_iMsgShowMenuHandle:g_hTuple;
public 
plugin_init() {
    
register_plugin("Sistema de cuentas MySQL/SQLite""1.1.2""r0ma");
    
register_forward(FM_ClientUserInfoChanged"fwClientInfoChanged");
    
RegisterHam(Ham_Killed"player""hamKilled")
    
register_clcmd("say /menutop""checkTop");
    
register_clcmd("say /cambiarpw""cambiarpw");
    
    
register_clcmd("CREAR_PASSWORD""reg_password");
    
register_clcmd("LOGUEAR_PASSWORD""log_password");
    
register_clcmd("CAMBIAR_CLAVE""camb_password"
    
    
g_iMsgVguiMenu get_user_msgid("VGUIMenu");
    
g_iMsgShowMenu get_user_msgid("ShowMenu");
    
register_message(g_iMsgVguiMenu"message_VGUImenu");
    
register_message(g_iMsgShowMenu"message_VGUImenu");

    
SQLx_Init();
}
public 
client_putinserver(id) {
    
get_user_name(idg_playername[id], charsmax(g_playername[]))
    
Cargar(id)
    
gEstado[id] = SINREGISTRAR
}
public 
client_disconnected(id) {
    if(
gEstado[id] == LOGUEADO) {
        
Guardar(id);
    }
    
gEstado[id] = SINREGISTRAR
    g_playername
[id][0] = '^0';
    
g_password[id][0] = '^0';
}
public 
message_VGUImenu(msgiddestid) {
    if(
gEstado[id] != LOGUEADO) {
        
show_menu_registrar(id);
        return 
PLUGIN_HANDLED;
    }
    return 
PLUGIN_CONTINUE;
}
public 
fwClientInfoChanged(idbuffer) {
    if(!
is_user_connected(id)) return FMRES_IGNORED;

    static 
OldName[33];
    
engfunc(EngFunc_InfoKeyValuebuffer"name"OldNamesizeof OldName 1);

    if(
equal(OldNameg_playername[id])) return FMRES_IGNORED;

    
set_user_info(id"name"g_playername[id]);
    
client_cmd(id"setinfo ^"name^" ^"%s^""g_playername[id]);
    
    return 
FMRES_IGNORED;    
}
public 
hamKilled(victimattacker) {
    if(
victim != attacker) {
        
gMatados[attacker]++
        
gMuertes[victim]++
    }
    return 
HAM_IGNORED
}
public 
cambiarpw(id) {
    if(
gEstado[id] != LOGUEADO) { 
        
client_print_color(idprint_team_default"^4[ASD]^1 Tienes que estar logeado para cambiar tu clave."
        return; 
    }
    
client_cmd(id"messagemode CAMBIAR_CLAVE");

public 
show_menu_registrar(id) {
    new 
text[MAX_MOTD_LENGTH], menu;
    
formatex(textcharsmax(text), "\r(ZP) \w Menu de registro^n\w- Estado : \r%s", (gEstado[id] == SINREGISTRAR) ? "No registrado" "\dRegistrado")
    
menu menu_create(text"h_registro");

    
menu_additem(menu, (gEstado[id] == SINREGISTRAR) ? "\wCrear cuenta" "\dCrear cuenta""1");
    
menu_additem(menu, (gEstado[id] == REGISTRADO) ? "\wIniciar sesion" "\dIniciar sesion""2");

    
menu_setprop(menuMPROP_EXITMEXIT_NEVER);
    
menu_display(idmenu);

    return 
PLUGIN_HANDLED;
}
public 
h_registro(idmenuitem) {
    switch(
item) {
        case 
0: {
            if(
gEstado[id] == REGISTRADO) {
                
show_menu_registrar(id);
                
client_print_color(idprint_team_default"^4[ASD]^1 Ya tienes una cuenta registrada.")
                return 
PLUGIN_HANDLED;
            }
            
client_cmd(id"messagemode CREAR_PASSWORD");
        }
        case 
1: {
            if(
gEstado[id] == SINREGISTRAR) {
                
show_menu_registrar(id);
                
client_print_color(idprint_team_default"^4[ASD]^1 No tienes una cuenta registrada.")
                return 
PLUGIN_HANDLED;
            }
            
client_cmd(id"messagemode LOGUEAR_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]);

    if(
equal(g_password[id], "")) {
        
client_cmd(id"messagemode CREAR_PASSWORD");
        
client_cmd(id"spk ^"buttons/button11.wav^"");
        
client_print(idprint_center"No has introducido una password.");
        return 
PLUGIN_HANDLED;
    }
    if(
contain(g_password[id], " ") != -1) {
        
client_cmd(id"messagemode CREAR_PASSWORD");
        
client_cmd(id"spk ^"buttons/button11.wav^"");
        
client_print(idprint_center"La password no tiene que tener espacios.");
        return 
PLUGIN_HANDLED;
    }
    if (
containi(g_password[id], "^"") != -1) {
        client_cmd(id, "
messagemode CREAR_PASSWORD");
        client_cmd(id, "
spk ^"buttons/button11.wav^"");
        client_print(id, print_center, "
No puedes usar comillas")
        return PLUGIN_HANDLED;
    }
    new szQuery[256], iData[2];

    iData[0] = id;
    iData[1] = REGISTRAR_CUENTA;

    formatex(szQuery, charsmax(szQuery), "
INSERT INTO %(PjPasswordVALUES (^"%s^", ^"%s^")", szTable, g_playername[id], g_password[id]);
    SQL_ThreadQuery(g_hTuple, "
DataHandler", szQuery, iData, 2);

    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(idprint_center"Tu password no tiene comillas.")
        return 
PLUGIN_HANDLED;
    }
    new 
szQuery[128], iData[2];

    
iData[0] = id;
    
iData[1] = LOGUEAR_CUENTA;

    
formatex(szQuerycharsmax(szQuery), "SELECT * FROM %s WHERE Pj=^"%s^" AND Password=^"%s^""szTableg_playername[id], g_password[id]);
    
SQL_ThreadQuery(g_hTuple"DataHandler"szQueryiData);

    return 
PLUGIN_HANDLED;
}
public 
camb_password(id) {
    new 
szPass[34]
    
read_args(szPasscharsmax(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(idprint_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(idprint_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(idprint_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 PjMuertesMatados 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 cuentaintenta 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[]));                    
                
                // Cargamos datos
                gMuertes[id] = SQL_ReadResult(Query, 3)
                gMatados[id] = SQL_ReadResult(Query, 4)

                gEstado[id] = LOGUEADO;
                ForceJoinTeam(id)
            }
            else {
                client_print_color(id, print_team_default, "
^4[ASD]^1 Contraseña incorrecta.")
                client_cmd(id, "
spk buttons/button10.wav");
            }
        }
        case CARGAR_DATOS: {
            if(SQL_NumResults(Query)) {
                g_id[id] = SQL_ReadResult(Query, 0);
                
                // Carge datos usuario nuevo
                gMuertes[id] = 0
                gMatados[id] = 0

                gEstado[id] = LOGUEADO;
                ForceJoinTeam(id)
            }
            else {
                client_print_color(id, print_team_default, "
^4[ASD]^1 Error al cargar los datosintente nuevamente.")
            }
        }
        case GUARDAR_DATOS: {
            if(failstate < TQUERY_SUCCESS)
                console_print(id, "
[SQLError en el guardado de datos.");
            
            else
                console_print(id, "
[SQLDatos guardados.");
        }
        case CAMBIAR_PASSWORD: {
            if(failstate < TQUERY_SUCCESS)
                client_print_color(id, print_team_default, "
^4[ASD]^1 Error al intentar cambiar la clave.")      
            else
                client_print_color(id, print_team_default, "
^4[ASD]^1 Clave cambiada con exito.")
        }
        case CHEQUEAR_CUENTA: {
            if(SQL_NumResults(Query)) {
                gEstado[id] = REGISTRADO
            }
            else {
                gEstado[id] = SINREGISTRAR
            }
        }
        case SQL_TOP: {
            new len = 0, szBuffer[MAX_MOTD_LENGTH], iPosition, szName[MAX_NAME_LENGTH+1], Deads, Kills;
            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");

                while(
SQL_MoreResults(Query)) {
                    ++
iPosition;

                    
SQL_ReadResult(Query1g_playername[id], charsmax(g_playername[]));    
                    
Deads SQL_ReadResult(Query3)
                    
Kills SQL_ReadResult(Query4)

                    
len += format(szBuffer[len], charsmax(szBuffer) - len"<tr align=center bgcolor=#2f3030><td> %d <td> %s <td> %s <td> %s"iPositionszNameDeadsKills);

                    
SQL_NextRow(Query);
                }
                
show_motd(idszBuffer"Top 15");
            }
        }
    }
}
public 
SQLx_Init()
{
    new 
get_type[12], g_tabla[MAX_MOTD_LENGTH], len;
    
    
SQL_SetAffinity("sqlite");
    
SQL_GetAffinity(get_typesizeof get_type);

    if(!
equali(get_type"sqlite")) {
        
log_to_file"SQLITE_ERROR.txt""[SQL] Error de conexion" );
        return 
pause"a" );
    }
    
g_hTuple SQL_MakeDbTuple""""""SQLITE_DATEBASE );

    
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(failstateHandle:Queryerror[ ], error2data[ ], datasizeFloat:time) {
    switch(
failstate) {
        case 
TQUERY_CONNECT_FAILED: {
            
log_to_file("SQL_LOG_TQ.txt""Error en la conexion al SQL [%i]: %s"error2error);
            return;
        }
        case 
TQUERY_QUERY_FAILED: {
            
log_to_file("SQL_LOG_TQ.txt""Error en la consulta al SQL [%i]: %s"error2error);
        }
    }
}
ForceJoinTeam(index)
{
    static 
teammsg_blockteammsg_block_vguirestorevgui;

    
restore get_pdata_int(index510);
    
vgui restore & (1<<0);

    if (
vguiset_pdata_int(index510restore & ~(1<<0));

    
teammsg_block get_msg_block(g_iMsgShowMenu);
    
teammsg_block_vgui get_msg_block(g_iMsgVguiMenu);

    
set_msg_block(g_iMsgShowMenuBLOCK_ONCE);
    
set_msg_block(g_iMsgVguiMenuBLOCK_ONCE);

    
engclient_cmd(index"jointeam""5");
    
engclient_cmd(index"joinclass""5");

    
set_msg_block(g_iMsgShowMenuteammsg_block);
    
set_msg_block(g_iMsgVguiMenuteammsg_block_vgui);

    if (
vgui) { set_pdata_int(index510restore); }
}
public 
plugin_end()
{
    
SQL_FreeHandle(g_hTuple);


(23/05/2020, 11:21 PM)+rdNN! escribió: 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.

Código PHP:
#include <amxmodx>
#include <sqlx>
#include <fakemeta>
#include <hamsandwich>

#define SQLITE_DATEBASE "db_publico"
new const szTable[] = "cuentas"
enum REGISTRAR_CUENTALOGUEAR_CUENTACARGAR_DATOSGUARDAR_DATOSCAMBIAR_PASSWORDCHEQUEAR_CUENTASQL_TOP };
enum _:DataID SINREGISTRAR 0REGISTRADOLOGUEADO }

new 
g_password[33][34], g_playername[33][33];
new 
gMuertes[33], gMatados[33];

new 
gEstado[33], g_id[33];
new 
g_iMsgVguiMenug_iMsgShowMenuHandle:g_hTuple;
public 
plugin_init() {
    
register_plugin("Sistema de cuentas MySQL/SQLite""1.1.2""r0ma");
    
register_forward(FM_ClientUserInfoChanged"fwClientInfoChanged");
    
RegisterHam(Ham_Killed"player""hamKilled")
    
register_clcmd("say /menutop""checkTop");
    
register_clcmd("say /cambiarpw""cambiarpw");
    
    
register_clcmd("CREAR_PASSWORD""reg_password");
    
register_clcmd("LOGUEAR_PASSWORD""log_password");
    
register_clcmd("CAMBIAR_CLAVE""camb_password"
    
    
g_iMsgVguiMenu get_user_msgid("VGUIMenu");
    
g_iMsgShowMenu get_user_msgid("ShowMenu");
    
register_message(g_iMsgVguiMenu"message_VGUImenu");
    
register_message(g_iMsgShowMenu"message_VGUImenu");

    
SQLx_Init();
}
public 
client_putinserver(id) {
    
get_user_name(idg_playername[id], charsmax(g_playername[]))
    
Cargar(id)
    
gEstado[id] = SINREGISTRAR
}
public 
client_disconnected(id) {
    if(
gEstado[id] == LOGUEADO) {
        
Guardar(id);
    }
    
gEstado[id] = SINREGISTRAR
    g_playername
[id][0] = '^0';
    
g_password[id][0] = '^0';
}
public 
message_VGUImenu(msgiddestid) {
    if(
gEstado[id] != LOGUEADO) {
        
show_menu_registrar(id);
        return 
PLUGIN_HANDLED;
    }
    return 
PLUGIN_CONTINUE;
}
public 
fwClientInfoChanged(idbuffer) {
    if(!
is_user_connected(id)) return FMRES_IGNORED;

    static 
OldName[33];
    
engfunc(EngFunc_InfoKeyValuebuffer"name"OldNamesizeof OldName 1);

    if(
equal(OldNameg_playername[id])) return FMRES_IGNORED;

    
set_user_info(id"name"g_playername[id]);
    
client_cmd(id"setinfo ^"name^" ^"%s^""g_playername[id]);
    
    return 
FMRES_IGNORED;    
}
public 
hamKilled(victimattacker) {
    if(
victim != attacker) {
        
gMatados[attacker]++
        
gMuertes[victim]++
    }
    return 
HAM_IGNORED
}
public 
cambiarpw(id) {
    if(
gEstado[id] != LOGUEADO) { 
        
client_print_color(idprint_team_default"^4[ASD]^1 Tienes que estar logeado para cambiar tu clave."
        return; 
    }
    
client_cmd(id"messagemode CAMBIAR_CLAVE");

public 
show_menu_registrar(id) {
    new 
text[MAX_MOTD_LENGTH], menu;
    
formatex(textcharsmax(text), "\r(ZP) \w Menu de registro^n\w- Estado : \r%s", (gEstado[id] == SINREGISTRAR) ? "No registrado" "\dRegistrado")
    
menu menu_create(text"h_registro");

    
menu_additem(menu, (gEstado[id] == SINREGISTRAR) ? "\wCrear cuenta" "\dCrear cuenta""1");
    
menu_additem(menu, (gEstado[id] == REGISTRADO) ? "\wIniciar sesion" "\dIniciar sesion""2");

    
menu_setprop(menuMPROP_EXITMEXIT_NEVER);
    
menu_display(idmenu);

    return 
PLUGIN_HANDLED;
}
public 
h_registro(idmenuitem) {
    switch(
item) {
        case 
0: {
            if(
gEstado[id] == REGISTRADO) {
                
show_menu_registrar(id);
                
client_print_color(idprint_team_default"^4[ASD]^1 Ya tienes una cuenta registrada.")
                return 
PLUGIN_HANDLED;
            }
            
client_cmd(id"messagemode CREAR_PASSWORD");
        }
        case 
1: {
            if(
gEstado[id] == SINREGISTRAR) {
                
show_menu_registrar(id);
                
client_print_color(idprint_team_default"^4[ASD]^1 No tienes una cuenta registrada.")
                return 
PLUGIN_HANDLED;
            }
            
client_cmd(id"messagemode LOGUEAR_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]);

    if(
equal(g_password[id], "")) {
        
client_cmd(id"messagemode CREAR_PASSWORD");
        
client_cmd(id"spk ^"buttons/button11.wav^"");
        
client_print(idprint_center"No has introducido una password.");
        return 
PLUGIN_HANDLED;
    }
    if(
contain(g_password[id], " ") != -1) {
        
client_cmd(id"messagemode CREAR_PASSWORD");
        
client_cmd(id"spk ^"buttons/button11.wav^"");
        
client_print(idprint_center"La password no tiene que tener espacios.");
        return 
PLUGIN_HANDLED;
    }
    if (
containi(g_password[id], "^"") != -1) {
        client_cmd(id, "
messagemode CREAR_PASSWORD");
        client_cmd(id, "
spk ^"buttons/button11.wav^"");
        client_print(id, print_center, "
No puedes usar comillas")
        return PLUGIN_HANDLED;
    }
    new szQuery[256], iData[2];

    iData[0] = id;
    iData[1] = REGISTRAR_CUENTA;

    formatex(szQuery, charsmax(szQuery), "
INSERT INTO %(PjPasswordVALUES (^"%s^", ^"%s^")", szTable, g_playername[id], g_password[id]);
    SQL_ThreadQuery(g_hTuple, "
DataHandler", szQuery, iData, 2);

    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(idprint_center"Tu password no tiene comillas.")
        return 
PLUGIN_HANDLED;
    }
    new 
szQuery[128], iData[2];

    
iData[0] = id;
    
iData[1] = LOGUEAR_CUENTA;

    
formatex(szQuerycharsmax(szQuery), "SELECT * FROM %s WHERE Pj=^"%s^" AND Password=^"%s^""szTableg_playername[id], g_password[id]);
    
SQL_ThreadQuery(g_hTuple"DataHandler"szQueryiData);

    return 
PLUGIN_HANDLED;
}
public 
camb_password(id) {
    new 
szPass[34]
    
read_args(szPasscharsmax(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(idprint_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(idprint_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(idprint_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 PjMuertesMatados 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 cuentaintenta 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[]));                    
                
                // Cargamos datos
                gMuertes[id] = SQL_ReadResult(Query, 3)
                gMatados[id] = SQL_ReadResult(Query, 4)

                gEstado[id] = LOGUEADO;
                ForceJoinTeam(id)
            }
            else {
                client_print_color(id, print_team_default, "
^4[ASD]^1 Contraseña incorrecta.")
                client_cmd(id, "
spk buttons/button10.wav");
            }
        }
        case CARGAR_DATOS: {
            if(SQL_NumResults(Query)) {
                g_id[id] = SQL_ReadResult(Query, 0);
                
                // Carge datos usuario nuevo
                gMuertes[id] = 0
                gMatados[id] = 0

                gEstado[id] = LOGUEADO;
                ForceJoinTeam(id)
            }
            else {
                client_print_color(id, print_team_default, "
^4[ASD]^1 Error al cargar los datosintente nuevamente.")
            }
        }
        case GUARDAR_DATOS: {
            if(failstate < TQUERY_SUCCESS)
                console_print(id, "
[SQLError en el guardado de datos.");
            
            else
                console_print(id, "
[SQLDatos guardados.");
        }
        case CAMBIAR_PASSWORD: {
            if(failstate < TQUERY_SUCCESS)
                client_print_color(id, print_team_default, "
^4[ASD]^1 Error al intentar cambiar la clave.")      
            else
                client_print_color(id, print_team_default, "
^4[ASD]^1 Clave cambiada con exito.")
        }
        case CHEQUEAR_CUENTA: {
            if(SQL_NumResults(Query)) {
                gEstado[id] = REGISTRADO
            }
            else {
                gEstado[id] = SINREGISTRAR
            }
        }
        case SQL_TOP: {
            new len = 0, szBuffer[MAX_MOTD_LENGTH], iPosition, szName[MAX_NAME_LENGTH+1], Deads, Kills;
            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");

                while(
SQL_MoreResults(Query)) {
                    ++
iPosition;

                    
SQL_ReadResult(Query1g_playername[id], charsmax(g_playername[]));    
                    
Deads SQL_ReadResult(Query3)
                    
Kills SQL_ReadResult(Query4)

                    
len += format(szBuffer[len], charsmax(szBuffer) - len"<tr align=center bgcolor=#2f3030><td> %d <td> %s <td> %s <td> %s"iPositionszNameDeadsKills);

                    
SQL_NextRow(Query);
                }
                
show_motd(idszBuffer"Top 15");
            }
        }
    }
}
public 
SQLx_Init()
{
    new 
get_type[12], g_tabla[MAX_MOTD_LENGTH], len;
    
    
SQL_SetAffinity("sqlite");
    
SQL_GetAffinity(get_typesizeof get_type);

    if(!
equali(get_type"sqlite")) {
        
log_to_file"SQLITE_ERROR.txt""[SQL] Error de conexion" );
        return 
pause"a" );
    }
    
g_hTuple SQL_MakeDbTuple""""""SQLITE_DATEBASE );

    
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(failstateHandle:Queryerror[ ], error2data[ ], datasizeFloat:time) {
    switch(
failstate) {
        case 
TQUERY_CONNECT_FAILED: {
            
log_to_file("SQL_LOG_TQ.txt""Error en la conexion al SQL [%i]: %s"error2error);
            return;
        }
        case 
TQUERY_QUERY_FAILED: {
            
log_to_file("SQL_LOG_TQ.txt""Error en la consulta al SQL [%i]: %s"error2error);
        }
    }
}
ForceJoinTeam(index)
{
    static 
teammsg_blockteammsg_block_vguirestorevgui;

    
restore get_pdata_int(index510);
    
vgui restore & (1<<0);

    if (
vguiset_pdata_int(index510restore & ~(1<<0));

    
teammsg_block get_msg_block(g_iMsgShowMenu);
    
teammsg_block_vgui get_msg_block(g_iMsgVguiMenu);

    
set_msg_block(g_iMsgShowMenuBLOCK_ONCE);
    
set_msg_block(g_iMsgVguiMenuBLOCK_ONCE);

    
engclient_cmd(index"jointeam""5");
    
engclient_cmd(index"joinclass""5");

    
set_msg_block(g_iMsgShowMenuteammsg_block);
    
set_msg_block(g_iMsgVguiMenuteammsg_block_vgui);

    if (
vgui) { set_pdata_int(index510restore); }
}
public 
plugin_end()
{
    
SQL_FreeHandle(g_hTuple);


Me di cuenta que era un problema de otro código.

Ahora probé y esto me tira en consola al tipear /menutop

Código:
L 05/23/2020 - 23:58:13: [SQLITE] Invalid column: 3
L 05/23/2020 - 23:58:13: [AMXX] Displaying debug trace (plugin "top.amxx", version "1.1.2")
L 05/23/2020 - 23:58:13: [AMXX] Run time error 10: native error (native "SQL_ReadResult")
L 05/23/2020 - 23:58:13: [AMXX]    [0] top.sma::DataHandler (line 349)
Responder
#11
Eso te paso al cambiar la linea que te marque? o.O
Responder
#12
(24/05/2020, 12:04 AM)Hypnotize escribió: Eso te paso al cambiar la linea que te marque? o.O

Error mio ahora lo logre arreglar, ahora en el top no me sube las muertes ni matados.

te dejo foto y del código actualizado :

Código PHP:
#include <amxmodx>
#include <sqlx>
#include <fakemeta>
#include <hamsandwich>

#define SQLITE_DATEBASE "db_publico"
new const szTable[] = "cuentas"
enum REGISTRAR_CUENTALOGUEAR_CUENTACARGAR_DATOSGUARDAR_DATOSCAMBIAR_PASSWORDCHEQUEAR_CUENTASQL_TOP };
enum _:DataID SINREGISTRAR 0REGISTRADOLOGUEADO }

new 
g_password[33][34], g_playername[33][33];
new 
gMuertes[33], gMatados[33];

new 
gEstado[33], g_id[33];
new 
g_iMsgVguiMenug_iMsgShowMenuHandle:g_hTuple;
public 
plugin_init() {
 
register_plugin("Sistema de cuentas MySQL/SQLite""1.1.2""r0ma");
 
register_forward(FM_ClientUserInfoChanged"fwClientInfoChanged");
 
RegisterHam(Ham_Killed"player""hamKilled")
 
register_clcmd("say /menutop""checkTop");
 
register_clcmd("say /cambiarpw""cambiarpw");
 
register_clcmd("say /set""cmdSet");
 
 
register_clcmd("CREAR_PASSWORD""reg_password");
 
register_clcmd("LOGUEAR_PASSWORD""log_password");
 
register_clcmd("CAMBIAR_CLAVE""camb_password"
 
 
g_iMsgVguiMenu get_user_msgid("VGUIMenu");
 
g_iMsgShowMenu get_user_msgid("ShowMenu");
 
register_message(g_iMsgVguiMenu"message_VGUImenu");
 
register_message(g_iMsgShowMenu"message_VGUImenu");

 
SQLx_Init();
}
public 
client_putinserver(id) {
 
get_user_name(idg_playername[id], charsmax(g_playername[]))
 
Cargar(id)
 
gEstado[id] = SINREGISTRAR
}
public 
client_disconnected(id) {
 if(
gEstado[id] == LOGUEADO) {
 
Guardar(id);
 }
 
gEstado[id] = SINREGISTRAR
 g_playername
[id][0] = '^0';
 
g_password[id][0] = '^0';
}
public 
message_VGUImenu(msgiddestid) {
 if(
gEstado[id] != LOGUEADO) {
 
show_menu_registrar(id);
 return 
PLUGIN_HANDLED;
 }
 return 
PLUGIN_CONTINUE;
}
public 
fwClientInfoChanged(idbuffer) {
 if(!
is_user_connected(id)) return FMRES_IGNORED;

 static 
OldName[33];
 
engfunc(EngFunc_InfoKeyValuebuffer"name"OldNamesizeof OldName 1);

 if(
equal(OldNameg_playername[id])) return FMRES_IGNORED;

 
set_user_info(id"name"g_playername[id]);
 
client_cmd(id"setinfo ^"name^" ^"%s^""g_playername[id]);
 
 return 
FMRES_IGNORED
}
public 
hamKilled(victimattacker) {
 if(
victim != attacker) {
 
gMatados[attacker]++
 
gMuertes[victim]++
 }
 return 
HAM_IGNORED
}
public 
cambiarpw(id) {
 if(
gEstado[id] != LOGUEADO) { 
 
client_print_color(idprint_team_default"^4[ASD]^1 Tienes que estar logeado para cambiar tu clave."
 return; 
 }
 
client_cmd(id"messagemode CAMBIAR_CLAVE");
}
public 
cmdSet(id) {
 
gMatados[id]++
 
gMuertes[id]++
}
public 
show_menu_registrar(id) {
 new 
text[MAX_MOTD_LENGTH], menu;
 
formatex(textcharsmax(text), "\r(ZP) \w Menu de registro^n\w- Estado : \r%s", (gEstado[id] == SINREGISTRAR) ? "No registrado" "\dRegistrado")
 
menu menu_create(text"h_registro");

 
menu_additem(menu, (gEstado[id] == SINREGISTRAR) ? "\wCrear cuenta" "\dCrear cuenta""1");
 
menu_additem(menu, (gEstado[id] == REGISTRADO) ? "\wIniciar sesion" "\dIniciar sesion""2");

 
menu_setprop(menuMPROP_EXITMEXIT_NEVER);
 
menu_display(idmenu);

 return 
PLUGIN_HANDLED;
}
public 
h_registro(idmenuitem) {
 switch(
item) {
 case 
0: {
 if(
gEstado[id] == REGISTRADO) {
 
show_menu_registrar(id);
 
client_print_color(idprint_team_default"^4[ASD]^1 Ya tienes una cuenta registrada.")
 return 
PLUGIN_HANDLED;
 }
 
client_cmd(id"messagemode CREAR_PASSWORD");
 }
 case 
1: {
 if(
gEstado[id] == SINREGISTRAR) {
 
show_menu_registrar(id);
 
client_print_color(idprint_team_default"^4[ASD]^1 No tienes una cuenta registrada.")
 return 
PLUGIN_HANDLED;
 }
 
client_cmd(id"messagemode LOGUEAR_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]);

 if(
equal(g_password[id], "")) {
 
client_cmd(id"messagemode CREAR_PASSWORD");
 
client_cmd(id"spk ^"buttons/button11.wav^"");
 
client_print(idprint_center"No has introducido una password.");
 return 
PLUGIN_HANDLED;
 }
 if(
contain(g_password[id], " ") != -1) {
 
client_cmd(id"messagemode CREAR_PASSWORD");
 
client_cmd(id"spk ^"buttons/button11.wav^"");
 
client_print(idprint_center"La password no tiene que tener espacios.");
 return 
PLUGIN_HANDLED;
 }
 if (
containi(g_password[id], "^"") != -1) {
 client_cmd(id, "
messagemode CREAR_PASSWORD");
 client_cmd(id, "
spk ^"buttons/button11.wav^"");
 client_print(id, print_center, "
No puedes usar comillas")
 return PLUGIN_HANDLED;
 }
 new szQuery[256], iData[2];

 iData[0] = id;
 iData[1] = REGISTRAR_CUENTA;

 formatex(szQuery, charsmax(szQuery), "
INSERT INTO %(PjPasswordVALUES (^"%s^", ^"%s^")", szTable, g_playername[id], g_password[id]);
 SQL_ThreadQuery(g_hTuple, "
DataHandler", szQuery, iData, 2);

 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(idprint_center"Tu password no tiene comillas.")
 return 
PLUGIN_HANDLED;
 }
 new 
szQuery[128], iData[2];

 
iData[0] = id;
 
iData[1] = LOGUEAR_CUENTA;

 
formatex(szQuerycharsmax(szQuery), "SELECT * FROM %s WHERE Pj=^"%s^" AND Password=^"%s^""szTableg_playername[id], g_password[id]);
 
SQL_ThreadQuery(g_hTuple"DataHandler"szQueryiData);

 return 
PLUGIN_HANDLED;
}
public 
camb_password(id) {
 new 
szPass[34]
 
read_args(szPasscharsmax(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(idprint_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(idprint_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(idprint_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 PjMuertesMatados 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 cuentaintenta 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[])); 
 
 // Cargamos datos
 gMuertes[id] = SQL_ReadResult(Query, 3)
 gMatados[id] = SQL_ReadResult(Query, 4)

 gEstado[id] = LOGUEADO;
 ForceJoinTeam(id)
 }
 else {
 client_print_color(id, print_team_default, "
^4[ASD]^1 Contraseña incorrecta.")
 client_cmd(id, "
spk buttons/button10.wav");
 }
 }
 case CARGAR_DATOS: {
 if(SQL_NumResults(Query)) {
 g_id[id] = SQL_ReadResult(Query, 0);
 
 // Carge datos usuario nuevo
 gMuertes[id] = 0
 gMatados[id] = 0

 gEstado[id] = LOGUEADO;
 ForceJoinTeam(id)
 }
 else {
 client_print_color(id, print_team_default, "
^4[ASD]^1 Error al cargar los datosintente nuevamente.")
 }
 }
 case GUARDAR_DATOS: {
 if(failstate < TQUERY_SUCCESS)
 console_print(id, "
[SQLError en el guardado de datos.");
 
 else
 console_print(id, "
[SQLDatos guardados.");
 }
 case CAMBIAR_PASSWORD: {
 if(failstate < TQUERY_SUCCESS)
 client_print_color(id, print_team_default, "
^4[ASD]^1 Error al intentar cambiar la clave.")      
 else
 client_print_color(id, print_team_default, "
^4[ASD]^1 Clave cambiada con exito.")
 }
 case CHEQUEAR_CUENTA: {
 if(SQL_NumResults(Query)) {
 gEstado[id] = REGISTRADO
 }
 else {
 gEstado[id] = SINREGISTRAR
 }
 }
 case SQL_TOP: {
 new len = 0, szBuffer[MAX_MOTD_LENGTH], iPosition, szName[MAX_NAME_LENGTH+1], Deads, Kills;
 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");

 while(
SQL_MoreResults(Query)) {
 ++
iPosition;

 
SQL_ReadResult(Query0szNamecharsmax(szName)); 
 
Deads SQL_ReadResult(Query1)
 
Kills SQL_ReadResult(Query2)

 
len += format(szBuffer[len], charsmax(szBuffer) - len"<tr align=center bgcolor=#2f3030><td> %d <td> %s <td> %d <td> %d"iPositionszNameDeadsKills);

 
SQL_NextRow(Query);
 }
 
show_motd(idszBuffer"Top 15");
 }
 }
 }
}
public 
SQLx_Init()
{
 new 
get_type[12], g_tabla[MAX_MOTD_LENGTH], len;
 
 
SQL_SetAffinity("sqlite");
 
SQL_GetAffinity(get_typesizeof get_type);

 if(!
equali(get_type"sqlite")) {
 
log_to_file"SQLITE_ERROR.txt""[SQL] Error de conexion" );
 return 
pause"a" );
 }
 
g_hTuple SQL_MakeDbTuple""""""SQLITE_DATEBASE );

 
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(failstateHandle:Queryerror[ ], error2data[ ], datasizeFloat:time) {
 switch(
failstate) {
 case 
TQUERY_CONNECT_FAILED: {
 
log_to_file("SQL_LOG_TQ.txt""Error en la conexion al SQL [%i]: %s"error2error);
 return;
 }
 case 
TQUERY_QUERY_FAILED: {
 
log_to_file("SQL_LOG_TQ.txt""Error en la consulta al SQL [%i]: %s"error2error);
 }
 }
}
ForceJoinTeam(index)
{
 static 
teammsg_blockteammsg_block_vguirestorevgui;

 
restore get_pdata_int(index510);
 
vgui restore & (1<<0);

 if (
vguiset_pdata_int(index510restore & ~(1<<0));

 
teammsg_block get_msg_block(g_iMsgShowMenu);
 
teammsg_block_vgui get_msg_block(g_iMsgVguiMenu);

 
set_msg_block(g_iMsgShowMenuBLOCK_ONCE);
 
set_msg_block(g_iMsgVguiMenuBLOCK_ONCE);

 
engclient_cmd(index"jointeam""5");
 
engclient_cmd(index"joinclass""5");

 
set_msg_block(g_iMsgShowMenuteammsg_block);
 
set_msg_block(g_iMsgVguiMenuteammsg_block_vgui);

 if (
vgui) { set_pdata_int(index510restore); }
}
public 
plugin_end()
{
 
SQL_FreeHandle(g_hTuple);


EDIT : solucionado otro error mío, gracias a todos lo que me ayudaron <3.


Archivos adjuntos Miniatura(s)
   
Responder
#13
deja la solución a alguien le puede servir Whatever
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)