SAMP/SetVehicleParamsForPlayer

Материал из Wikipedia Pi

SetVehicleParamsForPlayer


Описание:

Задайте параметры машины для игрока.


Параметры:

(vehicleid, playerid, objective, doorslocked)


vehicleidID автомобиля, параметры которого нужно задать.
playeridID игрока, для которого нужно установить параметры машины.
objective0 для отключения цели или 1 для ее отображения. Это желтая стрелка над автомобилем.
doorslocked0, чтобы открыть двери, или 1, чтобы запереть их.


Возвращаемые значения:

  • 1: функция успешно выполнена.
  • 0: функция не выполнена. Указанный игрок и / или транспортное средство не существуют.


Wiki tip.png

Подсказка

Транспортные средства должны быть возрождены, чтобы «цель» была удалена.


Этого можно немного обойти с помощью Get / SetVehicleParamsEx, которые не требуют возрождения транспортного средства. Однако стоит отметить, что объект будет отключен в глобальном масштабе, и это полезно только в том случае, если только один игрок имеет транспортное средство в качестве цели:


Пример использования:

// когда-то раньше: 
SetVehicleParamsForPlayer(iPlayerVehicle, iPlayerID, 1, 0);
 
// когда-нибудь позже, когда вы захотите, чтобы машина возродилась: 
new
	iEngine, iLights, iAlarm,
	iDoors, iBonnet, iBoot,
	iObjective;
GetVehicleParamsEx ( iPlayerVehicle, iEngine, iLights, iAlarm, iDoors, iBonnet, iBoot, iObjective ) ;
SetVehicleParamsEx ( iPlayerVehicle, iEngine, iLights, iAlarm, iDoors, iBonnet, iBoot, 0 ) ;


Wiki note important.png

Важное
примечание

Начиная с версии 0.3a, вам придется повторно применять эту функцию при вызове OnVehicleStreamIn.


Пример использования:

// Заблокирует собственную машину для всех игроков, кроме игрока, который использовал команду. 
public  OnPlayerCommandText ( playerid, cmdtext [ ] ) 
{ 
    if ( ! strcmp ( cmdtext, "/ lock" , true ) )  
    { 
        if ( ! IsPlayerInAnyVehicle ( playerid ) )  return  SendClientMessage ( playerid, 0xFFFFFFAA, "Вы должны находиться внутри транспортного средства. " ) ;
        for ( новый i = 0 ; i < MAX_PLAYERS; i ++ ) 
        { 
            if ( i == playerid )  continue ;
            SetVehicleParamsForPlayer ( GetPlayerVehicleID ( playerid ) , i, 0 , 1 ) ;
        } 
        return  1 ;
    } 
    return  0 ;
}
// Will show vehicle markers for players streaming in for 0.3a+
new iVehicleObjective[MAX_VEHICLES][2];

public OnGameModeInit() //Or another callback
{
    new temp = AddStaticVehicleEx(400, 0.0, 0.0, 5.0, 0.0, 0,0, -1); //ID 1
    iVehicleObjective[temp][0] = 1; //Marker
    iVehicleObjective[temp][1] = 0; //Door Lock
    return 1;
}
 
stock SetVehicleParamsForPlayerEx(vehicleid, playerid, objective, doorslocked)
{
	SetVehicleParamsForPlayer(vehicleid, playerid, objective, doorslocked);
	iVehicleObjective[vehicleid][0] = objective;
	iVehicleObjective[vehicleid][1] = doorslocked;
}
 
public OnVehicleStreamIn(vehicleid, forplayerid)
{
	SetVehicleParamsForPlayer(vehicleid, forplayerid, iVehicleObjective[vehicleid][0], iVehicleObjective[vehicleid][1]);
}

Еще один способ

//Top
new myMarkedCar;
 
public OnGameModeInit() //Or another callback
{
    myMarkedCar = AddStaticVehicleEx(400, 0.0, 0.0, 5.0, 0.0, 0,0, -1); //For example: Black Landstalker near Blueberry Acres
    return 1;
}
 
//Whatever your want
public OnVehicleStreamIn(vehicleid, forplayerid)
{
    if(vehicleid == myMarkedCar)
    {
        SetVehicleParamsForPlayer(myMarkedCar, forplayerid, 1, 0); // marker can be visible only if the vehicle streamed for player
    }
    return 1;
}


Связанные функции

Следующие функции также могут быть полезны, поскольку они так или иначе связаны с рассматриваемой функцией.
  • SetVehicleParamsEx - Устанавливает параметры транспортного средства для всех игроков.