Доступ к архиву

Переход в группу "Пользователь"

300.00 ₽
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

/makeadmin

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

Excelsior

Новичок
Данная команда сделана для выдачи админки до 5 уровня. Если вам этого мало, можете добавить еще несколько уровней в диалог.

В public OnPlayerCommandText(playerid, cmdtext[]):
if(strcmp("/makeadmin", cmdtext, true) == 0)
PHP:
{ 
        if(IsPlayerAdmin(playerid)) // если игрок - RCON admin
        {
            ShowPlayerDialog(playerid,1555,DIALOG_STYLE_LIST,"Выдача административных прав:","Администратор 1 уровня\nАдминистратор 2 уровня\nАдминистратор 3 уровня\nАдминистратор 4 уровня\nАдминистратор 5 уровня\n{FF6347}Снять права администратора","Продолжить"," Отмена");
			return 1;
        }
        else // Если игрок не RCON admin
        {
            SendClientMessage(playerid, COLOR_GREY, "У вас нет прав для использования данной команды.");
            return 1;
        }
}
В public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]):
PHP:
switch(dialogid)
	{
	case 1555:
	{
		if(response)
		{
			switch(listitem)
			{
            	case 0: ShowPlayerDialog(playerid, 1556, DIALOG_STYLE_INPUT, "Выдать 1 уровень админки","Введите ID игрока, которому вы хотите выдать права администратора", "Выдать", "Отмена");
            	case 1: ShowPlayerDialog(playerid, 1557, DIALOG_STYLE_INPUT, "Выдать 2 уровень админки","Введите ID игрока, которому вы хотите выдать права администратора", "Выдать", "Отмена");
            	case 2: ShowPlayerDialog(playerid, 1558, DIALOG_STYLE_INPUT, "Выдать 3 уровень админки","Введите ID игрока, которому вы хотите выдать права администратора", "Выдать", "Отмена");
            	case 3: ShowPlayerDialog(playerid, 1559, DIALOG_STYLE_INPUT, "Выдать 4 уровень админки","Введите ID игрока, которому вы хотите выдать права администратора", "Выдать", "Отмена");
				case 4: ShowPlayerDialog(playerid, 1560, DIALOG_STYLE_INPUT, "Выдать 5 уровень админки","Введите ID игрока, которому вы хотите выдать права администратора", "Выдать", "Отмена");
				case 5: ShowPlayerDialog(playerid, 1561, DIALOG_STYLE_INPUT, "Снять админку","Введите ID игрока, которому вы хотите снять права администратора", "Снять", "Отмена");
			}
		}
    }
	case 1556:
    {
        if(response)
        {
			new string556[255];
            new pname[MAX_PLAYER_NAME];
            new idd = strval(inputtext);
            new lname[MAX_PLAYER_NAME];
            if(idd == INVALID_PLAYER_ID)
            {
                SendClientMessage(playerid, COLOR_GREY, "На сервере нет игрока с таким ID.");
                return 1;
            }
            if(Player[idd][pAdmin] == 1)
            {
                SendClientMessage(playerid, COLOR_GREY, "Этот человек уже имеет административные права!");
                return 1;
            }
            GetPlayerName(idd, pname, sizeof(pname));
            format(string556, sizeof(string556), "Вы выдали административные права 1 уровня игроку {FFFFFF}%s{6495ED}, ID {FFFFFF}%d{6495ED}.",pname, idd);
            SendClientMessage(playerid, COLOR_BLUE, string556);
            Player[idd][pAdmin] = 1;
            GetPlayerName(playerid, lname, sizeof(lname));
            format(string556, sizeof(string556), "Администратор {FFFFFF}%s {6495ED}выдал вам административные права 1 уровня.",lname);
			SendClientMessage(idd, COLOR_BLUE, string556);
        }
    }
	case 1557:
    {
        if(response)
        {
            new string557[255];
            new pname[MAX_PLAYER_NAME];
            new idd = strval(inputtext);
            new lname[MAX_PLAYER_NAME];
            if(idd == INVALID_PLAYER_ID)
            {
                SendClientMessage(playerid, COLOR_GREY, "На сервере нет игрока с таким ID.");
                return 1;
            }
            if(Player[idd][pAdmin] == 2)
            {
                SendClientMessage(playerid, COLOR_GREY, "Этот человек уже имеет административные права!");
                return 1;
            }
            GetPlayerName(idd, pname, sizeof(pname));
            format(string557, sizeof(string557), "Вы выдали административные права 2 уровня игроку {FFFFFF}%s{6495ED}, ID {FFFFFF}%d{6495ED}.",pname, idd);
            SendClientMessage(playerid, COLOR_BLUE, string557);
            Player[idd][pAdmin] = 2;
            GetPlayerName(playerid, lname, sizeof(lname));
            format(string557, sizeof(string557), "Администратор {FFFFFF}%s {6495ED}выдал вам административные права 2 уровня.",lname);
			SendClientMessage(idd, COLOR_BLUE, string557);
        }
    }
	case 1558:
    {
        if(response)
        {
            new string558[255];
            new pname[MAX_PLAYER_NAME];
            new idd = strval(inputtext);
            new lname[MAX_PLAYER_NAME];
            if(idd == INVALID_PLAYER_ID)
            {
                SendClientMessage(playerid, COLOR_GREY, "На сервере нет игрока с таким ID.");
                return 1;
            }
            if(Player[idd][pAdmin] == 3)
            {
                SendClientMessage(playerid, COLOR_GREY, "Этот человек уже имеет административные права!");
                return 1;
            }
            GetPlayerName(idd, pname, sizeof(pname));
            format(string558, sizeof(string558), "Вы выдали административные права 3 уровня игроку {FFFFFF}%s{6495ED}, ID {FFFFFF}%d{6495ED}.",pname, idd);
            SendClientMessage(playerid, COLOR_BLUE, string558);
            Player[idd][pAdmin] = 3;
            GetPlayerName(playerid, lname, sizeof(lname));
            format(string558, sizeof(string558), "Администратор {FFFFFF}%s {6495ED}выдал вам административные права 3 уровня.",lname);
			SendClientMessage(idd, COLOR_BLUE, string558);
        }
    }
	case 1559:
    {
        if(response)
        {
            new string559[255];
            new pname[MAX_PLAYER_NAME];
            new idd = strval(inputtext);
            new lname[MAX_PLAYER_NAME];
            if(idd == INVALID_PLAYER_ID)
            {
                SendClientMessage(playerid, COLOR_GREY, "На сервере нет игрока с таким ID.");
                return 1;
            }
            if(Player[idd][pAdmin] == 4)
            {
                SendClientMessage(playerid, COLOR_GREY, "Этот человек уже имеет административные права!");
                return 1;
            }
            GetPlayerName(idd, pname, sizeof(pname));
            format(string559, sizeof(string559), "Вы выдали административные права 4 уровня игроку {FFFFFF}%s{6495ED}, ID {FFFFFF}%d{6495ED}.",pname, idd);
            SendClientMessage(playerid, COLOR_BLUE, string559);
            Player[idd][pAdmin] = 4;
            GetPlayerName(playerid, lname, sizeof(lname));
            format(string559, sizeof(string559), "Администратор {FFFFFF}%s {6495ED}выдал вам административные права 4 уровня.",lname);
			SendClientMessage(idd, COLOR_BLUE, string559);
        }
    }
	case 1560:
    {
        if(response)
        {
            new string560[255];
            new pname[MAX_PLAYER_NAME];
            new idd = strval(inputtext);
            new lname[MAX_PLAYER_NAME];
            if(idd == INVALID_PLAYER_ID)
            {
                SendClientMessage(playerid, COLOR_GREY, "На сервере нет игрока с таким ID.");
                return 1;
            }
            if(Player[idd][pAdmin] == 5)
            {
                SendClientMessage(playerid, COLOR_GREY, "Этот человек уже имеет административные права!");
                return 1;
            }
            GetPlayerName(idd, pname, sizeof(pname));
            format(string560, sizeof(string560), "Вы выдали административные права 5 уровня игроку {FFFFFF}%s{6495ED}, ID {FFFFFF}%d{6495ED}.",pname, idd);
            SendClientMessage(playerid, COLOR_BLUE, string560);
            Player[idd][pAdmin] = 5;
            GetPlayerName(playerid, lname, sizeof(lname));
            format(string560, sizeof(string560), "Администратор {FFFFFF}%s {6495ED}выдал вам административные права 5 уровня.",lname);
			SendClientMessage(idd, COLOR_BLUE, string560);
			}
		}
	case 1561:
    {
        if(response)
        {
            new string560[255];
            new pname[MAX_PLAYER_NAME];
            new idd = strval(inputtext);
            new lname[MAX_PLAYER_NAME];
            if(idd == INVALID_PLAYER_ID)
            {
                SendClientMessage(playerid, COLOR_GREY, "На сервере нет игрока с таким ID.");
                return 1;
            }
            if(Player[idd][pAdmin] == 0)
            {
                SendClientMessage(playerid, COLOR_GREY, "У этого игрока итак нет админки!");
                return 1;
            }
            GetPlayerName(idd, pname, sizeof(pname));
            format(string560, sizeof(string560), "Вы сняли административные права игроку {FFFFFF}%s{6495ED}, ID {FFFFFF}%d{6495ED}.",pname, idd);
            SendClientMessage(playerid, COLOR_BLUE, string560);
            Player[idd][pAdmin] = 0;
            GetPlayerName(playerid, lname, sizeof(lname));
            format(string560, sizeof(string560), "Администратор {FFFFFF}%s{6495ED} снял с вас административные права.",lname);
			SendClientMessage(idd, COLOR_BLUE, string560);
			}
		}
    }
Примечание: Player[playerid][pAdmin] заменить на своё (например на PlayerInfo[playerid][pAdmin])

Скриншоты:

Выдача административных прав
Диалог в вводом ID игрока
Сообщение при выдаче админки
1 строка пишется администратору
2 строка пишется игроку, получившему админку
Сообщение при снятии админки
1 строка пишется администратору
2 строка пишется игроку, которому снимаете админку
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу