Compare commits
12 Commits
442cb0b0b2
...
4.0.0
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1e5d50828b | ||
| f8af54aa06 | |||
|
|
2c733f77df | ||
| 8ed6b8a5c6 | |||
| 1d7e1ede37 | |||
| 363016d778 | |||
|
|
bbe798734a | ||
|
|
e372563e58 | ||
|
|
8283f19b77 | ||
| 644de22b32 | |||
|
5d3c28b807
|
|||
| 02e97b3e0e |
39
CHANGELOG.md
39
CHANGELOG.md
@@ -4,7 +4,34 @@ All notable changes to this project will be documented in this file.
|
||||
|
||||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project badly attempts [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||
|
||||
## [3.2] - 2024-02-01
|
||||
## [4.0.0] - 2024-02-07
|
||||
|
||||
Version 4 marks a massive rewrite due in whole to @IndigoFox by updating the internals of the framework into CBA macros and functions.
|
||||
|
||||
### Added
|
||||
|
||||
- Added ability for FBCB2 Assets to locate themselves on player local map
|
||||
- Added various framework utitily functions
|
||||
- Added ability for mission maker to allow spawning of resupply boxes from arsenal boxes
|
||||
- Added CBA settings for resupply box spawning
|
||||
- Added additional vehicle flags
|
||||
- Addded Zeus module to fill vehicle ace cargo inventory with tracks/tires
|
||||
|
||||
### Changed
|
||||
|
||||
- Documented purpose of `missionSeries` parameter in `mission_settings.hpp`
|
||||
- Moved internal functions into new framework directory structure
|
||||
- Moved FBCB2 internal data structure into multiple defintion files
|
||||
- Moved resupply boxes internal data structures into their own definiton file
|
||||
- Moved player inventory internal data structure into its own defintion file
|
||||
- Moved vehicle flags internal data structure into its own defitinion file
|
||||
- Use player's preferred ACE color settings for medical triage icons
|
||||
|
||||
### Deleted
|
||||
|
||||
- Leftover resupply box code from before version 3.2.0 update
|
||||
|
||||
## [3.2.0] - 2024-02-01
|
||||
|
||||
### Added
|
||||
|
||||
@@ -62,7 +89,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
||||
- Lowered garbage collection times and range for dead bodies
|
||||
|
||||
|
||||
## [3.0] - 2023-05-03
|
||||
## [3.0.0] - 2023-05-03
|
||||
|
||||
### Added
|
||||
|
||||
@@ -79,7 +106,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
||||
|
||||
- Remove `CfgRemoteExec` from `description.ext` as it has been deprecated as of Arma v1.54
|
||||
|
||||
## [2.2] - 2023-04-23
|
||||
## [2.2.0] - 2023-04-23
|
||||
|
||||
### Added
|
||||
|
||||
@@ -93,7 +120,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
||||
|
||||
- Force `sideChat` CBA setting to 'disabled' on mission start by default
|
||||
|
||||
## [2.1] - 2023-04-12
|
||||
## [2.1.0] - 2023-04-12
|
||||
|
||||
### Added
|
||||
|
||||
@@ -103,7 +130,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
||||
- Allow `#admin` to enable or disable `sideChat` via CBA setting on a per mission file basis.
|
||||
`Escape -> Configure -> Addon Options -> Server -> 17th Battalion -> Enable Side Chat`
|
||||
|
||||
## [2.0] -2023-04-12
|
||||
## [2.0.0] -2023-04-12
|
||||
|
||||
### Added
|
||||
|
||||
@@ -113,7 +140,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
||||
|
||||
- mission.jpg to correct dimensions and optimize
|
||||
|
||||
## [1.9] - 2023-03-07
|
||||
## [1.9.0] - 2023-03-07
|
||||
|
||||
### Added
|
||||
|
||||
|
||||
15
README.md
15
README.md
@@ -20,7 +20,7 @@ Once copied, the final structure should appear similar to the following:
|
||||
├── mission.sqm
|
||||
```
|
||||
|
||||
If you're building a mission for use in an op, please delete "aaFrameworkUtils" and "framework\x". These are for the purposes of development and add bloat to the mission download when players connect to your mission.
|
||||
> **Note:** If you're building a mission for use and not actively developing code, the `aaFrameworkUtils` and `framework\x` directories **should be deleted**. *These are for the purposes of development and add size bloat to the mission download when players connect to your mission.*
|
||||
|
||||
After the requisite configuration file edits have been made, your mission is ready to be packed into a pbo for deployment.
|
||||
|
||||
@@ -45,6 +45,14 @@ The contents of the lower half of the file are where the mission maker is able t
|
||||
This file will be displayed the client mission loading screen.
|
||||
File should remain small *(under 300KiB)* and should optimally be `1024px by 512px` in resolution
|
||||
|
||||
## defines/
|
||||
|
||||
This directory contains the definition files use by the framework in various places. *Contents should not be edited*
|
||||
|
||||
## framework/
|
||||
|
||||
This directory contains the code for the mission framework. **Contents must not be edited.**
|
||||
|
||||
## images/
|
||||
|
||||
This directory is for organizational purposes for any images you wish to use in your mission
|
||||
@@ -52,7 +60,7 @@ This directory is for organizational purposes for any images you wish to use in
|
||||
## scripts/
|
||||
|
||||
This directory is for organizational purposes for any custom scripts you wish to use in your mission.
|
||||
> **Note**: Scripts may need to be edited to account for their new location
|
||||
> **Note:** Scripts may need to be edited to account for their new location
|
||||
|
||||
## sounds/
|
||||
|
||||
@@ -63,7 +71,8 @@ This directory is for organizational purposes for any custom scripts you wish to
|
||||
|
||||
This directory is for organizational purposes for textures files used by mission scripts.
|
||||
|
||||
## DEV NOTES
|
||||
|
||||
# Development Notes
|
||||
|
||||
All modules are broken apart as such in /framework. Client and server inits are managed in /framework/init.
|
||||
|
||||
|
||||
@@ -24,10 +24,10 @@ class CfgFunctions {
|
||||
class DOUBLES(PREFIX,client) {
|
||||
class functions {
|
||||
file = "framework\client\functions";
|
||||
class addZenModules { postInit = 1; };
|
||||
class bindEmptyGroupGarbageCleanup { postInit = 1; };
|
||||
class bindEventHandlers { postInit = 1; };
|
||||
class bindVehicleActions { postInit = 1; };
|
||||
class addZenModules {postInit = 1;};
|
||||
};
|
||||
};
|
||||
|
||||
@@ -169,4 +169,12 @@ class CfgFunctions {
|
||||
class isClassExcluded {};
|
||||
};
|
||||
};
|
||||
|
||||
class DOUBLES(PREFIX,zeus) {
|
||||
class functions {
|
||||
file = "framework\zeus\functions";
|
||||
class initClient {};
|
||||
class addZenModules {};
|
||||
};
|
||||
};
|
||||
};
|
||||
@@ -2,61 +2,6 @@
|
||||
|
||||
if ( !hasInterface ) exitWith {};
|
||||
|
||||
[
|
||||
QUOTE(MODULE_CATEGORY_NAME),
|
||||
"Create Resupply Box",
|
||||
{
|
||||
params [["_pos", [0,0,0], [[]], 3], ["_target", objNull, [objNull]]];
|
||||
// get parent definition
|
||||
private _supplyCratesCfg = call EFUNC(resupply,getSupplyCratesCfg);
|
||||
// get the subclass names
|
||||
private _boxTypesAvailable = _supplyCratesCfg call BIS_fnc_getCfgSubClasses;
|
||||
|
||||
_boxTypesAvailable sort true;
|
||||
_comboOptions = _boxTypesAvailable apply {
|
||||
[
|
||||
// display name
|
||||
[_supplyCratesCfg >> _x >> "displayName", "STRING", "ERROR"] call CBA_fnc_getConfigEntry,
|
||||
// tooltip
|
||||
[_supplyCratesCfg >> _x >> "tooltip", "STRING", "ERROR"] call CBA_fnc_getConfigEntry,
|
||||
// icon
|
||||
[_supplyCratesCfg >> _x >> "icon", "STRING", "ERROR"] call CBA_fnc_getConfigEntry
|
||||
]
|
||||
};
|
||||
|
||||
[
|
||||
"Resupply Box Options",
|
||||
[
|
||||
// [ "COMBO", "Box Type", [[1,2,3], [["Ammo"],["Weapons"],["Medical"]],0] ]
|
||||
["COMBO", "Box Type", [_boxTypesAvailable, _comboOptions, 0]]
|
||||
],
|
||||
{
|
||||
|
||||
params ["_dialog", "_args"];
|
||||
|
||||
_dialog params ["_typeOptionSelected"];
|
||||
_args params ["_pos", "_target", "_keysSorted"];
|
||||
|
||||
|
||||
private _box = [_target, _typeOptionSelected, _pos] call EFUNC(resupply,createBox);
|
||||
if (isNull _box) exitWith {
|
||||
["Resupply Box", "WARNING: Failed to locate or create box!"] call BIS_fnc_curatorHint;
|
||||
};
|
||||
[
|
||||
"Resupply Box",
|
||||
format[
|
||||
"Created %1",
|
||||
getText((call EFUNC(resupply,getSupplyCratesCfg)) >> _typeOptionSelected >> "displayName")
|
||||
]
|
||||
] call BIS_fnc_curatorHint;
|
||||
},
|
||||
{},
|
||||
[_pos, _target]
|
||||
] call zen_dialog_fnc_create;
|
||||
}
|
||||
] call zen_custom_modules_fnc_register;
|
||||
|
||||
|
||||
[
|
||||
QUOTE(MODULE_CATEGORY_NAME),
|
||||
"Grounds Cleanup",
|
||||
|
||||
@@ -28,6 +28,7 @@ call EFUNC(reinsert,initClient);
|
||||
call EFUNC(resupply,initClient);
|
||||
call EFUNC(triageIcons,initClient);
|
||||
call EFUNC(vehicleFlags,initClient);
|
||||
call EFUNC(zeus,initClient);
|
||||
call EFUNC(fbcb2_main,initClient);
|
||||
call EFUNC(fbcb2_assets,initClient);
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
#define MAJOR 3
|
||||
#define MINOR 2
|
||||
#define PATCHLVL 1
|
||||
#define MAJOR 4
|
||||
#define MINOR 0
|
||||
#define PATCHLVL 0
|
||||
#define BUILD 0
|
||||
|
||||
294
framework/zeus/functions/fn_addZenModules.sqf
Normal file
294
framework/zeus/functions/fn_addZenModules.sqf
Normal file
@@ -0,0 +1,294 @@
|
||||
#include "..\script_component.hpp"
|
||||
|
||||
if ( !hasInterface ) exitWith {};
|
||||
|
||||
// Create Resupply Box
|
||||
[
|
||||
QUOTE(MODULE_CATEGORY_NAME),
|
||||
"Create Resupply Box",
|
||||
{
|
||||
// module placement
|
||||
params [["_pos", [0,0,0], [[]], 3], ["_target", objNull, [objNull]]];
|
||||
// get parent definition
|
||||
private _supplyCratesCfg = call EFUNC(resupply,getSupplyCratesCfg);
|
||||
// get the subclass names
|
||||
private _boxTypesAvailable = _supplyCratesCfg call BIS_fnc_getCfgSubClasses;
|
||||
|
||||
_boxTypesAvailable sort true;
|
||||
_comboOptions = _boxTypesAvailable apply {
|
||||
[
|
||||
// display name
|
||||
[_supplyCratesCfg >> _x >> "displayName", "STRING", "ERROR"] call CBA_fnc_getConfigEntry,
|
||||
// tooltip
|
||||
[_supplyCratesCfg >> _x >> "tooltip", "STRING", "ERROR"] call CBA_fnc_getConfigEntry,
|
||||
// icon
|
||||
[_supplyCratesCfg >> _x >> "icon", "STRING", "ERROR"] call CBA_fnc_getConfigEntry
|
||||
]
|
||||
};
|
||||
|
||||
[ // create the dialog
|
||||
"Resupply Box Options",
|
||||
[
|
||||
// [ "COMBO", "Box Type", [[1,2,3], [["Ammo"],["Weapons"],["Medical"]],0] ]
|
||||
["COMBO", "Box Type", [_boxTypesAvailable, _comboOptions, 0]]
|
||||
],
|
||||
{
|
||||
|
||||
params ["_dialog", "_args"];
|
||||
|
||||
_dialog params ["_typeOptionSelected"];
|
||||
_args params ["_pos", "_target", "_keysSorted"];
|
||||
|
||||
|
||||
private _box = [_target, _typeOptionSelected, _pos] call EFUNC(resupply,createBox);
|
||||
if (isNull _box) exitWith {
|
||||
["Resupply Box", "WARNING: Failed to locate or create box!"] call BIS_fnc_curatorHint;
|
||||
};
|
||||
[
|
||||
"Resupply Box",
|
||||
format[
|
||||
"Created %1",
|
||||
getText((call EFUNC(resupply,getSupplyCratesCfg)) >> _typeOptionSelected >> "displayName")
|
||||
]
|
||||
] call BIS_fnc_curatorHint;
|
||||
},
|
||||
{},
|
||||
[_pos, _target]
|
||||
] call zen_dialog_fnc_create;
|
||||
}
|
||||
] call zen_custom_modules_fnc_register;
|
||||
|
||||
// Manage wheels in a vehicle's ACE cargo
|
||||
[
|
||||
QUOTE(MODULE_CATEGORY_NAME),
|
||||
"Manage Wheels in Vehicle",
|
||||
{
|
||||
// module placement
|
||||
params [["_pos", [0,0,0], [[]], 3], ["_target", objNull, [objNull]]];
|
||||
|
||||
if (isNull _target) exitWith {
|
||||
["Manage Wheels in Vehicle", "WARNING: No vehicle selected!"] call BIS_fnc_curatorHint;
|
||||
};
|
||||
|
||||
if (_target isKindOf "CAManBase") exitWith {
|
||||
["Manage Wheels in Vehicle", "WARNING: Cannot add wheels/tracks to a person!"] call BIS_fnc_curatorHint;
|
||||
};
|
||||
|
||||
if (_target isKindOf "Static") exitWith {
|
||||
["Manage Wheels in Vehicle", "WARNING: Cannot add wheels/tracks to a static object!"] call BIS_fnc_curatorHint;
|
||||
};
|
||||
|
||||
// get loaded details
|
||||
private _loadedItems = _target getVariable ["ace_cargo_loaded", []];
|
||||
private _loadedItemsObjects = _loadedItems select { _x isEqualType objNull };
|
||||
private _loadedItemsVirtual = _loadedItems select { _x isEqualType "" };
|
||||
private _spaceLeft = _target getVariable ["ace_cargo_space", 0];
|
||||
|
||||
private _wheels = _loadedItemsVirtual select { _x isEqualTo "ACE_Wheel" };
|
||||
_wheels append (_loadedItemsObjects select { typeOf _x isEqualTo "ACE_Wheel" });
|
||||
|
||||
|
||||
private _maxWheels = floor ((_spaceLeft + count _loadedItems) / ("ACE_Wheel" call ace_cargo_fnc_getSizeItem));
|
||||
private _currentWheels = count _wheels;
|
||||
|
||||
private _comboOptions = [[], [], _currentWheels];
|
||||
for "_i" from 0 to _maxWheels do {
|
||||
_comboOptions#0 pushBack _i;
|
||||
_comboOptions#1 pushBack format["%1", _i];
|
||||
};
|
||||
|
||||
|
||||
[ // create the dialog
|
||||
"Manage Wheels in Vehicle",
|
||||
[
|
||||
// [ "COMBO", "Box Type", [[1,2,3], [["Ammo"],["Weapons"],["Medical"]],0] ]
|
||||
["TOOLBOX", "Existing Data", [
|
||||
0, // default value
|
||||
2, // num rows
|
||||
2, // num columns
|
||||
[
|
||||
format["Loaded Items: %1", count _loadedItems],
|
||||
format["Space Left: %1", _spaceLeft],
|
||||
format["Loaded Wheels: %1", count _wheels]
|
||||
]
|
||||
]],
|
||||
["COMBO", "Desired ACE Wheels Count", _comboOptions, true]
|
||||
],
|
||||
{
|
||||
|
||||
params ["_dialogValues", "_args"];
|
||||
|
||||
_dialogValues params ["_listItem", "_desiredWheelsCount"];
|
||||
_args params ["_pos", "_target", "_currentWheelsCount"];
|
||||
|
||||
// MANAGE WHEELS
|
||||
if (_desiredWheelsCount > _currentWheelsCount) then {
|
||||
// add wheels
|
||||
private _wheelsToAdd = _desiredWheelsCount - _currentWheelsCount;
|
||||
systemChat format["Adding %1 wheels...", _wheelsToAdd];
|
||||
for "_i" from 1 to _wheelsToAdd do {
|
||||
if (
|
||||
["ACE_Wheel", _target] call ace_cargo_fnc_canLoadItemIn
|
||||
) then {
|
||||
["ACE_Wheel", _target] call ace_cargo_fnc_addCargoItem;
|
||||
};
|
||||
};
|
||||
};
|
||||
if (_desiredWheelsCount < _currentWheelsCount) then {
|
||||
// remove wheels
|
||||
private _wheelsToRemove = _currentWheelsCount - _desiredWheelsCount;
|
||||
systemChat format["Removing %1 wheels...", _wheelsToRemove];
|
||||
["ACE_Wheel", _target, _wheelsToRemove] call ace_cargo_fnc_removeCargoItem;
|
||||
};
|
||||
|
||||
|
||||
// get loaded details
|
||||
private _loadedItems = _target getVariable ["ace_cargo_loaded", []];
|
||||
private _loadedItemsObjects = _loadedItems select { _x isEqualType objNull };
|
||||
private _loadedItemsVirtual = _loadedItems select { _x isEqualType "" };
|
||||
private _spaceLeft = _target getVariable ["ace_cargo_space", 0];
|
||||
|
||||
private _wheels = _loadedItemsVirtual select { _x isEqualTo "ACE_Wheel" };
|
||||
_wheels append (_loadedItemsObjects select { typeOf _x isEqualTo "ACE_Wheel" });
|
||||
|
||||
|
||||
private _maxWheels = floor ((_spaceLeft + count _loadedItems) / ("ACE_Wheel" call ace_cargo_fnc_getSizeItem));
|
||||
private _currentWheels = count _wheels;
|
||||
|
||||
[
|
||||
"Manage Wheels in Vehicle",
|
||||
format[
|
||||
"Updated count of wheels in vehicle: %1",
|
||||
_currentWheels
|
||||
]
|
||||
] call BIS_fnc_curatorHint;
|
||||
true;
|
||||
},
|
||||
{},
|
||||
[_pos, _target, count _wheels, count _tracks]
|
||||
] call zen_dialog_fnc_create;
|
||||
}
|
||||
] call zen_custom_modules_fnc_register;
|
||||
|
||||
|
||||
// Manage tracks in a vehicle's ACE cargo
|
||||
[
|
||||
QUOTE(MODULE_CATEGORY_NAME),
|
||||
"Manage Tracks in Vehicle",
|
||||
{
|
||||
// module placement
|
||||
params [["_pos", [0,0,0], [[]], 3], ["_target", objNull, [objNull]]];
|
||||
|
||||
if (isNull _target) exitWith {
|
||||
["Manage Tracks in Vehicle", "WARNING: No vehicle selected!"] call BIS_fnc_curatorHint;
|
||||
};
|
||||
|
||||
if (_target isKindOf "CAManBase") exitWith {
|
||||
["Manage Tracks in Vehicle", "WARNING: Cannot add wheels/tracks to a person!"] call BIS_fnc_curatorHint;
|
||||
};
|
||||
|
||||
if (_target isKindOf "Static") exitWith {
|
||||
["Manage Tracks in Vehicle", "WARNING: Cannot add wheels/tracks to a static object!"] call BIS_fnc_curatorHint;
|
||||
};
|
||||
|
||||
// get loaded details
|
||||
private _loadedItems = _target getVariable ["ace_cargo_loaded", []];
|
||||
private _loadedItemsObjects = _loadedItems select { _x isEqualType objNull };
|
||||
private _loadedItemsVirtual = _loadedItems select { _x isEqualType "" };
|
||||
private _spaceLeft = _target getVariable ["ace_cargo_space", 0];
|
||||
|
||||
private _tracks = _loadedItemsVirtual select { _x isEqualTo "ACE_Track" };
|
||||
_tracks append (_loadedItemsObjects select { typeOf _x isEqualTo "ACE_Track" });
|
||||
|
||||
private _maxTracks = floor ((_spaceLeft + count _loadedItems) / ("ACE_Track" call ace_cargo_fnc_getSizeItem));
|
||||
private _currentTracks = count _tracks;
|
||||
|
||||
private _comboOptions = [[], [], _currentTracks];
|
||||
for "_i" from 0 to _maxTracks do {
|
||||
_comboOptions#0 pushBack _i;
|
||||
_comboOptions#1 pushBack format["%1", _i];
|
||||
};
|
||||
|
||||
[ // create the dialog
|
||||
"Manage Tracks in Vehicle",
|
||||
[
|
||||
// [ "COMBO", "Box Type", [[1,2,3], [["Ammo"],["Weapons"],["Medical"]],0] ]
|
||||
["TOOLBOX", "Existing Data", [
|
||||
0, // default value
|
||||
2, // num rows
|
||||
2, // num columns
|
||||
[
|
||||
format["Loaded Items: %1", count _loadedItems],
|
||||
format["Space Left: %1", _spaceLeft],
|
||||
format["Loaded Tracks: %1", count _tracks]
|
||||
]
|
||||
]],
|
||||
["COMBO", "Desired ACE Tracks Count", _comboOptions, true]
|
||||
],
|
||||
{
|
||||
|
||||
params ["_dialogValues", "_args"];
|
||||
|
||||
_dialogValues params ["_listItem", "_desiredTracksCount"];
|
||||
_args params ["_pos", "_target", "_currentTracksCount"];
|
||||
|
||||
// MANAGE TRACKS
|
||||
if (_desiredTracksCount > _currentTracksCount) then {
|
||||
// add tracks
|
||||
private _tracksToAdd = _desiredTracksCount - _currentTracksCount;
|
||||
systemChat format["Adding %1 tracks...", _tracksToAdd];
|
||||
for "_i" from 1 to _tracksToAdd do {
|
||||
if (
|
||||
["ACE_Track", _target] call ace_cargo_fnc_canLoadItemIn
|
||||
) then {
|
||||
["ACE_Track", _target] call ace_cargo_fnc_addCargoItem;
|
||||
};
|
||||
};
|
||||
};
|
||||
if (_desiredTracksCount < _currentTracksCount) then {
|
||||
// remove tracks
|
||||
private _tracksToRemove = _currentTracksCount - _desiredTracksCount;
|
||||
systemChat format["Removing %1 tracks...", _tracksToRemove];
|
||||
["ACE_Track", _target, _tracksToRemove] call ace_cargo_fnc_removeCargoItem;
|
||||
};
|
||||
|
||||
|
||||
// get loaded details
|
||||
private _loadedItems = _target getVariable ["ace_cargo_loaded", []];
|
||||
private _loadedItemsObjects = _loadedItems select { _x isEqualType objNull };
|
||||
private _loadedItemsVirtual = _loadedItems select { _x isEqualType "" };
|
||||
private _spaceLeft = _target getVariable ["ace_cargo_space", 0];
|
||||
|
||||
private _tracks = _loadedItemsVirtual select { _x isEqualTo "ACE_Track" };
|
||||
_tracks append (_loadedItemsObjects select { typeOf _x isEqualTo "ACE_Track" });
|
||||
|
||||
private _maxTracks = floor ((_spaceLeft + count _loadedItems) / ("ACE_Track" call ace_cargo_fnc_getSizeItem));
|
||||
private _currentTracks = count _tracks;
|
||||
|
||||
[
|
||||
"Manage Tracks in Vehicle",
|
||||
format[
|
||||
"Updated count of tracks in vehicle: %1",
|
||||
_currentTracks
|
||||
]
|
||||
] call BIS_fnc_curatorHint;
|
||||
true;
|
||||
},
|
||||
{},
|
||||
[_pos, _target, _currentTracks]
|
||||
] call zen_dialog_fnc_create;
|
||||
}
|
||||
] call zen_custom_modules_fnc_register;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
[
|
||||
LEVEL_INFO,
|
||||
QUOTE(COMPONENT),
|
||||
"ZEUS ENHANCED MODULES ADDED",
|
||||
[]
|
||||
] call EFUNC(common,log);
|
||||
|
||||
nil;
|
||||
14
framework/zeus/functions/fn_initClient.sqf
Normal file
14
framework/zeus/functions/fn_initClient.sqf
Normal file
@@ -0,0 +1,14 @@
|
||||
#include "..\script_component.hpp"
|
||||
|
||||
if (!hasInterface) exitWith {};
|
||||
|
||||
call FUNC(addZenModules);
|
||||
|
||||
[
|
||||
LEVEL_DEBUG,
|
||||
QUOTE(COMPONENT),
|
||||
"postInit complete",
|
||||
[]
|
||||
] call EFUNC(common,log);
|
||||
|
||||
localNamespace setVariable [QGVAR(complete), true];
|
||||
3
framework/zeus/script_component.hpp
Normal file
3
framework/zeus/script_component.hpp
Normal file
@@ -0,0 +1,3 @@
|
||||
#define COMPONENT zeus
|
||||
#define COMPONENT_BEAUTIFIED Zeus Utilities
|
||||
#include "../script_mod.hpp"
|
||||
@@ -6,7 +6,8 @@ onLoadMission = "THIS APPEARS BELOW THE LOADING SCREEN IMAGE";
|
||||
briefingName = "THIS IS THE NAME ON THE #MISSIONS LIST";
|
||||
overviewText = "THIS IS WHERE YOU DESCRIBE THE MISSION IN THE #MISSION LIST";
|
||||
|
||||
missionSeries = "";
|
||||
// The name for the series of missions of your campaign. Used for organizational and search purposes
|
||||
missionSeries = "MY SERIES NAME";
|
||||
|
||||
// activate via #ace-fortify west base 2000
|
||||
|
||||
|
||||
Reference in New Issue
Block a user