Clarify store and starting equipment guides
This commit is contained in:
parent
623f718caf
commit
bfb317eb5c
@ -80,6 +80,25 @@ New owned garages are created with default unlocks from the Rust model.
|
|||||||
| `owned:garage:delete` | `uid` | `OK`. |
|
| `owned:garage:delete` | `uid` | `OK`. |
|
||||||
| `owned:garage:exists` | `uid` | `true` or `false`. |
|
| `owned:garage:exists` | `uid` | `true` or `false`. |
|
||||||
|
|
||||||
|
## Starting Equipment And Unlocks
|
||||||
|
|
||||||
|
Missions can include `CfgStartingEquipment.hpp` from `description.ext` to set
|
||||||
|
new-player loadout and initial virtual arsenal or garage unlocks without
|
||||||
|
recompiling the framework.
|
||||||
|
|
||||||
|
```cpp
|
||||||
|
#include "CfgStartingEquipment.hpp"
|
||||||
|
```
|
||||||
|
|
||||||
|
`loadout[]` uses the standard Arma loadout array shape. `Unlocks.Locker`
|
||||||
|
supports `items[]`, `weapons[]`, `magazines[]`, and `backpacks[]`.
|
||||||
|
`Unlocks.Garage` supports `cars[]`, `armor[]`, `helis[]`, `planes[]`,
|
||||||
|
`naval[]`, and `other[]`.
|
||||||
|
|
||||||
|
The extension defaults are intentionally empty. The server seeds mission
|
||||||
|
starting unlocks only when a player does not already have persistent owned
|
||||||
|
locker or garage records.
|
||||||
|
|
||||||
## Add Virtual Arsenal Unlocks
|
## Add Virtual Arsenal Unlocks
|
||||||
|
|
||||||
```sqf
|
```sqf
|
||||||
|
|||||||
@ -34,6 +34,22 @@ Include `CfgStore.hpp` from `description.ext`:
|
|||||||
```cpp
|
```cpp
|
||||||
class CfgStore {
|
class CfgStore {
|
||||||
mode = "allowlist"; // dynamic, allowlist, or denylist
|
mode = "allowlist"; // dynamic, allowlist, or denylist
|
||||||
|
modMode = "dynamic"; // dynamic, allowlist, or denylist
|
||||||
|
mods[] = {}; // ModSources child class names used when modMode is not dynamic
|
||||||
|
|
||||||
|
class ModSources {
|
||||||
|
class rhs {
|
||||||
|
patches[] = {"rhs_main", "rhsusf_main"};
|
||||||
|
addons[] = {"rhs_", "rhsusf_", "rhsgref_", "rhsafrf_"};
|
||||||
|
prefixes[] = {"rhs_", "rhsusf_", "rhsgref_", "rhsafrf_"};
|
||||||
|
};
|
||||||
|
|
||||||
|
class ace3 {
|
||||||
|
patches[] = {"ace_main"};
|
||||||
|
addons[] = {"ace_"};
|
||||||
|
prefixes[] = {"ace_"};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
class Categories {
|
class Categories {
|
||||||
primary[] = {"arifle_MX_F", "arifle_MXC_F"};
|
primary[] = {"arifle_MX_F", "arifle_MXC_F"};
|
||||||
@ -56,6 +72,13 @@ listed for each category. `denylist` removes listed classnames. Overrides are
|
|||||||
server-side and are used by both the UI payload and checkout validation.
|
server-side and are used by both the UI payload and checkout validation.
|
||||||
`units[]` uses the same filter behavior as every other category.
|
`units[]` uses the same filter behavior as every other category.
|
||||||
|
|
||||||
|
`modMode` applies before category filtering. `allowlist` only keeps generated
|
||||||
|
entries that match one of the configured `mods[]`; `denylist` removes matching
|
||||||
|
entries. Each `ModSources` child can define `patches[]` to detect whether the
|
||||||
|
mod is loaded, `addons[]` for config source addon/source mod names or classname
|
||||||
|
prefixes, and `prefixes[]` for classname prefixes. If a mod source defines no
|
||||||
|
patches, it is treated as available and only the source/prefix checks are used.
|
||||||
|
|
||||||
The current filter is global for the mission. Revisit per-store profile support
|
The current filter is global for the mission. Revisit per-store profile support
|
||||||
if individual vendors need different inventories.
|
if individual vendors need different inventories.
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user