kopat1ch 0 Опубликовано 28 октября, 2020 (изменено) Не работает alogin, хотя при входе на сервер пишет, что администратор вошёл.Не открывается менюшка alogin. cmd:alogin(playerid, params[]) { SendClientMessage(playerid, -1, "activated"); if(GetPVarInt(playerid, "check_adm") > gettime()) return 1; SendClientMessage(playerid, -1, "activated2"); if(AdminLogged[playerid]) return SendClientMessage(playerid, COLOR_GREY, "Вы уже авторизовались как администратор!"); new string[128]; format(string, sizeof(string), "SELECT * FROM "T_ADMIN" WHERE `name` = '%s'", GetName(playerid)); mysql_tquery(dbHandle, string, "adm", "is", playerid, GetName(playerid)); SetPVarInt(playerid, "check_adm", gettime()+5); SendClientMessage(playerid, -1, "activated3"); return 1; } Кейс: case D_ALOGIN: { if(!response) return 1; new string[144]; switch(GetPVarInt(playerid,"aLogin")) { case 1: { if(!strlen(inputtext)|| !strcmp(inputtext, "qwerty", true) || strlen(inputtext) < 6 || strlen(inputtext) > 16 || strfind(inputtext, "=", true) != -1) return ShowPlayerDialogEx(playerid, D_ALOGIN, DIALOG_STYLE_PASSWORD, "{ebec86}>> Регистрация администратора", "\ {FFFFFF}Введите пароль, который будет от панели администратора\n\n\ {f0e86b}Примечание:\n\ \t- Пароль должен состоять из латинских букв и цифр\n\ \t- Размер пароля от 6 до 15 символов", "Принять", "Отмена"); SetPVarString(playerid, "inputtext", inputtext); format(string, sizeof(string), "SELECT * FROM "T_ADMIN" WHERE `name` = '%s'", GetName(playerid)); mysql_tquery(dbHandle, string, "AloginReg", "is", playerid, GetName(playerid)); } case 0: { if(!strlen(inputtext)) return ShowPlayerDialogEx(playerid, D_ALOGIN, DIALOG_STYLE_PASSWORD, "{ebec86}>> Доступ администратора", "\ {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, "Вы успешно вошли как администратор!"); } } return 1; } } return 1; } Паблик: forward Alogin(playerid, name[]); public Alogin(playerid, name[]) { new rows, fields; cache_get_data(rows, fields); if(!rows) { if(PI[playerid][pAdmin] > 0) PI[playerid][pAdmin] = 0; return 1; } new Password[16]; cache_get_field_content(0, "password", Password, dbHandle); if(!strcmp(Password, "qwerty", true)) { SetPVarInt(playerid, "aLogin", 1); ShowPlayerDialogEx(playerid, D_ALOGIN, DIALOG_STYLE_INPUT, "{ebec86}>> Регистрация администратора", "\ {FFFFFF}Введите пароль, который будет от панели администратора\n\n\ {f0e86b}Примечание:\n\ \t- Пароль должен состоять из латинских букв и цифр\n\ \t- Размер пароля от 6 до 15 символов", "Принять", "Отмена"); } else { SetPVarInt(playerid, "aLogin", 0); ShowPlayerDialogEx(playerid, D_ALOGIN, DIALOG_STYLE_INPUT, "{ebec86}>> Доступ администратора", "\ {FFFFFF}Введите Ваш пароль от панели администратора", "Принять", "Отмена"); } return 1; } forward AloginReg(playerid, name[]); public AloginReg(playerid, name[]) { new rows, fields; cache_get_data(rows, fields); if(!rows) return 1; new inputtext[16], string[144]; GetPVarString(playerid, "inputtext", inputtext, sizeof(inputtext)); mysql_format(dbHandle, string, sizeof(string), "UPDATE "T_ADMIN" SET `password` = '%s' WHERE `name` = '%s' LIMIT 1", inputtext, GetName(playerid)); mysql_tquery(dbHandle, string, "", ""); p_info[playerid][pAdmin] = cache_get_row_int(0, 1, dbHandle); MysqlUpdatePlayerInt(playerid, "admin", p_info[playerid][pAdmin]); 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]), TextDrawShowForPlayer(playerid, CheatShow[1]); Iter_Add(Admins, playerid); AdminLogged[playerid] = true; new day, month, year; getdate(year, month, day); mysql_format(dbHandle, string, sizeof(string), "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; } 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]), TextDrawShowForPlayer(playerid, CheatShow[1]); 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; } Изменено 28 октября, 2020 пользователем mikilov Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты