Незнаю,пока,я добавил в enum pInfo pAdmin,и в INSERT INTO столбцы,незнаю что ещё надо.
Вид для печати
Незнаю,пока,я добавил в enum pInfo pAdmin,и в INSERT INTO столбцы,незнаю что ещё надо.
Я просто всё уже пробывал,админка не прописывается.Обьясните что мне надо сделать.
Не увидел.
Эмм, если вы прописываете админку через БД, вы должны в этот момент находиться ВНЕ сервера или же вообще сервер должен быть выключен. И если всё равно не срабатывает - покажите код сохранения/загрузки аккаунта.
Загрузка:
Сохранения:PHP код:
stock LoadAccount(playerid, password[]) {
new
query[128],
sqlpass[32],
result[5+24+64],
dialog[128];
// accounts[136];
mysql_real_escape_string(password, sqlpass);
format(query, sizeof(query), "SELECT * FROM `accounts` WHERE `Password` = '%s' AND `ID` = '%i'", sqlpass, playerVariable[playerid][aID]);
mysql_query(query);
mysql_store_result();
if(mysql_num_rows() == 1) {
mysql_fetch_row_format(result, "|");
sscanf(result, "p<|>is[24]s[32]",
playerVariable[playerid][aID],
PlayerInfo[playerid][pEmail],
PlayerInfo[playerid][pAdmin],
playerVariable[playerid][aName],
playerVariable[playerid][aPassword]);
playerVariable[playerid][aLogged] = true;
mysql_free_result();
return 1;
}
else {
if(playerVariable[playerid][aWrongPassword] == 4) {
SendClientMessage(playerid, COLOR_LIGHTRED, "Вы 3 раза ввели неверный пароль и были отключены от сервера.");
Kick(playerid);
return 1;
}
format(dialog, sizeof(dialog),
"Вы ввели неверный пароль.\n\
У Вас осталось %i/3 попыток ввода.", 3 - playerVariable[playerid][aWrongPassword]);
ShowPlayerDialog(playerid, DIALOG_WRONGPAS, DIALOG_STYLE_MSGBOX, "Ошибка.", dialog, "Повтор", "Отмена");
}
return 1;
}
- - - Добавлено - - -PHP код:
stock SaveAccount(playerid) {
if(playerVariable[playerid][aLogged] == true) {
CheckMySQLConnection();
new
query[186],
sqlname[MAX_PLAYER_NAME],
sqlpass[64];
mysql_real_escape_string(playerVariable[playerid][aName], sqlname);
mysql_real_escape_string(playerVariable[playerid][aPassword], sqlpass);
format(query, sizeof(query), "UPDATE `Accounts` SET `Nickname` = '%s', AND `Password` = '%s' WHERE `ID` = '%i'",
sqlname,
sqlpass,
playerVariable[playerid][aID],
PlayerInfo[playerid][pEmail],
PlayerInfo[playerid][pAdmin],
PlayerInfo[playerid][pLeader],
PlayerInfo[playerid][pMember],
PlayerInfo[playerid][pRank],
PlayerInfo[playerid][pSkin]);
mysql_query(query);
}
return 1;
}
Ну как-бы я розобрался уже,при назначении админки всё записывается в таблицу,вот только,всёравно с пропиской в бд проблемы,точнее админку может даже давать простой игрок,я незнаю что теперь делать. Вроде вот этот код у меня правильный :
Вроде так в игре прописываю,данные сохраняются в таблицу,но из таблицы,мне нужно баг убрать что игрок обычный может дать себе админку.PHP код:
if(PlayerInfo[playerid][pAdmin] < 6)
Ну вот так выгледит:
Захожу с админкой на сервер,прописываю себе 0 для теста,прописываю ещё раз,пишет Нет Доступа!(всё ок) А вот перезахожу,и УЖе можно дать(есть доступ)(плохо)
Эмм, вы на запрос в сохранении посмотрите -_- А потом откройте любой мод на MySQL и посмотрите как сделано там. Желательно, несколько разных модов посмотреть
У меня проблема новая,когда захожу на сервер зарегаюсь пишу админку себе пишет недоступно потмоучто я админ 0 лвл,а перезайду даже не прописывать пишет что можно!