ACE3/docs/wiki/framework/rearm-framework.md
TACHarsis 0a2e7d1202
Rearm - Improve framework documentation (#9114)
* Added scripted way of creating a rearm source to framework documentation

* Fixed indentation level

* More verbosity

* Updated phrasing

* * Fixed bad copy paste job
* Changed introduction version to more likely candidate
* Reordered `makeSource` under `Functions` and applied hopefully more sensible order of "create source > ammo specifics"

* Wording fix and further reorder

* Fixed wording to be in line with rest of document
* Further updated order

* Update docs/wiki/framework/rearm-framework.md

Co-authored-by: Jouni Järvinen <rautamiekka@users.noreply.github.com>

* Update docs/wiki/framework/rearm-framework.md

Co-authored-by: Jouni Järvinen <rautamiekka@users.noreply.github.com>

* Update docs/wiki/framework/rearm-framework.md

Co-authored-by: Jouni Järvinen <rautamiekka@users.noreply.github.com>

* Update docs/wiki/framework/rearm-framework.md

Co-authored-by: Jouni Järvinen <rautamiekka@users.noreply.github.com>

* Update docs/wiki/framework/rearm-framework.md

Co-authored-by: Jouni Järvinen <rautamiekka@users.noreply.github.com>

* Added execution hint to makeSource

---------

Co-authored-by: Jouni Järvinen <rautamiekka@users.noreply.github.com>
2023-03-05 18:12:58 -06:00

8.3 KiB

layout title description group order parent mod version
wiki Rearm Framework Explains how to set-up rearming of objects with the ACE3 rearm system. framework 5 wiki ace
major minor patch
3 5 0

1. Config Values

1.1 Setting vehicle as a supply

A vehicle will be set as a supply vehicle based on the config ace_rearm_defaultSupply

class MyTruck: Car_F {
    ace_rearm_defaultSupply = 1200;
};

1.2 Ammo Configs

class CfgAmmo {
    class MyLaserGuidedRocket {
        ace_rearm_caliber = 250;  // Set to the correct caliber
        ace_rearm_dummy = "ace_rearm_MyLaserGuidedRocket";  // Set to correct vehicle classname
    };
};

class CfgVehicles {
    class ace_rearm_defaultCarriedObject;
    class ace_rearm_MyLaserGuidedRocket: ace_rearm_defaultCarriedObject {
        model = "\directory\model.p3d";  // Set to correct static model path
    };
};
Note:

ace_rearm_caliber is only needed if you aren't inheriting from any of BI base classes or if your ammo has a different caliber.

ace_rearm_dummy is only needed if you have a custom ammunition model. For each model you should create a dummy vehicle extending ace_rearm_defaultCarriedObject.

2. Variables

2.1 Allow Rearming of Scripted Loadouts

ace_rearm_scriptedLoadout

Normally ACE Rearm evaluates what magazines a vehicle can carry by looking at the turret configs of the vehicle. This means that if a vehicle has a scripted loadout, for example using addMagazineTurret to give it different magazines than standard, those scripted magazines cannot be loaded with Rearm and the vehicle may be overloaded by rearming the magazines from the turret configs.

If a scripted loadout is used, this variable can be set to true to switch the magazines that can be rearmed from the turret configs to any empty magazine in the vehicle.

VEHICLE addMagazineTurret ["SmokeLauncherMag",[0,0]];
VEHICLE setVariable ["ace_rearm_scriptedLoadout", true, true];

3. Functions

3.1 Make an object into a rearm source

Added in ACE3 3.12.3

Meant to run on server only.

ace_rearm_fnc_makeSource

Arguments Type Optional (default value)
0 Ammo Truck Object Required
1 Supply Count Number Optional (default: 0)
1 Add (true) or set (false) supply Bool Optional (default: false)
R None None Return value

3.1.1 Example

[cursorObject, 1200] call ace_rearm_fnc_makeSource

Arguments Explanation
0 cursorObject Rearm source object
1 1200 Ammo supply

3.2 Enabling / disabling rearming

ace_rearm_fnc_disable

Arguments Type Optional (default value)
0 Ammo Truck Object Required
1 Disable rearming, true to disable, false to enable Boolean Optional (default: true)
R None None Return value

This function disables rearming for all supported turrets of a vehicle.

3.2.1 Example 1

[tank] call ace_rearm_fnc_disable;

Arguments Explanation
0 tank My object

Disables rearming on the object tank.

3.2.2 Example 2

[tank, false] call ace_rearm_fnc_disable;

Arguments Explanation
0 tank My object
1 false Rearming is enabled

Enables rearming on the object tank.

3.3 Getting the supply count

ace_rearm_fnc_getSupplyCount

Arguments Type Optional (default value)
0 Ammo Truck Object Required
R Supply count Number Return value

This function returns the current supply count of the ammo truck.

3.3.1 Example

[ammo_truck] call ace_rearm_fnc_getSupplyCount;

Arguments Explanation
0 ammo_truck My object

The remaining supply count of ammo_truck will be returned.

3.4 Setting the supply count

ace_rearm_fnc_setSupplyCount

Arguments Type Optional (default value)
0 Ammo Truck Object Required
1 Supply Count Boolean Required
R None None Return value

This function sets the current supply count of the ammo truck. It can be used to replenish the ammo truck on Limited ammo supply based on caliber setting.

3.4.1 Example

[ammo_truck, 1000] call ace_rearm_fnc_setSupplyCount;

Arguments Explanation
0 ammo_truck My ammo truck object
1 1000 Supply Count

3.5 Adding specific magazines

ace_rearm_fnc_addMagazineToSupply

Arguments Type Optional (default value)
0 Ammo Truck Object Required
1 Magazine Classname String Required
2 Only add content of one ammo box Boolean Optional (default: false)
R None None Return value

This function is most useful with the module setting Only specific Magazines. Note that this function only adds one magazine of a specific class. Other magazines of the same size are not available on this module setting. It has to be used to replenish the ammo truck on Only specific Magazines setting.

This function can also be used to increase the supply count on setting Limited ammo supply based on caliber by a certain caliber value.

3.5.1 Example

[ammo_truck, "32Rnd_155mm_Mo_shells"] call ace_rearm_fnc_addMagazineToSupply;

Arguments Explanation
0 ammo_truck My ammo truck object
1 "32Rnd_155mm_Mo_shells" Some magazine class

The 32 artillery shells are added to the supply count or the magazine storage of the specified ammo truck.

3.6 Adding all magazines of a specific vehicle

ace_rearm_fnc_addVehicleMagazinesToSupply

Arguments Type Optional (default value)
0 Ammo Truck Object Required
1 Any vehicle object or class name Object or String Required
R None None Return value

This function wraps ace_rearm_fnc_addMagazineToSupply and uses it to add all default magazines of all supported turrets of the vehicle to the ammo truck.

3.6.1 Example 1

[ammo_truck, tank] call ace_rearm_fnc_addVehicleMagazinesToSupply;

Arguments Explanation
0 ammo_truck My ammo truck object
1 tank A vehicle object

All magazines found in the class config of the object tank are made available.

3.6.2 Example 2

[ammo_truck, "B_MBT_01_arty_F"] call ace_rearm_fnc_addVehicleMagazinesToSupply;

Arguments Explanation
0 ammo_truck My ammo truck object
1 "B_MBT_01_arty_F" Vehicle class name

All magazines found in the config of the vehicle class B_MBT_01_arty_F are made available.

3.7 Removing magazines from supply

ace_rearm_fnc_removeMagazineFromSupply

Arguments Type Optional (default value)
0 Ammo Truck Object Required
1 Magazine Classname String Required
2 Number of Rounds to withdraw Number Optional (default: -1)
R Magazine could be removed successfully Boolean Return value

3.7.1 Example 1

[ammo_truck, "500Rnd_127x99_mag_Tracer_Red"] call ace_rearm_fnc_removeMagazineFromSupply;

Arguments Explanation
0 ammo_truck My ammo truck object
1 "500Rnd_127x99_mag_Tracer_Red" Carrying is enabled

Removes one ammo box worth of "500Rnd_127x99_mag_Tracer_Red" from the supply. Depending on the module setting the ammo box does hold an entire magazine or only the caliber based amount of rounds.

3.7.2 Example 2

[ammo_truck, "500Rnd_127x99_mag_Tracer_Red", 50] call ace_rearm_fnc_removeMagazineFromSupply;

Arguments Explanation
0 ammo_truck My ammo truck object
1 "500Rnd_127x99_mag_Tracer_Red" Carrying is enabled
2 50 Number of rounds

Removes one ammo box with 50 rounds of 500Rnd_127x99_mag_Tracer_Red from the supply. This is 10% of the supply of an entire magazine.

4. Events

| Name | Arguments | Global? | Added in | | ------------- | ------------- | ------------- | | ace_rearm_sourceInitalized | Yes | Ammo truck (OBJECT) | 3.16.0 |