Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mange/hehu_mf
CQB/mission framework for Arma 3 missions
https://github.com/mange/hehu_mf
Last synced: 18 days ago
JSON representation
CQB/mission framework for Arma 3 missions
- Host: GitHub
- URL: https://github.com/mange/hehu_mf
- Owner: Mange
- License: mit
- Created: 2015-03-09T22:31:44.000Z (almost 10 years ago)
- Default Branch: master
- Last Pushed: 2016-12-30T00:10:51.000Z (about 8 years ago)
- Last Synced: 2023-04-10T08:21:29.013Z (over 1 year ago)
- Language: SQF
- Size: 891 KB
- Stars: 1
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# @hehu_mf (Arma 3 addon)
> HEHU Mission Framework
## Features
HEHU Mission Framework is a mod that contains modules that can help you build more dynamic and rich missions faster. All the modules are meant to represent a pattern that we find useful for making fun and angaging co-op missions. It's build primarily for my group, but with this open source license everyone can make use of the code for their own groups.
* **Modules**
* **CQB Spawner** places units randomly in certain areas; optionally giving them patrolling behavior.
* **Target counter** shows a count of enemies alive.
* **Unit locator** shows the position of certain units under certain conditions.
* **Automatic end game** ends the game automatically when all enemies are dead.
* **Assets**
* Ammo box with Virtual Armory and no vanilla inventory.
* **Autozeus**
* Allows you and any other player to become Zeus on every mission, vanilla or otherwise.
* We play in a closed group, so I'm not afraid of abuse.
* Requires ACE3.## Usage
### CQB Spawner
![](images/cqb_spawner.png)
CQB spawner spawns units in certain areas. Areas are marked using `Area` or `Base` Game Logics with synchronized triggers. `Area` places units randomly inside the trigger areas, while `Base` spawns them only inside available building positions in buildings inside the trigger area.
Synchronize units to the specific areas and the unit types will be randomized between them. Placing 1 Civilian, 1 OPFOR Officer and 2 OPFOR Riflemen means that at any given location there's a 25% chance of a civilian, 25% of an officer, and 50% chance of a rifleman.
A single spawner can have multiple areas with different unit loadouts, and each area can have several triggers synchronized.
#### Configuring from mission parameters
You can change CQB module settings by including mission parameters in your `description.ext`:
```hpp
class Params
{
#include "\hehu_mf\CQB_Params.hpp"#include "\a3\functions_f\Params\paramWeather.hpp"
#include "\a3\functions_f\Params\paramDaytimePeriod.hpp"
};
```Your mission will then get parameters for number of units and alertness. These options apply to each CQB spawner individually.
If you want your own preset values / descriptions, you'll have to include the options explicitly:
```hpp
class Params
{
class NumberOfUnits {
title = "Number of units";
texts[] = {"7", "10", "15", "20", "30", "40"};
values[] = {7, 10, 15, 20, 30, 40};
default = 20;
};class UnitAlertness {
title = "Unit alertness";
texts[] = {"Stand still", "Respond to threats", "Some will patrol", "Most will patrol", "All will patrol"};
values[] = {0, 1, 2, 3, 4};
default = 0;
};
};
```#### Configuring from `init.sqf`
You can change CQB module settings by using the following variables:
* `HEHU_CQB_unit_count` -- The number of units on each CQB Spawner with "Use global config".
* `HEHU_CQB_alertness`
* `0`: "Stand still"
* `1`: "Respond to threats"
* `2`: "Some will patrol"
* `3`: "Most will patrol"
* `4`: "All will patrol"You could, for instance, set these depending on the player count or on the presence of other mods.
### Target counter
![](images/target_counter.png)
Target counter shows the number of enemies left on the mission.
* It can be enabled from a trigger if you don't want it running immediately.
* It can be configured to stop when no enemies are left.
* It can be configured to different degrees of accuracy:
* **Exact** means that the exact number of units should be displayed.
* **Inexact** means that "many", "few", "couple", etc. is shown.
* **Unhelpful** just says if there are any units left or not.### Unit locator
![](images/unit_locator.png)
Unit locator shows the position of units on the map.
* It can be activated from a trigger.
* It can be configured to only show up to a certain number of units and show nothing when there's more than that.
* This allows you to add a "The last enemy is in this general area" to reduce the length of Search & Destroy.
* If number of units grows over the limit, the placement will disappear from the map again.
* Set to `0` to display all the matching units.
* It can show different kinds of units:
* Players
* Non-players
* Enemies
* Opfor
* Blufor
* Independent
* Civilians
* Everyone
* Precision can be configured:
* **Exact** shows the exact location with a dot.
* **Accurate** shows a circle in which the unit is located somewhere.
* **Inaccurate** grows the circle.
* **Very inaccurate** shows a very large circle.
* You can enable it to only certain players or player groups ("Radio men get special intel"; "Bravo can see from the hill exactly, Alpha knows the approximate position from Bravo's descriptions", etc.)### Automatic end game
Ends the game when no more enemies exist. Very simple, but speeds up the process of adding victory conditions to small-scale missions.
## Development
### Adding a new module
1. Copy the `addons\blank` directory to `addons\`.
2. Open the `$PBOPREFIX$` file and adjust the name.
3. Open the `script_component.hpp` file and adjust the component name.## Copyright / License
Copyright 2015 Magnus Bergmark
Uses assets from Bohemia Interactive. Code in this repo is released under the MIT license.