Всем Хай!
Многие из вас видели тему: http://pawno-info.ru/showthread.php?t=249058
Так вот... Лично у меня возникли не большие проблемы по данной системе.
Да и есть там маленький Fail, если игрока нет в машине, то машина спавнится. И это не удобно в некоторых случаях.
Так же я не юзал Timer и Циклы. Да и кода получилось меньше.
Многие из вас видели тему: http://pawno-info.ru/showthread.php?t=249058
Так вот... Лично у меня возникли не большие проблемы по данной системе.
Да и есть там маленький Fail, если игрока нет в машине, то машина спавнится. И это не удобно в некоторых случаях.
Так же я не юзал Timer и Циклы. Да и кода получилось меньше.
И так... Не все в курсе, да и я только недавно узнал от Alex_Lenez'а о:
Он срабатывает при движении Свободного Транспорта(Без водителя). Писал я совсем другую систему, появились 5 минут и написал эту xD
PHP:
public OnUnoccupiedVehicleUpdate(vehicleid, playerid, passenger_seat, Float:new_x, Float:new_y, Float:new_z, Float:vel_x, Float:vel_y, Float:vel_z)
Видео:
Приступим... Создадим глобальную переменную, которая будет отвечать за координаты Транспорта:
PHP:
new Float: VehPos[3][MAX_VEHICLES];
PHP:
new Float: VPos[3];
GetVehiclePos(vehicleid, VPos[0], VPos[1], VPos[2]);
if(VPos[0] != VehPos[0][vehicleid] || VPos[1] != VehPos[1][vehicleid] || VPos[2] != VehPos[2][vehicleid])
{
SetVehiclePos(vehicleid, VehPos[0][vehicleid], VehPos[1][vehicleid], VehPos[2][vehicleid]);
}
PHP:
stock FixCreateVehicle(type, Float: x, Float: y, Float: z, Float: rotation, color1, color2, respawn_delay)
{
new carid = CreateVehicle (type, x, y, z, rotation, color1, color2, respawn_delay);
VehPos[0][carid] = x, VehPos[1][carid] = y, VehPos[2][carid] = z;
return carid;
}
PHP:
GetVehiclePos(vehicleid, VehPos[0][vehicleid], VehPos[1][vehicleid], VehPos[2][vehicleid]);
PHP:
#include <a_samp>
new Float: VehPos[3][MAX_VEHICLES];
public OnPlayerExitVehicle(playerid, vehicleid)
{
GetVehiclePos(vehicleid, VehPos[0][vehicleid], VehPos[1][vehicleid], VehPos[2][vehicleid]);
return true;
}
public OnUnoccupiedVehicleUpdate(vehicleid, playerid, passenger_seat, Float:new_x, Float:new_y, Float:new_z, Float:vel_x, Float:vel_y, Float:vel_z)
{
new Float: VPos[3];
GetVehiclePos(vehicleid, VPos[0], VPos[1], VPos[2]);
if(VPos[0] != VehPos[0][vehicleid] || VPos[1] != VehPos[1][vehicleid] || VPos[2] != VehPos[2][vehicleid]) SetVehiclePos(vehicleid, VehPos[0][vehicleid], VehPos[1][vehicleid], VehPos[2][vehicleid]);
return true;
}
stock FixCreateVehicle(type, Float: x, Float: y, Float: z, Float: rotation, color1, color2, respawn_delay)
{
new carid = CreateVehicle (type, x, y, z, rotation, color1, color2, respawn_delay);
VehPos[0][carid] = x, VehPos[1][carid] = y, VehPos[2][carid] = z;
return carid;
}
Нужно просто проверку заменить на:
И будет так:
PHP:
if(VPos[0] != floatround(VehPos[0][vehicleid]) || VPos[1] != floatround(VehPos[1][vehicleid]) || VPos[2] != floatround(VehPos[2][vehicleid])) SetVehiclePos(vehicleid, VehPos[0][vehicleid], VehPos[1][vehicleid], VehPos[2][vehicleid]);
PHP:
#include <a_samp>
new Float: VehPos[3][MAX_VEHICLES];
public OnPlayerExitVehicle(playerid, vehicleid)
{
GetVehiclePos(vehicleid, VehPos[0][vehicleid], VehPos[1][vehicleid], VehPos[2][vehicleid]);
return true;
}
public OnUnoccupiedVehicleUpdate(vehicleid, playerid, passenger_seat, Float:new_x, Float:new_y, Float:new_z, Float:vel_x, Float:vel_y, Float:vel_z)
{
new Float: VPos[3];
GetVehiclePos(vehicleid, VPos[0], VPos[1], VPos[2]);
if(VPos[0] != floatround(VehPos[0][vehicleid]) || VPos[1] != floatround(VehPos[1][vehicleid]) || VPos[2] != floatround(VehPos[2][vehicleid])) SetVehiclePos(vehicleid, VehPos[0][vehicleid], VehPos[1][vehicleid], VehPos[2][vehicleid]);
return true;
}
stock FixCreateVehicle(type, Float: x, Float: y, Float: z, Float: rotation, color1, color2, respawn_delay)
{
new carid = CreateVehicle (type, x, y, z, rotation, color1, color2, respawn_delay);
VehPos[0][carid] = x, VehPos[1][carid] = y, VehPos[2][carid] = z;
return carid;
}
P.S. Повторюсь Функция срабатывает только тогда, когда движется транспорт без водителя. Так что, по-моему, не будет такой проблемы как с public OnPlayerUpdate(playerid)
Всем Спасибо за внимание xD
Автор: Я((Lev_Popov))
Последнее редактирование: