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;
}
|