mirror of
https://github.com/acemod/ACE3.git
synced 2024-08-30 18:23:18 +00:00
Dragging - Fix being able to load people into vehicles from any distance (#9638)
This commit is contained in:
parent
6bc5193a79
commit
7df63ffe2e
@ -28,7 +28,7 @@ if (_item isEqualType objNull && {{alive _x && {getText (configOf _x >> "simulat
|
|||||||
|
|
||||||
private _itemSize = [_item] call FUNC(getSizeItem);
|
private _itemSize = [_item] call FUNC(getSizeItem);
|
||||||
private _validItem = false;
|
private _validItem = false;
|
||||||
if (_item isEqualType "") then {
|
if (_item isEqualType "") then {
|
||||||
_validItem =
|
_validItem =
|
||||||
isClass (configFile >> "CfgVehicles" >> _item) &&
|
isClass (configFile >> "CfgVehicles" >> _item) &&
|
||||||
{getNumber (configFile >> "CfgVehicles" >> _item >> QGVAR(canLoad)) == 1};
|
{getNumber (configFile >> "CfgVehicles" >> _item >> QGVAR(canLoad)) == 1};
|
||||||
|
@ -75,12 +75,10 @@ private _hintLMB = LLSTRING(Drop);
|
|||||||
getCursorObjectParams params ["_cursorObject", "", "_distance"];
|
getCursorObjectParams params ["_cursorObject", "", "_distance"];
|
||||||
|
|
||||||
if (
|
if (
|
||||||
!isNull _cursorObject &&
|
!isNull _cursorObject && {[_unit, _cursorObject, ["isNotCarrying"]] call EFUNC(common,canInteractWith)} &&
|
||||||
{_distance < MAX_LOAD_DISTANCE} &&
|
|
||||||
{[_unit, _cursorObject, ["isNotCarrying"]] call EFUNC(common,canInteractWith)} &&
|
|
||||||
{
|
{
|
||||||
if (_target isKindOf "CAManBase") then {
|
if (_target isKindOf "CAManBase") then {
|
||||||
[_cursorObject, 0, true] call EFUNC(common,nearestVehiclesFreeSeat) isNotEqualTo []
|
(_distance <= MAX_LOAD_DISTANCE_MAN) && {[_cursorObject, 0, true] call EFUNC(common,nearestVehiclesFreeSeat) isNotEqualTo []}
|
||||||
} else {
|
} else {
|
||||||
["ace_cargo"] call EFUNC(common,isModLoaded) &&
|
["ace_cargo"] call EFUNC(common,isModLoaded) &&
|
||||||
{[_target, _cursorObject] call EFUNC(cargo,canLoadItemIn)}
|
{[_target, _cursorObject] call EFUNC(cargo,canLoadItemIn)}
|
||||||
|
@ -79,7 +79,7 @@ if !(_target isKindOf "CAManBase") then {
|
|||||||
|
|
||||||
// Recreate UAV crew (add a frame delay or this may cause the vehicle to be moved to [0,0,0])
|
// Recreate UAV crew (add a frame delay or this may cause the vehicle to be moved to [0,0,0])
|
||||||
if (_target getVariable [QGVAR(isUAV), false]) then {
|
if (_target getVariable [QGVAR(isUAV), false]) then {
|
||||||
[{
|
[{
|
||||||
params ["_target"];
|
params ["_target"];
|
||||||
if (!alive _target) exitWith {};
|
if (!alive _target) exitWith {};
|
||||||
TRACE_2("restoring uav crew",_target,getPosASL _target);
|
TRACE_2("restoring uav crew",_target,getPosASL _target);
|
||||||
@ -97,11 +97,13 @@ if (_mass != 0) then {
|
|||||||
// Reset temp direction
|
// Reset temp direction
|
||||||
_target setVariable [QGVAR(carryDirection_temp), nil];
|
_target setVariable [QGVAR(carryDirection_temp), nil];
|
||||||
|
|
||||||
private _cursorObject = cursorObject;
|
getCursorObjectParams params ["_cursorObject", "", "_distance"];
|
||||||
|
|
||||||
// Try loading into vehicle
|
// Try loading into vehicle
|
||||||
if (_tryLoad && {!isNull _cursorObject} && {[_unit, _cursorObject, ["isNotCarrying"]] call EFUNC(common,canInteractWith)}) then {
|
if (_tryLoad && {!isNull _cursorObject} && {[_unit, _cursorObject, ["isNotCarrying"]] call EFUNC(common,canInteractWith)}) then {
|
||||||
if (_target isKindOf "CAManBase") then {
|
if (_target isKindOf "CAManBase") then {
|
||||||
|
if (_distance > MAX_LOAD_DISTANCE_MAN) exitWith {};
|
||||||
|
|
||||||
private _vehicles = [_cursorObject, 0, true] call EFUNC(common,nearestVehiclesFreeSeat);
|
private _vehicles = [_cursorObject, 0, true] call EFUNC(common,nearestVehiclesFreeSeat);
|
||||||
|
|
||||||
if ([_cursorObject] isEqualTo _vehicles) then {
|
if ([_cursorObject] isEqualTo _vehicles) then {
|
||||||
|
@ -16,7 +16,7 @@
|
|||||||
|
|
||||||
#include "\z\ace\addons\main\script_macros.hpp"
|
#include "\z\ace\addons\main\script_macros.hpp"
|
||||||
|
|
||||||
#define MAX_LOAD_DISTANCE 5
|
#define MAX_LOAD_DISTANCE_MAN 5
|
||||||
|
|
||||||
#define DRAG_ANIMATIONS ["amovpercmstpslowwrfldnon_acinpknlmwlkslowwrfldb_2", "amovpercmstpsraswpstdnon_acinpknlmwlksnonwpstdb_2", "amovpercmstpsnonwnondnon_acinpknlmwlksnonwnondb_2", "acinpknlmstpsraswrfldnon", "acinpknlmstpsnonwpstdnon", "acinpknlmstpsnonwnondnon", "acinpknlmwlksraswrfldb", "acinpknlmwlksnonwnondb", "ace_dragging_rifle_limpb", "ace_dragging", "ace_dragging_limpb", "ace_dragging_static", "ace_dragging_drop"]
|
#define DRAG_ANIMATIONS ["amovpercmstpslowwrfldnon_acinpknlmwlkslowwrfldb_2", "amovpercmstpsraswpstdnon_acinpknlmwlksnonwpstdb_2", "amovpercmstpsnonwnondnon_acinpknlmwlksnonwnondb_2", "acinpknlmstpsraswrfldnon", "acinpknlmstpsnonwpstdnon", "acinpknlmstpsnonwnondnon", "acinpknlmwlksraswrfldb", "acinpknlmwlksnonwnondb", "ace_dragging_rifle_limpb", "ace_dragging", "ace_dragging_limpb", "ace_dragging_static", "ace_dragging_drop"]
|
||||||
#define CARRY_ANIMATIONS ["acinpercmstpsnonwnondnon", "acinpknlmstpsnonwnondnon_acinpercmrunsnonwnondnon"]
|
#define CARRY_ANIMATIONS ["acinpercmstpsnonwnondnon", "acinpknlmstpsnonwnondnon_acinpercmrunsnonwnondnon"]
|
||||||
|
Loading…
Reference in New Issue
Block a user