waitUntil {!isNil "GRLIB_permissions"};
waitUntil {!(GRLIB_permissions isEqualTo []) || !GRLIB_permissions_param};
private [ "_unflippable_vehicles", "_detected_vehicles", "_next_vehicle", "_next_vehicle_already_in_list", "_idact_next" ];
_unflippable_vehicles = [];
veh_action_distance = 10;
while { true } do {
if ([5] call KPLIB_fnc_hasPermission) then {
_detected_vehicles = ((getpos player) nearEntities [["Tank","APC","IFV","Car"], veh_action_distance]) select {
(count crew _x) == 0 &&
((locked _x == 0 || locked _x == 1)) &&
(_x distance startbase > 1000)
};
{
_next_vehicle = _x;
_next_vehicle_already_in_list = false;
{
if ( (_x select 0) == _next_vehicle ) then {
_next_vehicle_already_in_list = true;
};
} foreach _unflippable_vehicles;
if ( !_next_vehicle_already_in_list ) then {
_idact_next = _next_vehicle addAction [ "" + localize "STR_UNFLIP" + "
", "scripts\client\actions\do_unflip.sqf", "", -950, true, true, "", "build_confirmed == 0 && (_this distance _target < veh_action_distance) && (vehicle player == player)"];
_unflippable_vehicles pushback [ _next_vehicle, _idact_next ] ;
};
} foreach _detected_vehicles;
{
_next_vehicle = _x;
_next_vehicle_already_in_list = false;
{
if ( _x == (_next_vehicle select 0) ) then {
_next_vehicle_already_in_list = true;
};
} foreach _detected_vehicles;
if ( !_next_vehicle_already_in_list ) then {
(_next_vehicle select 0) removeAction (_next_vehicle select 1);
_unflippable_vehicles = _unflippable_vehicles - [ _next_vehicle ];
};
} foreach _unflippable_vehicles;
} else {
{
(_x select 0) removeAction (_x select 1);
_unflippable_vehicles = _unflippable_vehicles - [ _x ];
} foreach _unflippable_vehicles;
};
sleep 3;
};