Tow Truck States
Tow Truck States 1.0.0 || Эвакуатор штата
Tow Truck States 1.0.0 || Эвакуатор штата
Чтобы вызвать данную функцию используйте:
OnPlayerTowTruckStateChange
возвращает значения:
attach - когда какое-либо транспортное средство было прикреплено к эвакуатору;
detach - когда прикрепленное транспортное средство было отсоединено от эвакуатора;
deadOrDestroy - когда прикрепленный автомобиль был уничтожен;
exit - когда игрок покидает эвакуатор, когда к нему привязано;
Чтобы использовать его:
- Создайте каталог towtruck в client_packages.
- Создайте в нём файл index.js и вставьте в него следующий код.
- После вызовите его в вашем скрипте client_packages / index.js с помощью require ('towtruck');.
Код данного скрипта:
PHP:
const Natives = {
SET_TOW_TRUCK_CRANE_HEIGHT : '0xFE54B92A344583CA', // SET_TOW_TRUCK_CRANE_HEIGHT(Vehicle towTruck, float height)
ATTACH_VEHICLE_TO_TOW_TRUCK : '0x29A16F8D621C4508', // ATTACH_VEHICLE_TO_TOW_TRUCK(Vehicle towTruck, Vehicle vehicle, BOOL rear, float hookOffsetX, float hookOffsetY, float hookOffsetZ)
DETACH_VEHICLE_FROM_TOW_TRUCK : '0xC2DB6B6708350ED8', // DETACH_VEHICLE_FROM_TOW_TRUCK(Vehicle towTruck, Vehicle vehicle)
DETACH_VEHICLE_FROM_ANY_TOW_TRUCK : '0xD0E9CE05A1E68CD8', // DETACH_VEHICLE_FROM_ANY_TOW_TRUCK(Vehicle vehicle)
IS_VEHICLE_ATTACHED_TO_TOW_TRUCK : '0x146DF9EC4C4B9FD4', // IS_VEHICLE_ATTACHED_TO_TOW_TRUCK(Vehicle towTruck, Vehicle vehicle)
GET_ENTITY_ATTACHED_TO_TOW_TRUCK : '0xEFEA18DCF10F8F75', // GET_ENTITY_ATTACHED_TO_TOW_TRUCK(Vehicle towTruck)
};
const localPlayer = mp.players.local;
let lastCheck = Date.now() / 1000;
let lastAttachVehicle = undefined;
let lastVehiclePlayer = undefined;
const OnPlayerTowTruckStateChange = (...args) =>
{
switch(args[0])
{
case 'attach':
{
const vehicle = args[1];
mp.gui.chat.push(`Attach vehicle. Vehicle have got ${vehicle.getHealth()} HP.`);
break;
}
case 'detach':
{
const vehicle = args[1];
const result = args[2];
mp.gui.chat.push(`Deatch vehicle. Vehicle have got ${vehicle.getHealth()} HP. Result: ${result}.`);
break;
}
case 'deadOrDestroy':
{
const result = args[1] || args[2];
mp.gui.chat.push(`Attached vehicle just doesn't exists or has been destroyed... Result: ${result}`);
break;
}
case 'exit':
{
const _lastVehiclePlayer = args[1];
const _lastAttachVehicle = args[2];
if(_lastAttachVehicle.doesExist() && !_lastAttachVehicle.isDead())
mp.game.invoke(Natives.DETACH_VEHICLE_FROM_TOW_TRUCK, _lastVehiclePlayer.handle, _lastAttachVehicle.handle);
mp.gui.chat.push(`Exit towtruck. lastVehiclePlayer: ${_lastVehiclePlayer}, lastAttachVehicle: ${_lastAttachVehicle}`);
break;
}
}
}
const getEntityAttachedVehicle = () =>
{
let findVeh = 0;
mp.vehicles.forEachInStreamRange((vehicle) =>
{
const v = mp.game.invoke(Natives.IS_VEHICLE_ATTACHED_TO_TOW_TRUCK, localPlayer.vehicle.handle, vehicle.handle);
if(v) findVeh = vehicle;
});
return findVeh;
}
mp.events.add(
{
'render' : () =>
{
if(Date.now() / 1000 > lastCheck + 5)
{
if(localPlayer.vehicle)
{
if(localPlayer.vehicle.model === parseInt(0xB12314E0) || localPlayer.vehicle.model === parseInt(0xE5A2D6C6)) // you are in towtruck or towtruck2
{
lastVehiclePlayer = localPlayer.vehicle;
if(!lastAttachVehicle)
{
const getEntityAttached = mp.game.invoke(Natives.GET_ENTITY_ATTACHED_TO_TOW_TRUCK, localPlayer.vehicle.handle);
if(getEntityAttached)
{
// GET_ENTITY_ATTACHED_TO_TOW_TRUCK return entity type... not entity object, so we must find it by yourselves....
lastAttachVehicle = getEntityAttachedVehicle();
OnPlayerTowTruckStateChange('attach', lastAttachVehicle);
}
}
else if(lastAttachVehicle && !lastAttachVehicle.doesExist() || lastAttachVehicle && lastAttachVehicle.isDead())
{
OnPlayerTowTruckStateChange('deadOrDestroy', lastAttachVehicle.doesExist(), lastAttachVehicle.isDead());
lastAttachVehicle = 0;
}
else
{
const isVehicleAttached = mp.game.invoke(Natives.IS_VEHICLE_ATTACHED_TO_TOW_TRUCK, localPlayer.vehicle.handle, lastAttachVehicle.handle);
if(!isVehicleAttached)
{
OnPlayerTowTruckStateChange('detach', lastAttachVehicle, isVehicleAttached);
lastAttachVehicle = undefined;
}
}
}
}
else if(!localPlayer.vehicle && lastVehiclePlayer && lastAttachVehicle) // when player exited tow truck while have got attached vehicle
{
OnPlayerTowTruckStateChange('exit', lastVehiclePlayer, lastAttachVehicle);
lastAttachVehicle = undefined;
lastVehiclePlayer = undefined;
}
lastCheck = Date.now() / 1000;
}
}
});
// other useful functions
const setTowTruckCraneHeight = (towTruck, height) => mp.game.invoke(Natives.SET_TOW_TRUCK_CRANE_HEIGHT, towTruck.handle, height);
const attachVehicleToTowTruck = (towTruck, vehicle, rear, hookOffsetX, hookOffsetY, hookOffsetZ) => mp.game.invoke(Natives.ATTACH_VEHICLE_TO_TOW_TRUCK, towTruck.handle, vehicle.handle, rear, hookOffsetX, hookOffsetY, hookOffsetZ);
Также можете просто скачать:
Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!
Последнее редактирование: