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

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

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

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

Мануал Работа на конвейере

-WorcOut-

«I'am WorcOut» ♫


В начале мода добавим
PHP:
new PlayerText:meat_packing_plant[MAX_PLAYERS][10];
new object_job[MAX_PLAYERS][2];
new pickup_job;
new vhod_jon[2];
enum
{
    q_job,
    q_job_info
};
Далее OnPlayerConnect сами TextDraw
PHP:
meat_packing_plant[playerid][0] = CreatePlayerTextDraw(playerid, 163.639831, 231.916671, !"usebox");
	PlayerTextDrawLetterSize(playerid, meat_packing_plant[playerid][0], 0.000000, 1.238888);
	PlayerTextDrawTextSize(playerid, meat_packing_plant[playerid][0], 0.342606, 0.000000);
	PlayerTextDrawAlignment(playerid, meat_packing_plant[playerid][0], 1);
	PlayerTextDrawColor(playerid, meat_packing_plant[playerid][0], 0);
	PlayerTextDrawUseBox(playerid, meat_packing_plant[playerid][0], true);
	PlayerTextDrawBoxColor(playerid, meat_packing_plant[playerid][0], -5963521);

	meat_packing_plant[playerid][1] = CreatePlayerTextDraw(playerid, 163.702789, 246.916702, !"usebox");
	PlayerTextDrawLetterSize(playerid, meat_packing_plant[playerid][1], 0.000000, 7.798184);
	PlayerTextDrawTextSize(playerid, meat_packing_plant[playerid][1], 0.342605, 0.000000);
	PlayerTextDrawAlignment(playerid, meat_packing_plant[playerid][1], 1);
	PlayerTextDrawColor(playerid, meat_packing_plant[playerid][1], 0);
	PlayerTextDrawUseBox(playerid, meat_packing_plant[playerid][1], true);
	PlayerTextDrawBoxColor(playerid, meat_packing_plant[playerid][1], 151587327);

	meat_packing_plant[playerid][2] = CreatePlayerTextDraw(playerid, 163.639816, 240.083374, !"usebox");
	PlayerTextDrawLetterSize(playerid, meat_packing_plant[playerid][2], 0.000000, 0.313518);
	PlayerTextDrawTextSize(playerid, meat_packing_plant[playerid][2], 0.342604, 0.000000);
	PlayerTextDrawAlignment(playerid, meat_packing_plant[playerid][2], 1);
	PlayerTextDrawColor(playerid, meat_packing_plant[playerid][2], 0);
	PlayerTextDrawUseBox(playerid, meat_packing_plant[playerid][2], true);
	PlayerTextDrawBoxColor(playerid, meat_packing_plant[playerid][2], 102);

	meat_packing_plant[playerid][3] = CreatePlayerTextDraw(playerid, 46.383621, 231.583297, !"PA—O¦A M•C®…KA");
	PlayerTextDrawLetterSize(playerid, meat_packing_plant[playerid][3], 0.192781, 1.039999);
	PlayerTextDrawAlignment(playerid, meat_packing_plant[playerid][3], 1);
	PlayerTextDrawColor(playerid, meat_packing_plant[playerid][3], -1);
	PlayerTextDrawSetShadow(playerid, meat_packing_plant[playerid][3], 0);
	PlayerTextDrawSetOutline(playerid, meat_packing_plant[playerid][3], 0);
	PlayerTextDrawBackgroundColor(playerid, meat_packing_plant[playerid][3], 51);
	PlayerTextDrawFont(playerid, meat_packing_plant[playerid][3], 2);
	PlayerTextDrawSetProportional(playerid, meat_packing_plant[playerid][3], 1);

	meat_packing_plant[playerid][4] = CreatePlayerTextDraw(playerid, 6.153757, 253.583297, !"B‘K…®Y¦’ M•CO");
	PlayerTextDrawLetterSize(playerid, meat_packing_plant[playerid][4], 0.192781, 1.039999);
	PlayerTextDrawAlignment(playerid, meat_packing_plant[playerid][4], 1);
	PlayerTextDrawColor(playerid, meat_packing_plant[playerid][4], -1);
	PlayerTextDrawSetShadow(playerid, meat_packing_plant[playerid][4], 0);
	PlayerTextDrawSetOutline(playerid, meat_packing_plant[playerid][4], 0);
	PlayerTextDrawBackgroundColor(playerid, meat_packing_plant[playerid][4], 51);
	PlayerTextDrawFont(playerid, meat_packing_plant[playerid][4], 2);
	PlayerTextDrawSetProportional(playerid, meat_packing_plant[playerid][4], 1);

	meat_packing_plant[playerid][5] = CreatePlayerTextDraw(playerid, 63.439270, 269.666595, !"usebox");
	PlayerTextDrawLetterSize(playerid, meat_packing_plant[playerid][5], 0.000000, 4.705945);
	PlayerTextDrawTextSize(playerid, meat_packing_plant[playerid][5], 15.803810, 0.000000);
	PlayerTextDrawAlignment(playerid, meat_packing_plant[playerid][5], 1);
	PlayerTextDrawColor(playerid, meat_packing_plant[playerid][5], 0);
	PlayerTextDrawUseBox(playerid, meat_packing_plant[playerid][5], true);
	PlayerTextDrawBoxColor(playerid, meat_packing_plant[playerid][5], -5963521);

	meat_packing_plant[playerid][6] = CreatePlayerTextDraw(playerid, 61.628143, 271.833221, !"usebox");
	PlayerTextDrawLetterSize(playerid, meat_packing_plant[playerid][6], 0.000000, 4.190572);
	PlayerTextDrawTextSize(playerid, meat_packing_plant[playerid][6], 17.677902, 0.000000);
	PlayerTextDrawAlignment(playerid, meat_packing_plant[playerid][6], 1);
	PlayerTextDrawColor(playerid, meat_packing_plant[playerid][6], 0);
	PlayerTextDrawUseBox(playerid, meat_packing_plant[playerid][6], true);
	PlayerTextDrawBoxColor(playerid, meat_packing_plant[playerid][6], 151587327);

	meat_packing_plant[playerid][7] = CreatePlayerTextDraw(playerid, 64.781860, 275.583282, !"ˆAPA—O¦A®O: 100$");
	PlayerTextDrawLetterSize(playerid, meat_packing_plant[playerid][7], 0.162795, 0.859165);
	PlayerTextDrawAlignment(playerid, meat_packing_plant[playerid][7], 1);
	PlayerTextDrawColor(playerid, meat_packing_plant[playerid][7], -1);
	PlayerTextDrawSetShadow(playerid, meat_packing_plant[playerid][7], 0);
	PlayerTextDrawSetOutline(playerid, meat_packing_plant[playerid][7], 0);
	PlayerTextDrawBackgroundColor(playerid, meat_packing_plant[playerid][7], 51);
	PlayerTextDrawFont(playerid, meat_packing_plant[playerid][7], 2);
	PlayerTextDrawSetProportional(playerid, meat_packing_plant[playerid][7], 1);

	meat_packing_plant[playerid][8] = CreatePlayerTextDraw(playerid, 64.844818, 284.166625, !"BPEM• PA—O¦‘ : 1:15");
	PlayerTextDrawLetterSize(playerid, meat_packing_plant[playerid][8], 0.162795, 0.859165);
	PlayerTextDrawAlignment(playerid, meat_packing_plant[playerid][8], 1);
	PlayerTextDrawColor(playerid, meat_packing_plant[playerid][8], -1);
	PlayerTextDrawSetShadow(playerid, meat_packing_plant[playerid][8], 0);
	PlayerTextDrawSetOutline(playerid, meat_packing_plant[playerid][8], 0);
	PlayerTextDrawBackgroundColor(playerid, meat_packing_plant[playerid][8], 51);
	PlayerTextDrawFont(playerid, meat_packing_plant[playerid][8], 2);
	PlayerTextDrawSetProportional(playerid, meat_packing_plant[playerid][8], 1);

	meat_packing_plant[playerid][9] = CreatePlayerTextDraw(playerid,15.461200, 263.666656, !"LD_SPAC:white");
	PlayerTextDrawLetterSize(playerid, meat_packing_plant[playerid][9], 0.000000, 0.000000);
	PlayerTextDrawTextSize(playerid, meat_packing_plant[playerid][9], 48.726207, 54.833374);
	PlayerTextDrawColor(playerid, meat_packing_plant[playerid][9], -1);
	PlayerTextDrawBackgroundColor(playerid, meat_packing_plant[playerid][9], -256);
	PlayerTextDrawUseBox(playerid, meat_packing_plant[playerid][9], true);
	PlayerTextDrawFont(playerid, meat_packing_plant[playerid][9], 5);
	PlayerTextDrawSetPreviewModel(playerid, meat_packing_plant[playerid][9], 19131);
	PlayerTextDrawSetPreviewRot(playerid, meat_packing_plant[playerid][9], 0.000000, 0.000000, -90.000000, 1.000000);
	PlayerTextDrawSetSelectable(playerid, meat_packing_plant[playerid][9], true);

После в public OnGameModeInit()
PHP:
new tmpobjid = CreateDynamicObject(1439, 944.436828, 2127.660644, 1010.021179, 0.000000, 0.000000, -90.000000, -1, -1, -1);
	//открытые корзины
	SetDynamicObjectMaterial(tmpobjid, 0, 2803, "cj_meaty", "CJ_FLESH_2", 0x00000000);
	//Заменить текстуру объекта с текстурой из другой модели в игре.
	CreatePickup(1275, 23, 960.7062,2099.4375,1011.0248,0);
	//Пикап
	pickup_job = CreateDynamicSphere(960.7062,2099.4375,1011.0248, 2.0);
	// создание зоны в виде сферы, для данной зоны требуется высота по оси Z и радиус сферы, которую Вы хотите создать
	vhod_jon[0] = CreatePickup(1318, 23, 1374.1469,405.0240,19.9555,0);
	//Пикап
	vhod_jon[1] = CreatePickup(1318, 23, 965.3796,2107.9758,1011.0303,0);
	//Пикап
	CreateDynamic3DTextLabel("Начать работу: H",0xFFFFFFFF,940.8611,2122.4094,1011.0303,5.0,INVALID_PLAYER_ID,INVALID_VEHICLE_ID,0, 0);
	// 3D ТЕКСТ
После в OnPlayerPickUpPickup
PHP:
if( pickupid == vhod_jon [0] )
	{
	    SetPlayerPos ( playerid , 962.1105 , 2107.3452 , 1011.0303 ) ;
	    // позиция пикапа
	    
	    SetPlayerFacingAngle ( playerid , 91.9221 ) ;
		// угол поворота 
	    
	    SetPlayerInterior ( playerid , 1 ) ;
	    // интерер
	}
	if( pickupid == vhod_jon [1] )
	{
	    SetPlayerPos (playerid , 1371.3191 , 406.1893 , 19.7578 ) ;
	    // позиция пикапа
	    
	    SetPlayerFacingAngle (playerid , 69.9652 ) ;
	    // угол поворота 
	    
	    SetPlayerInterior( playerid , 0 ) ;
	    // интерер

	    if(GetPVarInt( playerid , !"on_player_work"))
		// окончания работы
	    {
		    if(IsValidDynamicObject ( object_job [playerid] [0] ) )
			// обьект +
				DestroyDynamicObject ( object_job [playerid] [0] ) ;
				//удаление обьекта

		    else if(IsValidDynamicObject( object_job [playerid] [1] ) )
				DestroyDynamicObject ( object_job [playerid] [1] ) ;

		    SetPlayerSkin(playerid,GetPVarInt(playerid,"old_skin")); // скин

			static const
				meat [] = "Вы отобрали %i испорченных кусков. Ваш заработок: $%i" ;
			// информация

			new str_meat [ sizeof ( meat ) + 8 - 4 ] ;
			
		    format ( str_meat , sizeof( str_meat ) , meat ,
				GetPVarInt ( playerid , !"player_payment" ) ,
				GetPVarInt ( playerid , !"player_payment") * 30 ) ;
				
		    SendClientMessage ( playerid , -1 , str_meat ) ;

		    GivePlayerMoney ( playerid , GetPVarInt ( playerid , !"player_payment" ) * 30) ;
		    DeletePVar ( playerid , !"chekpoint_job" ) ;
			DeletePVar ( playerid , !"plaeyr_work" ) ;
			DeletePVar ( playerid , !"chekpoint_job" ) ;
			DeletePVar ( playerid , !"player_payment" ) ;
			DeletePVar ( playerid , !"bad_meat" ) ;
			DeletePVar ( playerid , !"old_skin" ) ;
			DeletePVar ( playerid , !"on_player_work" ) ;
	    }
	}
В OnPlayerEnterCheckpoint
PHP:
if ( GetPVarInt( playerid , "on_player_work" ) )
		DisablePlayerCheckpoint ( playerid ) ;
В OnPlayerEnterDynamicArea
PHP:
if ( areaid == pickup_job )
	{
	    if ( !GetPVarInt ( playerid , !"on_player_work" ) )
		ShowPlayerDialog( playerid , q_job , DIALOG_STYLE_MSGBOX , \
		!"Переодевалка",\
		!"{ffffff}Вы действительно хотите начать работу на конвеере?",\
		!"Далее",\
		!"Назад" ) ;
		
	    else
	    
		ShowPlayerDialog ( playerid , q_job , DIALOG_STYLE_MSGBOX ,\
		!"Переодевалка",\
		!"{ffffff}Вы действительно хотите закончить работу на конвеере?",\
		!"Далее",\
		!"Назад" ) ;
	}
В OnPlayerDisconnect
PHP:
if ( GetPVarInt( playerid , !"plaeyr_work" ) )
	{
	    if ( IsValidDynamicObject ( object_job [playerid] [0] ) )
			DestroyDynamicObject (object_job [playerid] [0] ) ;
			
	    else if(IsValidDynamicObject ( object_job [playerid] [1] ) )
			DestroyDynamicObject ( object_job [playerid] [1] ) ;
	}
В OnPlayerSpawn
PHP:
if ( GetPVarInt ( playerid , !"plaeyr_work" ) )
	{
	    if ( IsValidDynamicObject( object_job [playerid] [0] ) )
			DestroyDynamicObject( object_job [playerid] [0] ) ;
			
	    else if(IsValidDynamicObject (object_job [playerid] [1] ) )
			DestroyDynamicObject( object_job [playerid] [1] ) ;
			
	    DeletePVar ( playerid , !"plaeyr_work" ) ;
	}
К стокам
PHP:
stock GoObject(playerid)
{
    object_job[playerid][0] = CreateDynamicObject(2806, 942.3492, 2131.815185, 1011.226501, 0.000000, 0.000000, 0.000000, playerid+1, -1, -1);
	// Обьект движения
	
	if ( random ( 2 ) )
	// Рандом
	{
	    SetPVarInt ( playerid , !"bad_meat" , 1 ) ;
		SetDynamicObjectMaterial ( object_job [playerid] [0] , 0 , 5421 , "laesmokecnthus" , "greenwall4" , 0x00000000 ) ;
	}
	else
		DeletePVar ( playerid , !"bad_meat" ) ;
		
	MoveDynamicObject ( object_job [playerid] [0] , 942.3492, 2123.890380, 1011.226501,2 ) ;
	Streamer_SetIntData ( STREAMER_TYPE_OBJECT , object_job [playerid] [0] , E_STREAMER_EXTRA_ID , playerid ) ;
	Streamer_Update ( playerid ) ;
	
	return 1;
}
В public OnDynamicObjectMoved
PHP:
new playerid = Streamer_GetIntData ( STREAMER_TYPE_OBJECT , objectid , E_STREAMER_EXTRA_ID ) ;
    
    if(playerid != INVALID_PLAYER_ID)
    {
		new
			Float: x ,
			Float: y ,
			Float: z ;
			
		GetDynamicObjectPos ( objectid , x , y , z ) ;
		
        if ( GetPVarInt ( playerid , !"chekpoint_job" ) )
        {
			if ( x == 944.204345 )
			{
				DestroyDynamicObject ( objectid ) ;
				
			    GoObject ( playerid ) ;
			    
				DeletePVar ( playerid ,!"chekpoint_job" ) ;
				
				GameTextForPlayer ( playerid , !"~g~GOOD JOB" , 500 , 5 ) ;
				
				SetPVarInt ( playerid , !" player_payment" ,
				GetPVarInt ( playerid , !"player_payment") + 1 ) ;
			}
        }
        else
        {
            if ( y == 2123.890380 )
            {
                if ( GetPVarInt ( playerid , !"bad_meat" ) )
					GameTextForPlayer ( playerid , !"~r~BAD JOB" , 500 , 5 ) ;
					
                else
					GameTextForPlayer ( playerid , !"~g~GOOD JOB" , 500 , 5 ) ;
					
                DestroyDynamicObject ( objectid ) ;
			    GoObject ( playerid ) ;

            }
        }
    }
В OnPlayerKeyStateChange

PHP:
if ( newkeys & KEY_CTRL_BACK
	&& !GetPVarInt ( playerid , !"plaeyr_work" )
	&& GetPVarInt ( playerid , !"on_player_work" ) )
	{
	    if ( IsPlayerInRangeOfPoint ( playerid , 2.0 , 940.8611 , 2122.4094 , 1011.0303 ) )
	    {
	        ShowPlayerDialog ( playerid , q_job_info , DIALOG_STYLE_MSGBOX , \
			!"Инфромация",\
			!"{ffffff}Сейчас Вам предстоит отбирать мясо.\
			\nЗеленое мясо - это испорченное.\
			\nКак оно будет на красном квадрате нажимайте {f7ae11}Y{ffffff}\
			\nДля завершения работы нажимате {f7ae11}N",\
			!"Далее",!"" ) ;
	    }
	}
Далее в OnPlayerClickPlayerTextDraw
PHP:
if ( playertextid == meat_packing_plant [playerid] [9] )
	{
	    GetPVarInt ( playerid , !"chekpoint_job" ) ;
	    if ( GetPVarInt ( playerid , !"bad_meat" ) )
	    {
			new
				Float: x ,
				Float: y ,
				Float: z ;

			GetDynamicObjectPos( object_job [playerid] [0] , x , y , z ) ;

			if ( floatround ( y ) == 2127 )
			{
			    StopDynamicObject ( object_job [playerid] [0] ) ;

			    MoveDynamicObject ( object_job [playerid] [0] , 944.204345 , y , z , 2 ) ;

			    SetPVarInt ( playerid , !"chekpoint_job" , 1 ) ;

			    new amount_bad = GetPVarInt ( playerid , !"player_payment" ) ,
            	str_sfm [40] ;

			    format ( str_sfm , sizeof ( str_sfm ) , TranslateText ( "Заработано: ~b~+%d$" ) , amount_bad * 30 ) ;
				PlayerTextDrawSetString ( playerid , meat_packing_plant[playerid][7] ,str_sfm ) ;

				format ( str_sfm , sizeof( str_sfm ) , TranslateText ( "Всего: +%d") ,
					GetPVarInt ( playerid , !"player_payment" ) + 1 ) ;
					
				PlayerTextDrawSetString ( playerid , meat_packing_plant [playerid] [8] , str_sfm ) ;

			    GivePlayerMoney ( playerid , amount_bad *30 ) ;
				DeletePVar ( playerid , !"player_payment" ) ;

			}
			else
			{
				DestroyDynamicObject ( object_job [playerid] [0] ) ;

			    GoObject ( playerid ) ;

				GameTextForPlayer ( playerid , !"~r~BAD JOB" , 500 , 5) ;
			}

		}
		else
			GameTextForPlayer ( playerid , !"~r~BAD JOB" , 500 , 5) ;
	}
После в OnDialogResponse
PHP:
case q_job:
		{
		    if ( !GetPVarInt ( playerid , !"on_player_work" ) )
		    {
		        SendClientMessage( playerid ,-1 , "Вы начали работу на конвейере. Направляйтесь к конвейеру!" ) ;
		        SetPVarInt ( playerid , !"on_player_work" , 1 ) ;
		        SetPVarInt ( playerid , !"old_skin" , GetPlayerSkin ( playerid ) );
		        SetPlayerCheckpoint ( playerid , 940.8611 , 2122.4094 , 1011.0303 , 1.0 ) ;
		        SetPlayerSkin ( playerid , 168 ) ;

		    }
		    else
		    {
			    if ( IsValidDynamicObject ( object_job [playerid] [0] ) )
					DestroyDynamicObject(object_job[playerid][0]);

			    else if ( IsValidDynamicObject( object_job [playerid] [1] ) )
					DestroyDynamicObject( object_job [playerid] [1] ) ;

			    SetPlayerSkin ( playerid , GetPVarInt ( playerid , !"old_skin" ) ) ;

				static const
					meat [] = "Вы отобрали %i испорченных кусков. Ваш заработок: $%i" ;

				new str_meat [ sizeof ( meat ) + 8 - 4 ] ;
			    format( str_meat , sizeof ( str_meat ) , meat ,
					GetPVarInt ( playerid , !"player_payment" ) ,
					GetPVarInt ( playerid , !"player_payment" ) *30 ) ;
					
			    SendClientMessage(playerid,-1,str_meat);

			    GivePlayerMoney ( playerid , GetPVarInt ( playerid , !"player_payment" ) *30 ) ;
			    DeletePVar ( playerid , !"chekpoint_job" ) ;
				DeletePVar ( playerid , !"plaeyr_work" ) ;
				DeletePVar ( playerid , !"chekpoint_job" ) ;
				DeletePVar ( playerid , !"player_payment" ) ;
				DeletePVar ( playerid , !"bad_meat" ) ;
				DeletePVar ( playerid , !"old_skin" ) ;
				DeletePVar ( playerid , !"on_player_work" ) ;
		    }
		}
		case q_job_info:
		{
		    SetPVarInt ( playerid , !"plaeyr_work" , 1 ) ;

			SetPlayerInterior ( playerid , 1 ) ;
			SetPlayerVirtualWorld ( playerid , playerid + 1 ) ;
			SetPlayerPos ( playerid , 940.8642,2122.3950,1011.0303 ) ;
			SetPlayerCameraPos ( playerid , 942.328796,2125.278076,1015.023559 ) ;
			SetPlayerCameraLookAt ( playerid , 942.355163,2125.811279,1014.177917 ) ;

			GoObject ( playerid ) ;
			object_job [playerid] [1] = CreateDynamicObject(1271, 942.3492, 2127.549072, 1010.819091, 0.000000, 0.000000, 0.000000, playerid+1, -1, -1);

			SetDynamicObjectMaterial( object_job [playerid] [1] , 0, 2702, "pick_up", "CJ_red_FELT", 0x00000000 ) ;

			TogglePlayerControllable ( playerid , 0 ) ;

			for ( new i = 0 ; i < 10 ; i++ ) PlayerTextDrawShow ( playerid , meat_packing_plant [playerid] [i] ) ;
			
		    SelectTextDraw ( playerid , 0x2641FEAA ) ;
		}
И команда
PHP:
CMD:edit(playerid)
{
    for ( new i = 0 ; i < 10 ; i++ ) PlayerTextDrawHide ( playerid , meat_packing_plant [playerid] [i] ) ;
	CancelSelectTextDraw ( playerid ) ;

	if(IsValidDynamicObject ( object_job [playerid] [0] ) )
		DestroyDynamicObject ( object_job [playerid] [0] ) ;

	else if(IsValidDynamicObject ( object_job [playerid] [1] ) )
		DestroyDynamicObject ( object_job [playerid] [1] ) ;

	SetPlayerVirtualWorld ( playerid ,0 ) ;

    TogglePlayerControllable ( playerid , 1 ) ;

    SetCameraBehindPlayer ( playerid ) ;

    DeletePVar ( playerid , !"plaeyr_work" ) ;
    return true;
}
 
Последнее редактирование модератором:
Сверху Снизу