Если Вы нашли ответ на вопрос, пожалуйста, пометьте необходимый ответ лучшим (галочка сбоку от сообщения) и поблагодарите автора этого ответа поднятием репутации (плюс в нижней правой части сообщения). Спасибо.
Подробнее:
FAQ по форуму
Как пометить ответ лучшим

Question

Guest
Новичок

Можете помочь с командой? Что бы при написании например /admin Nick_Name
У него администратор сни

Спойлер

CMD:setadmin(playerid, params[])
{
    if(GetString(GetName(playerid), NAME_DEVELOPER_ONE) || GetString(GetName(playerid), NAME_DEVELOPER_TWO) || GetString(GetName(playerid), NAME_LEADERS_ONE))
    {
        if(PI[playerid][pAdmin] < 1) return 1;
        else if(AdminLogged[playerid] == false) return SCM(playerid, COLOR_GREY, YouAreNotLoggedInAsAdmin);
        new playername[24], admin_level;
        if(sscanf(params, "s[24]i", playername, admin_level)) return SCM(playerid, COLOR_WHITE, "• {66CC00}[ Ïîäñêàçêà ] {ffffff}Ââåäèòå: /setadmin [íèê èãðîêà] [óðîâåíü àäìèíà]");
        if(strfind(params[0], "_", true) == -1) return SCM(playerid,COLOR_RED,"Âïèñûâàòü íåîáõîäèìî ÍÈÊ èãðîêà, à íå ID. Ïîâòîðèòå ïîïûòêó..");

        new string[256];
        format(string, sizeof(string), "SELECT * FROM "T_ADMIN" WHERE `name` = '%s'", playername);
        mysql_tquery(dbHandle, string, "SetAdmin", "isi", playerid, playername, admin_level);
    }
    return 1;
}


И что бы не было:

    if(GetString(GetName(playerid), NAME_DEVELOPER_ONE) || GetString(GetName(playerid), NAME_DEVELOPER_TWO) || GetString(GetName(playerid), NAME_LEADERS_ONE))

И так же что бы с определенного лвл адм была доступна кмд, нельзя было снять 8 и 7 лвл адм

 

Share this post


Link to post

5 answers to this question

  • 0
Guest stibs
Новичок
Спойлер

CMD:setadmin(playerid, params[])
{
    if(PI[playerid][pAdmin] < 7) return SendClientMessage(playerid, -1, "Вы не имеете доступа к этому!");
    {
        else if(AdminLogged[playerid] == false) return SCM(playerid, COLOR_GREY, YouAreNotLoggedInAsAdmin);
        new playername[24], admin_level;
        if(sscanf(params, "s[24]i", playername, admin_level)) return SCM(playerid, COLOR_WHITE, "• {66CC00}[ Подсказка ] {ffffff}Введите: /setadmin [ник игрока] [уровень админа]");
        if(admin_level != 0 && PI[playerid][pAdmin] < 8 /*адм-уровень основателя*/) return SendClientMessage(playerid, -1, "Вы не можете назначать новых администраторов, вы можете только снимать их. Для этого используйте: /setadmin [Nick Name] 0");
        if(strfind(params[0], "_", true) == -1) return SCM(playerid,COLOR_RED,"Вписывать необходимо НИК игрока, а не ID. Повторите попытку..");
        new string[256];
        format(string, sizeof(string), "SELECT * FROM "T_ADMIN" WHERE `name` = '%s'", playername);
        mysql_tquery(dbHandle, string, "SetAdmin", "isi", playerid, playername, admin_level);
    }
    return 1;
}

 

 

Share this post


Link to post
  • 0
Guest stibs
Новичок

По моему в этом моде если прописать /setadmin Nick_Name 0 то админка снимается. Зачем изобретать велосипед и делать новую команду? 

Удалите строку, которую вы скинули и вставьте вместо нее эту:

if(PI[playerid][pAdmin] < 7) return SendClientMessage(playerid, -1, "Вы не имеете доступа к этому!"); // проверка на седьмой лвл админки, если меньше 7 выдаст ошибку

 

Share this post


Link to post
  • 0
Guest
Новичок

@stibs я хочу сделать так что бы зам мог снимать, но не мог выдавать админку

 

Share this post


Link to post
  • 0
Guest
Новичок

@stibs

Спойлер

CMD:setadmin(playerid, params[])
{
    if(GetString(GetName(playerid), NAME_DEVELOPER_ONE) || GetString(GetName(playerid), NAME_DEVELOPER_TWO) || GetString(GetName(playerid), NAME_LEADERS_ONE))
	{
	    if(PI[playerid][pAdmin] < 1) return 1;
		else if(AdminLogged[playerid] == false) return SCM(playerid, COLOR_GREY, YouAreNotLoggedInAsAdmin);
		new playername[24], admin_level;
		if(sscanf(params, "s[24]i", playername, admin_level)) return SCM(playerid, COLOR_WHITE, "• {66CC00}[ Подсказка ] {ffffff}Введите: /setadmin [ник игрока] [уровень админа]");
        if(strfind(params[0], "_", true) == -1) return SCM(playerid,COLOR_RED,"Вписывать необходимо НИК игрока, а не ID. Повторите попытку..");

		new string[256];
        format(string, sizeof(string), "SELECT * FROM "T_ADMIN" WHERE `name` = '%s'", playername);
		mysql_tquery(dbHandle, string, "SetAdmin", "isi", playerid, playername, admin_level);
	}
	return 1;
}

 

 

Edited by Daniil Roslyakov

Share this post


Link to post
Guest
This topic is now closed to further replies.
Sign in to follow this  
Followers 0
  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • снайк
      By снайк
      Проект Meridian Project (CR:MP) выходит на стадию активного расширения. Мы серьезно обновили основу мода и теперь ищем талантливых разработчиков, готовых вместе с нами дополнять и улучшать игровой мир.
       
      Важное уточнение по условиям: На текущем этапе мы работаем на энтузиазме и долгосрочную перспективу. В данный момент все средства уходят на техническую разработку и поддержание серверной инфраструктуры, поэтому сразу оплачивать работу мы не сможем.
       
      Как только сервер будет успешно запущен и начнет функционировать в штатном режиме, мы перейдем на оплату труда. Со своей стороны гарантируем честность и различные «плюшки» на сервере для членов команды.
       
      Что мы предлагаем:
      Работа над структурированным и оптимизированным модом.
      Четкие ТЗ и адекватное руководство.
      Возможность стать частью ключевого состава на старте.
       
      Наши требования:
      Уверенное владение языком PAWN.
      Знание MySQL и основ оптимизации.
      Желание развивать качественный проект, а не просто «накидать код».
      Ответственность: взялись за задачу — довели до конца.
       
      Ваши задачи:
      Разработка и внедрение новых систем (работы, функционал фракций и др.).
      Исправление багов и доработка текущего функционала.
       
      Убедительная просьба: если вас не устраивают условия работы на перспективу или вам не интересен сам процесс создания качественного продукта — пожалуйста, не тратьте наше и своё время. Мы ищем единомышленников, которые готовы расти вместе с проектом, а не тех, кто ищет легкой и быстрой наживы здесь и сейчас.
       
      Связаться с нами: 
      Telegram: https://t.me/escape_log
      ВКонтакте: https://vk.com/oskar_novicc
    • tamikmod
      By tamikmod
      проблема на фото указана, прошу помочь