• Уважаемый Гость.
    - Прежде чем создать свою тему, пожалуйста, попробуй воспользоваться этим -> ПОИСКОМ !!!
    - После решения Вашего вопроса (проблемы) - нажмите "Лучший ответ", на сообщении, которое его решило. За игнорирование этого действия - Вы получите соответствующее предупреждение. Мы - стараемся Вам помочь. Уделите 10 секунд - чтобы нажать кнопку. (Если у Вас нет такой возможности - укажите в последнем своем сообщении какой ответ Вы считаете лучшим. Наши модераторы сделают это за Вас)
    ЗАПРЕЩЕНО:
    - Cоздавать темы с названиями "Помогите", "Плиз", "Ошибка", "Не могу найти", "Хелп" и тому подобное;
    - Cоздавать темы без детального описания того, что нужно исправить.
    - Cоздавать темы из одного скриншота.
    За игнор правил форума - Ваша тема будет удалена, а Вы получите системное предупреждение.

Админка!

Статус
В этой теме нельзя размещать новые ответы.

Nister_Just

Изучающий
Пользователь
Регистрация
20 Дек 2015
Сообщения
242
Лучшие ответы
0
Репутация
-10
Как сделать с одной команды выдачи админки,чтобы не только мог основатель,но и главный администратор!

Гл.администратор мог выдавать от 0 до 7,но чтобы не могу выдать или снять основателя!
Для ГЛ.Админа
PHP:
if(AdminInfo[playerid][pAdmin] < 8) return NOTADM(playerid);
Помогите пж..с меня плюсик!

PHP:
CMD:setadmin(playerid, params[])
{
    if(!pInfo[playerid][pLogged]) return true;
	if(!CheckFD(pInfo[playerid][pName])) return NOTADM(playerid);
	
	new playername[MAX_PLAYER_NAME], admin_level;
	if(sscanf(params, "s[24]i", playername, admin_level)) return SendClientMessage(playerid, COLOR_WHITE, !"Используйте: /setadmin [Ник игрока] [Уровень]");
	if(strlen(playername) < 3) return SendClientMessage(playerid,COLOR_FLOD,!"[Ошибка]:"WH_C" Используйте НИК игрока,а не ID!");
	if(admin_level < 0 || admin_level > 9) return SendClientMessage(playerid,COLOR_FLOD,!"[Ошибка]:"WH_C" Используйте значение от 0 до 9!");
	
	new giverid = GetPlayerID(playername);

	static const fmt_str[] = "INSERT INTO "T_ADMIN" (`name`, `level`, `whoadd`, `date`, `last_connect`) VALUES ('%s', %d, '%s', '%s', '%s')";
	new string[sizeof(fmt_str) + (-2 + MAX_PLAYER_NAME) + (-2 + 4) + (-2 + MAX_PLAYER_NAME) + (-2 + 16) + (-2 + 16) + 32];
	mysql_format(dbHandle, string, sizeof(string), "SELECT * FROM "T_ADMIN" WHERE `name` = '%s'",playername);
	new Cache:result = mysql_query(dbHandle, string);
	if(cache_num_rows())
	{
		if(admin_level == 0)
		{
		    if(giverid != INVALID_PLAYER_ID) format(string,sizeof(string),"%s %s[%d] снял Вас с должности администратора",Admin_Rank[AdminInfo[playerid][pAdmin]],pInfo[playerid][pName],playerid),SendClientMessage(giverid,COLOR_AMBER,string),RemoveAdmin(giverid);
		    else
		    {
		        mysql_format(dbHandle, string, sizeof(string), "DELETE FROM "T_ADMIN" WHERE `name` = '%s'", playername);
				mysql_query(dbHandle, string);
		    }

		    format(string,sizeof(string),"[A] %s %s[%d] снял %s с должности администратора",Admin_Rank[AdminInfo[playerid][pAdmin]],pInfo[playerid][pName],playerid,playername);
			ASendClientMessage(COLOR_ADMIN,string);
			
		    format(string,sizeof(string),"Вы сняли %s с должности администратора",playername);
			SendClientMessage(playerid,COLOR_WHITE,string);
			
			format(string,sizeof(string),"Снял администратора %s",playername);
	    	WriteLog(pInfo[playerid][pName],string);

	    	format(string,sizeof(string),"Был снят администратором %s",pInfo[playerid][pName]);
	    	WriteLog(playername,string);
		}
		else
		{
		    if(giverid != INVALID_PLAYER_ID)
		    {
		        format(string,sizeof(string),"%s %s[%d] установил Вам %d уровень админ.прав",Admin_Rank[AdminInfo[playerid][pAdmin]],pInfo[playerid][pName],playerid,admin_level);
				SendClientMessage(giverid,COLOR_AMBER,string);
		        if(AdminInfo[giverid][pDostup]) AdminInfo[giverid][pAdmin] = admin_level;
		    }
	        mysql_format(dbHandle, string, sizeof(string), "UPDATE "T_ADMIN" SET `level` = '%d' WHERE `name` = '%s'", admin_level,playername);
			mysql_query(dbHandle, string);

		    format(string,sizeof(string),"[A] %s %s[%d] установил %s %d уровень админ.прав",Admin_Rank[AdminInfo[playerid][pAdmin]],pInfo[playerid][pName],playerid,playername,admin_level);
			ASendClientMessage(COLOR_ADMIN,string);
			
		    format(string,sizeof(string),"Вы установили %d уровень админ.прав для %s",admin_level,playername);
			SendClientMessage(playerid,COLOR_WHITE,string);
			
			format(string,sizeof(string),"Установил %d уровень админки для %s",playername,admin_level);
	    	WriteLog(pInfo[playerid][pName],string);

	    	format(string,sizeof(string),"Получил %d уровень админки от %s",admin_level,pInfo[playerid][pName]);
	    	WriteLog(playername,string);
		}
	}
	else
	{
	    if(admin_level == 0) return SendClientMessage(playerid,COLOR_FLOD,!"[Ошибка]:"WH_C" Игрок не является администратором!");

	    if(giverid != INVALID_PLAYER_ID)
	    {
	        format(string,sizeof(string),"%s %s[%d] назначил Вас администратором %d уровня",Admin_Rank[AdminInfo[playerid][pAdmin]],pInfo[playerid][pName],playerid,admin_level),SendClientMessage(giverid,COLOR_AMBER,string);
	        SendClientMessage(giverid,COLOR_AMBER,"[A] Используйте /alogin для авторизации в админ - панели. Команды/Нормативы: /ahelp");
	    }

	    new data[16]; GetDT(1,data);
		mysql_format(dbHandle, string, sizeof(string), fmt_str, playername, admin_level,pInfo[playerid][pName],data,data);
		mysql_tquery(dbHandle, string);

		format(string,sizeof(string),"[A] %s %s[%d] назначил %s администратором %d уровня",Admin_Rank[AdminInfo[playerid][pAdmin]],pInfo[playerid][pName],playerid,playername,admin_level);
		ASendClientMessage(COLOR_ADMIN,string);
		
		format(string,sizeof(string),"[A] Вы добавили %s в список администрации. Уровень полномочий: %d",playername,admin_level);
		SendClientMessage(playerid,COLOR_AMBER,string);
		
		format(string,sizeof(string),"Назначил %s администратором %d уровня",playername,admin_level);
    	WriteLog(pInfo[playerid][pName],string);
    	
    	format(string,sizeof(string),"Был назначен администратором %d уровня от %s",admin_level,pInfo[playerid][pName]);
    	WriteLog(playername,string);
	}
	cache_delete(result);
	return true;
}


---------- Сообщение добавлено в 01:58 ---------- Предыдущее сообщение добавлено в 00:04 ----------

20 Просмотров и не одного ответа, недоскриптеры !
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу