- Регистрация
- 29 Дек 2019
- Сообщения
- 11
- Лучшие ответы
- 0
- Репутация
- 0
Данная команда выдаётся с помощью /setcmd, любому уровню админки.(И он ее может юзать)
Как сделать что-бы администратор например 1 лвл, не мог выдать себе 14 уровень админки.( Сделать исключения: для фулл доступов что-бы только они могли с 1 на 14 ставить)
Как сделать что-бы администратор например 1 лвл, не мог выдать себе 14 уровень админки.( Сделать исключения: для фулл доступов что-бы только они могли с 1 на 14 ставить)
PHP:
CMD:setadmin(playerid,params[])
{
if(!is_cmd_allow(playerid, CMD_setadmin)) return SendClientMessage(playerid, COLOR_GRAD1,"{FFFF00}У Вас нет доступа к данной команде. Для покупки используйте — {FF0000}/adonate");
new NameA[24], lvl;
if(sscanf(params,"s[24]d",NameA,lvl)) return SendClientMessage(playerid, COLOR_WHITE, "Введите: /setadmin [name] [уровень]");
if(lvl > 14 || lvl < 0) return SendClientMessage(playerid,COLOR_WHITE,"Ошибка: Нельзя меньше 1 и больше 14");
if(!FD(playerid) && (!strcmp(NameA, "Drakula_Joker"))) return DelAdmin(playerid, 0);
new query[144];
format(query, sizeof(query), "SELECT * FROM `accounts` WHERE `Name` = '%s' LIMIT 1", NameA);
mysql_function_query(connects, query, true, "SetAdmin", "dds", playerid, lvl, NameA);
return true;
}
forward SetAdmin(playerid, level, name[]);
public SetAdmin(playerid, level, name[]) {
new rows, fields;
cache_get_data(rows, fields);
if(rows) {
new lvl = cache_get_field_content_int(0, "pAlcoInvenxua", connects);
if(lvl < 1 && level < 1) return SendClientMessage(playerid, COLOR_WHITE, "Игрок не администратор!");
new query[256], string[144];//PlayerInfo[playerid][pDostup] = 11111;
format(query, sizeof(query), "UPDATE `accounts` SET `pAlcoInvenxua` = '%d' WHERE `Name` = '%s'", level, name);
mysql_function_query(connects, query, false, "", "");
format(stringer1, sizeof(stringer1), "[A] Администратор %s использовал команду /setadmin на %s.",PlayerInfo[playerid][pNames], name);
SendAdminMessage(COLOR_GREY, stringer1);
mysql_format(connects,mysql_query_,sizeof(mysql_query_),"INSERT INTO `grp_log` (`admin_name`, `type`, `name`, `date`) VALUES ('%s','использовал /setadmin на','%s','%d')",PlayerInfo[playerid][pNames], name);
mysql_function_query(connects, mysql_query_, false, "", "");
if(lvl < 1 && level > 0) {
format(string, sizeof(string), "%s был назначен на пост администратора %d уровня", name, level);
SendClientMessage(playerid, COLOR_WHITE, string);
format(string, sizeof(string), "{0099CC}%s назначил Вас администратором %d уровня. Введите - /alogin.", PlayerInfo[playerid][pNames], level);
} else if(lvl > 0 && level > 0) {
format(string, sizeof(string), "Вы изменили уровень админ прав с %d на %d у %s", lvl, level, name);
SendClientMessage(playerid, COLOR_WHITE, string);
format(string, sizeof(string), "{0099CC}%s изменил Вам уровень админ прав с %d на %d.", PlayerInfo[playerid][pNames], lvl, level);
} else if(level == 0) {
format(string, sizeof(string), "Вы сняли админ права с %s", name);
SendClientMessage(playerid, COLOR_WHITE, string);
format(string, sizeof(string), "{0099CC}%s снял Вас c должности администратора сервера.", PlayerInfo[playerid][pNames]);
}
foreach(Player, i) {
if(!IsPlayerConnected(i)) continue;
if(strcmp(PlayerInfo[i][pNames], name, true) != 0) continue;
if(level == 0) {
SendClientMessage(i, COLOR_WHITE, string);
DelAdmin(i);
break;
}
PlayerInfo[i][pAlcoInvenxua] = level;
SendClientMessage(i, COLOR_WHITE, string);
break;
}
} else return SendClientMessage(playerid, COLOR_WHITE, "Данный игрок не зарегестрирован на этом сервере!");
return true;
}