SAMP/OnUnoccupiedVehicleUpdate

Материал из Pawno Info Wikipedia

OnUnoccupiedVehicleUpdate

Wiki added.png

Добавлено

Обратный вызов работает только начиная с версии SA-MP 0.3c R3 и не будет работать в предыдущих версиях!


Wiki added.png

Добавлено

Набор параметров координат позиций (new_x, new_y, new_z) работает только начиная с версии SA-MP 0.3z RC5 и не будет работать в предыдущих версиях!


Wiki added.png

Добавлено

Набор параметров ускорений по осям (vel_x, vel_y, vel_z) работает только начиная с версии SA-MP 0.3z R4 и не будет работать в предыдущих версиях!


Описание:

Срабатывает, когда клиент игрока обновляет/синхронизирует состояние автомобиля, которым он не управляет. Это может произойти за пределами транспортного средства или когда игрок является пассажиром транспортного средства без водителя.


Параметры:

(vehicleid, playerid, passenger_seat, Float:new_x, Float:new_y, Float:new_z, Float:vel_x, Float:vel_y, Float:vel_z)


vehicleidID транспортного средства, состояние которого обновлено.
playeridID игрока, который способствовал изменению состояния.
passenger_seatID посадочного места игрока, который вызвал изменение состояния.
new_xКоордината X новой позиции транспортного средства.
new_yКоордината Y новой позиции транспортного средства.
new_zКоордината Z новой позиции транспортного средства.
vel_xУскорение по оси X нового ускорения транспортного средства.
vel_yУскорение по оси Y нового ускорения транспортного средств.
vel_zУскорение по оси Z нового ускорения транспортного средств.


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

1: позволяет вызывать обратный вызов в других скриптах.
0: отключает обработку обратного вызова в других скриптах.


Wiki note important.png

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

Этот обратный вызов вызывается очень часто (как OnPlayerUpdate). Воздержитесь от выполнения интенсивных вычислений или, тем более, интенсивных операций записи/чтения файлов в нём.
GetVehiclePos вернет старые координаты автомобиля до этого обновления.


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

public OnUnoccupiedVehicleUpdate(vehicleid, playerid, passenger_seat, Float:new_x, Float:new_y, Float:new_z, Float:vel_x, Float:vel_y, Float:vel_z)
{
	// Если транспорт сдвинули
	if(GetVehicleDistanceFromPoint(vehicleid, new_x, new_y, new_z) > 50.0)
	{
		// Блокируем изменение позиции
		return 0;
	}
	return 1;
}