19.08.2015, 21:31
Intenta con esto ![Smiley](images/smilies/smile.png)
![Smiley](images/smilies/smile.png)
Код:
CMD:login(playerid, params[]) { // Verificas si esta registrado, al mismo tiempo si estб registrado; obtienes la contraseсa! new query_get[76], DBResult:cache; format(query_get, sizeof(query_get), "SELECT `Password` FROM `datos` WHERE `Nombre` = '%q';", NombreJugador(playerid)); cache = db_query(usuarios, query_get); //Guardamos el resultado en la variable "cache". if(!db_num_rows(cache)) //Si no se obtuvo una contraseсa! return SendClientMessage(playerid, -1, "No estas registrado!"); //Si se obtuvo una contraseсa new string[24]; if(sscanf(params, "s[24]", string)) return SendClientMessage(playerid, -1, "/Login [contraseсa]"); //Longitud de una contraseсa valida! (Cambia 4 por el mнnimo de caracteres) if(strlen(string) < 4 || strlen(string) > 24) return SendClientMessage(playerid, -1, "Ingresa una contraseсa valida (4 - 24 caracteres)"); new password[24]; // Aquн guardaremos la contraseсa obtenida db_get_field_assoc(cache, "Password", password, 24); //La almacenamos en la variable if(!strcmp(password, string, false)) // Comprobamos si la contraseсa obtenida y la insertada son iguales! { //Si son iguales sucederб esto! SendClientMessage(playerid, -1, "Has ingresado correctamente al servidor!"); new query[67]; //Cargas el resto de datos format(query, sizeof(query), "SELECT * FROM `datos` WHERE `Nombre` = '%q';", NombreJugador(playerid)); cache = db_query(usuarios, query); //Cargas en las variables comprobando el cache y usando cache_get_field_assoc/int/float. } else { //Si la contraseсa fue incorrecta sucedrб esto! SendClientMessage(playerid, -1, "ЎContaseсa incorrecta!"); IntentosFallidos[playerid] = IntentosFallidos[playerid] + 1; if(IntentosFallidos[playerid] == 3) { SendClientMessage(playerid, -1, "Fuiste expulsado del servidor por demasiados intentos de logeo fallidos!"); Player_DelayKick(playerid); //Esto es necesario o no serб visible el mensaje. } } return true; } //----------------------------------------- //Funciуn para expulsar a un player con retraso Player_DelayKick(playerid) { SetTimerEx("OnPlayerKicked", (150 + GetPlayerPing(playerid)), false, "i", playerid); return 1; } forward OnPlayerKicked(playerid); public OnPlayerKicked(playerid) return Kick(playerid);