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

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

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

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

Мануал Система ограждения v2

-WorcOut-

«I'am WorcOut» ♫
Автор: -WorcOut-
Время Работы: 20 - 30 минут

Минусы координаты не подбирал 100% по высоте
Сделал только на примере одной обр.



К переменным добавим
PHP:
new PlayerText:_fences[MAX_PLAYERS][28];
	// сами ТD


new bproverka[MAX_PLAYERS];
	// благодаря этой переменной мы можем сделать все одной командой(поставить и убрать)
new block[MAX_PLAYERS];
	// переменная хранящая объект блока
new Text3D:blocktext[MAX_PLAYERS];
Далее в public OnPlayerConnect(playerid) добавляем
PHP:
bproverka[playerid] = 0;
		// задаем каждому присоединенному пользователю значение что он не ставил блок
    //--------------------------------------------------------------------------
    _fences[playerid][0] = CreatePlayerTextDraw(playerid, 648.559265, 357.333374, !"usebox");
	PlayerTextDrawLetterSize(playerid, _fences[playerid][0], 0.000000, 1.109256);
	PlayerTextDrawTextSize(playerid, _fences[playerid][0], -2.937042, 0.000000);
	PlayerTextDrawAlignment(playerid, _fences[playerid][0], 1);
	PlayerTextDrawColor(playerid, _fences[playerid][0], 0);
	PlayerTextDrawUseBox(playerid, _fences[playerid][0], true);
	PlayerTextDrawBoxColor(playerid, _fences[playerid][0], -5963521);
	PlayerTextDrawSetShadow(playerid, _fences[playerid][0], 0);
	PlayerTextDrawSetOutline(playerid, _fences[playerid][0], 0);
	PlayerTextDrawFont(playerid, _fences[playerid][0], 0);
	PlayerTextDrawSetPreviewModel(playerid, _fences[playerid][0], 19132);
	PlayerTextDrawSetPreviewRot(playerid, _fences[playerid][0], 0.000000, 0.000000, 90.000000, 1.000000);

	_fences[playerid][1] = CreatePlayerTextDraw(playerid, 647.153686, 365.500061, !"usebox");
	PlayerTextDrawLetterSize(playerid, _fences[playerid][1], 0.000000, 0.172962);
	PlayerTextDrawTextSize(playerid, _fences[playerid][1], -2.937042, 0.000000);
	PlayerTextDrawAlignment(playerid, _fences[playerid][1], 1);
	PlayerTextDrawColor(playerid, _fences[playerid][1], 0);
	PlayerTextDrawUseBox(playerid, _fences[playerid][1], true);
	PlayerTextDrawBoxColor(playerid, _fences[playerid][1], 102);
	PlayerTextDrawSetShadow(playerid, _fences[playerid][1], 0);
	PlayerTextDrawSetOutline(playerid, _fences[playerid][1], 0);
	PlayerTextDrawFont(playerid, _fences[playerid][1], 0);

	_fences[playerid][2] = CreatePlayerTextDraw(playerid, 643.405517, 371.916656, !"usebox");
	PlayerTextDrawLetterSize(playerid, _fences[playerid][2], 0.000000, 7.787588);
	PlayerTextDrawTextSize(playerid, _fences[playerid][2], -2.468521, 0.000000);
	PlayerTextDrawAlignment(playerid, _fences[playerid][2], 1);
	PlayerTextDrawColor(playerid, _fences[playerid][2], 0);
	PlayerTextDrawUseBox(playerid, _fences[playerid][2], true);
	PlayerTextDrawBoxColor(playerid, _fences[playerid][2], 151587327);
	PlayerTextDrawSetShadow(playerid, _fences[playerid][2], 0);
	PlayerTextDrawSetOutline(playerid, _fences[playerid][2], 0);
	PlayerTextDrawFont(playerid, _fences[playerid][2], 0);

	_fences[playerid][3] = CreatePlayerTextDraw(playerid, 273.148315, 356.999969, !"YC¦A®O‹KA O—’EK¦A");
	PlayerTextDrawLetterSize(playerid, _fences[playerid][3], 0.211522, 1.104166);
	PlayerTextDrawAlignment(playerid, _fences[playerid][3], 1);
	PlayerTextDrawColor(playerid, _fences[playerid][3], -1);
	PlayerTextDrawSetShadow(playerid, _fences[playerid][3], 0);
	PlayerTextDrawSetOutline(playerid, _fences[playerid][3], 0);
	PlayerTextDrawBackgroundColor(playerid, _fences[playerid][3], 51);
	PlayerTextDrawFont(playerid, _fences[playerid][3], 2);
	PlayerTextDrawSetProportional(playerid, _fences[playerid][3], 1);

	_fences[playerid][4] = CreatePlayerTextDraw(playerid, 11.713029, 372.166656, !"LD_SPAC:white");
	_fences[playerid][5] = CreatePlayerTextDraw(playerid, 100.795013, 372.000030, !"LD_SPAC:white");
	_fences[playerid][6] = CreatePlayerTextDraw(playerid, 191.282562, 371.833282, !"LD_SPAC:white");
	_fences[playerid][7] = CreatePlayerTextDraw(playerid, 561.008911, 371.666625, !"LD_SPAC:white");
	_fences[playerid][8] = CreatePlayerTextDraw(playerid, 471.584075, 372.083343, !"LD_SPAC:white");
	_fences[playerid][9] = CreatePlayerTextDraw(playerid, 382.159454, 371.916656, !"LD_SPAC:white");
	for(new d = 4; d < 10; d++)
	{
		PlayerTextDrawLetterSize(playerid, _fences[playerid][d], 0.000000, 0.000000);
		PlayerTextDrawTextSize(playerid, _fences[playerid][d], 66.061492, 69.416625);
		PlayerTextDrawAlignment(playerid, _fences[playerid][d], 1);
		PlayerTextDrawColor(playerid, _fences[playerid][d], -5963521);
		PlayerTextDrawSetShadow(playerid, _fences[playerid][d], 0);
		PlayerTextDrawSetOutline(playerid, _fences[playerid][d], 0);
		PlayerTextDrawFont(playerid, _fences[playerid][d], 4);
	}
	_fences[playerid][10] = CreatePlayerTextDraw(playerid, 12.244510, 373.166656, !"LD_SPAC:white");
	_fences[playerid][11] = CreatePlayerTextDraw(playerid, 101.795013, 372.999969, !"LD_SPAC:white");
	_fences[playerid][12] = CreatePlayerTextDraw(playerid, 192.282546, 372.833190, !"LD_SPAC:white");
	_fences[playerid][13] = CreatePlayerTextDraw(playerid, 383.033843, 373.249847, !"LD_SPAC:white");
	_fences[playerid][14] = CreatePlayerTextDraw(playerid, 472.584564, 373.083251, !"LD_SPAC:white");
	_fences[playerid][15] = CreatePlayerTextDraw(playerid, 562.135192, 372.916625, !"LD_SPAC:white");
	for(new d = 10; d < 16; d++)
	{
		PlayerTextDrawLetterSize(playerid, _fences[playerid][d], 0.000000, 0.000000);
		PlayerTextDrawTextSize(playerid, _fences[playerid][d], 64.187408, 67.083282);
		PlayerTextDrawAlignment(playerid, _fences[playerid][d], 1);
		PlayerTextDrawColor(playerid, _fences[playerid][d], 151587327);
		PlayerTextDrawUseBox(playerid, _fences[playerid][d], true);
		PlayerTextDrawBoxColor(playerid, _fences[playerid][d], 255);
		PlayerTextDrawSetShadow(playerid, _fences[playerid][d], 0);
		PlayerTextDrawSetOutline(playerid, _fences[playerid][d], 0);
		PlayerTextDrawFont(playerid, _fences[playerid][d], 4);
		PlayerTextDrawSetSelectable(playerid, _fences[playerid][d], true);
	}
	_fences[playerid][16] = CreatePlayerTextDraw(playerid, 270.400024, 373.166503, !"‹‘—…P…¦E O—’EK¦ ѓ‡• YC¦A®O‹K…");
	_fences[playerid][17] = CreatePlayerTextDraw(playerid, 285.924133, 385.249755, !"ЊOC‡E ЊO¦‹EPѓ…¦E E‚O");
	for(new d = 16; d < 18; d++)
	{
		PlayerTextDrawLetterSize(playerid, _fences[playerid][d], 0.141712, 0.958332);
		PlayerTextDrawAlignment(playerid, _fences[playerid][d], 1);
		PlayerTextDrawColor(playerid, _fences[playerid][d], -1);
		PlayerTextDrawSetShadow(playerid, _fences[playerid][d], 0);
		PlayerTextDrawSetOutline(playerid, _fences[playerid][d], 0);
		PlayerTextDrawBackgroundColor(playerid, _fences[playerid][d], 51);
		PlayerTextDrawFont(playerid, _fences[playerid][d], 2);
		PlayerTextDrawSetProportional(playerid, _fences[playerid][d], 1);
	}
	_fences[playerid][18] = CreatePlayerTextDraw(playerid, 287.735107, 410.499969, !"LD_SPAC:white");
	PlayerTextDrawLetterSize(playerid, _fences[playerid][18], 0.000000, 0.000000);
	PlayerTextDrawTextSize(playerid, _fences[playerid][18], 69.341140, 13.416640);
	PlayerTextDrawAlignment(playerid, _fences[playerid][18], 1);
	PlayerTextDrawColor(playerid, _fences[playerid][18], -5963521);
	PlayerTextDrawSetShadow(playerid, _fences[playerid][18], 0);
	PlayerTextDrawSetOutline(playerid, _fences[playerid][18], 0);
	PlayerTextDrawFont(playerid, _fences[playerid][18], 4);

	_fences[playerid][19] = CreatePlayerTextDraw(playerid, 288.735107, 411.499969, !"LD_SPAC:white");
	PlayerTextDrawLetterSize(playerid, _fences[playerid][19], 0.000000, 0.000000);
	PlayerTextDrawTextSize(playerid, _fences[playerid][19], 67.467056, 11.083304);
	PlayerTextDrawAlignment(playerid, _fences[playerid][19], 1);
	PlayerTextDrawColor(playerid, _fences[playerid][19], 151587871);
	PlayerTextDrawUseBox(playerid, _fences[playerid][19], true);
	PlayerTextDrawBoxColor(playerid, _fences[playerid][19], 255);
	PlayerTextDrawSetShadow(playerid, _fences[playerid][19], 0);
	PlayerTextDrawSetOutline(playerid, _fences[playerid][19], 0);
	PlayerTextDrawFont(playerid, _fences[playerid][19], 4);
	PlayerTextDrawSetSelectable(playerid, _fences[playerid][19], true);

	_fences[playerid][20] = CreatePlayerTextDraw(playerid, 309.287567, 411.083282, !"Close");
	PlayerTextDrawLetterSize(playerid, _fences[playerid][20], 0.211522, 1.104166);
	PlayerTextDrawAlignment(playerid, _fences[playerid][20], 1);
	PlayerTextDrawColor(playerid, _fences[playerid][20], -1);
	PlayerTextDrawSetShadow(playerid, _fences[playerid][20], 0);
	PlayerTextDrawSetOutline(playerid, _fences[playerid][20], 0);
	PlayerTextDrawBackgroundColor(playerid, _fences[playerid][20], 51);
	PlayerTextDrawFont(playerid, _fences[playerid][20], 2);
	PlayerTextDrawSetProportional(playerid, _fences[playerid][20], 1);

	_fences[playerid][21] = CreatePlayerTextDraw(playerid, 9.838945, 373.333343, !"LD_SPAC:white");
	PlayerTextDrawLetterSize(playerid, _fences[playerid][21], 0.000000, 0.000000);
	PlayerTextDrawTextSize(playerid, _fences[playerid][21], 67.467056, 70.000000);
	PlayerTextDrawAlignment(playerid, _fences[playerid][21], 1);
	PlayerTextDrawColor(playerid, _fences[playerid][21], -1);
	PlayerTextDrawUseBox(playerid, _fences[playerid][21], true);
	PlayerTextDrawBoxColor(playerid, _fences[playerid][21], 0);
	PlayerTextDrawSetShadow(playerid, _fences[playerid][21], 0);
	PlayerTextDrawSetOutline(playerid, _fences[playerid][21], 0);
	PlayerTextDrawFont(playerid, _fences[playerid][21], 5);
	PlayerTextDrawSetPreviewModel(playerid, _fences[playerid][21], 1228);
	PlayerTextDrawSetPreviewRot(playerid, _fences[playerid][21], 0.000000, 0.000000, 90.000000, 1.000000);

	_fences[playerid][22] = CreatePlayerTextDraw(playerid, 99.326492, 371.000000, !"LD_SPAC:white");
	PlayerTextDrawLetterSize(playerid, _fences[playerid][22], 0.000000, 0.000000);
	PlayerTextDrawTextSize(playerid, _fences[playerid][22], 68.404098, 72.916687);
	PlayerTextDrawAlignment(playerid, _fences[playerid][22], 1);
	PlayerTextDrawColor(playerid, _fences[playerid][22], -1);
	PlayerTextDrawUseBox(playerid, _fences[playerid][22], true);
	PlayerTextDrawBoxColor(playerid, _fences[playerid][22], 0);
	PlayerTextDrawSetShadow(playerid, _fences[playerid][22], 0);
	PlayerTextDrawSetOutline(playerid, _fences[playerid][22], 0);
	PlayerTextDrawFont(playerid, _fences[playerid][22], 5);
	PlayerTextDrawSetPreviewModel(playerid, _fences[playerid][22], 1422);
	PlayerTextDrawSetPreviewRot(playerid, _fences[playerid][22], 0.000000, 0.000000, 60.000000, 1.000000);

	_fences[playerid][23] = CreatePlayerTextDraw(playerid, 189.751098, 369.250000, !"LD_SPAC:white");
	PlayerTextDrawLetterSize(playerid, _fences[playerid][23], 0.000000, 0.000000);
	PlayerTextDrawTextSize(playerid, _fences[playerid][23], 69.341125, 76.416687);
	PlayerTextDrawAlignment(playerid, _fences[playerid][23], 1);
	PlayerTextDrawColor(playerid, _fences[playerid][23], -1);
	PlayerTextDrawUseBox(playerid, _fences[playerid][23], true);
	PlayerTextDrawBoxColor(playerid, _fences[playerid][23], 0);
	PlayerTextDrawSetShadow(playerid, _fences[playerid][23], 0);
	PlayerTextDrawSetOutline(playerid, _fences[playerid][23], 0);
	PlayerTextDrawFont(playerid, _fences[playerid][23], 5);
	PlayerTextDrawSetPreviewModel(playerid, _fences[playerid][23], 1423);
	PlayerTextDrawSetPreviewRot(playerid, _fences[playerid][23], 0.000000, 0.000000, 0.000000, 1.000000);

	_fences[playerid][24] = CreatePlayerTextDraw(playerid, 381.376281, 371.000000, !"LD_SPAC:white");
	PlayerTextDrawLetterSize(playerid, _fences[playerid][24], 0.000000, 0.000000);
	PlayerTextDrawTextSize(playerid, _fences[playerid][24], 67.935577, 74.083312);
	PlayerTextDrawAlignment(playerid, _fences[playerid][24], 1);
	PlayerTextDrawColor(playerid, _fences[playerid][24], -1);
	PlayerTextDrawUseBox(playerid, _fences[playerid][24], true);
	PlayerTextDrawBoxColor(playerid, _fences[playerid][24], 0);
	PlayerTextDrawSetShadow(playerid, _fences[playerid][24], 0);
	PlayerTextDrawSetOutline(playerid, _fences[playerid][24], 0);
	PlayerTextDrawFont(playerid, _fences[playerid][24], 5);
	PlayerTextDrawSetPreviewModel(playerid, _fences[playerid][24], 1434);
	PlayerTextDrawSetPreviewRot(playerid, _fences[playerid][24], 0.000000, 0.000000, 0.000000, 1.000000);

	_fences[playerid][25] = CreatePlayerTextDraw(playerid, 370.600280, 184.916656, !"LD_SPAC:white");
	PlayerTextDrawLetterSize(playerid, _fences[playerid][25], 0.000000, 0.000000);
	PlayerTextDrawTextSize(playerid, _fences[playerid][25], -11.713012, -0.583312);
	PlayerTextDrawAlignment(playerid, _fences[playerid][25], 1);
	PlayerTextDrawColor(playerid, _fences[playerid][25], -1);
	PlayerTextDrawSetShadow(playerid, _fences[playerid][25], 0);
	PlayerTextDrawSetOutline(playerid, _fences[playerid][25], 0);
	PlayerTextDrawFont(playerid, _fences[playerid][25], 4);

	_fences[playerid][26] = CreatePlayerTextDraw(playerid, 469.458221, 372.166656, !"LD_SPAC:white");
	PlayerTextDrawLetterSize(playerid, _fences[playerid][26], 0.000000, 0.000000);
	PlayerTextDrawTextSize(playerid, _fences[playerid][26], 66.998504, 73.500000);
	PlayerTextDrawAlignment(playerid, _fences[playerid][26], 1);
	PlayerTextDrawColor(playerid, _fences[playerid][26], -1);
	PlayerTextDrawUseBox(playerid, _fences[playerid][26], true);
	PlayerTextDrawBoxColor(playerid, _fences[playerid][26], 0);
	PlayerTextDrawSetShadow(playerid, _fences[playerid][26], 0);
	PlayerTextDrawSetOutline(playerid, _fences[playerid][26], 0);
	PlayerTextDrawFont(playerid, _fences[playerid][26], 5);
	PlayerTextDrawSetPreviewModel(playerid, _fences[playerid][26], 2773);
	PlayerTextDrawSetPreviewRot(playerid, _fences[playerid][26], 0.000000, 0.000000, 90.000000, 1.000000);

	_fences[playerid][27] = CreatePlayerTextDraw(playerid, 560.351440, 369.833312, !"LD_SPAC:white");
	PlayerTextDrawLetterSize(playerid, _fences[playerid][27], 0.000000, 0.000000);
	PlayerTextDrawTextSize(playerid, _fences[playerid][27], 69.809631, 76.416687);
	PlayerTextDrawAlignment(playerid, _fences[playerid][27], 1);
	PlayerTextDrawColor(playerid, _fences[playerid][27], -1);
	PlayerTextDrawUseBox(playerid, _fences[playerid][27], true);
	PlayerTextDrawBoxColor(playerid, _fences[playerid][27], 0);
	PlayerTextDrawSetShadow(playerid, _fences[playerid][27], 0);
	PlayerTextDrawSetOutline(playerid, _fences[playerid][27], 0);
	PlayerTextDrawFont(playerid, _fences[playerid][27], 5);
	PlayerTextDrawSetPreviewModel(playerid, _fences[playerid][27], 1237);
	PlayerTextDrawSetPreviewRot(playerid, _fences[playerid][27], 0.000000, 0.000000, 0.000000, 1.000000);
в public OnPlayerDisconnect(playerid, reason) ДОБАВИМ
PHP:
if(bproverka[playerid] == 1)
	// проверяем при отсоединении пользователя ставил ли пользователь блок если да то
    {
        Delete3DTextLabel(Text3D:blocktext[playerid]);
		// удаляем текстдрав с его id над блоком
        DestroyObject(block[playerid]);
		// удаляем сам блок
    }
Далее в OnPlayerClickPlayerTextDraw
PHP:
if(playertextid == _fences [playerid] [10] )
    {
        //if(Сама проверка) return SendClientMessage( playerid, цвет, ...);
		// проверяем полицейский ли
        if( bproverka [playerid] == 0 )
		// если не поставлено блока то
       	{
			if(IsPlayerInAnyVehicle ( playerid ) )
				return SendClientMessage ( playerid , -1 , !" Ошибка: нельзя использовать в машине. " ) ;
				// проверяем игрока в интерере, если да то возвращаем ему сообщение

			if(GetPlayerVirtualWorld(playerid) != 0 || GetPlayerInterior(playerid) != 0)
				return SendClientMessage ( playerid , -1 , !" Ошибка: Данную команду нельзя использовать в интерьере. " );
				// проверяем игрока в машине, если да то возвращаем ему сообщение

	        new
				Float:blok_x ,
				Float:blok_y,
				Float:blok_z,
				Float:blok_a;
				// вводим переменные координат

			ApplyAnimation(playerid, "BOMBER", "BOM_Plant", 6.1, 0, 0, 0, 0, 0,1);
			// анимация игрока когда он устанавливает блок

			GetPlayerPos ( playerid , blok_x , blok_y , blok_z ) ;
			// возвращает нам координаты пользователя

			GetPlayerFacingAngle ( playerid , blok_a ) ;
		 	// эта функция возвращает нам угол поворота игрока

			static const ograda [] =  "%i" ;
			new str_ograda [ sizeof ( ograda ) - 2 + 4 ] ;

	        format( str_ograda , sizeof ( str_ograda ), ograda , playerid);
			// форматируем вывод id над блоком

	  		blocktext[playerid] = Create3DTextLabel ( str_ograda , 0x33AAFFFF , blok_x , blok_y , blok_z + 0.5 , 30.0 , 0,1 ) ;
		 	// создаем текстдрав id игрока над блоком

			// В зависимости от угла поворота ставиться блок
	        if ( blok_a <= 45.00 ||   blok_a > 300.00 )
				block[playerid] = CreateObject( 1228 , blok_x , blok_y + 0.7 , blok_z - 1 , 0 , 0 , blok_a ) ;

	   		if ( blok_a > 45.00  &&   blok_a <= 120.00 )
	  			block[playerid] = CreateObject( 1228, blok_x - 0.7 , blok_y , blok_z - 1 , 0 , 0 , blok_a ) ;

	        if ( blok_a > 120.00 &&   blok_a <= 220.00 )
				block[playerid] = CreateObject( 1228 , blok_x , blok_y - 0.7 , blok_z -1 , 0 , 0 , blok_a ) ;

	   		if (blok_a > 220.00 &&   blok_a <= 300.00)
		 		block[playerid] = CreateObject( 1228 , blok_x + 0.7 , blok_y , blok_z - 1 , 0 , 0 , blok_a ) ;

	    	bproverka[playerid] = 1;
		 	// наша переменная которая отвечает за то, что блок установлен или нет(ставим 1 значит да)

	   		SendClientMessage( playerid , 0x808080FF , !"Блок установлен" ) ;
			// выводим сообщение о том, что все успешно
	     	return 1; // возвращаем 1
  		}
		else if(bproverka[playerid] == 1 )
		// если блок поставлен то
	   	{
	   		Delete3DTextLabel( Text3D:blocktext[playerid] ) ;
		 	// удаляем текстдрав id игрока над блоком

			DestroyObject ( block[playerid] ) ;
		 	// удаляем сам блок

	   		bproverka [playerid] = 0;
	 		// ставим значение 0 (значит, что блок не установлен)

	   		SendClientMessage ( playerid , 0x808080FF , !"Блок убран" ) ;
		 	// выводим сообщение о том что блок успешно убран
	   		return 1;
		 	// возвращаем 1
	    }
	}
    if(playertextid == _fences [playerid] [19] )
    {
        for ( new i = 0 ; i < 27 ; i++ ) PlayerTextDrawHide ( playerid , _fences [ playerid ] [ i ] );
		// Показываем TextDraw Игроку.
        return 1;
		// возвращаем 1
  	}
и команду
PHP:
CMD:blok(playerid)
{
    for ( new i = 0 ; i < 27 ; i++ ) PlayerTextDrawShow ( playerid , _fences [ playerid ] [ i ] ) ;
	// Показываем TextDraw Игроку.
 	SelectTextDraw ( playerid , 0x00000033 ) ;
    return 1;
}
 

Вложения

Последнее редактирование:
Сверху Снизу