PDA

Просмотр полной версии : [Вопрос] Система /lock



SteveStage
26.10.2019, 20:25
Пацаны, выручайте. Я знаю, что причина - он не может получить айди транспорта, т.к. в нем не сидит, но как исправить - хз (проблема - при стоянии около транспорта и вводе /lock он не открывается, вопрос - как это реализовать?)

Код:
https://pastebin.com/9vb0qECF

- - - Добавлено - - -


CMD:lock(playerid)
{
new vehicleid = GetPlayerVehicleID(playerid);
if(GetPlayerState(playerid) != 2) return true;
if(IsABicycle(vehicleid)) return true;
if(IsABike(vehicleid)) return true;
GetVehiclePos(vehicleid, x_coord[playerid], y_coord[playerid], z_coord[playerid]);
if(IsPlayerInRangeOfPoint(playerid, 7.0, x_coord[playerid], y_coord[playerid], z_coord[playerid]) ||
IsPlayerInAnyVehicle(playerid) && lock_car{vehicleid} == false)
{
static
fmt_str_car_off[] = "*%s закрыл двери автомобиля";
new
str_car_off[sizeof(fmt_str_car_off)-2+MAX_PLAYER_NAME+1];
format(str_car_off, sizeof(str_car_off), fmt_str_car_off, GetName(playerid));
ProxDetector(playerid, 20.0, COLOR_ACTION, str_car_off);
GetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective);
SetVehicleParamsEx(vehicleid, engine, lights, alarm, VEHICLE_PARAMS_ON, bonnet, boot, objective);
lock_car{vehicleid} = true;
return true;
}
if(IsPlayerInRangeOfPoint(playerid, 7.0, x_coord[playerid],y_coord[playerid], z_coord[playerid]) ||
IsPlayerInAnyVehicle(playerid) && lock_car{vehicleid} == true)
{
static
fmt_str_car_on[] = "*%s открыл двери автомобиля";
new
str_car_on[sizeof(fmt_str_car_on)-2+MAX_PLAYER_NAME+1];
format(str_car_on, sizeof(str_car_on), fmt_str_car_on, GetName(playerid));
ProxDetector(playerid, 20.0, COLOR_ACTION, str_car_on);
GetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective);
SetVehicleParamsEx(vehicleid, engine, lights, alarm, VEHICLE_PARAMS_OFF, bonnet, boot, objective);
lock_car{vehicleid} = false;
return true;
}
return true;
}


new Float:x_coord[MAX_PLAYERS], Float:y_coord[MAX_PLAYERS], Float:z_coord[MAX_PLAYERS];

whale
27.10.2019, 00:54
Пытаешься закрыть личное ТС игрока? Либо же абсолютно любое?
Да и, почему бы просто не написать функцию, проверяющую ближайшее ТС к игроку?

В общем, совсем не понятна суть вышепредставленной реализации.

SteveStage
27.10.2019, 01:02
Пытаешься закрыть личное ТС игрока? Либо же абсолютно любое?

Абсолютно любое для начала

- - - Добавлено - - -


Да и, почему бы просто не написать функцию, проверяющую ближайшее ТС к игроку?

Я не знаю, как. Через IsPlayerInRangeOfPoint?

- - - Добавлено - - -


В общем, совсем не понятна суть вышепредставленной реализации.

Если ты стоишь в радиусе 7 метров от авто, либо ты в нем, и если дверь закрыта - ты ее открываешь, если же она открыта - ты ее закрываешь

DeimoS
27.10.2019, 01:19
А открыть любой паблик мод и посмотреть как там это реализовано не судьба?