VycheslavDikunets 0 Опубликовано 15 марта, 2019 (изменено) Здравствуйте. При написании /alogin, когда ввожу неправильный пароль пишет что пароль правильно, а потом снизу что пароль неверный. Помогите исправить PlayerLogged[playerid] = true; Hunger(playerid); if(p_info[playerid][pAdmin] > ADM_NONE) SendErr(playerid, "Вы вошли как администратор. Для авторизации введите {FFCC00}(/alogin)"); if(GetPVarInt(playerid,"e_time") > gettime() && GetPVarFloat(playerid,"e_X") != 0.0 && GetPVarFloat(playerid,"e_Y") != 0.0 && GetPVarFloat(playerid,"e_Z") != 0.0 && p_info[playerid][pJail] == 0) mysql_format(dbHandle, string, sizeof(string), "SELECT * FROM "T_ADMIN" WHERE `name` = '%s' AND `password` = '%e'", GetName(playerid), inputtext); mysql_tquery(dbHandle, string, "AloginAuth", "is", playerid, inputtext); SendClientMessage(playerid,COLOR_YELLOW, "Вы успешно вошли как администратор!"); forward AloginAuth(playerid, inputtext[]); public AloginAuth(playerid, inputtext[]) { new rows, fields; cache_get_data(rows, fields); if(!rows) { SendErr(playerid, "Неверный пароль"); SetPVarInt(playerid, "attempt_pass", GetPVarInt(playerid, "attempt_pass") + 1); if(GetPVarInt(playerid, "attempt_pass") > 3) { DeletePVar(playerid, "attempt_pass"); Kick(playerid); } } } cmd:alogin(playerid, params[]) { if(GetPVarInt(playerid, "check_alogin") > gettime()) return 1; else if(AdminLogged[playerid]) return SendErr(playerid, "Вы уже авторизовались как администратор!"); new string[128]; format(string, sizeof(string), "SELECT * FROM "T_ADMIN" WHERE `name` = '%s'", GetName(playerid)); mysql_tquery(dbHandle, string, "Alogin", "is", playerid, GetName(playerid)); SetPVarInt(playerid, "check_alogin", gettime()+5); return 1; } Изменено 15 марта, 2019 пользователем VycheslavDikunets Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Vegas 91 Опубликовано 15 марта, 2019 А где ты вызываешь этот код? PlayerLogged[playerid] = true; Hunger(playerid); if(p_info[playerid][pAdmin] > ADM_NONE) SendErr(playerid, "Вы вошли как администратор. Для авторизации введите {FFCC00}(/alogin)"); if(GetPVarInt(playerid,"e_time") > gettime() && GetPVarFloat(playerid,"e_X") != 0.0 && GetPVarFloat(playerid,"e_Y") != 0.0 && GetPVarFloat(playerid,"e_Z") != 0.0 && p_info[playerid][pJail] == 0) mysql_format(dbHandle, string, sizeof(string), "SELECT * FROM "T_ADMIN" WHERE `name` = '%s' AND `password` = '%e'", GetName(playerid), inputtext); mysql_tquery(dbHandle, string, "AloginAuth", "is", playerid, inputtext); SendClientMessage(playerid,COLOR_YELLOW, "Вы успешно вошли как администратор!"); Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
VycheslavDikunets 0 Опубликовано 15 марта, 2019 1. public OnPlayerClickPlayerTextDraw(playerid, PlayerText:playertextid) 2. public OnPlayerClickTextDraw(playerid, Text:clickedid) вроде бы надеюсь я правильно понял :D Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Vegas 91 Опубликовано 15 марта, 2019 (изменено) т.е если я не ошибаюсь , твоя авторизация в админ-панеле на текстдравах? Оке. В твоём коде (мб я не заметил) нет проверки на введённый пароль, т.е нету вот примерно такого: Спойлер И советую сделать точно также как и сделал я :) Спойлер Изменено 15 марта, 2019 пользователем Vegas Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
VycheslavDikunets 0 Опубликовано 16 марта, 2019 Нихера не помогает. Вот строчки. У меня не на тд, я не то скинул, извини. forward AloginAuth(playerid, inputtext[]); public AloginAuth(playerid, inputtext[]) { new rows, fields; cache_get_data(rows, fields); if(!rows) { SendErr(playerid, "Неверный пароль"); SetPVarInt(playerid, "attempt_pass", GetPVarInt(playerid, "attempt_pass") + 1); if(GetPVarInt(playerid, "attempt_pass") > 3) { DeletePVar(playerid, "attempt_pass"); Kick(playerid); } } else { new string[144]; AdminLogged[playerid] = true; p_info[playerid][pAdmin] = cache_get_row_int(0, 1, dbHandle); AdminInfo[playerid][admGoto] = cache_get_row_int(0, 6, dbHandle); AdminInfo[playerid][admGethere] = cache_get_row_int(0, 7, dbHandle); AdminInfo[playerid][admSpectate] = cache_get_row_int(0, 8, dbHandle); AdminInfo[playerid][admTimeMin] = cache_get_row_int(0, 9, dbHandle); AdminInfo[playerid][admAlog] = cache_get_row_int(0, 10, dbHandle); if(p_info[playerid][pAdmin] != 9) { if(p_info[playerid][pSex] == 1) format(string, sizeof(string), "%s[%i] авторизовался.", GetName(playerid), playerid); else format(string, sizeof(string), "%s[%i] авторизовалась.", GetName(playerid), playerid); SendAdminMessage(COLOR_BLUE, string); } ShowWarningPanelAC(playerid); for(new i; i < 10; i++) TextDrawShowForPlayer(playerid, CheatShow[0][i]), TextDrawShowForPlayer(playerid, CheatShow[1][i]); Iter_Add(Admins, playerid); new day, month, year; getdate(year, month, day); mysql_format(dbHandle, string, 144, "UPDATE "T_ADMIN" SET `last_connect` = '%d.%d.%d' WHERE `name` = '%s' LIMIT 1", day, month, year, GetName(playerid)); mysql_tquery(dbHandle, string, "", ""); } return 1; } Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Vegas 91 Опубликовано 16 марта, 2019 В смысле не помогает? Я скинул "систему" /logadm, в чём проблема скопировать - вставить, и поменять переменные под свой сервер? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
VycheslavDikunets 0 Опубликовано 16 марта, 2019 Вот что получилось Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
VycheslavDikunets 0 Опубликовано 17 марта, 2019 up Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
PEACEFUL 3 Опубликовано 20 марта, 2019 Покажите еще раз, пожалуйста, весь код в одном сообщении Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
VycheslavDikunets 0 Опубликовано 20 марта, 2019 if(!strlen(inputtext)) return ShowPlayerDialogEx(playerid, D_ALOGIN, DIALOG_STYLE_PASSWORD, "{5aa14a}>> Доступ администратора", "\ {FFFFFF}Введите Ваш пароль от панели администратора", "Принять", "Отмена"); mysql_format(dbHandle, string, sizeof(string), "SELECT * FROM "T_ADMIN" WHERE `name` = '%s' AND `password` = '%e'", GetName(playerid), inputtext); mysql_tquery(dbHandle, string, "AloginAuth", "is", playerid, inputtext); SendClientMessage(playerid,COLOR_YELLOW, "Вы успешно вошли как администратор!"); ///////////////////////////////////// forward AloginAuth(playerid, inputtext[]); public AloginAuth(playerid, inputtext[]) { new rows, fields; cache_get_data(rows, fields); if(!rows) { SendErr(playerid, "Неверный пароль"); SetPVarInt(playerid, "attempt_pass", GetPVarInt(playerid, "attempt_pass") + 1); if(GetPVarInt(playerid, "attempt_pass") > 3) { DeletePVar(playerid, "attempt_pass"); Kick(playerid); } } else { new string[144]; AdminLogged[playerid] = true; p_info[playerid][pAdmin] = cache_get_row_int(0, 1, dbHandle); AdminInfo[playerid][admGoto] = cache_get_row_int(0, 6, dbHandle); AdminInfo[playerid][admGethere] = cache_get_row_int(0, 7, dbHandle); AdminInfo[playerid][admSpectate] = cache_get_row_int(0, 8, dbHandle); AdminInfo[playerid][admTimeMin] = cache_get_row_int(0, 9, dbHandle); AdminInfo[playerid][admAlog] = cache_get_row_int(0, 10, dbHandle); if(p_info[playerid][pAdmin] != 9) { if(p_info[playerid][pSex] == 1) format(string, sizeof(string), "%s[%i] авторизовался.", GetName(playerid), playerid); else format(string, sizeof(string), "%s[%i] авторизовалась.", GetName(playerid), playerid); SendAdminMessage(COLOR_BLUE, string); } ShowWarningPanelAC(playerid); for(new i; i < 10; i++) TextDrawShowForPlayer(playerid, CheatShow[0][i]), TextDrawShowForPlayer(playerid, CheatShow[1][i]); Iter_Add(Admins, playerid); new day, month, year; getdate(year, month, day); mysql_format(dbHandle, string, 144, "UPDATE "T_ADMIN" SET `last_connect` = '%d.%d.%d' WHERE `name` = '%s' LIMIT 1", day, month, year, GetName(playerid)); mysql_tquery(dbHandle, string, "", ""); } return 1; } Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты