Доброго времени суток. На самом деле, сделать команду /setleader (сделать игрока лидером какой-либо фракции) на диалоговых окнах не так уж и сложно, однако многие или ленятся, или пока ещё не разбираются в Pawn и идут на форумы или фриланс-биржи (сервисы платных услуг по типу [url=https://kwork.ru/?ref=663202]«Kwork»[/url]) с просьбой сделать что-нибудь подобное.
Естественно, для начала Вам нужна система фракций. Если её нет, то и эта команда не нужна. Кстати, планирую залить готовую или написать урок по созданию своей.
Ну да ладно, хватит разглагольствовать, давайте приступим!
В [color=#0000BF]public[/color] OnPlayerCommandText мы запишем, что делать моду если игрок введёт команду /setleader. Никто не запрещает не использовать указанный ниже код, но в этом случае мы не сможем показать PlayerDialog нашему администратору.
[code]if(strcmp(cmd, «/setleader», true) == 0) {
if(pInfo[playerid][pAdmin] >= 7) { // pInfo[playerid][pAdmin] — проверка на администратора 7 ранга или больше. Заменяйте на свою.
ShowPlayerDialog(playerid,9000,2,»Выдача лидерок»,»ППС
ФСБ
Армия»,»Выбрать»,»Закрыть»);
} else {
SendClientMessage(playerid,COLOR_RED, «Ты не админ, чудик! «);
}
return true;
}[/code]

А теперь чапаем в [color=#0000BF]public[/color] OnPlayerDialogResponse дабы запрограммировать действие при выполнении диалога. Конечно, можно обойтись и без этого, однако при выборе пункта меню или нажатии кнопки «Отмена» в окошке «Выдача лидерок» вообще ничего не произойдёт.
[code]if(dialogid == 9000)
{
if(response)
{
switch(listitem)
{
case 0:
{
ShowPlayerDialog(playerid, 930, 1,»ППС»,»Введите ID игрока которому хотите выдать лидерку»,»Ок»,»Отмена»);
}
case 1:
{
ShowPlayerDialog(playerid, 931, 1,»ФСБ»,»Введите ID игрока которому хотите выдать лидерку»,»Ок»,»Отмена»);
}
case 2:
{
ShowPlayerDialog(playerid, 932, 1,»Армия»,»Введите ID игрока которому хотите выдать лидерку»,»Ок»,»Отмена»);
}
}
}
else
{
SCM(playerid,-1,»Вы отменили выдачу лидерки»);
}
return 1;
}
if(dialogid == 930)
{
if(response)
{
if(!strlen(inputtext)) return ShowPlayerDialog(playerid, 930, 1,»ППС»,»Введите ID игрока которому хотите выдать лидерку»,»Ок»,»»);
idtr[playerid] = strval(inputtext);
format(strings4,sizeof(strings4),»/setleader %d 1″,idtr[playerid]);
OnPlayerCommandText(playerid,strings4);
}
}
if(dialogid == 931)
{
if(response)
{
if(!strlen(inputtext)) return ShowPlayerDialog(playerid, 931, 1,»ФСБ»,»Введите ID игрока которому хотите выдать лидерку»,»Ок»,»»);
idtr[playerid] = strval(inputtext);
format(strings4,sizeof(strings4),»/setleader %d 2″,idtr[playerid]);
OnPlayerCommandText(playerid,strings4);
}
}
if(dialogid == 932)
{
if(response)
{
if(!strlen(inputtext)) return ShowPlayerDialog(playerid, 932, 1,»Армия»,»Введите ID игрока которому хотите выдать лидерку»,»Ок»,»»);
idtr[playerid] = strval(inputtext);
format(strings4,sizeof(strings4),»/setleader %d 3″,idtr[playerid]);
OnPlayerCommandText(playerid,strings4);
}
}[/code]

Автор: vasya2015
Немного переделал: [color=#BF0000][b]danilasar[/b][/color] (я)

От danilasar

Это я

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *