mirror of
https://github.com/acemod/ACE3.git
synced 2024-08-30 18:23:18 +00:00
Pylons - Fix old weapons not being removed (#6100)
* Pylons - Fix old weapons not being removed Fix #6088 - Use removeWeaponTurret instead of removeWeaponGlobal - Fix "Too Far" warning showing on completion * Fix _x * Fix var name Co-Authored-By: Ozan Eğitmen <ozanegitmen@gmail.com>
This commit is contained in:
parent
59783a2e7a
commit
4cabaa48b7
@ -28,8 +28,17 @@
|
|||||||
} forEach GVAR(aircraftWithPylons);
|
} forEach GVAR(aircraftWithPylons);
|
||||||
|
|
||||||
[QGVAR(setPylonLoadOutEvent), {
|
[QGVAR(setPylonLoadOutEvent), {
|
||||||
params ["_aircraft", "_pylonIndex", "_pylon", "_turret"];
|
params ["_aircraft", "_pylonIndex", "_pylon", "_turret", "_weaponToRemove"];
|
||||||
|
TRACE_5("setPylonLoadOutEvent",_aircraft,_pylonIndex,_pylon,_turret,_weaponToRemove);
|
||||||
_aircraft setPylonLoadOut [_pylonIndex, _pylon, false, _turret];
|
_aircraft setPylonLoadOut [_pylonIndex, _pylon, false, _turret];
|
||||||
|
if (_weaponToRemove != "") then {
|
||||||
|
{
|
||||||
|
if (_aircraft turretLocal _x) then {
|
||||||
|
TRACE_3("removing",_aircraft,_x,_weaponToRemove);
|
||||||
|
_aircraft removeWeaponTurret [_weaponToRemove, _x];
|
||||||
|
};
|
||||||
|
} forEach [[-1], [0]];
|
||||||
|
};
|
||||||
}] call CBA_fnc_addEventHandler;
|
}] call CBA_fnc_addEventHandler;
|
||||||
|
|
||||||
[QGVAR(setAmmoOnPylonEvent), {
|
[QGVAR(setAmmoOnPylonEvent), {
|
||||||
|
@ -27,8 +27,10 @@ if (_currentPylon == count _pylonsToConfigure) exitWith {};
|
|||||||
{
|
{
|
||||||
(_this select 0) params ["_pylonsToConfigure", "_currentPylon"];
|
(_this select 0) params ["_pylonsToConfigure", "_currentPylon"];
|
||||||
private _pylonIndex = _pylonsToConfigure select _currentPylon;
|
private _pylonIndex = _pylonsToConfigure select _currentPylon;
|
||||||
|
TRACE_2("",_currentPylon,_pylonIndex);
|
||||||
|
|
||||||
// Remove the weapon of current pylon from aircraft IF weapon is only on this pylon
|
// Remove the weapon of current pylon from aircraft IF weapon is only on this pylon
|
||||||
|
private _weaponToRemove = "";
|
||||||
private _currentPylonMagazine = (getPylonMagazines GVAR(currentAircraft)) select _pylonIndex;
|
private _currentPylonMagazine = (getPylonMagazines GVAR(currentAircraft)) select _pylonIndex;
|
||||||
if (_currentPylonMagazine != "") then {
|
if (_currentPylonMagazine != "") then {
|
||||||
private _allPylonWeapons = (getPylonMagazines GVAR(currentAircraft)) apply {
|
private _allPylonWeapons = (getPylonMagazines GVAR(currentAircraft)) apply {
|
||||||
@ -36,7 +38,8 @@ if (_currentPylon == count _pylonsToConfigure) exitWith {};
|
|||||||
};
|
};
|
||||||
private _pylonWeapon = _allPylonWeapons select _pylonIndex;
|
private _pylonWeapon = _allPylonWeapons select _pylonIndex;
|
||||||
if (({_x == _pylonWeapon} count _allPylonWeapons) == 1) then {
|
if (({_x == _pylonWeapon} count _allPylonWeapons) == 1) then {
|
||||||
GVAR(currentAircraft) removeWeaponGlobal _pylonWeapon;
|
TRACE_2("Removing unused weapon",_pylonWeapon,_allPylonWeapons);
|
||||||
|
_weaponToRemove = _pylonWeapon;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -47,7 +50,7 @@ if (_currentPylon == count _pylonsToConfigure) exitWith {};
|
|||||||
|
|
||||||
[
|
[
|
||||||
QGVAR(setPylonLoadOutEvent),
|
QGVAR(setPylonLoadOutEvent),
|
||||||
[GVAR(currentAircraft), _pylonIndex + 1, _pylonMagazine, _turret]
|
[GVAR(currentAircraft), _pylonIndex + 1, _pylonMagazine, _turret, _weaponToRemove]
|
||||||
] call CBA_fnc_globalEvent;
|
] call CBA_fnc_globalEvent;
|
||||||
|
|
||||||
private _count = if (GVAR(rearmNewPylons) || {GVAR(isCurator)}) then {
|
private _count = if (GVAR(rearmNewPylons) || {GVAR(isCurator)}) then {
|
||||||
|
@ -149,7 +149,10 @@ if (!GVAR(isCurator)) then {
|
|||||||
isNull (GVAR(currentAircraft) getVariable [QGVAR(currentUser), objNull]) ||
|
isNull (GVAR(currentAircraft) getVariable [QGVAR(currentUser), objNull]) ||
|
||||||
{(ace_player distanceSqr GVAR(currentAircraft)) > GVAR(searchDistanceSqr)}
|
{(ace_player distanceSqr GVAR(currentAircraft)) > GVAR(searchDistanceSqr)}
|
||||||
}, {
|
}, {
|
||||||
|
TRACE_3("disconnect/far",GVAR(currentAircraft),ace_player distance GVAR(currentAircraft),GVAR(currentAircraft) getVariable QGVAR(currentUser));
|
||||||
|
if ((ace_player distanceSqr GVAR(currentAircraft)) > GVAR(searchDistanceSqr)) then {
|
||||||
[localize LSTRING(TooFar), false, 5] call EFUNC(common,displayText);
|
[localize LSTRING(TooFar), false, 5] call EFUNC(common,displayText);
|
||||||
|
};
|
||||||
call FUNC(onButtonClose);
|
call FUNC(onButtonClose);
|
||||||
}] call CBA_fnc_waitUntilAndExecute;
|
}] call CBA_fnc_waitUntilAndExecute;
|
||||||
};
|
};
|
||||||
|
Loading…
Reference in New Issue
Block a user