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

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

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

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

Мануал AirScanner

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

<BaRReT[T]>

Новичок
Система слежения в реальном времени со встроенным поиском игроков. Подробнее в видео.

Видео:

ко всем define (0 замените на нужный ID диалога)
HTML:
#define DIALOG_FIND_PLAYERS     0
Ко всем news

HTML:
new Text:Textdraw0;
new Text:Textdraw1;
new Text:Textdraw2;
new Text:Textdraw3;
new Text:Textdraw4;
new Text:Textdraw5;
new Text:Textdraw6;
new Text:Textdraw7;
new Text:Textdraw8;
new Text:Textdraw9;
new Text:Textdraw10;
new Text:Textdraw11;
new Text:Textdraw12;

new Float:CamPos[MAX_PLAYERS][4];
new Float:OldScanPos[MAX_PLAYERS][3];
В OnGameModeInit()

HTML:
Textdraw0 = TextDrawCreate(84.000000, 2.000000, "1");
	TextDrawBackgroundColor(Textdraw0, 255);
	TextDrawFont(Textdraw0, 1);
	TextDrawLetterSize(Textdraw0, 0.000000, 50.000000);
	TextDrawColor(Textdraw0, -1);
	TextDrawSetOutline(Textdraw0, 0);
	TextDrawSetProportional(Textdraw0, 1);
	TextDrawSetShadow(Textdraw0, 1);
	TextDrawUseBox(Textdraw0, 1);
	TextDrawBoxColor(Textdraw0, 200);
	TextDrawTextSize(Textdraw0, -3.000000, 0.000000);

	Textdraw1 = TextDrawCreate(644.000000, 382.000000, "1");
	TextDrawBackgroundColor(Textdraw1, 255);
	TextDrawFont(Textdraw1, 1);
	TextDrawLetterSize(Textdraw1, 0.000000, 50.000000);
	TextDrawColor(Textdraw1, -1);
	TextDrawSetOutline(Textdraw1, 0);
	TextDrawSetProportional(Textdraw1, 1);
	TextDrawSetShadow(Textdraw1, 1);
	TextDrawUseBox(Textdraw1, 1);
	TextDrawBoxColor(Textdraw1, 200);
	TextDrawTextSize(Textdraw1, 79.000000, 0.000000);

	Textdraw2 = TextDrawCreate(642.000000, 2.000000, "1");
	TextDrawBackgroundColor(Textdraw2, 255);
	TextDrawFont(Textdraw2, 1);
	TextDrawLetterSize(Textdraw2, 0.000000, 41.700004);
	TextDrawColor(Textdraw2, -1);
	TextDrawSetOutline(Textdraw2, 0);
	TextDrawSetProportional(Textdraw2, 1);
	TextDrawSetShadow(Textdraw2, 1);
	TextDrawUseBox(Textdraw2, 1);
	TextDrawBoxColor(Textdraw2, 200);
	TextDrawTextSize(Textdraw2, 557.000000, 0.000000);

	Textdraw3 = TextDrawCreate(562.000000, 2.000000, "1");
	TextDrawBackgroundColor(Textdraw3, 255);
	TextDrawFont(Textdraw3, 1);
	TextDrawLetterSize(Textdraw3, 0.000000, 5.000000);
	TextDrawColor(Textdraw3, -1);
	TextDrawSetOutline(Textdraw3, 0);
	TextDrawSetProportional(Textdraw3, 1);
	TextDrawSetShadow(Textdraw3, 1);
	TextDrawUseBox(Textdraw3, 1);
	TextDrawBoxColor(Textdraw3, 200);
	TextDrawTextSize(Textdraw3, 0.000000, 100.000000);

	Textdraw4 = TextDrawCreate(105.000000, 390.000000, "F");
	TextDrawBackgroundColor(Textdraw4, 255);
	TextDrawFont(Textdraw4, 2);
	TextDrawLetterSize(Textdraw4, 0.500000, 1.000000);
	TextDrawColor(Textdraw4, -1);
	TextDrawSetOutline(Textdraw4, 0);
	TextDrawSetProportional(Textdraw4, 1);
	TextDrawSetShadow(Textdraw4, 1);
	TextDrawUseBox(Textdraw4, 1);
	TextDrawBoxColor(Textdraw4, -256);
	TextDrawTextSize(Textdraw4, 118.000000, 10.000000);

	Textdraw5 = TextDrawCreate(105.000000, 420.000000, "B");
	TextDrawBackgroundColor(Textdraw5, 255);
	TextDrawFont(Textdraw5, 2);
	TextDrawLetterSize(Textdraw5, 0.500000, 1.000000);
	TextDrawColor(Textdraw5, -1);
	TextDrawSetOutline(Textdraw5, 0);
	TextDrawSetProportional(Textdraw5, 1);
	TextDrawSetShadow(Textdraw5, 1);
	TextDrawUseBox(Textdraw5, 1);
	TextDrawBoxColor(Textdraw5, -256);
	TextDrawTextSize(Textdraw5, 118.000000, 10.000000);

	Textdraw6 = TextDrawCreate(85.000000, 405.000000, "L");
	TextDrawBackgroundColor(Textdraw6, 255);
	TextDrawFont(Textdraw6, 2);
	TextDrawLetterSize(Textdraw6, 0.500000, 1.000000);
	TextDrawColor(Textdraw6, -1);
	TextDrawSetOutline(Textdraw6, 0);
	TextDrawSetProportional(Textdraw6, 1);
	TextDrawSetShadow(Textdraw6, 1);
	TextDrawUseBox(Textdraw6, 1);
	TextDrawBoxColor(Textdraw6, 0);
	TextDrawTextSize(Textdraw6, 98.000000, 10.000000);

	Textdraw7 = TextDrawCreate(125.000000, 405.000000, "R");
	TextDrawBackgroundColor(Textdraw7, 255);
	TextDrawFont(Textdraw7, 2);
	TextDrawLetterSize(Textdraw7, 0.500000, 1.000000);
	TextDrawColor(Textdraw7, -1);
	TextDrawSetOutline(Textdraw7, 0);
	TextDrawSetProportional(Textdraw7, 1);
	TextDrawSetShadow(Textdraw7, 1);
	TextDrawUseBox(Textdraw7, 1);
	TextDrawBoxColor(Textdraw7, 0);
	TextDrawTextSize(Textdraw7, 138.000000, 10.000000);

	Textdraw8 = TextDrawCreate(143.000000, 390.000000, "1");
	TextDrawBackgroundColor(Textdraw8, 255);
	TextDrawFont(Textdraw8, 2);
	TextDrawLetterSize(Textdraw8, 0.000000, 4.499999);
	TextDrawColor(Textdraw8, -1);
	TextDrawSetOutline(Textdraw8, 0);
	TextDrawSetProportional(Textdraw8, 1);
	TextDrawSetShadow(Textdraw8, 1);
	TextDrawUseBox(Textdraw8, 1);
	TextDrawBoxColor(Textdraw8, 1684301000);
	TextDrawTextSize(Textdraw8, 80.000000, 0.000000);

	Textdraw9 = TextDrawCreate(155.000000, 390.000000, "Find");
	TextDrawBackgroundColor(Textdraw9, 255);
	TextDrawFont(Textdraw9, 2);
	TextDrawLetterSize(Textdraw9, 0.500000, 1.000000);
	TextDrawColor(Textdraw9, -1);
	TextDrawSetOutline(Textdraw9, 0);
	TextDrawSetProportional(Textdraw9, 1);
	TextDrawSetShadow(Textdraw9, 1);
	TextDrawUseBox(Textdraw9, 1);
	TextDrawBoxColor(Textdraw9, 1684301000);
	TextDrawTextSize(Textdraw9, 200.000000, 15.000000);

	Textdraw10 = TextDrawCreate(573.000000, 5.000000, "Close");
	TextDrawBackgroundColor(Textdraw10, 255);
	TextDrawFont(Textdraw10, 2);
	TextDrawLetterSize(Textdraw10, 0.500000, 1.000000);
	TextDrawColor(Textdraw10, -1);
	TextDrawSetOutline(Textdraw10, 0);
	TextDrawSetProportional(Textdraw10, 1);
	TextDrawSetShadow(Textdraw10, 1);
	TextDrawUseBox(Textdraw10, 1);
	TextDrawBoxColor(Textdraw10, 1684301000);
	TextDrawTextSize(Textdraw10, 636.000000, 15.000000);

	Textdraw11 = TextDrawCreate(155.000000, 405.000000, "Zoom +");
	TextDrawBackgroundColor(Textdraw11, 255);
	TextDrawFont(Textdraw11, 2);
	TextDrawLetterSize(Textdraw11, 0.290000, 1.000000);
	TextDrawColor(Textdraw11, -1);
	TextDrawSetOutline(Textdraw11, 0);
	TextDrawSetProportional(Textdraw11, 1);
	TextDrawSetShadow(Textdraw11, 1);
	TextDrawUseBox(Textdraw11, 1);
	TextDrawBoxColor(Textdraw11, 1684301000);
	TextDrawTextSize(Textdraw11, 200.000000, 15.000000);

	Textdraw12 = TextDrawCreate(155.000000, 421.000000, "Zoom -");
	TextDrawBackgroundColor(Textdraw12, 255);
	TextDrawFont(Textdraw12, 2);
	TextDrawLetterSize(Textdraw12, 0.290000, 1.000000);
	TextDrawColor(Textdraw12, -1);
	TextDrawSetOutline(Textdraw12, 0);
	TextDrawSetProportional(Textdraw12, 1);
	TextDrawSetShadow(Textdraw12, 1);
	TextDrawUseBox(Textdraw12, 1);
	TextDrawBoxColor(Textdraw12, 1684301000);
	TextDrawTextSize(Textdraw12, 200.000000, 15.000000);

	TextDrawSetSelectable(Textdraw4,true);
	TextDrawSetSelectable(Textdraw5,true);
	TextDrawSetSelectable(Textdraw6,true);
	TextDrawSetSelectable(Textdraw7,true);
	TextDrawSetSelectable(Textdraw9,true);
	TextDrawSetSelectable(Textdraw10,true);
	TextDrawSetSelectable(Textdraw11,true);
	TextDrawSetSelectable(Textdraw12,true);
В OnPlayerClickTextDraw

HTML:
		if(clickedid == Textdraw4)
		{
		    CamPos[playerid][1] += 30.0;
		    CamPos[playerid][0] += 30.0;
			SetPlayerPos(playerid,CamPos[playerid][0],CamPos[playerid][1],CamPos[playerid][3]);
			SetPlayerCameraPos(playerid,CamPos[playerid][0],CamPos[playerid][1],CamPos[playerid][2]);
			SetPlayerCameraLookAt(playerid,CamPos[playerid][0],CamPos[playerid][1],CamPos[playerid][2]-100,1);
		}
		else if(clickedid == Textdraw5)
		{
		    CamPos[playerid][1] -= 30.0;
		    CamPos[playerid][0] -= 30.0;
			SetPlayerPos(playerid,CamPos[playerid][0],CamPos[playerid][1],CamPos[playerid][3]);
			SetPlayerCameraPos(playerid,CamPos[playerid][0],CamPos[playerid][1],CamPos[playerid][2]);
			SetPlayerCameraLookAt(playerid,CamPos[playerid][0],CamPos[playerid][1],CamPos[playerid][2]-100,1);
		}
		else if(clickedid == Textdraw6)
		{
		    CamPos[playerid][0] -= 30.0;
		    CamPos[playerid][1] += 30.0;
			SetPlayerPos(playerid,CamPos[playerid][0],CamPos[playerid][1],CamPos[playerid][3]);
			SetPlayerCameraPos(playerid,CamPos[playerid][0],CamPos[playerid][1],CamPos[playerid][2]);
			SetPlayerCameraLookAt(playerid,CamPos[playerid][0],CamPos[playerid][1],CamPos[playerid][2]-100,1);
		}
		else if(clickedid == Textdraw7)
		{
		    CamPos[playerid][0] += 30.0;
		    CamPos[playerid][1] -= 30.0;
			SetPlayerPos(playerid,CamPos[playerid][0],CamPos[playerid][1],CamPos[playerid][3]);
			SetPlayerCameraPos(playerid,CamPos[playerid][0],CamPos[playerid][1],CamPos[playerid][2]);
			SetPlayerCameraLookAt(playerid,CamPos[playerid][0],CamPos[playerid][1],CamPos[playerid][2]-100,1);
		}
		else if(clickedid == Textdraw10)
		{
			TextDrawHideForPlayer(playerid,Textdraw0);
			TextDrawHideForPlayer(playerid,Textdraw1);
			TextDrawHideForPlayer(playerid,Textdraw2);
			TextDrawHideForPlayer(playerid,Textdraw3);
			TextDrawHideForPlayer(playerid,Textdraw4);
		if(clickedid == Textdraw4)
		{
		    CamPos[playerid][1] += 30.0;
		    CamPos[playerid][0] += 30.0;
			SetPlayerPos(playerid,CamPos[playerid][0],CamPos[playerid][1],CamPos[playerid][3]);
			SetPlayerCameraPos(playerid,CamPos[playerid][0],CamPos[playerid][1],CamPos[playerid][2]);
			SetPlayerCameraLookAt(playerid,CamPos[playerid][0],CamPos[playerid][1],CamPos[playerid][2]-100,1);
		}
		else if(clickedid == Textdraw5)
		{
		    CamPos[playerid][1] -= 30.0;
		    CamPos[playerid][0] -= 30.0;
			SetPlayerPos(playerid,CamPos[playerid][0],CamPos[playerid][1],CamPos[playerid][3]);
			SetPlayerCameraPos(playerid,CamPos[playerid][0],CamPos[playerid][1],CamPos[playerid][2]);
			SetPlayerCameraLookAt(playerid,CamPos[playerid][0],CamPos[playerid][1],CamPos[playerid][2]-100,1);
		}
		else if(clickedid == Textdraw6)
		{
		    CamPos[playerid][0] -= 30.0;
		    CamPos[playerid][1] += 30.0;
			SetPlayerPos(playerid,CamPos[playerid][0],CamPos[playerid][1],CamPos[playerid][3]);
			SetPlayerCameraPos(playerid,CamPos[playerid][0],CamPos[playerid][1],CamPos[playerid][2]);
			SetPlayerCameraLookAt(playerid,CamPos[playerid][0],CamPos[playerid][1],CamPos[playerid][2]-100,1);
		}
		else if(clickedid == Textdraw7)
		{
		    CamPos[playerid][0] += 30.0;
		    CamPos[playerid][1] -= 30.0;
			SetPlayerPos(playerid,CamPos[playerid][0],CamPos[playerid][1],CamPos[playerid][3]);
			SetPlayerCameraPos(playerid,CamPos[playerid][0],CamPos[playerid][1],CamPos[playerid][2]);
			SetPlayerCameraLookAt(playerid,CamPos[playerid][0],CamPos[playerid][1],CamPos[playerid][2]-100,1);
		}
		else if(clickedid == Textdraw10)
		{
			TextDrawHideForPlayer(playerid,Textdraw0);
			TextDrawHideForPlayer(playerid,Textdraw1);
			TextDrawHideForPlayer(playerid,Textdraw2);
			TextDrawHideForPlayer(playerid,Textdraw3);
			TextDrawHideForPlayer(playerid,Textdraw4);
			TextDrawHideForPlayer(playerid,Textdraw5);
			TextDrawHideForPlayer(playerid,Textdraw6);
			TextDrawHideForPlayer(playerid,Textdraw7);
			TextDrawHideForPlayer(playerid,Textdraw8);
			TextDrawHideForPlayer(playerid,Textdraw9);
			TextDrawHideForPlayer(playerid,Textdraw10);
			TextDrawHideForPlayer(playerid,Textdraw11);
			TextDrawHideForPlayer(playerid,Textdraw12);
			SetCameraBehindPlayer(playerid);
			CancelSelectTextDraw(playerid);
			TogglePlayerControllable(playerid,1);
			SetPlayerPos(playerid,OldScanPos[playerid][0],OldScanPos[playerid][1],OldScanPos[playerid][2]);
		}
		else if(clickedid == Textdraw11)
		{
		    if(CamPos[playerid][2]-30.0 < 30) CamPos[playerid][2] = 30.0;
		    else CamPos[playerid][2] -= 30.0;
			SetPlayerCameraPos(playerid,CamPos[playerid][0],CamPos[playerid][1],CamPos[playerid][2]);
			SetPlayerCameraLookAt(playerid,CamPos[playerid][0],CamPos[playerid][1],CamPos[playerid][2]-100,1);
		}
		else if(clickedid == Textdraw12)
		{
		    if(CamPos[playerid][2]+30.0 > 200) CamPos[playerid][2] = 200.0;
		    else CamPos[playerid][2] += 30.0;
			SetPlayerCameraPos(playerid,CamPos[playerid][0],CamPos[playerid][1],CamPos[playerid][2]);
			SetPlayerCameraLookAt(playerid,CamPos[playerid][0],CamPos[playerid][1],CamPos[playerid][2]-100,1);
		}
		else if(clickedid == Textdraw9) ShowPlayerDialog(playerid,DIALOG_FIND_PLAYERS,DIALOG_STYLE_INPUT,"Поиск","Введите ID цели:","Поиск","Отмена");
В OnDialogResponse

HTML:
switch(dialogid)
	{
	    case DIALOG_FIND_PLAYERS:
	    {
			if(strval(inputtext) < 0 || strval(inputtext) > MAX_PLAYERS) return ShowPlayerDialog(playerid,DIALOG_FIND_PLAYERS,DIALOG_STYLE_INPUT,"Поиск","Введите ID цели:","Поиск","Отмена");
			if(!IsPlayerConnected(strval(inputtext)) || GetPlayerInterior(strval(inputtext)) != GetPlayerInterior(playerid) || GetPlayerVirtualWorld(playerid) != GetPlayerVirtualWorld(strval(inputtext))) return SendClientMessage(playerid,-1,"Цель не найдена!");
			
			new Float:x,Float:y,Float:z;
			GetPlayerPos(strval(inputtext),x,y,z);
			SetPlayerCameraPos(playerid,x,y,CamPos[playerid][2]);
			SetPlayerCameraLookAt(playerid,x,y,CamPos[playerid][2]-100,1);
		}
	}ssage(playerid,-1,"Цель не найдена!");
			
			new Float:x,Float:y,Float:z;
			GetPlayerPos(strval(inputtext),x,y,z);
			SetPlayerCameraPos(playerid,x,y,CamPos[playerid][2]);
			SetPlayerCameraLookAt(playerid,x,y,CamPos[playerid][2]-100,1);
		}
Команда на запуск сканера:

HTML:
CMD:ascan(playerid,params[])
{
	TogglePlayerControllable(playerid,0);
	TextDrawShowForPlayer(playerid,Textdraw0);
	TextDrawShowForPlayer(playerid,Textdraw1);
	TextDrawShowForPlayer(playerid,Textdraw2);
	TextDrawShowForPlayer(playerid,Textdraw3);
	TextDrawShowForPlayer(playerid,Textdraw4);
	TextDrawShowForPlayer(playerid,Textdraw5);
	TextDrawShowForPlayer(playerid,Textdraw6);
	TextDrawShowForPlayer(playerid,Textdraw7);
	TextDrawShowForPlayer(playerid,Textdraw8);
	TextDrawShowForPlayer(playerid,Textdraw9);
	TextDrawShowForPlayer(playerid,Textdraw10);
	TextDrawShowForPlayer(playerid,Textdraw11);
	TextDrawShowForPlayer(playerid,Textdraw12);
	SelectTextDraw(playerid,0xFF0000FF);
	
	new Float:x,Float:y,Float:z;
	GetPlayerPos(playerid,x,y,z);
	OldScanPos[playerid][0] = x;
	OldScanPos[playerid][1] = y;
	OldScanPos[playerid][2] = z;
	SetPlayerPosFindZ(playerid,x,y,z);
	GetPlayerPos(playerid,x,y,z);
	SetPlayerPos(playerid,x,y,z-10);
	SetPlayerCameraPos(playerid,x,y,z+100);
	SetPlayerCameraLookAt(playerid,x,y,z);
	CamPos[playerid][0] = x;
	CamPos[playerid][1] = y;
	CamPos[playerid][2] = z+100;
	CamPos[playerid][3] = z-10;
	return 1;
}
В системе есть пара недоработок, которые собственными силами исправить не смог:

- Возможность заглянуть под текстуры;
- Игрок пропадает во время сканирования (под карту засунул его) и передвигается вместе с камерой, дабы прорисовывалось всё правильно;
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу