Пользователь
- Регистрация
- 21 Мар 2022
- Сообщения
- 12
- Автор темы
- #1
Всех приветствую! Заливаю для вас достаточно прикольную команду, для создания приватных каналов связи. Перейдем непосредственно к самому коду.
Для начала сама команда:
Для начала сама команда:
C++:
CMD:fmenu(playerid, params[])
{
if(PlayerInfo[playerid][pMember] != F_FBI && PlayerInfo[playerid][pRank] < 8) return SendClientMessage(playerid,CGREY,"Вам недоступна данная команда"); //Проверка на фракцию, меняете под себя
if(PlayerInfo[playerid][pWork] == 0) return SendClientMessage(playerid,CGREY,"Начните рабочий день на базе организации"); //Проверка на начала рабочего дня, меняете под себя
ShowPlayerDialog(playerid,448,DIALOG_STYLE_LIST,"Меню канала","1 | Открыть/закрыть канал\n2 | Список участников\n3 | Пригласить в канал\n4 | Удалить из канала","Далее","Отмена");
return 1;
}
PlayerInfo - Ваша информация об игроке (PI, Users, pInfo)
CGREY - Цвет тексте, также можете менять под себя.
В Public OnPlayerDialogResponse
C++:
case 448:
{
if(!response) return 1;
switch(listitem)
{
case 0:
{
kanals = (!kanals) ? (true) : (false);
if(kanals) SendClientMessage(playerid,CREWARD,"Вы открыли канал!");
else SendClientMessage(playerid,CREWARD,"Вы закрыли канал!");
}
case 1:
{
new str[70];
query = "{ffffff}";
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(!IsPlayerConnected(i) || PlayerLogged[i] == false || !GetPVarInt(i,"FR")) continue;
format(str,sizeof(str),"%s [id: %d]\n",PlayerInfo[i][pSendername],i);
strcat(query,str);
}
ShowPlayerDialog(playerid,0,DIALOG_STYLE_MSGBOX,"Список участников",query,"Далее","");
}
case 2: ShowPlayerDialog(playerid,449,DIALOG_STYLE_INPUT,"Пригласить в канал","{ffffff}Введите ID игрока:\n\n","Далее","Отмена");
case 3: ShowPlayerDialog(playerid,450,DIALOG_STYLE_INPUT,"Удалить из канала","{ffffff}Введите ID игрока:\n\n","Далее","Отмена");
}
}
case 449:
{
if(!response) return ShowPlayerDialog(playerid,448,DIALOG_STYLE_LIST,"Меню канала","1 | Открыть/закрыть канал\n2 | Список участников\n3 | Пригласить в канал\n4 | Удалить из канала","Далее","Отмена");
if(!strlen(inputtext)) return ShowPlayerDialog(playerid,449,DIALOG_STYLE_INPUT,"Пригласить в канал","{ffffff}Введите ID игрока:\n\n","Далее","Отмена");
new player = strval(inputtext);
if(GetPVarInt(player,"FR")) return SendClientMessage(playerid,CGREY,"Игрок уже состоит в приватном канале!");
new Float:x,Float:y,Float:z;
GetPlayerPos(player,x,y,z);
if(!IsPlayerInRangeOfPoint(playerid, 5.0, x,y,z)) return SendClientMessage(playerid,CGREY,"Вы не рядом с игроком");
SendClientMessage(player,-1,"Вас пригласили в приватный канал. Используйте: {f7ae11}/fr");
static const fmt_string[] = "Вы пригласили %s в приватный канал";
new str[sizeof(fmt_string)+MAX_PLAYER_NAME];
format(str, sizeof(str), fmt_string,PlayerInfo[player][pSendername]);
SendClientMessage(player,CREWARD,str);
SetPVarInt(player,"FR",1);
}
case 450:
{
if(!response) return ShowPlayerDialog(playerid,448,DIALOG_STYLE_LIST,"Меню канала","1 | Открыть/закрыть канал\n2 | Список участников\n3 | Пригласить в канал\n4 | Удалить из канала","Далее","Отмена");
if(!strlen(inputtext)) return ShowPlayerDialog(playerid,450,DIALOG_STYLE_INPUT,"Удалить из канала","{ffffff}Введите ID игрока:\n\n","Далее","Отмена");
new player = strval(inputtext);
if(!GetPVarInt(player,"FR")) return SendClientMessage(playerid,CGREY,"Игрок не состоит в приватном канале!");
SendClientMessage(player,CREWARD,"Вас выгнали из приватного канала!");
static const fmt_string[] = "Вы выгнали %s из приватного канала";
new str[sizeof(fmt_string)+MAX_PLAYER_NAME];
format(str, sizeof(str), fmt_string,PlayerInfo[player][pSendername]);
SendClientMessage(player,CREWARD,str);
DeletePVar(player,"FR");
}
CREWARD - цвет текста, меняете под себя.
PlayerInfo[i][pSendername] - это информация об игровом нике (PlayerName[playerid], PN(playerid), PlayerInfo[playerid][pName]) - настраиваем также под себя.
В начало мода
C++:
new bool:kanals;