Excelsior
Новичок
Данная команда сделана для выдачи админки до 5 уровня. Если вам этого мало, можете добавить еще несколько уровней в диалог.
В public OnPlayerCommandText(playerid, cmdtext[]):
if(strcmp("/makeadmin", cmdtext, true) == 0)
В public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]):
Примечание: Player[playerid][pAdmin] заменить на своё (например на PlayerInfo[playerid][pAdmin])
Скриншоты:
Выдача административных прав
Диалог в вводом ID игрока
Сообщение при выдаче админки
1 строка пишется администратору
2 строка пишется игроку, получившему админку
Сообщение при снятии админки
1 строка пишется администратору
2 строка пишется игроку, которому снимаете админку
В 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;
}
}
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);
}
}
}
Скриншоты:
Выдача административных прав
1 строка пишется администратору
2 строка пишется игроку, получившему админку
1 строка пишется администратору
2 строка пишется игроку, которому снимаете админку
