Доступ к готовым решениям

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

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

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

Мануал Система жучка для FBI | SAMP-RP

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

SoM

Ученик
Ко всем new
PHP:
new tipsterq[MAX_PLAYERS];
new tipsterw = -1;
new tipstere = -1;
new tipsterl[MAX_PLAYERS];
В public OnPlayerConnect(playerid)
PHP:
tipsterq[playerid] = 0;
tipsterl[playerid] = 0;
В public OnPlayerDisconnect(playerid, reason)
PHP:
	if(tipstere == playerid)
	{
	    SendRadioMessage(2,COLOR_ISPOLZUY ,"Игрок покинул район. Прослушивание отключено");
	    tipsterw = -1;
	    tipstere = -1;
	}
В public OnPlayerCommandText(playerid, cmdtext[])
PHP:
if(strcmp(cmd, "/tipster",true)==0)
	{
		if(IsPlayerConnected(playerid))
		{
		x_job = strtok(cmdtext, idx);
    	if(PlayerInfo[playerid][pMember] != 2)return SendClientMessage(playerid, COLOR_GREY, "Вы не полицейский/агент FBI");
		if(!strlen(x_job))
		{
			SendClientMessage(playerid, COLOR_WHITE, "Введите: /tipster [действие]. Доступные действия:");
			SendClientMessage(playerid, COLOR_WHITE, "  GET - Взять жучок.");
			SendClientMessage(playerid, COLOR_WHITE, "  SET - Прикрепить жучок к игроку.");
			SendClientMessage(playerid, COLOR_WHITE, "  REMOVE - Деактивировать жучок.");
			SendClientMessage(playerid, COLOR_WHITE, "  LISTEN - Начать прослушивание чата фракции.");
			return true;
		}
		else if(strcmp(x_job, "get",true) == 0)
		{
	    	if(PlayerInfo[playerid][pRank] < 6) return SendClientMessage(playerid,COLOR_ISPOLZUY,"Вам недоступна данная функция!");
	    	if(GetPlayerVehicleID(playerid) >= fbicar[0] && GetPlayerVehicleID(playerid) <= fbicar[8]) {}
	    	else return SendClientMessage(playerid,COLOR_GREY,"Вы должны находиться в автомобиле FBI");
	    	if(tipsterq[playerid]) return SendClientMessage(playerid,COLOR_ISPOLZUY,"У вас уже есть жучок");
	    	tipsterq[playerid] = 1;
	    	SendClientMessage(playerid,COLOR_ISPOLZUY,"Вы взяли жучок! Используйте /tipster SET [id].");
	    	format(string,sizeof(string),"%s взял жучок из автомобиля",Name(playerid));
	    	SendRadioMessage(2,COLOR_ISPOLZUY, string);
		}
				else if(strcmp(x_job, "set",true) == 0)
		{
	    	new ammo;
	    	if(PlayerInfo[playerid][pRank] < 6) return SendClientMessage(playerid,COLOR_ISPOLZUY,"Вам недоступна данная функция!");
	    	tmp = strtok(cmdtext, idx);
		if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_WHITE, "Введите: /tipster SET [playerid]");
		ammo = strval(tmp);
	    	if(!tipsterq[playerid]) return SendClientMessage(playerid,COLOR_ISPOLZUY,"У вас нет жучка");
	    	if(!ProxDetectorS(2.0, playerid, ammo)) return SendClientMessage(playerid,COLOR_ISPOLZUY,"Игрок далеко от вас");
	    	if(tipsterw != -1) return SendClientMessage(playerid,COLOR_ISPOLZUY,"Жучок уже прикреплен! Используйте /tipster REMOVE");
	    	if(!PlayerInfo[ammo][pMember]) return SendClientMessage(playerid,COLOR_ISPOLZUY,"Игрок не состоит в организации");
	        tipsterq[playerid] = 0;
	    	tipsterw = PlayerInfo[ammo][pMember];
	    	tipstere = ammo;
		format(string,sizeof(string),"%s прикрепил жучок к игроку %s. Используйте /tipster LISTEN для прослушивания",Name(playerid),Name(ammo));
	    	SendRadioMessage(2,COLOR_ISPOLZUY, string);
	    	SendClientMessage(playerid,COLOR_ISPOLZUY,"Вы прикрепили жучок к игроку! Используйте /tipster LISTEN");
		}
		else if(strcmp(x_job, "listen",true) == 0)
		{
	    	if(tipsterw == -1) return SendClientMessage(playerid,COLOR_ISPOLZUY,"Жучок не прикреплен!");
	    	if(!tipsterl[playerid])
	    	{
	        	tipsterl[playerid] = 1;
	        	SendClientMessage(playerid,COLOR_ISPOLZUY,"Вы включили прослушивание!");
			}
			else
			{
		    	tipsterl[playerid] = 0;
	       	 	SendClientMessage(playerid,COLOR_ISPOLZUY,"Вы отключили прослушивание!");
			}
		}
 else if(strcmp(x_job, "remove",true) == 0)
		{
	    	if(PlayerInfo[playerid][pRank] < 6) return SendClientMessage(playerid,COLOR_ISPOLZUY,"Вам недоступна данная функция!");
	    	if(tipsterw == -1) return SendClientMessage(playerid,COLOR_ISPOLZUY,"Жучок не прикреплен!");
	    	tipsterw = -1;
	    	tipstere = -1;
	    	SendClientMessage(playerid,COLOR_ISPOLZUY,"Вы отключили жучок!");
		}
		return true;
	}
	}
Теперь находим команды /f и /r и в конец каждого case вставляем вот это
PHP:
				if(tipsterw == PlayerInfo[playerid][pMember])
				{
		    		foreach(new i : Player)
 					{
		    			if(tipsterl[i]) SendClientMessage(i, COLOR_LIGHTRED, string);
					}
				}
Пример с рацией фбр:
PHP:
			case 2:
			{
				switch(PlayerInfo[playerid][pRank])
				{
					case 10: { format(string, sizeof(string), "[R] Директор %s: %s", sendername, result); }
					case 9: { format(string, sizeof(string), "[R] Зам. директора %s: %s", sendername, result); }
					case 8: { format(string, sizeof(string), "[R] Инспектор %s: %s", sendername, result); }
					case 7: { format(string, sizeof(string), "[R] Глава CID %s: %s", sendername, result); }
					case 6: { format(string, sizeof(string), "[R] Глава GNK %s: %s", sendername, result); }
					case 5: { format(string, sizeof(string), "[R] Агент CID %s", sendername, result); }
					case 4: { format(string, sizeof(string), "[R] Агент GNK %s: %s", sendername, result); }
					case 3: { format(string, sizeof(string), "[R] Мл. Агент %s: %s", sendername, result); }
					case 2: { format(string, sizeof(string), "[R] Дежурный %s: %s", sendername, result); }
					case 1: { format(string, sizeof(string), "[R] Дежурный %s: %s", sendername, result); }
					default:{ format(string, sizeof(string), "[R] Стажёр %s: %s", sendername, result);}
				}
				SendRadioMessage(2, TEAM_BLUE_COLOR, string);
				if(tipsterw == PlayerInfo[playerid][pMember])
				{
		    		foreach(new i : Player)
 					{
		    			if(tipsterl[i]) SendClientMessage(i, COLOR_LIGHTRED, string);
					}
				}
				return true;
			}
Ну вроде все. Тестировал на RLS
Скриншоты:
1. Вводим команду /tipster

2. Вводим команду /tipster get не в машине

» Ну а теперь в машине :D

3. Вводим команду /tipster set [playerid]

И мы видим

4. Вводим команду /tipster listen
И видим

» Проверяем нашу прослушку

5. Вводим команду /tipster remove
И мы видим
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу