case LOGUEAR:
{
if(!response)
{
Kick(playerid);
}
if(response)
{
new escapepass[100];
mysql_real_escape_string(inputtext, escapepass);
format(Query, sizeof(Query), "SELECT * FROM `usuarios` WHERE `Nombre` = '%s' AND `Clave` ='%s'", pName,escapepass);
mysql_function_query(Conecction, Query, true, "OnQueryFinish", "ii", 1, playerid);
}
else
{
SendClientMessage(playerid, -1, "CONTRASEСA INCORRECTA");
Kick(playerid);
}
}
Te recomiendo uno de estos 2 tutoriales, son mejores que el que colocaste
https://sampforum.blast.hk/showthread.php?tid=581016 https://sampforum.blast.hk/showthread.php?tid=559935 |
new Password[playerid][129]; public OnPlayerConnect(playerid) { new Query[120]; format(Query, sizeof(Query), "SELECT * FROM `usuarios` WHERE `Nombre` = '%s'", pName); mysql_function_query(Conexion, Query, true, "CheckPlayer", "i", playerid); return 1; } forward CheckPlayer(playerid); public CheckPlayer(playerid) { new Rows, Field; cache_get_data(Rows, Field); if(Rows > 0) { cache_get_field_content(0, "Clave", Password[playerid], Conexion, 129); ShowPlayerDialog(extraid, LOGUEAR, DIALOG_STYLE_PASSWORD,"Login","Ingresa tu contraseсa:","Enviar","Salir"); } else if(!Rows) { SendClientMessage(playerid, -1, "No estas registrado"); } return 1; } public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) { switch(dialogid) { case LOGUEAR: { if(!response) { SendClientMessage(playerid, -1, "CONTRASEСA INCORRECTA"); Kick(playerid); } else { if(!strlen(inputtext)) { SendClientMessage(playerid, -1, "NO INGRESASTE NINGЪNA CONTRASEСA"); Kick(playerid); return 1; } if(!strcmp(inputtext, Password[playerid])) { new Query[120]; mysql_format(Conexion, Query, sizeof(Query), "SELECT * FROM `usuarios` WHERE `Nombre` = '%s'", pName); mysql_function_query(Conexion, Query, true, "LoadAccount", "i", playerid); } else { SendClientMessage(playerid, -1, "CONTRASEСA INCORRECTA"); Kick(playerid); return 1; } } } } return 1; } funcion LoadAccount(playerid) { PlayerInfo[playerid][Score] = cache_get_field_content_int(0, "score"); PlayerInfo[playerid][Dinero] = cache_get_field_content_int(0, "dinero"); PlayerInfo[playerid][Nivel] = cache_get_field_content_int(0, "nivel"); PlayerInfo[playerid][Dinero] = cache_get_field_content_float(0, "experiencia"); PlayerInfo[playerid][PosX] = cache_get_field_content_float(0, "posx"); PlayerInfo[playerid][PosY] = cache_get_field_content_float(0, "posy"); PlayerInfo[playerid][PosZ] = cache_get_field_content_float(0, "posz"); PlayerInfo[playerid][Interior] = cache_get_field_content_int(0, "interior"); return 1; }
asi creo que funcionaria
Код:
new Password[playerid][129]; public OnPlayerConnect(playerid) { new Query[120]; format(Query, sizeof(Query), "SELECT * FROM `usuarios` WHERE `Nombre` = '%s'", pName); mysql_function_query(Conexion, Query, true, "CheckPlayer", "i", playerid); return 1; } forward CheckPlayer(playerid); public CheckPlayer(playerid) { new Rows, Field; cache_get_data(Rows, Field); if(Rows > 0) { cache_get_field_content(0, "Clave", Password[playerid], Conexion, 129); ShowPlayerDialog(extraid, LOGUEAR, DIALOG_STYLE_PASSWORD,"Login","Ingresa tu contraseсa:","Enviar","Salir"); } else if(!Rows) { SendClientMessage(playerid, -1, "No estas registrado"); } return 1; } public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) { switch(dialogid) { case LOGUEAR: { if(!response) { SendClientMessage(playerid, -1, "CONTRASEСA INCORRECTA"); Kick(playerid); } else { if(!strlen(inputtext)) { SendClientMessage(playerid, -1, "NO INGRESASTE NINGЪNA CONTRASEСA"); Kick(playerid); return 1; } if(!strcmp(inputtext, Password[playerid])) { new Query[120]; mysql_format(Conexion, Query, sizeof(Query), "SELECT * FROM `usuarios` WHERE `Nombre` = '%s'", pName); mysql_function_query(Conexion, Query, true, "LoadAccount", "i", playerid); } else { SendClientMessage(playerid, -1, "CONTRASEСA INCORRECTA"); Kick(playerid); return 1; } } } } return 1; } funcion LoadAccount(playerid) { PlayerInfo[playerid][Score] = cache_get_field_content_int(0, "score"); PlayerInfo[playerid][Dinero] = cache_get_field_content_int(0, "dinero"); PlayerInfo[playerid][Nivel] = cache_get_field_content_int(0, "nivel"); PlayerInfo[playerid][Dinero] = cache_get_field_content_float(0, "experiencia"); PlayerInfo[playerid][PosX] = cache_get_field_content_float(0, "posx"); PlayerInfo[playerid][PosY] = cache_get_field_content_float(0, "posy"); PlayerInfo[playerid][PosZ] = cache_get_field_content_float(0, "posz"); PlayerInfo[playerid][Interior] = cache_get_field_content_int(0, "interior"); return 1; } |