Merge branch 'master' into virtualExplosivesPlace

This commit is contained in:
PabstMirror 2015-08-21 09:16:15 -05:00
commit e0f20350a2
197 changed files with 2008 additions and 1187 deletions

View File

@ -3,8 +3,9 @@ ace_advanced_ballistics
The Advanced Ballistics module introduces advanced external- and internal ballistics to the game.
## Maintainers
The people responsible for merging changes to this component or answering potential questions.
- [Ruthberg] (http://github.com/Ulteq)
- [Ruthberg](http://github.com/Ulteq)

View File

@ -1,9 +1,10 @@
ace_aircraft
============
Changes to air weaponry, flightmodels and HUDs.
Changes to air weaponry, flight models and HUDs.
- Contributions by Kimi (geraldbolso1899) for HUD updates
* Contributations by Kimi (geraldbolso1899) for HUD updates
## Maintainers
@ -11,4 +12,4 @@ The people responsible for merging changes to this component or answering potent
- [KoffeinFlummi](https://github.com/KoffeinFlummi)
- [commy2](https://github.com/commy2)
- [jaynus](https://github.com/walterpearce)
- [jaynus](https://github.com/walterpearce)

11
addons/apl/README.md Normal file
View File

@ -0,0 +1,11 @@
ace_apl
============
Assets licensed under Arma Public License (APL).
## Maintainers
The people responsible for merging changes to this component or answering potential questions.
- None

View File

@ -3,8 +3,9 @@ ace_atragmx
ATragMX - Handheld ballistics calculator
## Maintainers
The people responsible for merging changes to this component or answering potential questions.
- [Ruthberg] (http://github.com/Ulteq)
- [Ruthberg](http://github.com/Ulteq)

View File

@ -2,7 +2,9 @@ ace_attach
==========
Introducing the ability to attach various throwables to yourself or vehicles, to mark your position and assist in IFF.
Adds item `ACE_IR_Strobe_Item`.
#### Items Added:
`ACE_IR_Strobe_Item`
## Maintainers

View File

@ -1,7 +1,8 @@
ace_backpacks
=================
Adds indication when someone else opens your backpack (soundeffect / camShake).
Adds indication when someone else opens your backpack (sound effect and camera shake).
## Maintainers

View File

@ -3,10 +3,11 @@ ace_ballistics
Changes to weapon, magazine and ammunition values.
## Maintainers
The people responsible for merging changes to this component or answering potential questions.
- [Ruthberg] (http://github.com/Ulteq)
- [Ruthberg](http://github.com/Ulteq)
- [KoffeinFlummi](https://github.com/KoffeinFlummi)
- [commy2](https://github.com/commy2)

View File

@ -1,10 +1,10 @@
ace_captives
============
Allows taking people captive/handcuffed
Adds ability to handcuff and surrender.
####Items:
`ACE_CableTie` - adds ability to take someone captive
#### Items Added:
`ACE_CableTie`
## Maintainers

View File

@ -223,15 +223,19 @@
</Key>
<Key ID="STR_ACE_Captives_ModuleSettings_requireSurrender_name">
<English>Require surrendering</English>
<Polish>Wymagaj kapitulacji</Polish>
</Key>
<Key ID="STR_ACE_Captives_ModuleSettings_requireSurrender_description">
<English>Require Players to surrender before they can be arrested</English>
<Polish>Wymagaj od graczy kapitulacji zanim będzie można ich zaaresztować</Polish>
</Key>
<Key ID="STR_ACE_Captives_SurrenderOnly">
<English>Surrendering only</English>
<Polish>Tylko kapitulacja</Polish>
</Key>
<Key ID="STR_ACE_Captives_SurrenderOrNoWeapon">
<English>Surrendering or No weapon</English>
<Polish>Kapitulacja lub brak broni</Polish>
</Key>
</Package>
</Project>
</Project>

View File

@ -1,9 +1,9 @@
class ACE_Settings {
class GVAR(enable) {
displayName = CSTRING(ModuleSettings_enable);
description = CSTRING(ModuleSettings_enable_desc);
description = CSTRING(ModuleSettings_enable_Description);
typeName = "BOOL";
value = 1;
category = CSTRING(settingsCategory);
category = ECSTRING(OptionsMenu,CategoryLogistics);
};
};

View File

@ -1,4 +1,3 @@
class Extended_PreInit_EventHandlers {
class ADDON {
init = QUOTE(call COMPILE_FILE(XEH_preInit));
@ -77,4 +76,22 @@ class Extended_Init_EventHandlers {
init = QUOTE(_this call DFUNC(initVehicle));
};
};
class ACE_RepairItem_Base {
class ADDON {
init = QUOTE(_this call DFUNC(initObject));
};
};
class ACE_bodyBagObject {
class ADDON {
init = QUOTE(_this call DFUNC(initObject));
};
};
class ACE_ConcertinaWireCoil {
class ADDON {
init = QUOTE(_this call DFUNC(initObject));
};
};
};

View File

@ -1,13 +1,11 @@
class CfgVehicles {
class ACE_Module;
class ACE_moduleCargoSettings: ACE_Module {
scope = 2;
displayName = CSTRING(SettingsModule_DisplayName);
icon = QUOTE(PATHTOF(UI\Icon_Module_Cargo_ca.paa));
category = "ACE";
function = QUOTE(DFUNC(moduleSettings));
category = "ACE_Logistics";
function = QFUNC(moduleSettings);
functionPriority = 1;
isGlobal = 1;
isTriggerActivated = 0;
@ -15,13 +13,13 @@ class CfgVehicles {
class Arguments {
class enable {
displayName = CSTRING(ModuleSettings_enable);
description = CSTRING(ModuleSettings_enable_desc);
description = CSTRING(ModuleSettings_enable_Description);
typeName = "BOOL";
defaultValue = 1;
};
};
class ModuleDescription {
description = CSTRING(SettingsModule_Desc);
description = CSTRING(SettingsModule_Description);
sync[] = {};
};
};
@ -41,11 +39,11 @@ class CfgVehicles {
};*/
};
};
class Tank: LandVehicle {
GVAR(space) = 4;
GVAR(hasCargo) = 1;
};
class Car_F;
class Truck_F: Car_F {
GVAR(space) = 8;
@ -53,25 +51,20 @@ class CfgVehicles {
};
class Air;
// Repair helicopters
class Helicopter: Air {
GVAR(space) = 8;
GVAR(hasCargo) = 1;
};
class Heli_Transport_02_base_F;
class I_Heli_Transport_02_F : Heli_Transport_02_base_F {
GVAR(space) = 20;
GVAR(hasCargo) = 1;
};
// Repair fixed wing aircraft
class Plane: Air {
GVAR(space) = 4;
GVAR(hasCargo) = 1;
};
// boats
class Ship;
class Ship_F: Ship {
GVAR(space) = 4;

12
addons/cargo/README.md Normal file
View File

@ -0,0 +1,12 @@
ace_cargo
============
Adds cargo menu to vehicles and allows loading and unloading of cargo items.
## Maintainers
The people responsible for merging changes to this component or answering potential questions.
- [commy2](https://github.com/commy2)
- [Glowbal](https://github.com/Glowbal)

View File

@ -2,22 +2,23 @@
ADDON = false;
PREP(canLoad);
PREP(canLoadItemIn);
PREP(canUnloadItem);
PREP(canLoad);
PREP(findNearestVehicle);
PREP(getCargoSpaceLeft);
PREP(GetSizeItem);
PREP(getSizeItem);
PREP(handleDestroyed);
PREP(initObject);
PREP(initVehicle);
PREP(handleDestroyed);
PREP(moduleSettings);
PREP(loadItem);
PREP(moduleSettings);
PREP(onMenuOpen);
PREP(unloadItem);
PREP(validateCargoSpace);
PREP(startLoadIn);
PREP(startUnload);
PREP(unloadItem);
PREP(validateCargoSpace);
GVAR(initializedItemClasses) = [];
if (isServer) then {

View File

@ -12,7 +12,7 @@ class CfgPatches {
};
};
#include "ACE_Settings.hpp"
#include "CfgEventHandlers.hpp"
#include "CfgVehicles.hpp"
#include "menu.hpp"
#include "ACE_Settings.hpp"

View File

@ -1,6 +1,6 @@
/*
* Author: Glowbal
* Check if player can load item into the nearest vehicle
* Check if player can load an item into the nearest vehicle.
*
* Arguments:
* 0: Player <OBJECT>
@ -9,9 +9,11 @@
* Return value:
* Can load <BOOL>
*
* Example:
* [player, object] call ace_cargo_fnc_canLoad
*
* Public: No
*/
#include "script_component.hpp"
params ["_player", "_object"];
@ -20,12 +22,11 @@ private ["_nearestVehicle"];
_nearestVehicle = [_player] call FUNC(findNearestVehicle);
if (_nearestVehicle isKindOf "Cargo_Base_F" || isNull _nearestVehicle) then {
{
if ([_object, _x] call FUNC(canLoadItemIn)) exitwith {_nearestVehicle = _x};
}foreach (nearestObjects [_player, ["Cargo_base_F", "Land_PaperBox_closed_F"], MAX_LOAD_DISTANCE]);
if ([_object, _x] call FUNC(canLoadItemIn)) exitWith {_nearestVehicle = _x};
} forEach (nearestObjects [_player, ["Cargo_base_F", "Land_PaperBox_closed_F"], MAX_LOAD_DISTANCE]);
};
if (isNull _nearestVehicle) exitwith {false};
if (isNull _nearestVehicle) exitWith {false};
[_object, _nearestVehicle] call FUNC(canLoadItemIn);
[_object, _nearestVehicle] call FUNC(canLoadItemIn)

View File

@ -1,23 +1,29 @@
/*
* Author: Glowbal
* Check if item can be loaded into other Object
* Check if item can be loaded into other Object.
*
* Arguments:
* 0: Item Object <OBJECT>
* 1: Holder Object (vehicle) <OBJECT>
* 1: Holder Object (Vehicle) <OBJECT>
*
* Return value:
* Can load in <BOOL>
*
* Example:
* [item, holder] call ace_cargo_fnc_canLoadItemIn
*
* Public: No
*/
#include "script_component.hpp"
params ["_item", "_vehicle"];
if (speed _vehicle > 1 || (((getPos _vehicle) select 2) > 3)) exitwith {false};
if (speed _vehicle > 1 || (((getPos _vehicle) select 2) > 3)) exitWith {false};
private "_itemSize";
_itemSize = ([_item] call FUNC(getSizeItem));
_itemSize > 0 && {alive _item && alive _vehicle} && {(_item distance _vehicle <= MAX_LOAD_DISTANCE)} && {_itemSize <= ([_vehicle] call FUNC(getCargoSpaceLeft))};
(_itemSize > 0) &&
{alive _item && alive _vehicle} &&
{(_item distance _vehicle <= MAX_LOAD_DISTANCE)} &&
{_itemSize <= ([_vehicle] call FUNC(getCargoSpaceLeft))}

View File

@ -1,23 +1,27 @@
/*
* Author: Glowbal, ViperMaul
* Check if item can be unloaded
* Check if item can be unloaded.
*
* Arguments:
* 0: loaded object <OBJECT>
* 0: loaded Object <OBJECT>
* 1: Object <OBJECT>
*
* Return value:
* Can be unloaded <BOOL>
*
* Example:
* [item, holder] call ace_cargo_fnc_canUnloadItem
*
* Public: No
*/
#include "script_component.hpp"
private ["_loaded", "_validVehiclestate", "_emptyPos"];
params ["_item", "_vehicle"];
_loaded = _vehicle getvariable [QGVAR(loaded), []];
if !(_item in _loaded) exitwith {false};
_loaded = _vehicle getVariable [QGVAR(loaded), []];
if !(_item in _loaded) exitWith {false};
_validVehiclestate = true;
_emptyPos = [];
@ -35,5 +39,6 @@ if (_vehicle isKindOf "Ship" ) then {
};
};
if (!_validVehiclestate) exitwith { false };
(count _emptyPos != 0);
if (!_validVehiclestate) exitWith {false};
(count _emptyPos != 0)

View File

@ -1,34 +1,37 @@
/*
* Author: Glowbal
* Get nearest vehicle, priority car, air, tank, ship
* Get nearest vehicle from unit, priority: Car-Air-Tank-Ship.
*
* Arguments:
* 0: Object <OBJECT>
* 0: Unit <OBJECT>
*
* Return value:
* Vehicle that is in Distance <OBJECT>
* Vehicle in Distance <OBJECT>
*
* Example:
* [unit] call ace_cargo_fnc_findNearestVehicle
*
* Public: No
*/
#include "script_component.hpp"
private ["_loadCar", "_loadHelicopter", "_loadTank", "_loadShip", "_loadContainer"];
params ["_unit"];
_loadCar = nearestObject [_unit, "car"];
if (_unit distance _loadCar <= MAX_LOAD_DISTANCE) exitwith {_loadCar};
if (_unit distance _loadCar <= MAX_LOAD_DISTANCE) exitWith {_loadCar};
_loadHelicopter = nearestObject [_unit, "air"];
if (_unit distance _loadHelicopter <= MAX_LOAD_DISTANCE) exitwith {_loadHelicopter};
if (_unit distance _loadHelicopter <= MAX_LOAD_DISTANCE) exitWith {_loadHelicopter};
_loadTank = nearestObject [_unit, "tank"];
if (_unit distance _loadTank <= MAX_LOAD_DISTANCE) exitwith {_loadTank};
if (_unit distance _loadTank <= MAX_LOAD_DISTANCE) exitWith {_loadTank};
_loadShip = nearestObject [_unit, "ship"];
if (_unit distance _loadShip <= MAX_LOAD_DISTANCE) exitwith {_loadShip};
if (_unit distance _loadShip <= MAX_LOAD_DISTANCE) exitWith {_loadShip};
_loadContainer = nearestObject [_unit,"Cargo_base_F"];
if (_unit distance _loadContainer <= MAX_LOAD_DISTANCE) exitwith {_loadContainer};
if (_unit distance _loadContainer <= MAX_LOAD_DISTANCE) exitWith {_loadContainer};
objNull;
objNull

View File

@ -1,6 +1,6 @@
/*
* Author: Glowbal
* Get the cargo space left on object
* Get the cargo space left on object.
*
* Arguments:
* 0: Object <OBJECT>
@ -8,10 +8,13 @@
* Return value:
* Cargo space left <NUMBER>
*
* Example:
* [object] call ace_cargo_fnc_getCargoSpaceLeft
*
* Public: No
*/
#include "script_component.hpp"
params ["_vehicle"];
_vehicle getvariable [QGVAR(space), getNumber (configFile >> "CfgVehicles" >> typeof _vehicle >> QGVAR(space))];
params ["_object"];
_object getVariable [QGVAR(space), getNumber (configFile >> "CfgVehicles" >> typeof _object >> QGVAR(space))]

View File

@ -1,22 +1,28 @@
/*
* Author: Glowbal
* Get the cargo size of an object
* Get the cargo size of an object.
*
* Arguments:
* 0: Object <OBJECT>
*
* Return value:
* Cargo size. <NUMBER> (default: -1)
* Cargo size <NUMBER> (default: -1)
*
* Example:
* [object] call ace_cargo_fnc_getSizeItem
*
* Public: No
*/
#include "script_component.hpp"
private "_config";
params ["_item"];
_config = (configFile >> "CfgVehicles" >> typeof _item >> QGVAR(size));
if (isNumber (_config)) exitwith {
_item getvariable [QGVAR(size), getNumber (_config)];
if (isNumber (_config)) exitWith {
_item getVariable [QGVAR(size), getNumber (_config)]
};
-1

View File

@ -1,6 +1,6 @@
/*
* Author: Glowbal
* Handle object being destroyed
* Handle object being destroyed.
*
* Arguments:
* 0: Object <OBJECT>
@ -8,17 +8,19 @@
* Return value:
* None
*
* Example:
* [object] call ace_cargo_fnc_handleDestroyed
*
* Public: No
*/
#include "script_component.hpp"
params ["_vehicle"];
private["_loaded"];
_loaded = _vehicle getvariable [QGVAR(loaded), []];
if (count _loaded == 0) exitwith {};
_loaded = _vehicle getVariable [QGVAR(loaded), []];
if (count _loaded == 0) exitWith {};
{
// TODO deleteVehicle or just delete vehicle? Do we want to be able to recover destroyed equipment?

View File

@ -1,21 +1,23 @@
/*
* Author: Glowbal
* Initialize variables for loadable objects. Called from init EH.
* Initializes variables for loadable objects. Called from init EH.
*
* Arguments:
* 0: Any object <OBJECT>
* 0: Object <OBJECT>
*
* Return value:
* None
*
* Example:
* [object] call ace_cargo_fnc_initObject
*
* Public: No
*/
#include "script_component.hpp"
params ["_object"];
if (getNumber (configFile >> "CfgVehicles" >> typeOf _object >> QGVAR(canLoad)) != 1) exitwith {};
if (getNumber (configFile >> "CfgVehicles" >> typeOf _object >> QGVAR(canLoad)) != 1) exitWith {};
private ["_type", "_action"];
_type = typeOf _object;

View File

@ -1,16 +1,18 @@
/*
* Author: Glowbal
* initalize vehicle. Adds open caro menu action if available
* Initializes vehicle, adds open caro menu action if available.
*
* Arguments:
* 0: vehicle <OBJECT>
* 0: Vehicle <OBJECT>
*
* Return Value:
* None
*
* Example:
* [vehicle] call ace_cargo_fnc_initVehicle
*
* Public: No
*/
#include "script_component.hpp"
params ["_vehicle"];
@ -31,7 +33,7 @@ if (isServer) then {
_position set [2, (_position select 2) + 7.5];
for "_i" from 1 to _amount do {
_object = createVehicle [_className, _position, [], 0, "CAN_COLLIDE"];
if !([_object, _vehicle] call FUNC(loadItem)) exitwith {
if !([_object, _vehicle] call FUNC(loadItem)) exitWith {
deleteVehicle _object;
};
};
@ -46,7 +48,7 @@ if (_type in _initializedClasses) exitWith {};
_initializedClasses pushBack _type;
SETMVAR(GVAR(initializedClasses),_initializedClasses);
if (getNumber (configFile >> "CfgVehicles" >> _type >> QGVAR(hasCargo)) != 1) exitwith {};
if (getNumber (configFile >> "CfgVehicles" >> _type >> QGVAR(hasCargo)) != 1) exitWith {};
private ["_text", "_condition", "_statement", "_icon", "_action"];
_condition = {GVAR(enable)};

View File

@ -1,34 +1,37 @@
/*
* Author: Glowbal
* Load object into vehicle
* Load object into vehicle.
*
* Arguments:
* 0: Object <OBJECT>
* 1: Vehicle <OBJECT>
*
* Return value:
* None
* Object loaded <BOOL>
*
* Example:
* [object, vehicle] call ace_cargo_fnc_loadItem
*
* Public: No
*/
#include "script_component.hpp"
private ["_loaded", "_space", "_itemSize"];
params ["_item", "_vehicle"];
if !([_item, _vehicle] call FUNC(canLoadItemIn)) exitwith {false};
if !([_item, _vehicle] call FUNC(canLoadItemIn)) exitWith {false};
_loaded = _vehicle getvariable [QGVAR(loaded), []];
_loaded = _vehicle getVariable [QGVAR(loaded), []];
_loaded pushback _item;
_vehicle setvariable [QGVAR(loaded), _loaded, true];
_vehicle setVariable [QGVAR(loaded), _loaded, true];
_space = [_vehicle] call FUNC(getCargoSpaceLeft);
_itemSize = [_item] call FUNC(getSizeItem);
_vehicle setvariable [QGVAR(space), _space - _itemSize, true];
_vehicle setVariable [QGVAR(space), _space - _itemSize, true];
detach _item;
_item attachTo [_vehicle,[0,0,100]];
["cargo_hideItem", [_item, true]] call EFUNC(common,serverEvent);
true;
true

View File

@ -3,19 +3,26 @@
* Module for adjusting the cargo settings
*
* Arguments:
* 0: The module logic <LOGIC>
* 1: units <ARRAY>
* 2: activated <BOOL>
* 0: The module logic <OBJECT>
* 1: Synchronized units <ARRAY>
* 2: Activated <BOOL>
*
* Return Value:
* None
*
* Example:
* function = "ace_cargo_fnc_loadItem"
*
* Public: No
*/
#include "script_component.hpp"
if (!isServer) exitWith {};
params ["_logic", "_units", "_activated"];
if !(_activated) exitWith {};
if (!_activated) exitWith {};
[_logic, QGVAR(enable), "enable"] call EFUNC(common,readSettingFromModule);
diag_log text "[ACE]: Cargo Module Initialized.";

View File

@ -1,37 +1,40 @@
/*
* Author: Glowbal
* Handle the UI data display
* Handle the UI data display.
*
* Arguments:
* 0: display <DISPLAY>
* 0: Display <DISPLAY>
*
* Return value:
* None
*
* Example:
* [display] call ace_cargo_fnc_onMenuOpen
*
* Public: No
*/
#include "script_component.hpp"
disableSerialization;
params["_display"];
uiNamespace setvariable [QGVAR(menuDisplay), _display];
params ["_display"];
uiNamespace setVariable [QGVAR(menuDisplay), _display];
[{
private ["_display","_loaded", "_ctrl", "_label"];
disableSerialization;
_display = uiNamespace getvariable QGVAR(menuDisplay);
if (isnil "_display") exitwith {
_display = uiNamespace getVariable QGVAR(menuDisplay);
if (isnil "_display") exitWith {
[_this select 1] call CBA_fnc_removePerFrameHandler;
};
if (isNull GVAR(interactionVehicle) || ACE_player distance GVAR(interactionVehicle) >= 10) exitwith {
if (isNull GVAR(interactionVehicle) || ACE_player distance GVAR(interactionVehicle) >= 10) exitWith {
closeDialog 0;
[_this select 1] call CBA_fnc_removePerFrameHandler;
};
_loaded = GVAR(interactionVehicle) getvariable [QGVAR(loaded), []];
_loaded = GVAR(interactionVehicle) getVariable [QGVAR(loaded), []];
_ctrl = _display displayCtrl 100;
_label = _display displayCtrl 2;

View File

@ -1,16 +1,18 @@
/*
* Author: Glowbal
* Start load item
* Start load item.
*
* Arguments:
* 0: Any object <OBJECT>
* 0: Object <OBJECT>
*
* Return value:
* None
* Object loaded <BOOL>
*
* Example:
* [object] call ace_cargo_fnc_starLoadIn
*
* Public: No
*/
#include "script_component.hpp"
params ["_player", "_object"];
@ -19,11 +21,11 @@ private ["_nearestVehicle"];
_nearestVehicle = [_player] call FUNC(findNearestVehicle);
if (isNull _nearestVehicle || _nearestVehicle isKindOf "Cargo_Base_F") then {
{
if ([_object, _x] call FUNC(canLoadItemIn)) exitwith {_nearestVehicle = _x};
}foreach (nearestObjects [_player, ["Cargo_base_F", "Land_PaperBox_closed_F"], MAX_LOAD_DISTANCE]);
if ([_object, _x] call FUNC(canLoadItemIn)) exitWith {_nearestVehicle = _x};
} foreach (nearestObjects [_player, ["Cargo_base_F", "Land_PaperBox_closed_F"], MAX_LOAD_DISTANCE]);
};
if (isNull _nearestVehicle) exitwith {false};
[_object, _nearestVehicle] call FUNC(loadItem);
if (isNull _nearestVehicle) exitWith {false};
[_object, _nearestVehicle] call FUNC(loadItem)

View File

@ -1,6 +1,6 @@
/*
* Author: Glowbal
* Start unload action
* Start unload action.
*
* Arguments:
* None
@ -8,24 +8,28 @@
* Return value:
* None
*
* Example:
* [] call ace_cargo_fnc_startUnload
*
* Public: No
*/
#include "script_component.hpp"
private ["_display", "_loaded", "_ctrl", "_selected", "_item"];
disableSerialization;
_display = uiNamespace getvariable QGVAR(menuDisplay);
if (isnil "_display") exitwith {};
_loaded = GVAR(interactionVehicle) getvariable [QGVAR(loaded), []];
if (count _loaded == 0) exitwith {};
disableSerialization;
_display = uiNamespace getVariable QGVAR(menuDisplay);
if (isnil "_display") exitWith {};
_loaded = GVAR(interactionVehicle) getVariable [QGVAR(loaded), []];
if (count _loaded == 0) exitWith {};
_ctrl = _display displayCtrl 100;
_selected = (lbCurSel _ctrl) max 0;
if (count _loaded <= _selected) exitwith {};
if (count _loaded <= _selected) exitWith {};
_item = _loaded select _selected;
[_item, GVAR(interactionVehicle)] call FUNC(unloadItem);

View File

@ -1,23 +1,26 @@
/*
* Author: Glowbal, ViperMaul
* Unload object from vehicle
* Unload object from vehicle.
*
* Arguments:
* 0: Object <OBJECT>
* 1: Vehicle <OBJECT>
*
* Return value:
* None
* Object unloaded <BOOL>
*
* Example:
* [object, vehicle] call ace_cargo_fnc_unloadItem
*
* Public: No
*/
#include "script_component.hpp"
private ["_loaded", "_space", "_itemSize", "_emptyPos", "_validVehiclestate"];
params ["_item", "_vehicle"];
if !([_item, _vehicle] call FUNC(canUnloadItem)) exitwith {
if !([_item, _vehicle] call FUNC(canUnloadItem)) exitWith {
false
};
@ -41,17 +44,17 @@ if (_vehicle isKindOf "Ship" ) then {
};
TRACE_1("getPosASL Vehicle Check", getPosASL _vehicle);
if (!_validVehiclestate) exitwith { false };
if (!_validVehiclestate) exitWith {false};
if (count _emptyPos == 0) exitwith { false }; //consider displaying text saying there are no safe places to exit the vehicle
if (count _emptyPos == 0) exitWith {false}; //consider displaying text saying there are no safe places to exit the vehicle
_loaded = _vehicle getvariable [QGVAR(loaded), []];
_loaded = _vehicle getVariable [QGVAR(loaded), []];
_loaded = _loaded - [_item];
_vehicle setvariable [QGVAR(loaded), _loaded, true];
_vehicle setVariable [QGVAR(loaded), _loaded, true];
_space = [_vehicle] call FUNC(getCargoSpaceLeft);
_itemSize = [_item] call FUNC(getSizeItem);
_vehicle setvariable [QGVAR(space), (_space + _itemSize), true];
_vehicle setVariable [QGVAR(space), (_space + _itemSize), true];
detach _item;
_item setPosASL (_emptyPos call EFUNC(common,PositiontoASL));
@ -59,4 +62,4 @@ _item setPosASL (_emptyPos call EFUNC(common,PositiontoASL));
// TOOO maybe drag/carry the unloaded item?
true;
true

View File

@ -1,6 +1,6 @@
/*
* Author: Glowbal
* Validate the vehicle cargo space
* Validate the vehicle cargo space.
*
* Arguments:
* 0: Object <OBJECT>
@ -8,14 +8,19 @@
* Return value:
* None
*
* Example:
* [object] call ace_cargo_fnc_validateCargoSpace
*
* Public: No
*/
#include "script_component.hpp"
private ["_loaded", "_newLoaded", "_totalSpaceOccupied"];
params ["_vehicle"];
_loaded = _vehicle getvariable [QGVAR(loaded), []];
_loaded = _vehicle getVariable [QGVAR(loaded), []];
_newLoaded = [];
_totalSpaceOccupied = 0;
{
@ -27,6 +32,7 @@ _totalSpaceOccupied = 0;
} count _loaded;
if (count _loaded != count _newLoaded) then {
_vehicle setvariable [QGVAR(loaded), _newLoaded, true];
_vehicle setVariable [QGVAR(loaded), _newLoaded, true];
};
_vehicle setvariable [QGVAR(space), getNumber (configFile >> "CfgVehicles" >> typeof _vehicle >> QGVAR(space)) - _totalSpaceOccupied, true];
_vehicle setVariable [QGVAR(space), getNumber (configFile >> "CfgVehicles" >> typeof _vehicle >> QGVAR(space)) - _totalSpaceOccupied, true];

View File

@ -1 +1 @@
#include "\z\ace\addons\cargo\script_component.hpp"
#include "\z\ace\addons\cargo\script_component.hpp"

View File

@ -1,11 +1,10 @@
#include "\z\ace\addons\common\define.hpp"
class GVAR(menu) {
idd = 314614;
movingEnable = true;
onLoad = QUOTE([_this select 0] call FUNC(onMenuOpen));
onUnload = QUOTE(uiNamespace setvariable [ARR_2(QUOTE(QGVAR(menuDisplay)),nil)];);
onUnload = QUOTE(uiNamespace setVariable [ARR_2(QUOTE(QGVAR(menuDisplay)),nil)];);
class controlsBackground {
class HeaderBackground: ACE_gui_backgroundBase{
idc = -1;
@ -20,8 +19,8 @@ class GVAR(menu) {
y = "2.1 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)";
h = "14 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
text = "#(argb,8,8,3)color(0,0,0,0.8)";
colorText[] = {0, 0, 0, "(profilenamespace getvariable ['GUI_BCG_RGB_A',0.9])"};
colorBackground[] = {0,0,0,"(profilenamespace getvariable ['GUI_BCG_RGB_A',0.9])"};
colorText[] = {0, 0, 0, "(profilenamespace getVariable ['GUI_BCG_RGB_A',0.9])"};
colorBackground[] = {0,0,0,"(profilenamespace getVariable ['GUI_BCG_RGB_A',0.9])"};
};
};
@ -37,7 +36,7 @@ class GVAR(menu) {
font = "PuristaMedium";
SizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)";
colorText[] = {0.95, 0.95, 0.95, 0.75};
colorBackground[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.69])","(profilenamespace getvariable ['GUI_BCG_RGB_G',0.75])","(profilenamespace getvariable ['GUI_BCG_RGB_B',0.5])", "(profilenamespace getvariable ['GUI_BCG_RGB_A',0.9])"};
colorBackground[] = {"(profilenamespace getVariable ['GUI_BCG_RGB_R',0.69])","(profilenamespace getVariable ['GUI_BCG_RGB_G',0.75])","(profilenamespace getVariable ['GUI_BCG_RGB_B',0.5])", "(profilenamespace getVariable ['GUI_BCG_RGB_A',0.9])"};
text = CSTRING(cargoMenu);
};
class SubHeader: HeaderName {
@ -101,4 +100,4 @@ class GVAR(menu) {
action = QUOTE([] call FUNC(startUnload););
};
};
};
};

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<Project name="ACE">
<Package name="Cargo">
<Key ID="STR_ACE_Cargo_loadObject">
@ -16,19 +16,16 @@
<Key ID="STR_ACE_Cargo_labelSpace">
<English>Cargo space left: %1</English>
</Key>
<Key ID="STR_ACE_Cargo_settingsCategory">
<English>Cargo</English>
</Key>
<Key ID="STR_ACE_Cargo_ModuleSettings_enable">
<English>Enable Cargo</English>
</Key>
<Key ID="STR_ACE_Cargo_setting_ModuleSettings_descr">
<Key ID="STR_ACE_Cargo_ModuleSettings_enable_Description">
<English>Enable the load in cargo module</English>
</Key>
<Key ID="STR_ACE_Cargo_SettingsModule_DisplayName">
<English>Cargo Settings</English>
</Key>
<Key ID="STR_ACE_Cargo_SettingsModule_DisplayName_descr">
<Key ID="STR_ACE_Cargo_SettingsModule_Description">
<English>Configure the cargo module settings</English>
</Key>
</Package>

View File

@ -84,7 +84,7 @@ if (_state) then {
openMap true;
};
if (serverCommandAvailable "#missions" || {player getVariable ["ACE_isUnconscious", false] && {(call FUNC(player)) getVariable [QEGVAR(medical,AllowChatWhileUnconscious), missionNamespace getVariable [QEGVAR(medical,AllowChatWhileUnconscious), false]]}}) then {
if (isServer || {serverCommandAvailable "#kick"} || {player getVariable ["ACE_isUnconscious", false] && {(call FUNC(player)) getVariable [QEGVAR(medical,AllowChatWhileUnconscious), missionNamespace getVariable [QEGVAR(medical,AllowChatWhileUnconscious), false]]}}) then {
if (!(_key in (actionKeys "DefaultAction" + actionKeys "Throw")) && {_key in (actionKeys "Chat" + actionKeys "PrevChannel" + actionKeys "NextChannel")}) then {
_key = 0;
};

View File

@ -18,6 +18,7 @@
* 14-16: pistol (String, Array, Array)
* 17: map, compass, watch, etc. (Array)
* 18: binocluar (String)
* 19: active weapon, active muzzle, active weaponMode (Array)
*
*/
#include "script_component.hpp"
@ -34,7 +35,8 @@ if (isNull _unit) exitWith {[
"", ["","","",""], [],
"", ["","","",""], [],
[],
""
"",
["","",""]
]};
[
@ -47,5 +49,6 @@ if (isNull _unit) exitWith {[
secondaryWeapon _unit, secondaryWeaponItems _unit, secondaryWeaponMagazine _unit,
handgunWeapon _unit, handgunItems _unit, handgunMagazine _unit,
assignedItems _unit,
binocular _unit
binocular _unit,
[currentWeapon _unit, currentMuzzle _unit, currentWeaponMode _unit]
]

View File

@ -41,14 +41,15 @@ _hitpointClasses = [_config >> "HitPoints"];
while {isClass _class} do {
for "_i" from 0 to (count _class - 1) do {
private ["_entry", "_selection"];
if (isClass (_class select _i)) then {
private ["_entry", "_selection"];
_entry = configName (_class select _i);
_selection = getText (_class select _i >> "name");
_entry = configName (_class select _i);
_selection = getText (_class select _i >> "name");
if (!(_selection in _selections) && {!isNil {_vehicle getHit _selection}}) then {
_hitpoints pushBack _entry;
_selections pushBack _selection;
if (!(_selection in _selections) && {!isNil {_vehicle getHit _selection}}) then {
_hitpoints pushBack _entry;
_selections pushBack _selection;
};
};
};

View File

@ -1,31 +1,35 @@
/*
* Author: Sniperwolf572
* Checks if one of the following common feature cameras is active:
*
* Checks if one of the following BI feature cameras are active:
*
* - Classic camera (BIS_fnc_cameraOld)
* - Splendid camera (BIS_fnc_camera)
* - Curator
* - ACE Spectator
* - Arsenal camera (BIS_fnc_arsenal)
* - Animation viewer (BIS_fnc_animViewer)
* - Establishing shot (BIS_fnc_establishingShot)
* - Splendid camera (BIS_fnc_camera)
* - Animation viewer (BIS_fnc_animViewer)
* - Classic camera (BIS_fnc_cameraOld)
*
* Arguments:
* None
* 0: None <NIL>
*
* Return value:
* Is BI feature camera active (bool)
* Return Value:
* A feature camera is active <BOOL>
*
* Example:
* call ace_common_fnc_isFeatureCameraActive;
* [] call ace_common_fnc_isFeatureCameraActive
*
* Public: No
*/
#include "script_component.hpp"
(
!isNull (missionNamespace getVariable ["BIS_DEBUG_CAM", objNull]) || // Classic camera
{!isNull (missionNamespace getVariable ["BIS_fnc_camera_cam", objNull])} || // Splendid camera
{!isNull (uiNamespace getVariable ["BIS_fnc_arsenal_cam", objNull])} || // Arsenal camera
{!isNull (uiNamespace getVariable ["BIS_fnc_animViewer_cam", objNull])} || // Animation viewer camera
{!isNull (missionNamespace getVariable ["BIS_fnc_establishingShot_fakeUAV", objNull])} // Establishing shot camera
)
!(
isNull curatorCamera && // Curator
{isNull (GETMVAR(EGVAR(spectator,camera),objNull))} && // ACE Spectator
{isNull (GETUVAR(BIS_fnc_arsenal_cam, objNull))} && // Arsenal camera
{isNull (GETMVAR(BIS_fnc_establishingShot_fakeUAV, objNull))} && // Establishing shot camera
{isNull (GETMVAR(BIS_fnc_camera_cam, objNull))} && // Splendid camera
{isNull (GETUVAR(BIS_fnc_animViewer_cam, objNull))} && // Animation viewer camera
{isNull (GETMVAR(BIS_DEBUG_CAM, objNull))} // Classic camera
)

View File

@ -479,7 +479,6 @@
<Portuguese>Verificar PBOs</Portuguese>
</Key>
<Key ID="STR_ACE_Common_CheckPBO_Description">
<English></English>
<Polish>Sprawdzaj spójność addonów z serwerem</Polish>
<Spanish>Este módulo verifica la integridad de los addons con los que iniciamos el simulador</Spanish>
<German>Dieses Modul überprüft ob jeder Spieler die richtigen PBO-Dateien hat.</German>
@ -646,6 +645,7 @@
</Key>
<Key ID="STR_ACE_Common_VehiclesOnly">
<English>Vehicles only</English>
<Polish>Tylko pojazdy</Polish>
</Key>
<Key ID="STR_ACE_Common_DoNotForce">
<English>Do Not Force</English>
@ -680,4 +680,4 @@
<Polish>ACE3 Pojazdy</Polish>
</Key>
</Package>
</Project>
</Project>

View File

@ -3,7 +3,7 @@ class CfgVehicles {
class Fence;
class thingX;
class NonStrategic;
class ACE_ConcertinaWireNoGeo: Fence {
XEH_ENABLED;
scope = 1;
@ -48,7 +48,7 @@ class CfgVehicles {
class wire_16: wire_2{};
class wire_17: wire_2{};
class wire_18: wire_2{};
class wire_2_1: wire_2 {
animPeriod = 8;
};
@ -67,7 +67,7 @@ class CfgVehicles {
class wire_15_1: wire_2_1 {};
class wire_16_1: wire_2_1 {};
class wire_17_1: wire_2_1 {};
class wire_18_1: wire_2_1 {};
class wire_18_1: wire_2_1 {};
};
};
class ACE_ConcertinaWire: ACE_ConcertinaWireNoGeo {
@ -113,6 +113,8 @@ class CfgVehicles {
EGVAR(dragging,canDrag) = 1;
EGVAR(dragging,dragPosition[]) = {0,0.5,0.5};
EGVAR(dragging,dragDirection) = 0;
EGVAR(cargo,size) = 1;
EGVAR(cargo,canLoad) = 1;
class ACE_Actions {
class ACE_MainActions {
selection = "";
@ -133,7 +135,7 @@ class CfgVehicles {
};
};
};
class Land_Razorwire_F: NonStrategic {
XEH_ENABLED;
};

View File

@ -3,8 +3,9 @@ ace_concertina_wire
Adds concertina wire.
## Maintainers
The people responsible for merging changes to this component or answering potential questions.
- [Ruthberg] (http://github.com/Ulteq)
- [Ruthberg](http://github.com/Ulteq)

View File

@ -1,10 +1,11 @@
ace_dagr
===============
Defense Advanced GPS Receiver
Adds Defense Advanced GPS Receiver.
## Maintainers
The people responsible for merging changes to this component or answering potential questions.
- [Ruthberg] (http://github.com/Ulteq)
- [Ruthberg](http://github.com/Ulteq)

View File

@ -1,7 +1,7 @@
ace_disposable
==============
Makes the NLAW a disposable one-shot weapon.
Makes the NLAW a disposable one-shot weapon and provides disposable launchers framework for use by other mods.
## Maintainers

12
addons/dragging/README.md Normal file
View File

@ -0,0 +1,12 @@
ace_dragging
==============
Adds ability to drag and carry objects.
## Maintainers
The people responsible for merging changes to this component or answering potential questions.
- [Garth "L-H" de Wet](https://github.com/CorruptedHeart)
- [commy2](https://github.com/commy2)

View File

@ -6,7 +6,7 @@ class CfgPatches {
weapons[] = {};
requiredVersion = REQUIRED_VERSION;
requiredAddons[] = {"ace_interaction"};
author[] = {"Garth 'L-H' de Wet","commy2"};
author[] = {"Garth 'L-H' de Wet", "commy2"};
authorUrl = "https://github.com/commy2/";
VERSION_CONFIG;
};

View File

@ -1,7 +1,7 @@
ace_fcs
=======
Adds a fire control system to armoured vehicles and helicoters, allowing the precise engagement of stationary and moving targets.
Adds a fire control system to armoured vehicles and helicopters, allowing precise engagement of stationary and moving targets.
## Maintainers

11
addons/fonts/README.md Normal file
View File

@ -0,0 +1,11 @@
ace_fonts
========
Custom fonts including fixed-width font.
## Maintainers
The people responsible for merging changes to this component or answering potential questions.
- [jaynus](https://github.com/jaynus/)

View File

@ -0,0 +1,11 @@
ace_hitreactions
===========
Adds reactions when getting shot.
## Maintainers
The people responsible for merging changes to this component or answering potential questions.
- [commy2](https://github.com/commy2)

11
addons/huntir/README.md Normal file
View File

@ -0,0 +1,11 @@
ace_huntir
===========
Adds High-altitude Unit Navigated Tactical Imaging Round and its Monitor.
## Maintainers
The people responsible for merging changes to this component or answering potential questions.
- [Ruthberg](http://github.com/Ulteq)

View File

@ -0,0 +1,12 @@
ace_interact_menu
===========
Base framework for interaction menu.
## Maintainers
The people responsible for merging changes to this component or answering potential questions.
- [NouberNou](https://github.com/NouberNou)
- [esteldunedain](https://github.com/esteldunedain)

View File

@ -3,6 +3,7 @@ ace_interaction
Provides interaction options between units.
## Maintainers
The people responsible for merging changes to this component or answering potential questions.

View File

@ -1,7 +1,7 @@
ace_inventory
=============
Increases the size of the inventory dialog.
Adds options to increase the size of the inventory dialog.
## Maintainers

View File

@ -1,10 +1,11 @@
ace_kestrel4500
===============
Kestrel 4500 Pocket Weather Tracker
Adds Kestrel 4500 Pocket Weather Tracker.
## Maintainers
The people responsible for merging changes to this component or answering potential questions.
- [Ruthberg] (http://github.com/Ulteq)
- [Ruthberg](http://github.com/Ulteq)

View File

@ -1,7 +1,10 @@
ace_logistics_uavbattery
===========
Adds an item `ACE_UAVBattery` that allows refueling/recharging of the "Dartar" quadcopter UAVs.
Adds an item that allows refueling/recharging of the Darter quadcopter UAVs.
#### Items Added:
`ACE_UAVBattery`
## Maintainers

View File

@ -16,6 +16,6 @@
*/
#include "script_component.hpp"
PARAMS_2(_caller,_target);
params ["_caller", "_target"];
("ACE_UAVBattery" in (items _caller)) && {(fuel _target) < 1} && {(speed _target) < 1} && {!(isEngineOn _target)} && {(_target distance _caller) <= 4}

View File

@ -15,23 +15,21 @@
* Public: No
*/
#include "script_component.hpp"
PARAMS_2(_caller,_target);
private ["_onFinish", "_onFailure"];
params ["_caller", "_target"];
if (!(_this call FUNC(canRefuelUAV))) exitWith {};
_onFinish = {
EXPLODE_2_PVT((_this select 0),_caller,_target);
_caller removeItem "ACE_UAVBattery";
playSound3D [QUOTE(PATHTO_R(sounds\exchange_battery.ogg)), objNull, false, getPosASL _caller, 1, 1, 10];
["setFuel", [_target], [_target, 1]] call EFUNC(common,targetEvent); //setFuel is local
(_this select 0) params ["_caller", "_target"];
_caller removeItem "ACE_UAVBattery";
playSound3D [QUOTE(PATHTO_R(sounds\exchange_battery.ogg)), objNull, false, getPosASL _caller, 1, 1, 10];
["setFuel", [_target], [_target, 1]] call EFUNC(common,targetEvent); //setFuel is local
};
_onFailure = {
EXPLODE_2_PVT((_this select 0),_caller,_target);
[_caller, "AmovPknlMstpSrasWrflDnon", 1] call EFUNC(common,doAnimation);
(_this select 0) params ["_caller", "_target"];
[_caller, "AmovPknlMstpSrasWrflDnon", 1] call EFUNC(common,doAnimation);
};
[_caller, "AinvPknlMstpSnonWnonDr_medic5", 0] call EFUNC(common,doAnimation);

View File

@ -1,7 +1,10 @@
ace_logistics_wirecutter
===========
Adds an item `ACE_wirecutter` that allows cutting of fences in A3 and AiA maps.
Adds an item that allows cutting of fences in Aarma 3 and AiA/CUP maps.
#### Items Added:
`ACE_wirecutter`
## Maintainers

View File

@ -1,7 +1,8 @@
ace_magazinerepack
==================
Adds the ability to consolidate multiple half-empty magazines.
Adds the ability to consolidate multiple unfull magazines.
## Maintainers

View File

@ -7,7 +7,7 @@
* 1: Player <OBJECT>
*
* Return value:
* ChildActiosn<ARRAY>
* ChildActions <ARRAY>
*
* Example:
* [player, player] call ace_magazinerepack_fnc_getMagazineChildren
@ -16,15 +16,17 @@
*/
#include "script_component.hpp"
private ["_unitMagazines", "_unitMagCounts", "_xFullMagazineCount", "_index", "_actions", "_displayName", "_picture", "_action"];
private ["_unitMagazines", "_unitMagCounts", "_index", "_actions", "_displayName", "_picture", "_action"];
PARAMS_2(_target,_player);
params ["_target", "_player"];
// get all mags and ammo count
_unitMagazines = [];
_unitMagCounts = [];
{
EXPLODE_4_PVT(_x,_xClassname,_xCount,_xLoaded,_xType);
private "_xFullMagazineCount";
_x params ["_xClassname", "_xCount", "_xLoaded", "_xType"];
_xFullMagazineCount = getNumber (configfile >> "CfgMagazines" >> _xClassname >> "count");
//for every partial magazine, that is either in inventory or can be moved there

View File

@ -10,7 +10,7 @@
* 3: Error Code <NUMBER>
*
* Return Value:
* Nothing
* None
*
* Example:
* (args from progressBar) call ace_magazinerepack_fnc_magazineRepackFinish
@ -21,8 +21,9 @@
private ["_structuredOutputText", "_picture", "_fullMags", "_partialMags", "_fullMagazineCount"];
PARAMS_4(_args,_elapsedTime,_totalTime,_errorCode);
EXPLODE_2_PVT(_args,_magazineClassname,_lastAmmoCount);
params ["_args", "_elapsedTime", "_totalTime", "_errorCode"];
_args params ["_magazineClassname", "_lastAmmoCount"];
_fullMagazineCount = getNumber (configfile >> "CfgMagazines" >> _magazineClassname >> "count");
//Don't show anything if player can't interact:

View File

@ -20,17 +20,19 @@
private ["_currentAmmoCount", "_addedMagazines", "_missingAmmo", "_index", "_updateMagazinesOnPlayerFnc"];
PARAMS_3(_args,_elapsedTime,_totalTime);
EXPLODE_3_PVT(_args,_magazineClassname,_lastAmmoCount,_simEvents);
if ((count _simEvents) == 0) exitWith {ERROR("No Event"); false};
EXPLODE_3_PVT((_simEvents select 0),_nextEventTime,_nextEventIsBullet,_nextEventMags);
params ["_ars", "_elapsedTime", "_totalTime"];
_args params ["_magazineClassname", "_lastAmmoCount", "_simEvents"];
if (_nextEventTime > _elapsedTime) exitWith {true};//waiting on next event
if !((_simEvents select 0) params ["_nextEventTime", "_nextEventIsBullet", "_nextEventMags"]) exitWith { ERROR("No Event"); false };
if (_nextEventTime > _elapsedTime) exitWith { true };//waiting on next event
//Verify we aren't missing any ammo
_currentAmmoCount = [];
{
EXPLODE_2_PVT(_x,_xClassname,_xCount);
_x params ["_xClassname", "_xCount"];
if (_xClassname == _magazineClassname) then {
_currentAmmoCount pushBack _xCount;
};
@ -50,7 +52,7 @@ _missingAmmo = false;
};
} forEach _lastAmmoCount;
if (_missingAmmo) exitWith {false}; //something removed ammo that was being repacked (could be other players or scripts)
if (_missingAmmo) exitWith { false }; //something removed ammo that was being repacked (could be other players or scripts)
_updateMagazinesOnPlayerFnc = {
ACE_player removeMagazines _magazineClassname; //remove inventory magazines
@ -75,4 +77,4 @@ if (_nextEventIsBullet) then {
_simEvents deleteAt 0; //pop off the event
true;
true

View File

@ -19,20 +19,20 @@
*/
#include "script_component.hpp"
private ["_newMagFnc", "_time", "_events", "_swapAmmoFnc", "_ammoSwaped", "_lowIndex", "_highIndex", "_ammoToTransfer", "_ammoAvailable", "_ammoNeeded", "_swapProgress"];
private ["_fnc_newMag", "_time", "_events", "_fnc_swapAmmo", "_ammoSwaped", "_lowIndex", "_highIndex", "_ammoToTransfer", "_ammoAvailable", "_ammoNeeded", "_swapProgress"];
PARAMS_3(_fullMagazineCount,_arrayOfAmmoCounts,_isBelt);
params ["_fullMagazineCount", "_arrayOfAmmoCounts", "_isBelt"];
// Sort Ascending - Don't modify original
_arrayOfAmmoCounts = +_arrayOfAmmoCounts;
_arrayOfAmmoCounts sort true;
_newMagFnc = {
_fnc_newMag = {
_time = _time + GVAR(TimePerMagazine);
_events pushBack [_time, false, +_arrayOfAmmoCounts];
};
_swapAmmoFnc = if (_isBelt) then {
_fnc_swapAmmo = if (_isBelt) then {
{
_time = _time + GVAR(TimePerBeltLink);
_arrayOfAmmoCounts set [_lowIndex, ((_arrayOfAmmoCounts select _lowIndex) - _ammoSwaped)];
@ -64,14 +64,14 @@ while {_lowIndex < _highIndex} do {
if (_ammoAvailable == 0) then {
_lowIndex = _lowIndex + 1;
call _newMagFnc;
call _fnc_newMag;
} else {
if (_ammoNeeded == 0) then {
_highIndex = _highIndex - 1;
call _newMagFnc;
call _fnc_newMag;
} else {
_ammoSwaped = _ammoAvailable min _ammoNeeded;
call _swapAmmoFnc;
call _fnc_swapAmmo;
};
};
};

View File

@ -21,7 +21,7 @@
private ["_magazineCfg", "_fullMagazineCount", "_isBelt", "_startingAmmoCounts", "_simEvents", "_totalTime"];
PARAMS_3(_target,_player,_magazineClassname);
params ["_target", "_player", "_magazineClassname"];
if (isNil "_magazineClassname" || {_magazineClassname == ""}) exitWith {ERROR("Bad Mag Classname");};
_magazineCfg = configfile >> "CfgMagazines" >> _magazineClassname;
@ -63,11 +63,11 @@ _simEvents = [_fullMagazineCount, _startingAmmoCounts, _isBelt] call FUNC(simula
_totalTime = (_simEvents select ((count _simEvents) - 1) select 0);
[
_totalTime,
[_magazineClassname, _startingAmmoCounts, _simEvents],
{_this call FUNC(magazineRepackFinish)},
{_this call FUNC(magazineRepackFinish)},
(localize LSTRING(RepackingMagazine)),
{_this call FUNC(magazineRepackProgress)},
["isNotInside", "isNotSitting"]
_totalTime,
[_magazineClassname, _startingAmmoCounts, _simEvents],
{_this call FUNC(magazineRepackFinish)},
{_this call FUNC(magazineRepackFinish)},
(localize LSTRING(RepackingMagazine)),
{_this call FUNC(magazineRepackProgress)},
["isNotInside", "isNotSitting"]
] call EFUNC(common,progressBar);

View File

@ -5,4 +5,7 @@ class CfgFactionClasses {
priority = 2;
side = 7;
};
class ACE_Logistics: ACE {
displayName = CSTRING(Category_Logistics);
};
};

View File

@ -0,0 +1,5 @@
class CfgVehicleClasses {
class ACE_Logistics_Items {
displayName = CSTRING(Category_Logistics);
};
};

View File

@ -1,4 +1,4 @@
#include "script_component.hpp"
#include "script_component.hpp"
class CfgPatches {
class ADDON {
@ -587,3 +587,4 @@ class CfgSettings {
};
#include "CfgModuleCategories.hpp"
#include "CfgVehicleClasses.hpp"

View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<Project name="ACE">
<Package name="Main">
<Key ID="STR_ACE_Main_Category_Logistics">
<English>ACE Logistics</English>
</Key>
</Package>
</Project>

View File

@ -1,12 +1,12 @@
ace_map
=======
Various tweaks to the in-game map. Including:
Various tweaks to the in-game map, including:
- Better map styling (countours, legend, hiding bushes and trees, etc).
- Max zoom level (optional)
- Map shaking while walking (optional)
- Map illumination (optional)
- Blufor tracker (optional)
- Blue Force Tracker (optional)
## Maintainers

View File

@ -1,11 +1,12 @@
ace_maptools
============
Map tools:
Adds the following map tools:
- Roamer
- Map drawing
- Showing GPS on map
## Maintainers
The people responsible for merging changes to this component or answering potential questions.

View File

@ -697,6 +697,8 @@ class CfgVehicles {
EGVAR(dragging,canDrag) = 1;
EGVAR(dragging,dragPosition[]) = {0,1.2,0};
EGVAR(dragging,dragDirection) = 0;
EGVAR(cargo,size) = 1;
EGVAR(cargo,canLoad) = 1;
class ACE_Actions {
class ACE_MainActions {
displayName = ECSTRING(interaction,MainAction);

View File

@ -3,6 +3,7 @@ ace_medical
Provides a basic and advanced medical system.
## Maintainers
The people responsible for merging changes to this component or answering potential questions.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -13,6 +13,7 @@
*/
#include "script_component.hpp"
#define MAX_DISTANCE 10
// Exit for basic medical
if (GVAR(level) < 2) exitWith {};
@ -39,6 +40,11 @@ if (_show) then {
if (GVAR(displayPatientInformationTarget) != _target || GVAR(currentSelectedSelectionN) != _selectionN) exitwith {
[_this select 1] call CBA_fnc_removePerFrameHandler;
};
if (ACE_player distance _target > MAX_DISTANCE) exitwith {
("ACE_MedicalRscDisplayInformation" call BIS_fnc_rscLayer) cutText ["","PLAIN"];
[_this select 1] call CBA_fnc_removePerFrameHandler;
["displayTextStructured", [ACE_player], [[LSTRING(DistanceToFar), [_target] call EFUNC(common,getName)], 1.75, ACE_player]] call EFUNC(common,targetEvent);
};
disableSerialization;
_display = uiNamespace getvariable QGVAR(DisplayInformation);

View File

@ -176,8 +176,17 @@ if (vehicle _caller == _caller && {_callerAnim != ""}) then {
_caller selectWeapon (primaryWeapon _caller); // unit always has a primary weapon here
};
if (stance _caller == "STAND") then {
_caller setvariable [QGVAR(treatmentPrevAnimCaller), "amovpknlmstpsraswrfldnon"];
if (isWeaponDeployed _caller) then {
TRACE_1("Weapon Deployed, breaking out first",(stance _caller));
[_caller, "", 0] call EFUNC(common,doAnimation);
};
if ((stance _caller) == "STAND") then {
switch (_wpn) do {//If standing, end in a crouched animation based on their current weapon
case ("rfl"): {_caller setvariable [QGVAR(treatmentPrevAnimCaller), "AmovPknlMstpSrasWrflDnon"];};
case ("pst"): {_caller setvariable [QGVAR(treatmentPrevAnimCaller), "AmovPknlMstpSrasWpstDnon"];};
case ("non"): {_caller setvariable [QGVAR(treatmentPrevAnimCaller), "AmovPknlMstpSnonWnonDnon"];};
};
} else {
_caller setvariable [QGVAR(treatmentPrevAnimCaller), animationState _caller];
};

View File

@ -18,20 +18,20 @@ private ["_caller","_target", "_reviveStartTime"];
_caller = _this select 0;
_target = _this select 1;
if (_target getvariable [QGVAR(inReviveState), false]) exitwith {
if (_target getvariable [QGVAR(inReviveState), false]) then {
_reviveStartTime = _target getvariable [QGVAR(reviveStartTime),0];
if (_reviveStartTime > 0) then {
_target setvariable [QGVAR(reviveStartTime), (_reviveStartTime + random(20)) min ACE_time];
};
};
if (random(1)>= 0.6) exitwith {
if ((random 1) >= 0.6) then {
_target setvariable [QGVAR(inCardiacArrest), nil,true];
_target setvariable [QGVAR(heartRate), 40];
_target setvariable [QGVAR(bloodPressure), [50,70]];
};
[_target, "activity", LSTRING(Activity_fullHeal), [[_caller] call EFUNC(common,getName)]] call FUNC(addToLog);
[_target, "activity_view", LSTRING(Activity_fullHeal), [[_caller] call EFUNC(common,getName)]] call FUNC(addToLog); // TODO expand message
[_target, "activity", LSTRING(Activity_CPR), [[_caller] call EFUNC(common,getName)]] call FUNC(addToLog);
[_target, "activity_view", LSTRING(Activity_CPR), [[_caller] call EFUNC(common,getName)]] call FUNC(addToLog); // TODO expand message
true;

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<Project name="ACE">
<Package name="Medical">
<Key ID="STR_ACE_Medical_Injuries">
@ -950,7 +950,7 @@
<Czech>Analgetikum slouží k tlumení středně těžkých a těžkých bolestí</Czech>
</Key>
<Key ID="STR_ACE_Medical_Atropine_Display">
<English>Atropin autoinjector</English>
<English>Atropine autoinjector</English>
<Russian>Атропин в пневмошприце</Russian>
<Spanish>Atropina auto-inyectable</Spanish>
<French>Auto-injecteur d'Atropine</French>
@ -2098,6 +2098,9 @@
<Portuguese>%1 aplicou um torniquete</Portuguese>
<Czech>%1 použil škrtidlo</Czech>
</Key>
<Key ID="STR_ACE_Medical_Activity_CPR">
<English>%1 performed CPR</English>
</Key>
<Key ID="STR_ACE_Medical_HeavilyWounded">
<English>Heavily wounded</English>
<German>Schwer verwundet:</German>
@ -3609,5 +3612,8 @@
<Spanish>Médico</Spanish>
<Hungarian>Orvosi</Hungarian>
</Key>
<Key ID="STR_ACE_Medical_DistanceToFar">
<English>Distance to %1 has become to far for treatment</English>
</Key>
</Package>
</Project>

View File

@ -3,6 +3,7 @@ ace_medical_menu
Provides the CSE medical menu for the advanced medical system.
## Maintainers
The people responsible for merging changes to this component or answering potential questions.

View File

@ -26,9 +26,10 @@ if (!hasInterface) exitwith {};
false
},
{
if (ACE_time - GVAR(lastOpenedOn) > 0.5) then {
if (ACE_time - GVAR(lastOpenedOn) > 0.5) exitWith {
[ObjNull] call FUNC(openMenu);
};
false
},
[35, [false, false, false]], false, 0] call CBA_fnc_addKeybind;

View File

@ -14,6 +14,7 @@
* Public: No
*/
#include "script_component.hpp"
#define MAX_DISTANCE 10
private "_target";
@ -72,6 +73,12 @@ setMousePosition [0.4, 0.4];
_status = [GVAR(INTERACTION_TARGET)] call FUNC(getTriageStatus);
(_display displayCtrl 2000) ctrlSetText (_status select 0);
(_display displayCtrl 2000) ctrlSetBackgroundColor (_status select 2);
if (ACE_player distance _target > MAX_DISTANCE) exitwith {
closeDialog 314412;
["displayTextStructured", [ACE_player], [[ELSTRING(medical,DistanceToFar), [_target] call EFUNC(common,getName)], 1.75, ACE_player]] call EFUNC(common,targetEvent);
};
}, [_display]] call BIS_fnc_addStackedEventHandler;
["Medical_onMenuOpen", [ACE_player, _interactionTarget]] call EFUNC(common,localEvent);

View File

@ -6,7 +6,7 @@
* 0: Target <OBJECT>
*
* Return Value:
* None
* If action was taken <BOOL>
*
* Example:
* [some_player] call ace_medical_menu_openMenu
@ -18,16 +18,22 @@
params ["_interactionTarget"];
if (dialog || isNull _interactionTarget) exitwith {
disableSerialization;
disableSerialization;
private "_display";
_display = uiNamespace getVariable QGVAR(medicalMenu);
if (!isNil "_display") then {
closeDialog 314412;
};
private ["_display", "_handled"];
_handled = false;
_display = uiNamespace getVariable QGVAR(medicalMenu);
if (!isNil "_display") then {
closeDialog 314412;
_handled = true;
};
_handled
};
GVAR(INTERACTION_TARGET) = _interactionTarget;
createDialog QGVAR(medicalMenu);
GVAR(lastOpenedOn) = ACE_time;
true

View File

@ -1,386 +1,396 @@
<?xml version="1.0" encoding="UTF-8"?>
<?xml version="1.0" encoding="utf-8"?>
<Project name="Combat Space Enhancement">
<Package name="Combat Medical System">
<Container name="UI">
<Key ID="STR_ACE_Medical_Menu_OpenMenu">
<English>Medical Menu</English>
</Key>
<Key ID="STR_ACE_Medical_Menu_allow">
<English>Allow Medical Menu</English>
</Key>
<Key ID="STR_ACE_Medical_Menu_allow_Descr">
<English>Allow clients to use the medical menu</English>
</Key>
<Key ID="STR_ACE_Medical_Menu_useMenu">
<English>Use Medical menu</English>
</Key>
<Key ID="STR_ACE_Medical_Menu_useMenu_Descr">
<English>If allowed by server, enable the option to use the Medical Menu through keybinding and interaction menu</English>
</Key>
<Key ID="STR_ACE_Medical_Menu_openAfterTreatment">
<English>Re-open Medical menu</English>
</Key>
<Key ID="STR_ACE_Medical_Menu_openAfterTreatment_Descr">
<English>Re-open the medical menu after succesful treatment</English>
</Key>
<Key ID="STR_ACE_Medical_Menu_DisplayMenuKey">
<English>Open Medical Menu</English>
</Key>
<Key ID="STR_ACE_Medical_Menu_module_DisplayName">
<English>Medical Menu Settings</English>
</Key>
<Key ID="STR_ACE_Medical_Menu_module_Desc">
<English>Configure the usage of the Medical Menu</English>
</Key>
<Key ID="STR_ACE_Medical_Menu_EXAMINE_TREATMENT">
<English>EXAMINE &amp; TREATMENT</English>
<Russian>ОСМОТР И ЛЕЧЕНИЕ</Russian>
<Spanish>EXAMINAR &amp; TRATAMIENTO</Spanish>
<French>EXAMINER &amp; TRAITEMENTS</French>
<Polish>BADANIE &amp; LECZENIE</Polish>
</Key>
<Key ID="STR_ACE_Medical_Menu_STATUS">
<English>STATUS</English>
<Russian>СОСТОЯНИЕ</Russian>
<Spanish>ESTADO</Spanish>
<French>ÉTATS</French>
<Polish>STATUS</Polish>
</Key>
<Key ID="STR_ACE_Medical_Menu_OVERVIEW">
<English>OVERVIEW</English>
<Russian>ОБЩАЯ ИНФОРМАЦИЯ</Russian>
<Spanish>DESCRIPCIÓN</Spanish>
<French>DESCRIPTION</French>
<Polish>OPIS</Polish>
</Key>
<Key ID="STR_ACE_Medical_Menu_ACTIVITY_LOG">
<English>ACTIVITY LOG</English>
<Russian>ПРОВЕДЕННЫЕ МАНИПУЛЯЦИИ</Russian>
<Spanish>REGISTRO DE ACTIVIDAD</Spanish>
<French>REGISTRE DES SOINS</French>
<Polish>LOGI AKTYWNOŚCI</Polish>
</Key>
<Key ID="STR_ACE_Medical_Menu_QUICK_VIEW">
<English>QUICK VIEW</English>
<Russian>БЫСТРЫЙ ОСМОТР</Russian>
<Spanish>VISTA RÁPIDA</Spanish>
<French>VUE RAPIDE</French>
<Polish>SZYBKI PODGLĄD</Polish>
</Key>
<Key ID="STR_ACE_Medical_Menu_TRIAGE_NONE">
<English>None</English>
<Russian>Не ранен</Russian>
<Spanish>Ninguno</Spanish>
<French>Aucun</French>
<Polish>Brak</Polish>
</Key>
<Key ID="STR_ACE_Medical_Menu_TRIAGE_MINOR">
<English>Minor</English>
<Russian>Несрочная помощь</Russian>
<Spanish>Menor</Spanish>
<French>Mineur</French>
<Polish>Normalny</Polish>
</Key>
<Key ID="STR_ACE_Medical_Menu_TRIAGE_DELAYED">
<English>Delayed</English>
<Russian>Срочная помощь</Russian>
<Spanish>Diferido</Spanish>
<French>Urgent</French>
<Polish>Opóźniony</Polish>
</Key>
<Key ID="STR_ACE_Medical_Menu_TRIAGE_IMMEDIATE">
<English>Immediate</English>
<Russian>Неотложная помощь</Russian>
<Spanish>Inmediato</Spanish>
<French>Immédiat</French>
<Polish>Natychmiastowy</Polish>
</Key>
<Key ID="STR_ACE_Medical_Menu_TRIAGE_DECEASED">
<English>Deceased</English>
<Russian>Морг</Russian>
<Spanish>Fallecido</Spanish>
<French>Décédé</French>
<Polish>Nie żyje</Polish>
</Key>
<Key ID="STR_ACE_Medical_Menu_VIEW_TRIAGE_CARD">
<English>View triage Card</English>
<Russian>Смотреть первичную карточку</Russian>
<Spanish>Ver Triage</Spanish>
<French>Voir Carte de Triage</French>
<Polish>Pokaż kartę segregacyjną</Polish>
</Key>
<Key ID="STR_ACE_Medical_Menu_EXAMINE_PATIENT">
<English>Examine Patient</English>
<Russian>Осмотреть пациента</Russian>
<Spanish>Examinar Paciente</Spanish>
<French>Examiner Patient</French>
<Polish>Zbadaj pacjenta</Polish>
</Key>
<Key ID="STR_ACE_Medical_Menu_BANDAGE_FRACTURES">
<English>Bandage / Fractures</English>
<Russian>Раны / переломы</Russian>
<Spanish>Vendajes/Fracturas </Spanish>
<French>Bandages / Fractures</French>
<Polish>Bandaże / Złamania</Polish>
</Key>
<Key ID="STR_ACE_Medical_Menu_MEDICATION">
<English>Medication</English>
<Russian>Медикаменты</Russian>
<Spanish>Medicación</Spanish>
<French>Médications</French>
<Polish>Leki</Polish>
</Key>
<Key ID="STR_ACE_Medical_Menu_AIRWAY_MANAGEMENT">
<English>Airway Management</English>
<Russian>Дыхательные пути</Russian>
<Spanish>Vías Aéreas</Spanish>
<French>Gestion Des Voie REspiratoire</French>
<Polish>Drogi oddechowe</Polish>
</Key>
<Key ID="STR_ACE_Medical_Menu_ADVANCED_TREATMENT">
<English>Advanced Treatments</English>
<Russian>Специальная медпомощь</Russian>
<Spanish>Tratamientos Avanzados</Spanish>
<French>Traitement Avancé</French>
<Polish>Zaawansowane zabiegi</Polish>
</Key>
<Key ID="STR_ACE_Medical_Menu_DRAG_CARRY">
<English>Drag/Carry</English>
<Russian>Тащить/нести</Russian>
<Spanish>Arrastrar/Cargar</Spanish>
<French>Glisser/Porter</French>
<Polish>Ciągnij/Nieś</Polish>
</Key>
<Key ID="STR_ACE_Medical_Menu_TOGGLE_SELF">
<English>Toggle (Self)</English>
<Russian>Лечить себя/другого раненого</Russian>
<French>Activer (sois)</French>
<Polish>Przełącz (na siebie)</Polish>
<Spanish>Alternar</Spanish>
</Key>
<Key ID="STR_ACE_Medical_Menu_SELECT_TRIAGE_STATUS">
<English>Select triage status</English>
<Russian>Сортировка</Russian>
<Spanish>Seleccionar estado de Triage</Spanish>
<French>Selectioner l'état de Triage</French>
<Polish>Wybierz priorytet</Polish>
</Key>
<Key ID="STR_ACE_Medical_Menu_SELECT_HEAD">
<English>Select Head</English>
<Russian>Выбрать голову</Russian>
<Spanish>Seleccionar Cabeza</Spanish>
<French>Selectioner Tête</French>
<Polish>Wybierz głowę</Polish>
</Key>
<Key ID="STR_ACE_Medical_Menu_SELECT_TORSO">
<English>Select Torso</English>
<Russian>Выбрать торс</Russian>
<Spanish>Seleccionar Torso</Spanish>
<French>Selectioner Torse</French>
<Polish>Wybierz tors</Polish>
</Key>
<Key ID="STR_ACE_Medical_Menu_SELECT_ARM_L">
<English>Select Left Arm</English>
<Russian>Выбрать левую руку</Russian>
<Spanish>Seleccionar Brazo Izquierdo</Spanish>
<French>Selectioner Bras Gauche</French>
<Polish>Wybierz lewą rękę</Polish>
</Key>
<Key ID="STR_ACE_Medical_Menu_SELECT_ARM_R">
<English>Select Right Arm</English>
<Russian>Выбрать правую руку</Russian>
<Spanish>Seleccionar Brazo Derecho</Spanish>
<French>Selectioner Bras Droit</French>
<Polish>Wybierz prawą rękę</Polish>
</Key>
<Key ID="STR_ACE_Medical_Menu_SELECT_LEG_L">
<English>Select Left Leg</English>
<Russian>Выбрать левую ногу</Russian>
<Spanish>Seleccionar Pierna Izquierda</Spanish>
<French>Selectioner Jambe Gauche</French>
<Polish>Wybierz lewą nogę</Polish>
</Key>
<Key ID="STR_ACE_Medical_Menu_SELECT_LEG_R">
<English>Select Right Leg</English>
<Russian>Выбрать правую ногу</Russian>
<Spanish>Seleccionar Pierna Derecha</Spanish>
<French>Selectioner Jambe Droite</French>
<Polish>Wybierz prawą nogę</Polish>
</Key>
<Key ID="STR_ACE_Medical_Menu_HEAD">
<English>Head</English>
<Russian>Голова</Russian>
<Spanish>Cabeza</Spanish>
<French>Tête</French>
<Polish>Głowa</Polish>
</Key>
<Key ID="STR_ACE_Medical_Menu_TORSO">
<English>Torso</English>
<Russian>Торс</Russian>
<French>Torse</French>
<Polish>Tors</Polish>
</Key>
<Key ID="STR_ACE_Medical_Menu_ARM_L">
<English>Left Arm</English>
<Russian>Левая рука</Russian>
<Spanish>Brazo Izquierdo</Spanish>
<French>Bras Gauche</French>
<Polish>Lewa ręka</Polish>
</Key>
<Key ID="STR_ACE_Medical_Menu_ARM_R">
<English>Right Arm</English>
<Russian>Правая рука</Russian>
<Spanish>Brazo Derecho</Spanish>
<French>Bras Droit</French>
<Polish>Prawa ręka</Polish>
</Key>
<Key ID="STR_ACE_Medical_Menu_LEG_L">
<English>Left Leg</English>
<Russian>Левая нога</Russian>
<Spanish>Pierna Izquierda</Spanish>
<French>Jambe Gauche</French>
<Polish>Lewa noga</Polish>
</Key>
<Key ID="STR_ACE_Medical_Menu_LEG_R">
<English>Right Leg</English>
<Russian>Правая нога</Russian>
<Spanish>Pierna Derecha</Spanish>
<French>Jambe Droite</French>
<Polish>Prawa noga</Polish>
</Key>
<Key ID="STR_ACE_Medical_Menu_SELECTED_BODY_PART">
<English>Body Part: %1</English>
<Russian>Часть тела: %1</Russian>
<Spanish>Parte del cuerpo: %1</Spanish>
<French>Partie du corps: %1</French>
<Polish>Część ciała: %1</Polish>
</Key>
<Key ID="STR_ACE_Medical_Menu_SMALL">
<English>Small</English>
<Russian>малого размера</Russian>
<Spanish>Pequeña</Spanish>
<French>Petite</French>
<Polish>małym</Polish>
</Key>
<Key ID="STR_ACE_Medical_Menu_MEDIUM">
<English>Medium</English>
<Russian>среднего размера</Russian>
<Spanish>Mediana</Spanish>
<French>moyenne</French>
<Polish>średnim</Polish>
</Key>
<Key ID="STR_ACE_Medical_Menu_LARGE">
<English>Large</English>
<Russian>большого размера</Russian>
<Spanish>Grande</Spanish>
<French>Grande</French>
<Polish>dużym</Polish>
</Key>
<Key ID="STR_ACE_Medical_Menu_MULTIPLE_OPEN_WOUNDS">
<English>There are %2 %1 Open Wounds</English>
<Russian>%2 открытые раны %1</Russian>
<Spanish>Hay %2 Heridas Abiertas %1</Spanish>
<French>Il y a %2 %1 Blessure Ouverte</French>
<Polish>Widzisz otwarte rany w ilości %2 o %1 rozmiarze</Polish>
</Key>
<Key ID="STR_ACE_Medical_Menu_SINGLE_OPEN_WOUND">
<English>There is 1 %1 Open Wound</English>
<Russian>Открытая рана %1</Russian>
<Spanish>Hay 1 Herida Abierta %1</Spanish>
<French>Il y a 1 blessure ouverte %1</French>
<Polish>Widzisz 1 otwartą ranę o %1 rozmiarze</Polish>
</Key>
<Key ID="STR_ACE_Medical_Menu_PARTIAL_OPEN_WOUND">
<English>There is a partial %1 Open wound</English>
<Russian>Частично открытая рана %1</Russian>
<Spanish>Hay una herida parcial abierta %1</Spanish>
<French>Il y a une Blessure Patiellement Ouverte %1</French>
<Polish>Widzisz częściowo otwartą ranę o %1 rozmiarze</Polish>
</Key>
<Key ID="STR_ACE_Medical_Menu_MULTIPLE_BANDAGED_WOUNDS">
<English>There are %2 %1 Bandaged Wounds</English>
<Russian>%2 перевязанные раны %1</Russian>
<Spanish>Hay %2 Heridas %1 Vendadas</Spanish>
<French>Il y a %2 %1 Blessure Bandée</French>
<Polish>Widzisz %2 zabandażowanych ran o %1 rozmiarze</Polish>
</Key>
<Key ID="STR_ACE_Medical_Menu_SINGLE_BANDAGED_WOUND">
<English>There is 1 %1 Bandaged Wound</English>
<Russian>1 перевязанная рана %1</Russian>
<Spanish>Hay 1 Herida Vendada %1</Spanish>
<French>Il y a 1 %1 Blessure Bandée</French>
<Polish>Widzisz 1 zabandażowaną ranę o %1 rozmiarze</Polish>
</Key>
<Key ID="STR_ACE_Medical_Menu_PARTIAL_BANDAGED_WOUND">
<English>There is a partial %1 Bandaged wound</English>
<Russian>Частично перевязанная рана %1</Russian>
<Spanish>Hay una Herida parcial %1 Vendada</Spanish>
<French>Il y a %1 Blessure Partielment Bandée</French>
<Polish>Widzisz 1 częściowo zabandażowaną ranę o %1 rozmiarze</Polish>
</Key>
<Key ID="STR_ACE_Medical_Menu_NORMAL_BREATHING">
<English>Normal breathing</English>
<Russian>Дыхание в норме</Russian>
<Spanish>Respiración normal</Spanish>
<French>Respiration Normale</French>
<Polish>Normalny oddech</Polish>
</Key>
<Key ID="STR_ACE_Medical_Menu_NO_BREATHING">
<English>No breathing</English>
<Russian>Дыхания нет</Russian>
<Spanish>No respira</Spanish>
<French>Apnée</French>
<Polish>Brak oddechu</Polish>
</Key>
<Key ID="STR_ACE_Medical_Menu_DIFFICULT_BREATHING">
<English>Difficult breathing</English>
<Russian>Дыхание затруднено</Russian>
<Spanish>Dificultad para respirar</Spanish>
<French>Difficultée Respiratoire</French>
<Polish>Trudności z oddychaniem</Polish>
</Key>
<Key ID="STR_ACE_Medical_Menu_ALMOST_NO_BREATHING">
<English>Almost no breathing</English>
<Russian>Дыхания почти нет</Russian>
<Spanish>Casi sin respirar</Spanish>
<French>Respiration Faible</French>
<Polish>Prawie brak oddechu</Polish>
</Key>
<Key ID="STR_ACE_Medical_Menu_STATUS_BLEEDING">
<English>Bleeding</English>
<Russian>Кровотечение</Russian>
<Spanish>Sangrando</Spanish>
<French>Seignement</French>
<Polish>Krwawienie zewnętrzne</Polish>
</Key>
<Key ID="STR_ACE_Medical_Menu_STATUS_PAIN">
<English>in Pain</English>
<Russian>Испытывает боль</Russian>
<Spanish>Con Dolor</Spanish>
<French>A De La Douleur</French>
<Polish>W bólu</Polish>
</Key>
<Key ID="STR_ACE_Medical_Menu_STATUS_LOST_BLOOD">
<English>Lost a lot of Blood</English>
<Russian>Большая кровопотеря</Russian>
<Spanish>Mucha Sangre perdida</Spanish>
<French>A Perdu Bcp de Sang</French>
<Polish>Stracił dużo krwi</Polish>
</Key>
<Key ID="STR_ACE_Medical_Menu_STATUS_TOURNIQUET_APPLIED">
<English>Tourniquet [CAT]</English>
<Russian>Жгут</Russian>
<Spanish>Torniquete [CAT]</Spanish>
<French>Garot [CAT]</French>
<Polish>Opaska uciskowa [CAT]</Polish>
</Key>
<Key ID="STR_ACE_Medical_Menu_STATUS_NPA_APPLIED">
<English>Nasopharyngeal Tube [NPA]</English>
<Russian>Назотрахеальная трубка</Russian>
<Spanish>Torniquete [CAT]</Spanish>
<French>Canule Naseaupharyngée [NPA]</French>
<Polish>Rurka nosowo-gardłowa [NPA]</Polish>
</Key>
</Container>
<Key ID="STR_ACE_Medical_Menu_OpenMenu">
<English>Medical Menu</English>
<Polish>Menu medyczne</Polish>
</Key>
<Key ID="STR_ACE_Medical_Menu_allow">
<English>Allow Medical Menu</English>
<Polish>Akt. menu medyczne</Polish>
</Key>
<Key ID="STR_ACE_Medical_Menu_allow_Descr">
<English>Allow clients to use the medical menu</English>
<Polish>Zezwalaj graczom korzystać z menu medycznego</Polish>
</Key>
<Key ID="STR_ACE_Medical_Menu_useMenu">
<English>Use Medical menu</English>
<Polish>Użyj menu medycznego</Polish>
</Key>
<Key ID="STR_ACE_Medical_Menu_useMenu_Descr">
<English>If allowed by server, enable the option to use the Medical Menu through keybinding and interaction menu</English>
<Polish>Jeżeli zezwolone przez serwer, aktywuj menu medyczne poprzez skrót klawiszowy i menu interakcji.</Polish>
</Key>
<Key ID="STR_ACE_Medical_Menu_openAfterTreatment">
<English>Re-open Medical menu</English>
<Polish>Otwieraj ponownie menu medyczne</Polish>
</Key>
<Key ID="STR_ACE_Medical_Menu_openAfterTreatment_Descr">
<English>Re-open the medical menu after succesful treatment</English>
<Polish>Otwórz ponownie menu medyczne po udanym zakończeniu leczenia</Polish>
</Key>
<Key ID="STR_ACE_Medical_Menu_DisplayMenuKey">
<English>Open Medical Menu</English>
<Polish>Otwórz menu medyczne</Polish>
</Key>
<Key ID="STR_ACE_Medical_Menu_module_DisplayName">
<English>Medical Menu Settings</English>
<Polish>Ustawienia menu medycznego</Polish>
</Key>
<Key ID="STR_ACE_Medical_Menu_module_Desc">
<English>Configure the usage of the Medical Menu</English>
<Polish>Skonfiguruj opcje menu medycznego</Polish>
</Key>
<Key ID="STR_ACE_Medical_Menu_EXAMINE_TREATMENT">
<English>EXAMINE &amp; TREATMENT</English>
<Russian>ОСМОТР И ЛЕЧЕНИЕ</Russian>
<Spanish>EXAMINAR &amp; TRATAMIENTO</Spanish>
<French>EXAMINER &amp; TRAITEMENTS</French>
<Polish>BADANIE &amp; LECZENIE</Polish>
</Key>
<Key ID="STR_ACE_Medical_Menu_STATUS">
<English>STATUS</English>
<Russian>СОСТОЯНИЕ</Russian>
<Spanish>ESTADO</Spanish>
<French>ÉTATS</French>
<Polish>STATUS</Polish>
</Key>
<Key ID="STR_ACE_Medical_Menu_OVERVIEW">
<English>OVERVIEW</English>
<Russian>ОБЩАЯ ИНФОРМАЦИЯ</Russian>
<Spanish>DESCRIPCIÓN</Spanish>
<French>DESCRIPTION</French>
<Polish>OPIS</Polish>
</Key>
<Key ID="STR_ACE_Medical_Menu_ACTIVITY_LOG">
<English>ACTIVITY LOG</English>
<Russian>ПРОВЕДЕННЫЕ МАНИПУЛЯЦИИ</Russian>
<Spanish>REGISTRO DE ACTIVIDAD</Spanish>
<French>REGISTRE DES SOINS</French>
<Polish>LOGI AKTYWNOŚCI</Polish>
</Key>
<Key ID="STR_ACE_Medical_Menu_QUICK_VIEW">
<English>QUICK VIEW</English>
<Russian>БЫСТРЫЙ ОСМОТР</Russian>
<Spanish>VISTA RÁPIDA</Spanish>
<French>VUE RAPIDE</French>
<Polish>SZYBKI PODGLĄD</Polish>
</Key>
<Key ID="STR_ACE_Medical_Menu_TRIAGE_NONE">
<English>None</English>
<Russian>Не ранен</Russian>
<Spanish>Ninguno</Spanish>
<French>Aucun</French>
<Polish>Brak</Polish>
</Key>
<Key ID="STR_ACE_Medical_Menu_TRIAGE_MINOR">
<English>Minor</English>
<Russian>Несрочная помощь</Russian>
<Spanish>Menor</Spanish>
<French>Mineur</French>
<Polish>Normalny</Polish>
</Key>
<Key ID="STR_ACE_Medical_Menu_TRIAGE_DELAYED">
<English>Delayed</English>
<Russian>Срочная помощь</Russian>
<Spanish>Diferido</Spanish>
<French>Urgent</French>
<Polish>Opóźniony</Polish>
</Key>
<Key ID="STR_ACE_Medical_Menu_TRIAGE_IMMEDIATE">
<English>Immediate</English>
<Russian>Неотложная помощь</Russian>
<Spanish>Inmediato</Spanish>
<French>Immédiat</French>
<Polish>Natychmiastowy</Polish>
</Key>
<Key ID="STR_ACE_Medical_Menu_TRIAGE_DECEASED">
<English>Deceased</English>
<Russian>Морг</Russian>
<Spanish>Fallecido</Spanish>
<French>Décédé</French>
<Polish>Nie żyje</Polish>
</Key>
<Key ID="STR_ACE_Medical_Menu_VIEW_TRIAGE_CARD">
<English>View triage Card</English>
<Russian>Смотреть первичную карточку</Russian>
<Spanish>Ver Triage</Spanish>
<French>Voir Carte de Triage</French>
<Polish>Pokaż kartę segregacyjną</Polish>
</Key>
<Key ID="STR_ACE_Medical_Menu_EXAMINE_PATIENT">
<English>Examine Patient</English>
<Russian>Осмотреть пациента</Russian>
<Spanish>Examinar Paciente</Spanish>
<French>Examiner Patient</French>
<Polish>Zbadaj pacjenta</Polish>
</Key>
<Key ID="STR_ACE_Medical_Menu_BANDAGE_FRACTURES">
<English>Bandage / Fractures</English>
<Russian>Раны / переломы</Russian>
<Spanish>Vendajes/Fracturas </Spanish>
<French>Bandages / Fractures</French>
<Polish>Bandaże / Złamania</Polish>
</Key>
<Key ID="STR_ACE_Medical_Menu_MEDICATION">
<English>Medication</English>
<Russian>Медикаменты</Russian>
<Spanish>Medicación</Spanish>
<French>Médications</French>
<Polish>Leki</Polish>
</Key>
<Key ID="STR_ACE_Medical_Menu_AIRWAY_MANAGEMENT">
<English>Airway Management</English>
<Russian>Дыхательные пути</Russian>
<Spanish>Vías Aéreas</Spanish>
<French>Gestion Des Voie REspiratoire</French>
<Polish>Drogi oddechowe</Polish>
</Key>
<Key ID="STR_ACE_Medical_Menu_ADVANCED_TREATMENT">
<English>Advanced Treatments</English>
<Russian>Специальная медпомощь</Russian>
<Spanish>Tratamientos Avanzados</Spanish>
<French>Traitement Avancé</French>
<Polish>Zaawansowane zabiegi</Polish>
</Key>
<Key ID="STR_ACE_Medical_Menu_DRAG_CARRY">
<English>Drag/Carry</English>
<Russian>Тащить/нести</Russian>
<Spanish>Arrastrar/Cargar</Spanish>
<French>Glisser/Porter</French>
<Polish>Ciągnij/Nieś</Polish>
</Key>
<Key ID="STR_ACE_Medical_Menu_TOGGLE_SELF">
<English>Toggle (Self)</English>
<Russian>Лечить себя/другого раненого</Russian>
<French>Activer (sois)</French>
<Polish>Przełącz (na siebie)</Polish>
<Spanish>Alternar</Spanish>
</Key>
<Key ID="STR_ACE_Medical_Menu_SELECT_TRIAGE_STATUS">
<English>Select triage status</English>
<Russian>Сортировка</Russian>
<Spanish>Seleccionar estado de Triage</Spanish>
<French>Selectioner l'état de Triage</French>
<Polish>Wybierz priorytet</Polish>
</Key>
<Key ID="STR_ACE_Medical_Menu_SELECT_HEAD">
<English>Select Head</English>
<Russian>Выбрать голову</Russian>
<Spanish>Seleccionar Cabeza</Spanish>
<French>Selectioner Tête</French>
<Polish>Wybierz głowę</Polish>
</Key>
<Key ID="STR_ACE_Medical_Menu_SELECT_TORSO">
<English>Select Torso</English>
<Russian>Выбрать торс</Russian>
<Spanish>Seleccionar Torso</Spanish>
<French>Selectioner Torse</French>
<Polish>Wybierz tors</Polish>
</Key>
<Key ID="STR_ACE_Medical_Menu_SELECT_ARM_L">
<English>Select Left Arm</English>
<Russian>Выбрать левую руку</Russian>
<Spanish>Seleccionar Brazo Izquierdo</Spanish>
<French>Selectioner Bras Gauche</French>
<Polish>Wybierz lewą rękę</Polish>
</Key>
<Key ID="STR_ACE_Medical_Menu_SELECT_ARM_R">
<English>Select Right Arm</English>
<Russian>Выбрать правую руку</Russian>
<Spanish>Seleccionar Brazo Derecho</Spanish>
<French>Selectioner Bras Droit</French>
<Polish>Wybierz prawą rękę</Polish>
</Key>
<Key ID="STR_ACE_Medical_Menu_SELECT_LEG_L">
<English>Select Left Leg</English>
<Russian>Выбрать левую ногу</Russian>
<Spanish>Seleccionar Pierna Izquierda</Spanish>
<French>Selectioner Jambe Gauche</French>
<Polish>Wybierz lewą nogę</Polish>
</Key>
<Key ID="STR_ACE_Medical_Menu_SELECT_LEG_R">
<English>Select Right Leg</English>
<Russian>Выбрать правую ногу</Russian>
<Spanish>Seleccionar Pierna Derecha</Spanish>
<French>Selectioner Jambe Droite</French>
<Polish>Wybierz prawą nogę</Polish>
</Key>
<Key ID="STR_ACE_Medical_Menu_HEAD">
<English>Head</English>
<Russian>Голова</Russian>
<Spanish>Cabeza</Spanish>
<French>Tête</French>
<Polish>Głowa</Polish>
</Key>
<Key ID="STR_ACE_Medical_Menu_TORSO">
<English>Torso</English>
<Russian>Торс</Russian>
<French>Torse</French>
<Polish>Tors</Polish>
</Key>
<Key ID="STR_ACE_Medical_Menu_ARM_L">
<English>Left Arm</English>
<Russian>Левая рука</Russian>
<Spanish>Brazo Izquierdo</Spanish>
<French>Bras Gauche</French>
<Polish>Lewa ręka</Polish>
</Key>
<Key ID="STR_ACE_Medical_Menu_ARM_R">
<English>Right Arm</English>
<Russian>Правая рука</Russian>
<Spanish>Brazo Derecho</Spanish>
<French>Bras Droit</French>
<Polish>Prawa ręka</Polish>
</Key>
<Key ID="STR_ACE_Medical_Menu_LEG_L">
<English>Left Leg</English>
<Russian>Левая нога</Russian>
<Spanish>Pierna Izquierda</Spanish>
<French>Jambe Gauche</French>
<Polish>Lewa noga</Polish>
</Key>
<Key ID="STR_ACE_Medical_Menu_LEG_R">
<English>Right Leg</English>
<Russian>Правая нога</Russian>
<Spanish>Pierna Derecha</Spanish>
<French>Jambe Droite</French>
<Polish>Prawa noga</Polish>
</Key>
<Key ID="STR_ACE_Medical_Menu_SELECTED_BODY_PART">
<English>Body Part: %1</English>
<Russian>Часть тела: %1</Russian>
<Spanish>Parte del cuerpo: %1</Spanish>
<French>Partie du corps: %1</French>
<Polish>Część ciała: %1</Polish>
</Key>
<Key ID="STR_ACE_Medical_Menu_SMALL">
<English>Small</English>
<Russian>малого размера</Russian>
<Spanish>Pequeña</Spanish>
<French>Petite</French>
<Polish>małym</Polish>
</Key>
<Key ID="STR_ACE_Medical_Menu_MEDIUM">
<English>Medium</English>
<Russian>среднего размера</Russian>
<Spanish>Mediana</Spanish>
<French>moyenne</French>
<Polish>średnim</Polish>
</Key>
<Key ID="STR_ACE_Medical_Menu_LARGE">
<English>Large</English>
<Russian>большого размера</Russian>
<Spanish>Grande</Spanish>
<French>Grande</French>
<Polish>dużym</Polish>
</Key>
<Key ID="STR_ACE_Medical_Menu_MULTIPLE_OPEN_WOUNDS">
<English>There are %2 %1 Open Wounds</English>
<Russian>%2 открытые раны %1</Russian>
<Spanish>Hay %2 Heridas Abiertas %1</Spanish>
<French>Il y a %2 %1 Blessure Ouverte</French>
<Polish>Widzisz otwarte rany w ilości %2 o %1 rozmiarze</Polish>
</Key>
<Key ID="STR_ACE_Medical_Menu_SINGLE_OPEN_WOUND">
<English>There is 1 %1 Open Wound</English>
<Russian>Открытая рана %1</Russian>
<Spanish>Hay 1 Herida Abierta %1</Spanish>
<French>Il y a 1 blessure ouverte %1</French>
<Polish>Widzisz 1 otwartą ranę o %1 rozmiarze</Polish>
</Key>
<Key ID="STR_ACE_Medical_Menu_PARTIAL_OPEN_WOUND">
<English>There is a partial %1 Open wound</English>
<Russian>Частично открытая рана %1</Russian>
<Spanish>Hay una herida parcial abierta %1</Spanish>
<French>Il y a une Blessure Patiellement Ouverte %1</French>
<Polish>Widzisz częściowo otwartą ranę o %1 rozmiarze</Polish>
</Key>
<Key ID="STR_ACE_Medical_Menu_MULTIPLE_BANDAGED_WOUNDS">
<English>There are %2 %1 Bandaged Wounds</English>
<Russian>%2 перевязанные раны %1</Russian>
<Spanish>Hay %2 Heridas %1 Vendadas</Spanish>
<French>Il y a %2 %1 Blessure Bandée</French>
<Polish>Widzisz %2 zabandażowanych ran o %1 rozmiarze</Polish>
</Key>
<Key ID="STR_ACE_Medical_Menu_SINGLE_BANDAGED_WOUND">
<English>There is 1 %1 Bandaged Wound</English>
<Russian>1 перевязанная рана %1</Russian>
<Spanish>Hay 1 Herida Vendada %1</Spanish>
<French>Il y a 1 %1 Blessure Bandée</French>
<Polish>Widzisz 1 zabandażowaną ranę o %1 rozmiarze</Polish>
</Key>
<Key ID="STR_ACE_Medical_Menu_PARTIAL_BANDAGED_WOUND">
<English>There is a partial %1 Bandaged wound</English>
<Russian>Частично перевязанная рана %1</Russian>
<Spanish>Hay una Herida parcial %1 Vendada</Spanish>
<French>Il y a %1 Blessure Partielment Bandée</French>
<Polish>Widzisz 1 częściowo zabandażowaną ranę o %1 rozmiarze</Polish>
</Key>
<Key ID="STR_ACE_Medical_Menu_NORMAL_BREATHING">
<English>Normal breathing</English>
<Russian>Дыхание в норме</Russian>
<Spanish>Respiración normal</Spanish>
<French>Respiration Normale</French>
<Polish>Normalny oddech</Polish>
</Key>
<Key ID="STR_ACE_Medical_Menu_NO_BREATHING">
<English>No breathing</English>
<Russian>Дыхания нет</Russian>
<Spanish>No respira</Spanish>
<French>Apnée</French>
<Polish>Brak oddechu</Polish>
</Key>
<Key ID="STR_ACE_Medical_Menu_DIFFICULT_BREATHING">
<English>Difficult breathing</English>
<Russian>Дыхание затруднено</Russian>
<Spanish>Dificultad para respirar</Spanish>
<French>Difficultée Respiratoire</French>
<Polish>Trudności z oddychaniem</Polish>
</Key>
<Key ID="STR_ACE_Medical_Menu_ALMOST_NO_BREATHING">
<English>Almost no breathing</English>
<Russian>Дыхания почти нет</Russian>
<Spanish>Casi sin respirar</Spanish>
<French>Respiration Faible</French>
<Polish>Prawie brak oddechu</Polish>
</Key>
<Key ID="STR_ACE_Medical_Menu_STATUS_BLEEDING">
<English>Bleeding</English>
<Russian>Кровотечение</Russian>
<Spanish>Sangrando</Spanish>
<French>Seignement</French>
<Polish>Krwawienie zewnętrzne</Polish>
</Key>
<Key ID="STR_ACE_Medical_Menu_STATUS_PAIN">
<English>in Pain</English>
<Russian>Испытывает боль</Russian>
<Spanish>Con Dolor</Spanish>
<French>A De La Douleur</French>
<Polish>W bólu</Polish>
</Key>
<Key ID="STR_ACE_Medical_Menu_STATUS_LOST_BLOOD">
<English>Lost a lot of Blood</English>
<Russian>Большая кровопотеря</Russian>
<Spanish>Mucha Sangre perdida</Spanish>
<French>A Perdu Bcp de Sang</French>
<Polish>Stracił dużo krwi</Polish>
</Key>
<Key ID="STR_ACE_Medical_Menu_STATUS_TOURNIQUET_APPLIED">
<English>Tourniquet [CAT]</English>
<Russian>Жгут</Russian>
<Spanish>Torniquete [CAT]</Spanish>
<French>Garot [CAT]</French>
<Polish>Opaska uciskowa [CAT]</Polish>
</Key>
<Key ID="STR_ACE_Medical_Menu_STATUS_NPA_APPLIED">
<English>Nasopharyngeal Tube [NPA]</English>
<Russian>Назотрахеальная трубка</Russian>
<Spanish>Torniquete [CAT]</Spanish>
<French>Canule Naseaupharyngée [NPA]</French>
<Polish>Rurka nosowo-gardłowa [NPA]</Polish>
<English>Nasopharyngeal Tube [NPA]</English>
</Key>
</Package>
</Project>

View File

@ -1,7 +1,7 @@
ace_microdagr
===============
Adds a microDAGR infentry GPS device.
Adds a MicroDAGR infantry GPS device.
Press home to open. Then home again to toggle an interactive version. Press CTRL+Home to close.
Info/Compass/Minimap modes are selectable by the bottom buttons. Tap the top bar to open the menu and access Mark/Waypoints/Connect To/Settings modes.
Tap the minimap button again to toggle map modes (if available).
@ -9,13 +9,14 @@ Enter waypoints from the menu or double tapping on the minimap.
Can interface with the `ace_vector`. Hold Azimuth+Range and release (see page 14 of vector's manual)
#### Items Added:
`ACE_microDAGR`
## For Mission Makers:
#### Modules:
* MicroDAGR Map Fill - Controls the amount of map data avaialbe for the minimap. Can limit to just roads/topographical or disable entirely.
- MicroDAGR Map Fill - Controls the amount of map data available for the minimap. Can limit to just roads/topographical or disable entirely.
## Maintainers

View File

@ -0,0 +1,11 @@
ace_missionmodules
===========
Adds mission modules.
## Maintainers
The people responsible for merging changes to this component or answering potential questions.
- [Glowbal](https://github.com/Glowbal)

View File

@ -1,7 +1,8 @@
ace_mk6mortar
==========
Tweaks the mk6 mortar from Arma3
Tweaks the Nk6 Mortar system.
## Maintainers

11
addons/modules/README.md Normal file
View File

@ -0,0 +1,11 @@
ace_modules
===========
Provides framework for module handling.
## Maintainers
The people responsible for merging changes to this component or answering potential questions.
- [Glowbal](https://github.com/Glowbal)

View File

@ -3,8 +3,9 @@ ace_mx2a
Adds the MX-2A thermal imaging device.
## Maintainers
The people responsible for merging changes to this component or answering potential questions.
- [Ruthberg] (http://github.com/Ulteq)
- [Ruthberg](http://github.com/Ulteq)

11
addons/noidle/README.md Normal file
View File

@ -0,0 +1,11 @@
ace_noidle
===========
Removes idle animations.
## Maintainers
The people responsible for merging changes to this component or answering potential questions.
- [commy2](https://github.com/commy2)

11
addons/norearm/README.md Normal file
View File

@ -0,0 +1,11 @@
ace_norearm
===========
Removes rearm action.
## Maintainers
The people responsible for merging changes to this component or answering potential questions.
- [commy2](https://github.com/commy2)

Some files were not shown because too many files have changed in this diff Show More