SAMP/SetVehicleParamsForPlayer
Материал из Pawno Info Wikipedia
SetVehicleParamsForPlayer
Описание:
Задайте параметры машины для игрока.
Параметры:
(vehicleid, playerid, objective, doorslocked)
vehicleid | ID автомобиля, параметры которого нужно задать. |
playerid | ID игрока, для которого нужно установить параметры машины. |
objective | 0 для отключения цели или 1 для ее отображения. Это желтая стрелка над автомобилем. |
doorslocked | 0, чтобы открыть двери, или 1, чтобы запереть их. |
Возвращаемые значения:
- 1: функция успешно выполнена.
- 0: функция не выполнена. Указанный игрок и / или транспортное средство не существуют.
Подсказка |
Транспортные средства должны быть возрождены, чтобы «цель» была удалена. |
Этого можно немного обойти с помощью 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 ) ;
Важное |
Начиная с версии 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 - Устанавливает параметры транспортного средства для всех игроков.