Показано с 1 по 4 из 4

Тема: /makeadmin [ошибка] [помощь]

  1. #1
    Пользователь
    Регистрация
    08.06.2015
    Сообщений
    1
    Репутация: 10

    Звание: на пути к лучшему

    Печаль /makeadmin [ошибка] [помощь]

    Извиняюсь, если ошибся разделом.
    Собственно, что не так с кодом? Нельзя выдать админку любого уровня, если ты Гл.А.
    Заранее благодарю за помощь :bs:
    Сам код:

    Код HTML:
    if(strcmp(cmd, "/makeadmin", true) == 0)
    	{
    	    if(IsPlayerConnected(playerid))
    	    {
       tmp = strtok(cmdtext, idx);
    			if(!strlen(tmp))
    			{
    				SendClientMessage(playerid, COLOR_GRAD2, "/makeadmin [id игрока] [level(1-5)](0 чтобы снять)");
    				return 1;
    			}
    			if(PlayerInfo[playerid][pAdmin] >= 1)
        {
        if (dostup[playerid] != true) return ShowPlayerDialog(playerid,9922,DIALOG_STYLE_PASSWORD,"Доступ","Для надежной защиты, просим Вс ввести свой индивидуальный пароль для доступа к модераторским командам","Ок","Отмена");
        }
    			new para1;
    			new level;
    			para1 = ReturnUser(tmp);
    			tmp = strtok(cmdtext, idx);
    			level = strval(tmp);
    			if(level > 5 || level < 0) { SendClientMessage(playerid, COLOR_GREY, "От 0 до 5."); return 1; }
                if(PlayerInfo[playerid][pGivem] >= 1)
    			{
    			    if(IsPlayerConnected(para1))
    			    {
    			        if(para1 != INVALID_PLAYER_ID)
    			        {
    			            new kols[64];
                            new popa = PlayerInfo[para1][pAdmin];
                            if(popa == 1) { kols = "Модератора"; }
                            else if(popa == 3) { kols = "Модератора"; }
                            else if(popa == 2) { kols = "Модератора"; }
                            else if(popa == 4) { kols = "Гл.Модератора"; }
                            else if(popa == 5) { kols = "Гл.Администратора"; }
    			            GetPlayerName(para1, giveplayer, sizeof(giveplayer));
    		                GetPlayerName(playerid, sendername, sizeof(sendername));
    						if(level >= 1)
    						{
    						format(string, sizeof(string), "Твой уровень администрирования теперь %d | Изменил Гл.Администратор %s.", level, sendername);
    						SendClientMessage(para1, COLOR_LIGHTBLUE, string);
    						format(string, sizeof(string), "Вы повысили/понизили %s до %d уровня администрирования.", giveplayer,level);
    						SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
    						if(PlayerInfo[para1][pDostup] == 0)
    						{
    						PlayerInfo[para1][pDostup] = 1248523213564;
    						PlayerInfo[para1][pAdmin] = level;
    						}
    						else if(PlayerInfo[para1][pDostup] > 0)
    						{
    						PlayerInfo[para1][pAdmin] = level;
    						}
    						}
    						if(level == 0)
    						{
    						format(string, sizeof(string), "Ты был(а) снят с поста %s | Гл.Администратором %s.", kols, sendername);
    						SendClientMessage(para1, COLOR_LIGHTBLUE, string);
    						format(string, sizeof(string), "Вы сняли %s с поста %s.", giveplayer,kols);
    						SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
    						PlayerInfo[para1][pAdmin] = 0;
    						}
    					}
    				}
    			}
    			else
    			{
    				SendClientMessage(playerid, COLOR_GRAD1, "Недостаточно прав для использования команды.");
    			}
    		}
    		return 1;
    	}
    	if(strcmp(cmd, "/dellpass", true) == 0)
    	{
    		if(IsPlayerConnected(playerid))
            {
                if(PlayerInfo[playerid][pAdmin] < 3)
                {
    		        format(string, sizeof(string), "Недостаточно прав для использования команды.");
                    SendClientMessage(playerid, COLOR_GRAD1, string);
    			    return 1;
    			}
    			tmp = strtok(cmdtext, idx);
    			if(!strlen(tmp))
    			{
    				SendClientMessage(playerid, COLOR_GRAD1, "/dellpass [id игрока]");
    				return 1;
    			}
    			if(PlayerInfo[giveplayerid][pDostupL] == 0)
    			{
    			format(string, sizeof(string), "У игрока нету дополнительного пароля.", giveplayer);
                SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
                return 1;
                }
    			giveplayerid = ReturnUser(tmp);
    			if (IsPlayerConnected(giveplayerid))
    			 {
    			 PlayerInfo[giveplayerid][pDostupL] = 0;
               format(string, sizeof(string), "Ты удалил дополнительный пароль.", giveplayer);
               SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
               return 1;
               }
               }
               }

  2. #2
    Активный пользователь Аватар для Manhattan
    Регистрация
    02.04.2014
    Адрес
    Львов
    Сообщений
    141
    Репутация: 8

    Звание: пока не определено

    Re: /makeadmin [ошибка] [помощь]

    кодвырвиглаз
    че-то я не врубаюсь в этот код

  3. 1 пользователь сказал cпасибо Manhattan за это полезное сообщение:

    Y@riK (20.08.2015)

  4. #3
    Пользователь
    Регистрация
    27.07.2012
    Сообщений
    55
    Репутация: 8

    Звание: пока не определено

    Re: /makeadmin [ошибка] [помощь]

    На, держи
    Админ 5-го и больше уровня может поставить любой уровень админа, хоть 1000-ый. Это если я тебя правильно понял.
    Если тебе нужно было только до 5-го, то убери '//' перед условием с level

    if(strcmp(cmd, "/makeadmin", true) == 0) {
    if(IsPlayerConnected(playerid)) {
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp)) {
    SendClientMessage(playerid, COLOR_GRAD2, "/makeadmin [id игрока] [level(1-5)](0 чтобы снять)");
    return 1;
    }
    if(PlayerInfo[playerid][pAdmin] >= 1) {
    if (dostup[playerid] != true) return ShowPlayerDialog(playerid,9922,DIALOG_STYLE_PASSWORD,"Доступ","Для надежной защиты, просим Вс ввести свой индивидуальный пароль для доступа к модераторским командам","Ок","Отмена");
    }
    new para1;
    new level;
    para1 = ReturnUser(tmp);
    tmp = strtok(cmdtext, idx);
    level = strval(tmp);
    //if(level > 5 || level < 0) { SendClientMessage(playerid, COLOR_GREY, "От 0 до 5."); return 1; }
    if(PlayerInfo[playerid][pGivem] >= 1 || PlayerInfo[playerid][pAdmin] >= 5) {
    if(IsPlayerConnected(para1)) {
    if(para1 != INVALID_PLAYER_ID) {
    new kols[64];
    new popa = PlayerInfo[para1][pAdmin];
    if(popa == 1) { kols = "Модератора"; }
    else if(popa == 3) { kols = "Модератора"; }
    else if(popa == 2) { kols = "Модератора"; }
    else if(popa == 4) { kols = "Гл.Модератора"; }
    else if(popa >= 5) { kols = "Гл.Администратора"; }

    GetPlayerName(para1, giveplayer, sizeof(giveplayer));
    GetPlayerName(playerid, sendername, sizeof(sendername));
    if(level >= 1)
    {
    format(string, sizeof(string), "Твой уровень администрирования теперь %d | Изменил Гл.Администратор %s.", level, sendername);
    SendClientMessage(para1, COLOR_LIGHTBLUE, string);
    format(string, sizeof(string), "Вы повысили/понизили %s до %d уровня администрирования.", giveplayer,level);
    SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
    if(PlayerInfo[para1][pDostup] == 0)
    {
    PlayerInfo[para1][pDostup] = 1248523213564;
    PlayerInfo[para1][pAdmin] = level;
    }
    else if(PlayerInfo[para1][pDostup] > 0)
    {
    PlayerInfo[para1][pAdmin] = level;
    }
    }
    if(level == 0)
    {
    format(string, sizeof(string), "Ты был(а) снят с поста %s | Гл.Администратором %s.", kols, sendername);
    SendClientMessage(para1, COLOR_LIGHTBLUE, string);
    format(string, sizeof(string), "Вы сняли %s с поста %s.", giveplayer,kols);
    SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
    PlayerInfo[para1][pAdmin] = 0;
    }
    }
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GRAD1, "Недостаточно прав для использования команды.");
    }
    }
    return 1;
    }

  5. #4
    Проверенный Аватар для PawnoKokolotov
    Регистрация
    12.08.2010
    Адрес
    Пермский край
    Возраст
    27
    Сообщений
    1,205
    Репутация: 161

    Звание: - весьма и весьма положительная личность

    Re: /makeadmin [ошибка] [помощь]

    PHP код:
    if(level || level 0) { SendClientMessage(playeridCOLOR_GREY"От 0 до 5."); return 1; } 
    Вот эта строка ограничивает "любой уровень админки". Можешь первую цифру изменить с 5 на 100
    Y

Похожие темы

  1. Помогите сделать /makeadmin только для RCON
    от Moose25 в разделе Вопросы по скриптингу
    Ответов: 13
    Последнее сообщение: 02.04.2015, 10:16
  2. Проблема с прописанием /makeadmin
    от Kymap в разделе Вопросы по скриптингу
    Ответов: 0
    Последнее сообщение: 21.01.2015, 10:03
  3. Проблема с командой /makeadmin
    от textdraw в разделе Вопросы по скриптингу
    Ответов: 2
    Последнее сообщение: 11.08.2013, 17:23
  4. Сделал команду подобно /makeadmin ,а она не работает!
    от Desert_Fox в разделе Вопросы по скриптингу
    Ответов: 1
    Последнее сообщение: 01.05.2013, 23:22

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •