12.07.2015, 15:32
Админка выдается нормально если я 0 ID, а вот если я первый ID то наоборот я себя редактирую.
P.S. Делал сам своими кривыми руками, вот не знаю как присвоить ID.
PHP код:
CMD:setadmin(playerid, params[])
{
if(!PI[playerid][Login]) return true;
if(GetPVarInt(playerid,"Admins") < 6 || !GetPVarInt(playerid,"AdminLogin")) return true;
NameStats[playerid] = params[0];
ShowPlayerDialog(playerid, APANEL_7, DIALOG_STYLE_LIST, "Выдача прав модератора", "Добавить в список модераторов\nПовысить / Понизить модератора\nУдалить права модератора", "Выбрать", "Отмена");
return true;
}
PHP код:
case APANEL_7:
{
if(response)
{
if(GetPVarInt(playerid,"Admins") < 6 || !GetPVarInt(playerid,"AdminLogin")) return true;
switch(listitem)
{
case 0: return ShowPlayerDialog(playerid, APANEL_8, 1, "Параметры", "Введите ник игрока и уровень модерирования.\nПример: Имя_Фамилия, уровень.", "Принять", "Выход");
case 1: return ShowPlayerDialog(playerid, APANEL_9, 1, "Параметры", "Введите ник игрока и уровень модерирования.\nПример: Имя_Фамилия, уровень.", "Принять", "Выход");
case 2: return ShowPlayerDialog(playerid, APANEL_10, 1, "Параметры", "Введите ник администратора для удаление из списка.", "Принять", "Выход");
}
}
}
case APANEL_8:
{
if(response)
{
if(!strlen(inputtext)) return ShowPlayerDialog(playerid, APANEL_8, 1, "Параметры", "Введите ник игрока и уровень модерирования.\nПример: Имя_Фамилия, уровень.", "Принять", "Выход");
new level, name[24];
if(sscanf(inputtext, "p<,>s[24]d", name, level)) return ShowPlayerDialog(playerid, APANEL_9, 1, "Параметры", "Введите ник игрока и уровень модерирования.\nПример: Имя_Фамилия, уровень.", "Принять", "Выход");
if(level > 7) return SendClientMessage(playerid, COLOR_WHITE, "Ошибка: Нельзя выдать больше 7-го уровня администрирования.");
format(PI[playerid][CMDstr], 100, "SELECT `name` FROM `admins` WHERE `name` = '%s'", name);
mysql_function_query(DATABASE, PI[playerid][CMDstr], true, "checkAdmin", "dsd", playerid, name, level);
}
}
PHP код:
forward checkAdmin(playerid, name[], level);
public checkAdmin(playerid, name[], level)
{
new rows, fields;
cache_get_data(rows, fields);
//if(rows) return SendClientMessage(playerid, COLOR_WHITE, "Ошибка: Этот ник уже есть списке администраторов.");
//else
{
format(PI[playerid][CMDstr], 73, "INSERT INTO `admins` ( `name`, `level` ) VALUES ( '%s','%d')", name, level);
mysql_function_query(DATABASE, PI[playerid][CMDstr], false, "", "") ;
format(PI[playerid][CMDstr], 75, "Вы успешно добавили %s на %d уровень модерирования", name, level);
SendClientMessage(playerid, COLOR_YELLOW, PI[playerid][CMDstr]);
printf("admin %s giveadmin %s", PI[playerid][Name], name);
SetPVarInt(NameStats[playerid], "Admins", level);
strmid(AdminKey[NameStats[playerid]],"0", 0, strlen("0"), 32);
}
return true;
}