PDA

Просмотр полной версии : [Вопрос] Как сделать прослушку чата для определеного игрока.



Zeror_Dalglish
27.06.2014, 06:08
Написал код и задумался как в OnPlayerText иммено для этого игрока планирую потом переделать earsall id но пока без ID т.к тестить надо.
Вот помогите :pardon:


CMD:earsall(playerid)
{
if(PlayerInfo[playerid][pAdmin] < 5) return true;
if(EARS_TO_ALL[playerid] == false)
{
EARS_TO_ALL[playerid] = true;
new listitems[] = "1. Прослушка (/pm)\n2. Прослушка обычного чата";
return ShowPlayerDialog(playerid, 228, DIALOG_STYLE_LIST, "Прослушка игрока", listitems, "Выбрать", "Закрыть");
}
else
{
EARS_TO_ALL[playerid] = false;
SendClientMessage(playerid, -1, "офф прослушка");
}
return true;
}

DeimoS
27.06.2014, 09:28
Глобальный массив

new wiretapping[MAX_PLAYERS][MAX_PLAYERS];
В вашем диалоге при включении прослушки

wiretapping[playerid][id] = 1;// Где "id" - ID нужного игрока, которого будет прослушивать админ
и при отключении

wiretapping[playerid][id] = 0;
В OnPlayerText

for(new i = GetMaxPlayers(); i != -1; i--)
{
if(!IsPlayerConnect(i) || PlayerInfo[i][pAdmin] < 5 || !wiretapping[i][playerid]) continue;
SendClientMessage(i,...);//Отправляем сообщение нужному нам админу
}
А лучше переписать ту функцию, которой вы отправляете сообщение в обычный чат

Zeror_Dalglish
27.06.2014, 14:09
Сделал но не до понял как в диалог нужный id отправить


case 1: SendClientMessage(playerid,0x66cc00AA,"Вы прослушавайте чат игрока"), wiretapping[playerid][id] = 1;


Если так выдает варнинг на тег
D:\=--=\gamemodes\=--=.pwn(1309) : warning 213: tag mismatch

DeimoS
27.06.2014, 20:09
Сделал но не до понял как в диалог нужный id отправить


Ну а как вы собрались выбирать нужного игрока, так и делайте.

Zeror_Dalglish
27.06.2014, 21:27
Ну а как вы собрались выбирать нужного игрока, так и делайте.



CMD:earsall(playerid, params[])
{
if(PlayerInfo[playerid][pAdmin] < 5) return true;
if(EARS_TO_ALL[playerid] == false)
{
if(sscanf(params, "u",params[0])) return SendClientMessage(playerid, RIFA_COLOR, "Введите: /earsall [id игрока]");
EARS_TO_ALL[playerid] = true;
params[0] = wiretapping[playerid][params[0]] = 1;
new listitems[] = "1. Прослушка (/pm)\n2. Прослушка обычного чата";
return ShowPlayerDialog(playerid, dEras_To_All , DIALOG_STYLE_LIST, "Прослушка игрока", listitems, "Выбрать", "Закрыть");
}
else
{
wiretapping[playerid][params[0]] = 0;
EARS_TO_ALL[playerid] = false;
SendClientMessage(playerid, -1, "офф прослушка");
}
return true;
}